Тема VLAN в MikroTik обсуждается давно и подробно, однако один из инструментов остаётся почти незамеченным — MVRP, появившийся в RouterOS 7.15. Технология позволяет отказаться от ручного перечисления VLAN в транках и, в связке с интерфейс-листами, CAPsMAN и 802.1X, фактически автоматизировать настройку коммутаторов доступа. Ниже разобраны принцип работы MVRP, особенности его настройки в RouterOS, сценарии совместного использования с другими технологиями и порядок внедрения в уже работающую сеть.
Интерфейс-листы вместо отдельных портов
Привычный подход — набивать таблицу VLAN отдельными интерфейсами. В седьмой версии RouterOS появилась возможность добавлять не отдельные порты, а целый интерфейс-лист — и в таблицу VLAN, и в порты бриджа.
Схема выглядит так: создаётся интерфейс-лист (например, отдельный для точек доступа, отдельный для локальной сети), в него добавляются нужные интерфейсы, а в бридж добавляются уже сами интерфейс-листы. Таким образом задача сводится не к настройке VLAN на конкретном порту, а к добавлению порта в определённый интерфейс-лист: все настройки, привязанные к этому листу — PVID, теггированные и нетеггированные VLAN — распространятся на порт автоматически.
На коммутаторах доступа порты, как правило, однотипные, и настроить их один раз для интерфейс-листа гораздо проще, чем повторять конфигурацию для каждого порта.
Что такое MVRP и как он работает
MVRP — это стандарт IEEE 802.1ak, а не проприетарная разработка MikroTik. Соответственно, его стоит ожидать и на другом оборудовании: для Linux, например, существует пакет с поддержкой этого протокола. Это позволяет использовать MVRP в гибридных сетях, а не только там, где всё построено на MikroTik, — вплоть до взаимодействия с серверами и коммутаторами других вендоров. Спектр применения достаточно широкий.
Высказывались опасения, что сеть развалится, если пропадёт связь с анонсером. Тестирование — и лабораторное, и в реальных кейсах — показывает, что это не так. Взаимодействие MVRP происходит только между двумя соседними устройствами: если на соседних устройствах какие-то порты принадлежат некоторому VLAN, он автоматически анонсируется во все порты, где этот анонс разрешён.
Если VLAN назначается на аксессный порт, тот же VLAN ID уйдёт в транковые порты всех устройств, связанных с коммутатором напрямую. Те, в свою очередь, анонсируют его дальше своим непосредственным соседям — так выстраивается полная цепочка связности от коммутатора доступа до маршрутизатора.
Служебного трафика мало: он сводится к одной PDU, которая содержит информацию обо всех VLAN у соседа, — а не к отдельной PDU на каждый VLAN, как это было в GVRP.
Отдельное удобство — уменьшение широковещательных доменов на коммутаторах. Даже если на коммутатор приходит определённый VLAN, но он не используется ни на аксессных портах, ни в других транках, насквозь через устройство он проходить не будет. Широковещательные домены сокращаются, а вместе с ними — те опасности, ради которых сеть и делится на VLAN.
Настройка MVRP
Глобально MVRP настраивается в двух местах.
Если VLAN подвешены на широковещательный интерфейс — Ethernet, SFP и так далее, — MVRP включается именно на этих VLAN-интерфейсах. Принимать кадры такой интерфейс не будет, только отправлять: регистрировать VLAN у себя он не станет. На бридже MVRP включается соответствующей галкой.
На каждом порту доступны две опции:
MVRP Applicant State
определяет, будет ли порт распространять информацию о VLAN. На внешних интерфейсах, которые уходят в сторону провайдеров и недоверенных сетей, эту опцию лучше отключить.
MVRP Registrar State
отвечает за приём анонсов, то есть за регистрацию VLAN на устройстве.
Схема прохождения выглядит так: порт с буквой D декларирует, порт с буквой R регистрирует. Связь может быть односторонней — коммутатор способен распространять информацию об определённых VLAN, но не регистрировать её у себя. Это полезно, когда через определённые интерфейсы нужно только раздавать заданный набор VLAN.
MVRP и CAPsMAN
С драйвером wifi-qcom-ac MVRP не работает — там все VLAN приходится регистрировать вручную. Но связка работает как со старым, так и с новым CAPsMAN.
Схема следующая. Для точек доступа заводится отдельный интерфейс-лист. На коммутаторе в сторону точки доступа никакие VLAN сразу не подаются — только менеджмент-VLAN, через который точка получит конфигурацию от менеджера. Как только точка доступа получает конфигурацию, она начинает назначать VLAN на Wi-Fi-интерфейсы. Эти VLAN попадают в локальный бридж и оттуда распространяются на ближайший коммутатор, а тот анонсирует их дальше по всей цепочке — вплоть до маршрутизатора.
Таким образом, какие бы SSID с VLAN ни анонсировались на точке доступа, все они автоматически зарегистрируют VLAN на всей цепочке коммутаторов. По сути это и есть автоматизированная настройка: на всех коммутаторах в цепочке от точки доступа до маршрутизатора нет необходимости прописывать VLAN в транках вручную — они назначатся сами.
MVRP и 802.1X
Второй способ автоматизированного назначения VLAN, он же способ обеспечения безопасности в сети, — протокол 802.1X. Порты в 802.1X точно так же можно добавить интерфейс-листом.
Здесь стоит обратить внимание на нюанс, выявленный на лабораторном стенде: порты в бридж необходимо добавлять только с PVID, равным 1. Если назначить значение, отличное от единицы, 802.1X не перебьёт VLAN ID на бридже. Получается интересная ситуация: кадры отправляются с одним VLAN ID, принимаются с другим, связности нет, DHCP не отрабатывает, сеть не собирается. То есть либо сразу назначается соответствующий VLAN ID, либо назначается единица, которая затем будет перезаписана атрибутом с RADIUS. Взаимодействие с MVRP выглядит так. Есть маршрутизатор и коммутатор доступа, в который подключается клиент. Коммутатор обращается к RADIUS-серверу и по учётной записи или сертификату клиента получает атрибут VLAN ID, который назначает на порт как untagged. Коммутатор с настроенным MVRP видит, что появился новый VLAN ID, и начинает распространять его через все свои транковые порты — связность обеспечивается автоматически.
У 802.1X есть одно неприятное ограничение: назначить можно только один VLAN. Но если нужен гибридный порт, остальные VLAN можно проложить заранее на необходимые интерфейсы — как раз с помощью интерфейс-листов. В 802.1X назначается интерфейс-лист с портами, которые будут принимать подключения клиентов, и на эти же интерфейсы назначаются теггированные VLAN на коммутаторе. Коммутатор не форвардит трафик, пока клиент не пройдёт аутентификацию. Как только она происходит, назначается untagged-порт согласно ответу RADIUS и включаются все теггированные порты, которые тоже могут быть получены по MVRP.
Общая схема работы
Если собрать все технологии вместе, картина получается следующей. Точка доступа подключается к коммутатору, к порту, защищённому 802.1X, и проходит аутентификацию. Коммутатор получает с RADIUS атрибут VLAN ID и назначает его на порт — это менеджмент-VLAN. Через него точка доступа получает от CAPsMAN конфигурацию для SSID и прописывает VLAN на своём бридже, откуда они через MVRP распространяются на всю цепочку коммутаторов до маршрутизатора. В корпоративных сетях этот метод уже активно применяется и показывает себя неплохо.
Особенности настройки интерфейсов
Атрибуты MVRP Applicant и Registrar можно вешать как на порты по отдельности, так и на весь интерфейс-лист. Особенность добавления через интерфейс-лист в том, что он перебивает настройки персональных портов, если они не добавлены предварительно. Если интерфейс уже добавлен в составе листа, добавить его же отдельно не получится: бридж будет ругаться, что этот интерфейс уже является участником, и не даст его добавить. Решение одно — исключить интерфейс из интерфейс-листа и добавить как отдельный интерфейс. Других вариантов нет.
Внедрение в существующую инфраструктуру
Отдельный вопрос — как внедрить всё это в уже работающую сеть, не поломав её.
Если VLAN уже прописаны в таблице VLAN, включать MVRP не страшно: галка добавляет только те VLAN, которых ещё нет на устройстве. Порядок такой: включается использование MVRP, после чего VLAN постепенно удаляются из статической таблицы — они начнут автоматически появляться там как динамические записи с пометкой «added by MVRP».
Смешивать статику и динамику также не нужно бояться. Статически прописанные VLAN такими и останутся, а те, которых не хватает в статике, добавятся через MVRP согласно правилам настройки транковых портов. Сначала MVRP включается везде, затем на устройствах постепенно вычищаются VLAN из статической таблицы. Внедрение в существующую инфраструктуру проходит очень плавно.
Финал
MVRP в RouterOS — стандартная, а не проприетарная технология, требующая минимума служебного трафика и не создающая рисков «развала» сети, поскольку работает только между непосредственными соседями. В сочетании с интерфейс-листами, CAPsMAN и 802.1X он превращает рутинную работу по прописыванию VLAN в транках в автоматический процесс: VLAN появляются там, где они реально нужны, и исчезают оттуда, где не используются, попутно сокращая широковещательные домены. При этом внедрение не требует перестройки сети и выполняется поэтапно на действующей инфраструктуре — что делает MVRP хорошим кандидатом на включение в стандартный набор инструментов корпоративной сети.