Skip to main content

Управление конфигурацией

Обзор

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

Отмена и повтор настройки (Undo и Redo)

Любое действие, выполненное в графическом интерфейсе или любая команда, выполненная из CLI, записывается в /system history. Вы можете отменить или повторить любое действие, запустив команды undo или redo из CLI или нажав соответствующие кнопки в GUI.

Простой пример для демонстрации добавления правила брандмауэра и как отменить и повторить действие:

[admin@v7_ccr_bgp] /ip/firewall/filter> add chain=forward action=drop
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no log-prefix=""
[admin@v7_ccr_bgp] /system/history/print
Flags: U - undoable, R - redoable, F - floating-undo
Columns: ACTION, BY, POLICy
ACTION BY POLIC
filter rule added admin write U --- write

Добавили правило брандмауэра и в /system history видим все выполненные действия.

Давайте отменим всё:

[admin@v7_ccr_bgp] /ip/firewall/filter> /undo
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no log-prefix=""

Как видно, правило исчезло.

Теперь повторим последнее изменение:

[admin@v7_ccr_bgp] /ip/firewall/filter> /redo
[admin@v7_ccr_bgp] /ip/firewall/filter> print
Flags: X - disabled, I - invalid; D - dynamic
0 X chain=input action=drop protocol=icmp src-address=10.155.101.1 log=no log-prefix=""
1 chain=forward action=drop

История системы может показывать точные CLI-команды, которые будут выполнены при "Undo" или "Redo", даже если действие выполнено через GUI. Например, подробно история после добавления правила TCP Accept из WinBox:

[admin@v7_ccr_bgp] /system/history> print detail
Flags: U - undoable, R - redoable, F - floating-undo
F redo= /ip firewall filter add action=accept chain=forward disabled=no log=no \ log-prefix="" protocol=tcp undo=/ip firewall filter remove *4 action="filter rule added" by="admin" policy=write time=oct/10/2019 18:51:05
F redo=/ip firewall filter add action=accept chain=forward undo=/ip firewall filter remove *3 action="filter rule added" by="admin" policy=write time=oct/10/2019 18:49:03
U redo="" undo="" action="---" by="" policy=write time=sep/27/2019 13:07:35

Безопасный режим (Safe Mode)

Иногда изменение конфигурации делает роутер недоступным, кроме как из локальной консоли. Обычно – случается по ошибке. Тогда невозможно отменить изменения, если соединение уже порвано. Safe Mode помогает минимизировать этот риск.

image-2023-3-8_13-44-21.png

""Кнопка" Safe Mode в графическом интерфейсе Winbox позволяет войти в безопасный режим, а в CLI — через сочетание клавиш F4 или [CTRL]+[X]. Чтобы выйти без сохранения изменений, нажмите [CTRL]+[D].]"

[admin@MikroTik] ip route>[CTRL]+[X]
[Safe Mode taken]
[admin@MikroTik] ip route<SAFE>

Сообщение "Safe Mode taken" отображается, и приглашение меняется, чтобы показать, что сессия в безопасном режиме. Все изменения, сделанные во время SAFE mode (включая из других сессий), автоматически отменяются при аварийном завершении. Все такие изменения отмечены флагом F в системе истории.

[admin@MikroTik] /ip/route> [Safe Mode taken]
[admin@MikroTik] /ip/route<SAFE>
add

