Наша почта:
В Москве:
РФ (звонок бесплатный):
Корпоративная сеть для малого бизнеса на оборудовании MikroTik
{ Начальник сектора сетевой и системной инфраструктуры в ООО Брейнисофт }
Николай Гончаров

Видео доклада

Презентация спикера

Корпоративная сеть для малого бизнеса на оборудовании MikroTik
Кто хотя бы раз строил сетевую инфраструктуру с нуля. Далеко не все начинают с крупных дата-центров: чаще это офис, небольшой корпоративный ЦОД, несколько серверов, связанных между собой. В докладе разбирается путь построения корпоративной сети на оборудовании MikroTik — от тестирования канала провайдера до полноценной трёхуровневой модели, с описанием проблем, которые встретились на каждом этапе, и способов их решения.

Роль сети для организации

В типовой организации есть множество отделов, и для их работы требуется оборудование. Сетевые принтеры и другие общие устройства, выведенные в общий доступ, снижают затраты на использование ресурсов. Сеть даёт и централизованное управление: при наличии большого парка серверов через систему управления конфигурацией (Puppet, Ansible, Salt) можно из одной точки устанавливать программное обеспечение, выполнять настройку, обновлять системы и доставлять пакеты.
Корпоративная сеть — фундамент для всех связанных систем. Если сеть работает нестабильно, это немедленно сказывается на всех подключённых к ней сервисах: виртуализации, системах хранения данных и прочих. Поэтому стабильно работающая сеть — фундамент всей ИТ-инфраструктуры организации.

Почему MikroTik

Выбор вендора определялся несколькими факторами.
  • 1.
    Наличие парка оборудования. Часть устройств уже была в распоряжении: их тестировали, проверяли, запускали.
  • 2.
    Невысокая стоимость. На фоне Cisco, Juniper или Eltex оборудование MikroTik выглядит привлекательно по соотношению стоимости и функционала.
  • 3.
    Единое программное обеспечение. RouterOS одинакова на всех устройствах вендора — маршрутизаторе, коммутаторе, точке доступа. Более того, с официального сайта можно скачать облачный маршрутизатор CHR (Cloud Hosted Router), развернуть его на своей виртуализации, и интерфейс будет абсолютно таким же, как на физических устройствах.
  • 4.
    Стабильность работы. Настроенный один раз MikroTik может работать годами без ошибок.
  • 5.
    Подробная документация. На help.mikrotik.com доступны примеры настройки и детальная информация, там же можно скачать прошивку — как стабильную, так и бета-версию. У других производителей такого не наблюдается: прошивку нередко выдают только по подписке или через участие в партнёрских программах.

Этап первый: резервирование канала провайдера

Первая задача — обеспечить отказоустойчивый канал между провайдером и площадкой. Канал приходит по LACP: два линка объединены в одну логическую группу и заведены на два коммутатора. Тестирование проводилось на линейке CRS317.
Первым было опробовано решение по спецификации 802.1BR — «стекирование» по схеме controller bridge + port extender. Привлекала возможность подключить в такую схему несколько устройств (два-три). Однако требовалась очень высокая отказоустойчивость: выход одного устройства не должен влиять на схему в целом. Этого добиться не удалось — отказ головного устройства (controller bridge) по любой из причин превращал всю сеть в неработоспособную, полноценного failover не было. Впоследствии эта технология была объявлена deprecated и убрана из RouterOS начиная с версии 7.18.
Следующим решением стал MLAG. Технология позволяет объединить два физических линка от устройства в один логический канал через два разных коммутатора, повышая отказоустойчивость. Прирост скорости при этом не линейный: при линках 10 Гбит/с получить 20 Гбит/с не выйдет — часть полосы уходит на синхронизацию и служебный трафик. Главное преимущество — failover: при потере одного линка работа продолжается по второму.

Ограничения MLAG, которые нужно учитывать:
  • Поддержка появилась начиная с RouterOS 7.1 (стабильная версия вышла в декабре 2021 года);
  • Технология требует аппаратной поддержки, поэтому в симуляторах (GNS3, EVE-NG) не работает;
  • По спецификации поддерживаются серии CRS3xx и CRS5xx, а также отдельные модели CCR — 2116 и 2216;
  • В группу MLAG нельзя добавить больше двух устройств.
