Производители сетевого оборудования потихоньку двигаются в сторону универсального API для настройки и сбора показателей: есть NETCONF, OpenConfig, существует ПО для импорта MIB, та же настройка с помощью SNMP существует давно. Но я не буду касаться этих высоких материй, а просто поделюсь способом автоматизировать настройку сетевого оборудования – на случай массового открытия филиалов, например,  Для иллюстрации использую D-Link DFL-800 в воображаемом центральном офисе и MikroTik RB951UI-2HnD на периферии. В частности, настроим между ними туннель IPsec, раз уж речь про сценарий с новым филиалом. Проще всего настраивать MikroTik с помощью конфигурационного файла, который представляет собой скрипт с набором консольных команд. Описываемый принцип настройки подойдет и для других маршрутизаторов с аналогичным механизмом задания параметров. Прежде всего получим конфигурационный файл уже настроенного и работающего MikroTik, с помощью команды /export. Файл будет практически идентичен бэкапу, но в нем не будет имен пользователей и MAC-адресов. Чтобы применить конфигурационный файл на другом роутере, часть параметров нужно изменить на уникальные. Для этого подойдут возможности встроенного в прошивку скриптового языка – в частности, вынос индивидуальных настроек в переменные. Вот пример скрипта с назначением шлюза по умолчанию: Изначально была идея создать универсальный скрипт, который можно применять без сброса конфигурации. Поэтому в коде проводится проверка на наличие маршрута по умолчанию, после чего он создается с нуля или меняется. Но от этой идеи пришлось отказаться, поскольку в свежих прошивках в конфигурацию по умолчанию постоянно добавляются изменения. Предусмотреть все нереально, а при постоянном обновлении скрипта теряется смысл автоматизации. Индивидуальные параметры роутера удобнее задавать не в текстовом файле, а в GUI – тогда с настройкой маршрутизатора справятся даже незнакомые со спецификой устройства люди. То что нужно для удаленного офиса, который могут обслуживать сотрудники разной квалификации. GUI я отрисовываю в скрипте, разработанном на AutoIT. В этот скрипт я также добавил функцию пересчета масок сети (255.255.255.0 = /24) и построчное заполнение конфигурационного файла. Сам инструмент разработки для решения задачи не принципиален – можно использовать и что-то более привычное лично вам.  Получившийся интерфейс настройки Разберем подробнее функцию, которая формирует окно.  Для работы всех функций будущего конфигуратора потребуются следующие библиотеки, в основном из комплекта AutoIT: RandomString для генерации ключа IPsec (в комплект не входит, автор Altlans); GuiIPAddress для формы ввода IP-адресов; GUIConstantsEx для работы GUI; С принципами работы с графическим интерфейсом в AutoIT можно ознакомиться в официальной документации, я же сразу перейду к результату: Дальше логика работы программы следующая: новый текстовый файл построчно заполняется полученными значениями с помощью FileWriteLine. Полученный скрипт-конфиг можно переносить на MikroTik. Осталось выполнить на MikroTik получившийся скрипт после сброса конфигурации, любым удобным способом: через /system script, использовать сохраненный файл и сбросить конфигурацию так, как показано на картинке:   Теперь для настройки нового MikroTik достаточно запустить программу, указать индивидуальные настройки в GUI, получить скрипт настройки и передать его маршрутизатору. Осталось довести до ума настройку маршрутизатора в предполагаемом центральном офисе. Настройку DFL удобнее производить через консоль. Такой тип настройки тоже поддается автоматизации, например с использованием инструмента Plink от создателя Putty. Концепцию передачи команд в открытое консольное нельзя назвать идеальной, но в случае с D-Link DFL можно использовать его собственные "скрипты". В качестве примера разберем функцию, которую использую в паре с ранее описанной. Если MikroTik нужно настраивать с нуля, то на DFL достаточно создать туннель IPsec и включить его в группу интерфейсов для применения правил встроенного брандмауэра.  Окно настроек заметно проще, ведь DFL в нашем случае не нужно настраивать с нуля Для доступа к маршрутизатору по SSH понадобится Plink, а также Pscp для передачи файлов – достаточно просто прописать в скрипте пути к исполняемым файлам. При работе Plink и Pscp есть особенность: если используется парольная авторизация, то при первом подключении или замене оборудования появится запрос о внесении отпечатка в реестр. Обойти запрос можно передачей "Y" в консольное окно. DFL работает с объектами на уровне групп. Так как нельзя добавить объект в группу без перечисления всех ее членов, я генерирую на DFL создающий группу скрипт, забираю его в виде файла и изменяю. Создать скрипт можно следующей командой: Результат можно забрать по SCP. Файл я переименовываю в script.sgs и добавляю в него другие команды для создания новых объектов, после чего импортирую результат на D-Link по SCP и применяю конфигурацию. После применения конфигурации уже ненужный скрипт можно удалить командой Кстати, в процессе обнаружилось решение и для резервного копирования конфигурации. В процессе отладки в корне структуры DFL обнаружились два файла: full.bak и config.bak. Несложно догадаться, что это полный бэкап системы и копия конфигурации. Для создания полноценной резервной копии устройства достаточно подключиться по SCP и скопировать оба файла. В этом же скрипте резервного копирования можно написать нечто вроде политики хранения – удалять файлы старше двух недель.  Скрипт успешно бэкапит любые модели DFL. Конечно, эти два способа настройки не претендуют на лучшие практики, а кто-то даже назовет их костылями. Для небольших и разовых изменений конфигурации проще использовать SNMP или специальный API от производителя. Но даже изобретение своего велосипеда сэкономило массу времени на просьбах помочь с настройкой от ранее не работавших с Mikrotik коллег. Опять же, меньше шанс ошибиться. Если вам доводилось использовать подобные способы упрощенной настройки для других устройств – поделитесь рецептами с коллегами!