Добавить в корзинуПозвонить
Найти в Дзене

Организация простого и надёжного бэкапа конфигураций сетевого оборудования (MikroTik, Cisco, D-Link)

Проблема Конфигурация сетевого оборудования это цифровой паспорт вашей инфраструктуры. VLAN, IP адреса, правила доступа, настройки маршрутизации. Всё это может быть потеряно при сбое, выходе оборудования из строя или человеческой ошибке. Восстанавливать сложную сеть с нуля без сохранённых конфигураций это часы или даже дни простоя. При этом ручной бэкап «через раз» с сохранением файлов на локальный диск администратора ненадёжен. Про него забывают. Конфигурации теряют актуальность. При увольнении сотрудника исчезает и единственная копия. Нужна автоматическая, централизованная и версионированная система резервного копирования, которая работает независимо от вендора. Будь то MikroTik, Cisco или D‑Link. Решение Организовать надёжный бэкап конфигураций можно на трёх уровнях сложности. Встроенные средства самого оборудования. Настройка автоматической выгрузки конфигурации на FTP, TFTP или SCP сервер по расписанию. Простой вариант, который работает «из коробки» и не требует дополнительного ПО

Проблема

Конфигурация сетевого оборудования это цифровой паспорт вашей инфраструктуры. VLAN, IP адреса, правила доступа, настройки маршрутизации. Всё это может быть потеряно при сбое, выходе оборудования из строя или человеческой ошибке. Восстанавливать сложную сеть с нуля без сохранённых конфигураций это часы или даже дни простоя. При этом ручной бэкап «через раз» с сохранением файлов на локальный диск администратора ненадёжен. Про него забывают. Конфигурации теряют актуальность. При увольнении сотрудника исчезает и единственная копия. Нужна автоматическая, централизованная и версионированная система резервного копирования, которая работает независимо от вендора. Будь то MikroTik, Cisco или D‑Link.

Решение

Организовать надёжный бэкап конфигураций можно на трёх уровнях сложности.

Встроенные средства самого оборудования. Настройка автоматической выгрузки конфигурации на FTP, TFTP или SCP сервер по расписанию. Простой вариант, который работает «из коробки» и не требует дополнительного ПО.

Централизованные системы управления конфигурациями. Специализированные инструменты, которые сами подключаются ко всем устройствам по SSH или Telnet, забирают конфигурации, хранят историю изменений и могут отправить уведомление при обнаружении различий. Среди таких решений.
RANCID. Классический инструмент, написанный на Perl и Expect, проверенный годами. Поддерживает MikroTik (RouterOS) и Cisco IOS, а также множество других вендоров.
Oxidized. Современная Ruby альтернатива, более лёгкая, гибкая и простая в настройке. Имеет встроенный веб-интерфейс.
Ansible. Универсальный инструмент автоматизации, позволяющий писать плейбуки для бэкапа конфигураций любого сетевого оборудования. Даёт максимальную гибкость и интеграцию с системами контроля версий (Git).

Самодельные скрипты (Bash или Python). Когда нужно полное управление процессом или специфические интеграции.

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

Пошаговая инструкция

1. Встроенные средства. Выгрузка конфигурации с устройств

Этот подход подходит, если у вас немного устройств, и вы не хотите разворачивать дополнительный софт. Достаточно иметь FTP сервер (подойдёт даже обычная Windows машина с настроенной FTP службой) или SCP сервер (например, Linux сервер с OpenSSH).

1.1. Настройка FTP или SCP сервера для хранения бэкапов

FTP сервер можно развернуть на любой операционной системе. Проще всего это сделать через встроенный IIS на Windows Server. В IIS Manager нужно создать новый FTP сайт, указав путь к папке для бэкапов и настроив разрешения для доступа устройств.

SCP сервер это стандартный SSH сервер, который есть в любой Linux системе. Нужно лишь создать отдельного пользователя (например, backupuser), задать ему пароль или настроить аутентификацию по ключам. На роутерах и коммутаторах при использовании SCP обычно указываются те же учётные данные, что и для SSH доступа.

1.2. MikroTik RouterOS. Встроенный скрипт для автоматического бэкапа

В MikroTik RouterOS есть встроенный планировщик задач (Scheduler), который может запускать скрипты по расписанию.

Пример скрипта для создания .backup и .rsc файлов и отправки их на FTP сервер.

Зайдите в веб-интерфейс Winbox или WebFig, System, Scripts. Создайте новый скрипт с кодом.

text

# Переменные для подключения к FTP серверу
:local ftpServer "192.168.1.100"
:local ftpUser "backupuser"
:local ftpPassword "StrongPassword123"
:local backupName "backup_$[/system identity get name]_$[/system clock get date].backup"
:local exportName "config_$[/system identity get name]_$[/system clock get date].rsc"

# Создание бэкапов
/system backup save name=$backupName
/export file=$exportName

# Отправка на FTP сервер
/tool fetch upload=yes src-path=$backupName dst-path=$backupName mode=ftp user=$ftpUser password=$ftpPassword address=$ftpServer
/tool fetch upload=yes src-path=$exportName dst-path=$exportName mode=ftp user=$ftpUser password=$ftpPassword address=$ftpServer