После перехода на MLAG канал заработал сразу: появилось резервирование линков, отказ любого из них перестал влиять на подключение в целом.

Этап второй: MLAG и VRRP в одном слое

Схема была усложнена: MLAG используется и на верхнем уровне — для канала от провайдера, и ниже — для объединения линков со стороны серверов.
Здесь возникла задача резервирования шлюзов. Статические шлюзы на VLAN-ах резерва не дают: при выходе из строя коммутатора, на котором расположены шлюзы, работоспособность сети теряется. Решение — протокол VRRP. Но в одной схеме с MLAG он не заработал.
Основная проблема проявлялась при переходе мастера в бэкап и обратно (то есть при смене приоритета и перетекании трафика с одного шлюза на другой) — в этот момент схема становилась неработоспособной. Вероятная причина связана с MLAG: в прошивке 7.6 он работал стабильно, а в ряде последующих версий MAC-адреса с интерфейса peer link «перепрыгивали» на интерфейсы, входящие в группы LACP. Лечилось это откатом на старую прошивку либо переходом на существенно более новую, которой на тот момент ещё не было.
Вывод:
MLAG и VRRP имеет смысл разнести по разным уровням.

Трёхуровневая модель

Рядом была построена аналогичная схема, а шлюзы с VRRP вынесены в отдельный слой — так, чтобы MLAG работал отдельно, а VRRP отдельно. Это привело к классической трёхуровневой модели: высокопроизводительное ядро, ниже уровень распределения, в самом низу уровень доступа. Под ядром расположены три зоны, каждая из которых представляет собой отдельную площадку либо отдельный отдел со своими сервисами.
Отдельно стоит отметить, почему ядро сделано на L3. Если всю сеть построить на L2, шанс «выстрелить себе в ноги» далеко не нулевой: при большом количестве линков, работающих в режиме active-active, VLAN легко закольцовывается сам на себя, и в сети образуется петля.
Уровень ядра
Классическая схема: протокол динамической маршрутизации OSPF, линковочные сети с префиксом /31 — быстро, просто и понятно. Настройка минимальна: создаётся instance, создаётся area, выбирается интерфейс, тип интерфейса — PTP. При такой настройке не используются ни DR, ни BDR, поэтому установление соседства и сходимость происходят практически мгновенно. В результате с каждого коммутатора устанавливается по два соседства в состоянии full.
Ядро используется только для маршрутизации между зонами.
Уровень распределения (L2)
На этом уровне заводятся все рабочие VLAN-ы, выполняется inter-VLAN routing, настраиваются безопасность, файрвол, политики доступа и ACL. Резервирование шлюза обеспечивает VRRP.
Связка с OSPF реализована через скрипты состояния VRRP: когда коммутатор находится в состоянии master, в секции on-master запускается instance OSPF, который устанавливает соседство; при переходе в backup секция on-backup выключает instance OSPF. На втором коммутаторе настройка аналогичная. Этим достигается и отказоустойчивость, и работоспособность.
Ничто не мешает запустить два instance OSPF в активном режиме, разделив шлюзы между двумя коммутаторами: часть шлюзов на одном, часть на другом. В этом случае трафик между ними балансируется, а OSPF корректно маршрутизирует трафик между подсетями — то есть достигается и балансировка, и отказоустойчивость.
Уровень доступа
На коммутаторах доступа настроено резервирование линков для виртуализации: два канала LACP находятся в отказоустойчивом состоянии. Это решает две задачи — виртуализация остаётся доступной при отказе одного из линков, а уровень L2 позволяет выполнять live-миграцию виртуальных машин без простоя. При использовании других систем виртуализации миграцию можно организовать и на L3, но такое решение требует отдельного исследования. Рядом расположен бэкапный сервер для создания снапшотов виртуальных машин.
Уровень хранения данных
Системы хранения вынесены в отдельный уровень. К нему подключаются хранилища — их может быть два и более, чтобы резервировать друг друга: при выходе из строя одного работа продолжается на втором. В зависимости от решения (аппаратного или программно-аппаратного) между ними можно настроить репликацию.
Выделение СХД в отдельный уровень повышает безопасность: доступ к хранилищам есть только со стороны виртуализации и больше ниоткуда. Никакие сторонние сервисы не подключатся к ним, не запишут свои данные и не удалят их.
Подключение выполняется по iSCSI и только на L2. Рекомендация вендоров СХД — не использовать для подключения хитрые способы: ни агрегацию каналов, ни даже VLAN. Кроме iSCSI и прямого подключения лучше не применять ничего.

