Мы уже много писали о возможностях, которые предоставляют современные коммутаторы с загрузочной средой ONIE и открытые ОС на базе Linux для них. Построение L3-фабрик, оверлейные виртуальные сети L2, — все это уже было. Но осталась нераскрытой одна важная тема, о которой много упоминалось — возможности по автоматизации.
Командная строка — это, конечно, здорово и вообще классика, но в 2014 году хочется уже большего. Особенно если работать приходится с десятками и сотнями устройств в одной сети.
Так что же мы получаем при использовании коммутатора c ОС на основе Linux, такой как Cumulus?
Автоматизация начинается уже на этапе подключения коммутатора в сетевую среду. И за это стоит благодарить установочную среду ONIE, пришедшую на смену PXE. При первой загрузке при помощи опции 239 DHCP запрашивается URL-адрес, с которого будет получаться образ системы. А вместе с ним запрашивается скрипт, который будет выполнен при установке. В список поддерживаемых языков входят Bash (Shell), Perl, Python, Ruby. Типичный пример выглядит примерно так:
Zero Touch Provisioning
Такой вариант способен сильно облегчить процесс разворачивания или расширения сети, в которой есть большое количество однотипных настроек. Впрочем, залить набор необходимого софта «по умолчанию» — уже весьма ценно, это знает любой человек, которому приходилось собирать компьютеры или сервера в количестве, отличном от «один для личного использования».
Но вот мы прорвались за этап установки, и тут уже начинается все самое интересное, что есть в мире Linux.
Маршрутизация
Здесь есть выбор из:
Первый пакет считается более распространенным и удобным, но есть мнение, что у второго лучше обстоят дела с масштабируемостью. Мы со своей стороны лишь радуемся возможности выбора и предлагаем вам вот такую статистику по использованию различных вариантов на «девятках»:
Маршрутизация на узлах обмена траффиком
Виртуализация
Тут выбор небольшой, но весьма приличный с токи зрения предлагаемых возможностей:
Про VMware NSX мы писали в нашем предыдущем материале, а OpenStack — настолько объемная тема, что требует даже не отдельной статьи, а целого цикла статей, так что эту часть мы, пожалуй, оставим без дополнительных комментариев.
Автоматизация управления интерфейсами
Когда дело касается непосредственно автоматизации управления, то здесь мы имеем:
- Puppet — написанная на Ruby одна из самых известных клиент-серверных систем управления конфигурациями ОС и ПО при помощи специального языка Guide
- Chef — еще одна широко известная система конфигурации
- CFEngine — третья конфигурационная система с мировой известностью
Как всегда бывает в подобных случаях, холивары о том, какая из систем удобнее, не прекращаются никогда. Поэтому лишь с поддержкой всех трех систем в ОС коммутатора можно говорить о том, что он обладает необходимой гибкостью, чтобы быть успешно встроенным в большинство имеющихся окружений.
Впрочем, даже если вы используете сторонние или самописные системы управления, никто не мешает вам адаптировать их клиента под использование в рамках открытой ОС коммутатора.
И еще несколько слов о популярных пакетах управления сетевыми интерфейсами. Наверняка многим известен такой пакет Debian, как ifupdown. В Cumulus используется его обновленная версия ifupdown2:
ifupdown2
По большому счету, это все тот же пакет, с сохраненной обратной совместимостью, но переписанный на python и обладающий расширенной функциональностью. В новой версии был значительно упрощен синтаксис команд. Но, пожалуй, самой полезной особенностью является возможность внесения инкрементальных изменений в конфигурацию сетевых интерфейсов, без рестарта интерфейсов.
Мониторинг
Понимание происходящих в любой момент времени процессов, стремление всегда держать руку на пульсе происходящего — характерная черта любого хорошего администратора, будь он системный или сетевой.
Для тех, кто привык с Linux'овым утилитам, есть целый сонм многофункциональных давно разрабатываемых пакетов:
Ну а «сетевикам» скорее по вкусу придется привычный sFlow.
Prescriptive Topology Manager (PTM)
Еще одной полезной функцией на стыке мониторинга и автоматизации является PTM. Этот пакет позволяет при помощи LLDP опроса ближайших соседей и BFD (Bidirectional Forwarding Detection) найти сбои в существующих путях, построить реально существующую топологию сети и сравнить ее с заранее заданной файлом topology.dot. Последний представляет собой файл формата graphviz-DOT — сравнительно распространенный способ текстового описания графа соединений, достаточно удобный как для работы с ним в качестве текста, так и для преобразования в графическое отображение топологии.
Prescriptive Topology Manager
В итоге мы получаем удобный способ проверки правильности подсоединения кабелей, что весьма актуально на больших инсталляциях. Помимо этого мы получаем еще один механизм мониторинга состояния сетевых соединений, причем легко скриптующийся и уже интегрированный с quagga.
Ну вот как-то так выглядит ситуация с автоматизацией в современных сетевых открытых ОС.
А чем пользуетесь вы?
Автор: ETegro_Technologies