Если соединение по telnet или в терминале WinBox прервано, то через ~9 минут все изменения, сделанные в safe mode, отменяются. Выйти из safe mode командой [Ctrl]+[D — то же самое, а команда /quit — не отменяет.

Если другой пользователь войдет в safe mode, то он увидит сообщение:

[admin@MikroTik] > Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:
- [u] — отменяет все изменения safe mode и переводит текущую сессию в безопасный режим
- [r] — сохраняет все текущие изменения и переводит текущую сессию в safe mode.
- [d] — оставляет всё как есть.

Резервное копирование и восстановление системы

Резервное копирование — способ полностью клонировать конфигурацию роутера в бинарном формате.

Подробнее о Backup и Restore можно прочитать здесь.

Экспорт и импорт конфигурации

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

Команда экспорта может выполняться из каждого меню (экспорт только из этого меню) или из корневого для полного экспорта. В CLI доступен только этот способ.

Команда экспорта не экспортирует пароли пользователей, установленные сертификаты, SSH-ключи, базы данных Dude или User-manager.

Экспортированные сертификаты, базы данных Dude и User-manager нужно экспортировать и импортировать вручную в новое устройство.

Пароли пользователей и SSH-ключи не подлежат экспорту.

При импорте рекомендуется использовать ту же версию RouterOS, что и при экспорте, чтобы избежать ошибок команд.

Экспорт конфигурации

Принятые параметры команды экспорта:

Свойство Описание
compact Выводит только измененную конфигурацию, поведение по умолчанию
file Экспортировать конфигурацию в указанный файл. Если файл не указан — выводит в терминал
show-sensitive Показывать чувствительную информацию, такую как пароли и ключи
hide-sensitive Скрывает чувствительную информацию для безопасности
terse Выводит только параметры конфигурации без значений по умолчанию
verbose Выводит всю конфигурацию включая значения по умолчанию

Пример экспорта конфигурации из /ip address и сохранения в файл:

[admin@MikroTik] > /ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS          NETWORK        BROADCAST      INTERFACE
0  10.1.0.172/24    10.1.0.0       10.1.0.255     bridge1
1  10.5.1.1/24      10.5.1.0       10.5.1.255     ether1
[admin@MikroTik] > /ip address export file=address
Импорт конфигурации

Команда import позволяет запустить скрипт конфигурации из файла (расширение .rsc), содержащий любые команды CLI, даже сложные скрипты.

Пример загрузки сохраненного файла конфигурации:

[admin@MikroTik] > import address.rsc
Loading script file address.rsc
Script file loaded and executed successfully

Параметры команды import:

Свойство Описание
from-line Начать выполнение скрипта с указанной строки (только в verbose режиме)
file-name Имя файла (.rsc), который нужно выполнить
verbose Читать и выполнять построчно, удобно для отладки
dry-run Симуляция импорта без изменения конфигурации (помогает отлавливать синтаксические ошибки), только в verbose

Автоматический импорт

Можно настроить автоматический запуск скриптов при загрузке файлов на роутер через FTP или SFTP. Для этого файл должен иметь расширение *.auto.rsc. После загрузки файлы автоматически выполняются.

Расширение *.auto.rsc обязательно для автоматического выполнения.

Устранение неполадок при импорте

Части конфигурации, на которые стоит обратить внимание при импорте .rsc

Перед импортом файла, созданного командой "/export", необходимо устранить следующие конфликты:

  • Конфликты переименования интерфейсов, особенно с именами по умолчанию, например, default-name=ether5.
[interface ethernet set [ find default-name=ether5 ] auto-negotiation=no name=ether1-gateway
/set [ find default-name=ether6 ] name=ether2
/set [ find default-name=ether7 ] name=ether3
/set [ find default-name=ether8 ] name=ether4
/set [ find default-name=ether1 ] name=ether5
/set [ find default-name=ether2 ] name=ether6
/set [ find default-name=ether3 ] name=ether7
/set [ find default-name=ether4 ] name=ether8

В более старых версиях "export" могут выводить неиспользуемые "add" вместо "set". Это нужно исправлять перед импортом.

Проверьте, что общее число физических интерфейсов совпадает с количеством в исходной и целевой конфигурации. Могут возникнуть ошибки, если чего-то не хватает.

При ошибках импорта
  • Используйте параметр dry-run для симуляции импорта без внесения изменений, чтобы выявить ошибки.
  • Выполните сброс конфигурации, если есть сомнения или ошибки.
  • Запустите повторный импорт с параметром verbose=yes, он покажет, где именно возникла ошибка.

Задержка запуска (Startup delay)

Если конфигурация зависит от интерфейсов, которые ещё не запустились, предусмотрите задержки или мониторинг их появления. Такой скрипт может ждать появления всех нужных интерфейсов.

{ :local i 0
#Количество интерфейсов. Настройте число для каждого устройства (/interface print count-only)
:local x 10
#Максимальное время ожидания
:local t 30
while ($i < $t && [:len [/interface find]] < $x]) do={
:put $i
:set $i ($i + 1)
:delay 1
}
if ($i = $t) do={
:log warning message="Не удалось загрузить все физические интерфейсы"
} else={
#Остальная часть скрипта
}

Сброс конфигурации

RouterOS позволяет сбросить конфигурацию командой /system reset-configuration.

Эта команда очищает все настройки и возвращает их к заводским. Можно использовать параметры для тонкой настройки поведения.

Свойство Описание
keep-users Не удалять существующих пользователей
no-defaults Не загружать стандартную конфигурацию, оставить только очистку
skip-backup Пропустить автоматическое создание резервной копии перед сбросом
run-after-reset Запускать указанный .rsc файл после сброса, чтобы загрузить свою конфигурацию
caps-mode Режим Caps

Пример, жесткий сброс без загрузки стандартной конфигурации и пропуска бэкапа:

[admin@MikroTik] > /system reset-configuration no-defaults=yes skip-backup=yes
Действительно сбросить? [y/N]:

И аналогично из Winbox:

image-2023-6-7_12-34-8.png