# Удаление временных файлов
/file remove $backupName
/file remove $exportName

Перейдите в System, Scheduler, создайте новую задачу (например, DailyBackup), укажите интервал (например, 00:00:00 для ежедневного запуска) и в поле On Event пропишите команду /system script run [имя_скрипта]. После этого каждый день в указанное время устройство будет создавать бэкап и отправлять его на FTP сервер.

1.3. Cisco IOS. Автоматическое сохранение конфигурации с помощью функции Archive

В Cisco IOS есть встроенный механизм archive, который позволяет автоматически сохранять копии конфигурации на TFTP, SCP или FTP сервер при каждом изменении или по расписанию.

Настройка на примере TFTP сервера.

Войдите в глобальный режим конфигурации.

text

configure terminal

Задайте путь и параметры архивации.

text

archive
path tftp://192.168.1.100/configs/$h-$t
write-memory
time-period 1440

Здесь.
path адрес TFTP сервера, $h подставляется hostname устройства, $t временная метка.
write-memory архивировать конфигурацию после выполнения команды write memory.
time-period 1440 выполнять архивацию каждые 1440 минут (раз в сутки).

После настройки роутер будет автоматически сохранять конфигурацию на TFTP сервер. Более продвинутые протоколы (SCP, SFTP) настраиваются аналогично, но требуют предварительной настройки SSH доступа.

1.4. D-Link (DGS-3120 и подобные). Встроенная команда autobackup

Многие управляемые коммутаторы D-Link поддерживают встроенную команду config autobackup, которая периодически сохраняет конфигурацию на указанный TFTP сервер.

Пример настройки.

text

config autobackup path tftp 192.168.1.100 configs/switch.cfg interval 1440

Команда указывает устройству сохранять конфигурацию на TFTP сервер 192.168.1.100 в файл switch.cfg каждые 1440 минут (раз в сутки). На некоторых моделях D-Link также доступна команда create backup time_range, которая позволяет задать расписание для создания бэкапов конфигурации или логов.

2. Централизованное управление бэкапами. RANCID и Oxidized

Если в вашей сети десятки устройств от разных производителей, лучше использовать специализированные системы. Они централизованно подключаются ко всем устройствам, забирают конфигурации и хранят их с историей изменений.

2.1. Oxidized. Современная альтернатива RANCID

Oxidized это лёгкий и расширяемый инструмент для бэкапа конфигураций сетевого оборудования. Он поддерживает более 130 типов операционных систем, включая MikroTik RouterOS, Cisco IOS и D-Link, и может использовать в качестве источника данных CSV, SQLite, MySQL или HTTP.

Установка и настройка Oxidized на Ubuntu, Debian.

text

# Установка Ruby и необходимых пакетов
sudo apt update
sudo apt install ruby ruby-dev libssl-dev libyaml-dev make git

# Установка Oxidized через RubyGems
sudo gem install oxidized oxidized-web

# Создание конфигурационного файла
mkdir -p ~/.config/oxidized
oxidized -e

После запуска будет создан пример конфигурации ~/.config/oxidized/config. Отредактируйте его, указав нужные параметры.

yaml

username: admin # имя пользователя для доступа к устройствам
password: secret
# пароль
model: ios
# модель по умолчанию (если не указана в source)

# Источник данных — CSV файл
source:
csv:
file: /home/user/.config/oxidized/router.db
delimiter: !ruby/regexp /:/
map:
name: 0
ip: 1
model: 2

Создайте файл router.db со списком устройств в формате имя:ip:модель.

text

router1:192.168.1.1:ios
router2:192.168.1.2:routeros
switch1:192.168.1.3:dlink

Затем просто запустите oxidized, и он начнёт опрашивать устройства по очереди, сохраняя их конфигурации в папку ~/.config/oxidized/configs/ с контролем версий.

Для автоматического запуска Oxidized через systemd используйте команды.

text

sudo systemctl enable oxidized
sudo systemctl start oxidized

Веб-интерфейс будет доступен на порту 8888 (по умолчанию) и позволит просматривать конфигурации прямо в браузере.

2.2. RANCID. Проверенное временем решение

RANCID это классический инструмент, написанный на Perl с использованием Expect. Он активно используется в крупных инфраструктурах уже много лет.

Установка RANCID.

text

sudo apt install rancid

Конфигурация RANCID находится в файле /etc/rancid/rancid.conf. Основной параметр LIST_OF_GROUPS (список групп устройств). Для каждого устройства в группе нужно прописать IP, тип устройства и учётные данные. После настройки RANCID будет автоматически собирать конфигурации, отслеживать изменения и отправлять уведомления по email.

3. Ansible. Универсальный подход для автоматизации

Если у вас уже используется Ansible для управления серверами, вы можете легко расширить его и на сетевое оборудование.

Пример простого плейбука для бэкапа конфигураций Cisco и MikroTik.

yaml

---
- name: Backup network device configurations
hosts: network_devices
gather_facts: no

tasks:
- name: Backup running config (Cisco)
ios_config:
backup: yes
backup_options:
filename: "{{ inventory_hostname }}_running.cfg"
dir_path: ./backups/
when: ansible_network_os == 'ios'

