В рамках данной статьи будут описаны следующие средства автоматизации:
- шаблоны конфигураций;
- NMS/EMS;
- скрипты, выполняемые на устройствах с RouterOS;
- скрипты, выполняемые на локальном устройстве.
Шаблоны конфигураций
Под шаблонами конфигураций понимается сценарий, в котором администратор заранее составляет несколько шаблонов для конфигураций устройств, каждый из шаблонов дополняет уникальными данными, например IP-адресом, и применяет их на устройствах вручную. Использование того или иного шаблона может определяться выполняемой функциональностью устройства в сети, географическим местоположением или другим критерием.
Недостатком данного метода является то, что объём ручного труда снижается, но остаётся достаточно большим. Кроме того, трудно поддерживать такую инфраструктуру в случае необходимости внесения в конфигурацию каких-либо изменений, однако, в начале эксплуатации, конфигурация оборудования будет унифицирована.
Данный метод не будет рассматриваться в рамках статьи.
NMS/EMS
Системы управления устройствами отлично справляются с задачей контроля за состоянием устройств и каналов связи, а также обновление программного обеспечения. Многие системы позволяют выполнять провизионинг и предварительную настройку в соответствии с заданными шаблонами.
Особенностью NMS является вендоронезависимость, т. е. для формирования рабочего сервера управления устройствами понадобятся большие трудозатраты по организации рабочей схемы управления конфигурацией с заданным производителем оборудования. EMS вендорозависимы, что, в свою очередь, не позволит использовать такие системы для инфраструктуры, построенной с использованием оборудования разных производителей.
Обзор системы управления устройствами DUDE представлен в отдельном цикле статей и не будет дополнительно рассмотрен здесь.
TR-069
Операционная система RouterOS поддерживает спецификацию TR-069, описывающую протокол управления абонентским оборудованием через глобальную сеть (CWMP — CPE WAN Management Protocol). Изначально протокол разрабатывался для операторов связи, однако может быть использован и в корпоративных сетях.
Архитектура решения предусматривает выделение сервера конфигурации (ACS — auto configuration server), который, взаимодействуя с абонентскими устройствами по протоколу CWMP, выполняет сбор данных и конфигурацию. Устройства, находящиеся под управлением RouterOS, могут выступать в роли клиентских устройств. Для этого потребуется дополнительная установка и конфигурация пакета tr069.
Достоинством такого решения является вендоронезависимость, т.к. спецификация предусматривает возможность унифицированной настройки оборудования разных производителей, а среди недостатков можно выделить высокий порог вхождения при освоении навыков написания конфигурационных скриптов. В рамках статьи данный метод не будет рассмотрен.
Скрипты, выполняемые на устройствах с RouterOS
RouterOS позволяет запускать предварительно загруженные скрипты, написанные для данной системы. Скрипты MikroTik обладают гибкостью, т. к. в них может быть настроен сбор сведений об устройстве и выполнение каких-то команд в соответствии с анализом этих данных. Кроме того, возможности RouterOS позволяют выполнить скрипт, как реакцию на возникшее событие или запускать его по расписанию.
Недостатком этого метода является плохая масштабируемость и возможность редактирования: скрипт должен быть унифицирован, чтобы однозначно был выполнен на устройствах разных моделей, а изменение скрипта потребует последовательную загрузку исполняемого файла на все устройства с получением отчёта о выполняемых операциях, т. к. часть устройств в момент загрузки могут быть недоступны.
Скрипты, выполняемые на локальном устройстве
Данный метод подразумевает запуск скрипта на локальном устройстве администратора, который выполняет подключение к заданном списку устройств с RouterOS (операции могут быть выполнены как последовательно, так и параллельно) с помощью одного из методов (telnet, SSH, API) и выполнение заданных команд. Выполнение команд может сопровождаться получением и анализом данных об устройстве.
Данный метод является достаточно гибким и может быть реализован с помощью одного из распространённых языков программирования. Это выгодно отличает его от запусков скриптов на устройствах, т. к. написания исполняемых файлов для RouterOS потребует знать специфический синтаксис, который не подойдёт для оборудования других производителей.
Кроме того, этот инструмент хорошо масштабируется и позволяет получить отчёт об успешности выполнения изменений в конфигурации.
В рамках данной статьи будет рассмотрен вариант подключения через API и использование одной из систем управления конфигурациями. В качестве языка для написания скриптов будет выбран Python3, а в качестве системы управления конфигурациями — Ansible.
Следует упомянуть о том, что администраторы могут использовать комбинированные методы при эксплуатации сети, например, формировать файлы скриптов для RouterOS и доставлять эти файлы на устройства с помощью Ansible.