Как забэкапить конфиги с обоих Routing-Engine на Juniper через SSH.

Posted: 2016-12-29 in IT, Networks
Метки:,

Если вы читали мой блог, то возможно, видели статейку про бэкапы и их копирование по SSH. Там был пример, как с помощью одной строчки вытащить конфиг джунипера себе на комп.

Однако есть железки, у которых управляющих модулей внутри может быть больше одного. Например, в Juniper MX960

Juniper MX-960

может быть несколько (чаще всего два) так называемых routing-engine (RE, вертикальные модули в середине железки), представляющих из себя полностью независимые управляющие компьютеры со своими процами / памятью / дисками. В каждый момент времени работает только один такой комп, второй находится в горячем резерве и готов взять на себя все функции при отказе первого. Особенность в том, что заходя на такой джун по SSH, вы всегда будете попадать на Master-RE, и команда show config будет показывать именно текущий рабочий конфиг с мастера.

И хотя в штатных случаях конфиги и версии прошивок должны быть одинаковы (первое задается через set system commit synchronize в конфиге или ручками при commit synchronize, второе вопрос организационный), могут возникнуть ситуации, когда конфиги не совпадают. В этом случае лучше в бэкап записать конфиги с обоих устройств. Однако просто так по SSH зайти на Backup-RE нельзя — он не управляет никакими интерфейсами, и на нём даже не запущен роутинг. Также мы не можем заранее 100% знать, какой из RE сейчас мастер — это может менять в процессе использования / ребутов / обновлений прошивок и прочего.

Решение есть в самой джунос и оно прекрасно:

#!/bin/sh

# My backup script on backup-storage server; login over read-only class user to junipers

# Бэкапим текущий мастер-RE как обычно:
ssh {IP} "show configuration | display xml" > mx960-Master-RE.xml 2>/dev/null

# Бэкапим текущий резервный-RE более хитрой командой:
ssh {IP} "request routing-engine execute routing-engine other command \"cli show configuration | display xml\"" > mx960-Backup-RE.conf 2>/dev/null

# Бэкапим конфиг именно первого RE, независимо от его роли
ssh {IP} "request routing-engine execute routing-engine re0 command \"cli show configuration | display xml\"" > mx960-RE0.conf 2>/dev/null

То есть мы заходим таки сперва на текущий мастер, и говорим ему выполнить заданную команду (важный момент — под командой тут понимается команда FreeBSD-шелла, а не команда JunOS-консоли cli !), в данном случае — вызвать консоль JunOS, а ей уже передать команду отображения конфига на соседнем ядре. Вывод ловит уже наш SSH. Действо простое, понятное и безопасное. Не забываем заэкранировать кавычки для JunOS-команды.

Реклама

Обсуждение закрыто.