- name: Backup config (MikroTik)
routeros_command:
commands:
- /export compact
register: mikrotik_config
when: ansible_network_os == 'routeros'

- name: Save MikroTik config to file
copy:
content: "{{ mikrotik_config.stdout[0] }}"
dest: "./backups/{{ inventory_hostname }}_config.rsc"
when: ansible_network_os == 'routeros'

Перед запуском убедитесь, что в файле инвентаря hosts.ini указаны все устройства с соответствующими параметрами ansible_network_os.

text

[network_devices]
cisco_router ansible_host=192.168.1.1 ansible_network_os=ios
mikrotik_router ansible_host=192.168.1.2 ansible_network_os=routeros

Затем плейбук можно запускать по cron расписанию.

text

ansible-playbook -i hosts.ini backup_network.yml

При каждом запуске Ansible будет подключаться к устройствам по SSH, забирать конфигурации и сохранять их в папку ./backups/ с уникальными именами.

4. Интеграция с Git для хранения истории изменений

Все рассмотренные централизованные инструменты (и даже самодельные скрипты) можно легко интегрировать с Git. Это даст вам полную историю изменений, возможность сравнения версий и удобный откат.

Пример для Oxidized. Он уже умеет автоматически коммитить изменения в Git при обнаружении различий в конфигурации. Достаточно добавить в ~/.config/oxidized/config:

yaml

output:
git:
repository: "/home/user/oxidized-git-repo"
user: "oxidized"
email: "oxidized@example.com"

Пример для самодельного скрипта (Bash).

bash

#!/bin/bash
BACKUP_DIR="/backups/network"
cd $BACKUP_DIR
git add .
git commit -m "Automated backup on $(date +%Y-%m-%d)"
git push origin main

Добавьте этот фрагмент в конец вашего скрипта бэкапа, и каждое обновление будет автоматически попадать в репозиторий.

5. Настройка уведомлений (Telegram)

Для оперативного контроля над процессом резервного копирования полезно настроить отправку уведомлений в Telegram. Это позволит администратору сразу узнать об успешном завершении бэкапа или о возникших ошибках.

Для этого потребуется создать бота через BotFather в Telegram и получить его токен. Затем определить свой chat_id (отправив боту любое сообщение и вызвав URL https://api.telegram.org/bot<TOKEN>/getUpdates).

Пример Bash функции для отправки сообщений.

bash

#!/bin/bash
BOT_TOKEN="your_bot_token_here"
CHAT_ID="your_chat_id_here"

send_telegram() {
local message="$1"
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$message" \
-d parse_mode="HTML"
}

# Пример использования в скрипте бэкапа
send_telegram "✅ Резервное копирование конфигураций успешно завершено на $(date +'%Y-%m-%d %H:%M:%S')"

Устранение распространённых проблем

ПроблемаВероятная причинаРешениеОшибка подключения при использовании FTP или TFTPБрандмауэр блокирует порт 21 или 69, сервер не доступенУбедитесь, что FTP или TFTP сервер запущен, порты открыты, и устройства могут до него достучаться. Для TFTP также проверьте права на запись в целевой папке.RANCID не может подключиться к устройствуУстаревшие учётные данные в cloginrc или несовместимый тип устройстваПроверьте логи RANCID (обычно в /var/log/rancid/). Обновите файл .cloginrc, добавив правильный пароль и метод входа.Oxidized не забирает конфигурацию с MikroTikНеправильно указана модель устройстваУбедитесь, что в файле router.db указана модель routeros (для версий RouterOS 6 и выше) или routeros7. Oxidized чувствителен к регистру.Ansible не может подключиться к устройствуНе установлены необходимые коллекцииУстановите коллекции для работы с сетевым оборудованием: ansible-galaxy collection install cisco.ios, ansible-galaxy collection install community.routeros.Нет уведомлений в TelegramНеверный токен бота или chat_idПроверьте работоспособность API. Выполните curl https://api.telegram.org/bot<ТОКЕН>/getMe. Если бот отвечает, проблема в chat_id.Потеря конфигураций из-за сбоя FTP сервераОтсутствует резервное копирование самих бэкаповНастройте дополнительную репликацию папки с бэкапами на другой сервер или в облачное хранилище.

Итог

Мы рассмотрели три подхода к организации бэкапа конфигураций сетевого оборудования. От встроенных средств MikroTik, Cisco и D‑Link до централизованных систем (Oxidized, RANCID, Ansible) с контролем версий через Git и уведомлениями в Telegram. Бэкап конфигураций сетевого оборудования не требует больших затрат, но экономит часы простоя при аварии. Выбирайте подход, который соответствует размеру вашей сети и доступным ресурсам. Для небольшого офиса хватит встроенных средств и FTP сервера. Для десятков устройств используйте Oxidized или Ansible с Git репозиторием. Главное настроить автоматизацию и не полагаться на «ручной режим».

Организация простого и надёжного бэкапа конфигураций сетевого оборудования (MikroTik, Cisco, D-Link) | Андрей Коровин | Сисадмин | IT-инженер