Нюансы получившейся схемы

Модель не является трёхуровневой в полном каноническом смысле. Классическая модель предполагает, что на уровне distribution доступ расширяется добавлением коммутаторов. Здесь же выделен уровень ядра, а коммутаторы уровня агрегации находятся внутри каждой из зон — то есть каждая зона резервируется собственной парой коммутаторов. Пара, а не больше, потому что MLAG не позволяет добавить в группу больше двух устройств.
Если считать каждую площадку отдельным отделом (например, DevOps, разработка и так далее), отказоустойчивость проявляется в том, что неработоспособность одного отдела или падение сервисов внутри одной площадки не влияет на работу остальных.

Открытые вопросы и ограничения

  • Split-brain при падении peer link.
    Это болевая точка MLAG на сегодняшний день: штатных механизмов нет, приходится писать скрипты. Рабочий подход — Netwatch с проверкой доступности вышестоящего узла и отключением интерфейса при разрыве. Хотелось бы, чтобы это работало «из коробки».
  • Аппаратное ускорение.
    При настройке MLAG обязательно отключение L3 hardware offloading — это прямо указано в документации MikroTik. Аналогичная рекомендация действует и для VRRP. В описанной схеме MLAG находится на уровне L2, маршрутизации на нём нет, поэтому L2 продолжает работать аппаратно, и упереться в возможности железа не пришлось. Однако нагрузку на CPU MLAG создаёт заметную — за счёт служебного обмена по протоколу ICCP (Inter-Chassis Communication Protocol) через peer link. В лабораторных тестах на отдельных устройствах процессор уходил «в полку».
  • Зрелость технологии.
    Поддержка MLAG появилась в 2021 году, и четырёх лет мало, чтобы уверенно внедрять её в тяжёлый продакшн. Прошивка 7.6 работала стабильно, затем последовал ряд проблемных версий; долгое время эксплуатировалась 7.18.2, показавшая себя хорошо; недавно выполнено обновление на 7.24, которая сейчас тестируется. Альтернативный путь, по которому идёт часть инженеров, — отказ от MLAG в пользу аппаратного L3.
  • Выбор моделей
    Ориентироваться следует на поддержку MLAG: серии CRS3xx, CRS5xx и отдельные модели CCR. Далее вопрос упирается в производительность: например, CRS317 — это гигабитный порт для менеджмента и 16 портов SFP+ 10G, двухъядерный процессор ARM 800 МГц и 1 ГБ памяти. У CRS326 портов больше, но процессор одноядерный, 650 МГц.
  • STP.
    Он не отключается: ограничения есть только на MLAG-интерфейсах, в остальном проблем не возникает.
Финал
Корпоративная сеть целиком на оборудовании MikroTik — да, это возможно. Трёхуровневая модель — да, и она себя оправдывает: на уровне ядра настройки минимальны, оно занимается только маршрутизацией между зонами; на уровне распределения сосредоточены VLAN-ы, файрвол, политики доступа и ACL. Разделение на зоны — большой плюс: падение зоны или сервисов внутри неё не влияет на работоспособность остальных зон. Выделение системы хранения данных в отдельный уровень дополнительно повышает безопасность.

Основные компромиссы связаны с MLAG: технология молодая, чувствительна к версии прошивки, нагружает CPU и не имеет штатной защиты от split-brain. Если эти ограничения приемлемы, схема работает; если нет — стоит рассмотреть построение сети на аппаратном L3.
В Москве:
РФ (звонок бесплатный):
Наша почта:
GetNet
Остались вопросы?
Группа компаний VoxLink © 2011-2026