Mikrotik и VLAN
Сразу оговорюсь, что данная статья про Router OS, а не Switch OS.
На мой взгляд, работа с VLAN в Mikrotik освещена хуже всего. Да, конечно есть набор статей на эту тему, например вот:
https://wiki.mikrotik.com/wiki/Manual:Interface/VLAN#InterVLAN_routing (за неуказание при публикации прямой ссылки на официальную доку прям словил хейта в личку)
И тому подобное. Но лично я когда их все читал. У меня не складывалось глубокого понимания, как именно это всё работает, только возможность повторить типовую конфигурацию.
То есть, эти статьи хороши, но на мой взгляд написаны для специалистов по микротикам, которым понадобилось еще и в VLAN. А мне хотелось бы видеть статью, которая для специалистов по сетям, которым надо привычные вещи реализовать на железе Mikrotik. И соответственно, осветить эти вопросы на мой взгляд надо бы с несколько другой стороны. И поскольку я такой статьи не нашел, решил сесть и написать её сам :). Так что и говорить я буду привычные вещи, но другими словами. Итак, приступим.
Самое первое, что надо помнить — сетевые операции происходят на пакетах без тэга. А тэги появляются только тогда, когда появился bridge (либо порт с тэгом, о чём ниже). То есть, если понадобилось например выдать адрес по DHCP, то для этого нужно чтобы DHCP-сервер микротика смотрел на собственный bridge со стороны без тэга. Аналогично со всеми остальными «высокоуровневыми» операциями. Никаких тэгов внутри «умной» чисти Микротика нет! Поэтому если нужны тегированные VLAN’ы, надо «довешивать» тэги позже.
Второе, что надо понимать на мой взгляд — тег снимается (для исходящего и добавляется для входящего трафика) в тот момент, когда пакет доходит до порта (не важно, физического в мосту, виртуального или автоматически созданного чем-то вроде CapsMan’а), в свойствах которого этот самый тег указан. То есть, вот примеры точек, с одной стороны («внутри» bridge) от которых тэг есть, а с другой — уже нет (Рисунки 1, 2 и 3)
Третье, что надо понимать. Если в конфигурации используется мост, он умеет фильтровать теги. Если фильтрация тегов выключена вообще, то не на всех устройствах механизм работы с VLAN вообще будет работать, а если фильтрация запрещает лишние тэги, то искать проблемы можно долго. Лучший вариант на время диагностики поставить галку «VLAN filtering» и «Admit all».
И внутри моста какой-то один VLAN считается по-умолчанию и идёт без тега, а остальные — с тегом. Добиться того, чтобы все VLAN были с тегом и не было ни одного дефолтного, но при этом всё работало, лично у меня не получилось. Поэтому лично я не тегирую сервисный VLAN 1, куда доступ открыт только авторизованным лицам и устройствам, во всей статье умолчания такие.
То есть, вписываем тэг «1» в свойства моста, после чего Vlan 1 считается в этом мосту нетегированным и порты, которые в этот мост включены и в свойствах которых прописан тэг 1, не будут пытаться его снимать.
Четвертое. Чтобы мост пропускал тегированный трафик мало поставить галку «Admit all», надо еще и добавить сам мост в конфигурацию VLAN в поле «tagged».
Пятое — автоконфигурации работают несколько мимо этих механизмов. И поэтому если у вас в бридже есть порты, настроенные вручную и они наглухо не работают как надо, но при этом другие порты работают хорошо, но те настроены автоматически (туннель, капсман, прочее), то скорее всего конфигурация ошибочна и если ошибку исправить, то вручную настроенные интерфейсы заработают, а автоматически настроенные при этом не сломаются.
Шестое, в комментариях словил хейта за то, что не указал второй способ работы с этим счастьем, поэтому поправлюсь, еще можно использовать VLAN и без моста, для чего создаётся интерфейс VLAN, подключаемый напрямую к физическому порту. Тогда на физический порт пакет приходит с тэгом, потом на уровне виртуального интерфейса происходит его снятие и дальше он идёт нетегированным. Создаётся такой виртуальный порт ровно тем же путём: «Interfaces — Interface — ‘+’ — VLAN», там надо указать «VLAN id» и физический порт, на который его посадить.
И надеюсь уж последнее, раз уж мы вспомнили эту конфигурацию, то седьмое, казалось бы, никто не мешает из таких портов как в п.6, с которых уже сняты теги на уровне виртуального интерфейса, опять же собрать мост. Таким способом например можно менять тэг между портами. Но есть два «но», во-первых, комбинировать способ из первых пяти пунктов со способом из последних двух не рекомендую категорически, потому что там сам черт ногу сломит. В том смысле, что поиск возможных проблем станет совсем гиблым делом. А во-вторых, как мне подсказали в комментариях, по официальной же документации с этим есть определенные сложности.
Пример работы со всем вышеперечисленным
Итак, есть сеть, в которой микротиковая точка доступа используется просто как точка доступа. А точнее, их две и между ними реализовано бесшовное переключение средствами CapsMan’а. Точки раздают по 2 сети, одна из которых — техническая, вторая — гостевая, внутри сети разделение происходит на уровне VLAN. Тэг 1 для технической, 2 — для гостевой. Пока всё достаточно типовое и подробного описано много где.
Но у нас шлюз сделан не на микротике, является отдельно стоящей машиной и потому с точки зрения логики сети, микротики к второму влану не подключены, хотя его и раздают. Реализовано это очень просто: на микротике создан единственный бридж с тэгом 1 в свойствах фильтрации. При его создании на вкладке VLAN автоматически появилась первая запись, она описывает конфигурацию по-умолчанию и потому в левом столбике обозначена буквой «D». Далее, мы вручную создали второй VLAN с тэгом 2 и вручную добавили туда порты (Рис. 3).
А в CAPsMAN на вкладке Datapaths создали путь для тэгированного трафика (Рис. 1)
Порт ether1 воткнут в тот же свитч, что и управляющее устройство и схема работает на отлично: трафик от клиента приходит на вайфай, где на него навешивается тэг из-за настройки Datapath, благодаря которой капсман создаёт порт Wlan сразу с тэгом в свойствах, дальше это счастье идёт через мост и в конце тэг не снимается когда трафик проходит через порт eth1, потому что в свойствах порта стоит тэг 1, а потому тэг 2 он просто игнорирует, пропуская пакеты насквозь, дальше тэгированные пакеты уходят в сеть и проходя через любое количество оборудования прямо в таком виде, доходят до сервера, который в курсе, что с ними делать, а потому и ответы шлёт также, с тэгом, с которым они и проходят обратный путь, теряя его только перед уходом «в среду» WiFi.
Но через какое-то время появляется задача изменить настройку и сделать, чтобы гостевой трафик шел через саму точку доступа, а точнее, через порт eth2 и далее к провайдеру, а основной остался на том же маршруте, что и был. Идём и создаём «Interfaces — Interface — ‘+’ — Vlan», указываем там бридж и нужный тэг (опять же как на рисунке 1), прописываем ему интерфейс, для проверки пингуем любой другой адрес в гостевой сети и. получаем облом.
А всё потому, что несмотря на то, что тегированный трафик, заданный капсманом через бридж идёт. Но «вы не понимаете, это другое», а вообще бридж тегированный трафик режет. И чтобы это исправить, надо применить четвертый постулат из списка выше и исправить конфигурацию вот так (да-да, бридж указан в собственных VLAN-ах во всех строчках и это правильно):
Теперь всё пингуется и можно настроить остальные вещи типа фильтрации, НАТ и прочее, но это типовые вещи, о которых можно прочитать в других местах и потому выходят за рамки этой статьи.
Источник
Настройка VLAN на операционной системе routerOS
Для наглядного примера я буду использовать маршрутизатор Mikrotik CCR1036-8G-2S+ и коммутатор CRS125-24G-1S.
Этот вариант на данный момент работает в нескольких гостиницах Москвы и Московской области.
Поставим условную задачу, чтобы на каждом коммутационном узле присутствовала сеть класса А (10.1.0.0/24) для работников фирмы и сеть класса С (192.168.1.0/24) для WiFi для посетителей.
Допустим, у нас имеется коммутационный узел A c маршрутизатором Mikrotik CCR1036-8G-2S+, коммутационный узел B с коммутатором CRS125-24G-1S. Коммутационные узлы А и В будут соединены каналом связи (Trunk) в нашем случае по витой паре (каналов связи (trunk) может быть несколько в зависимости от количества коммутационных узлов; также если имеется ВОЛС и оптический модуль SFP mikrotik, то можно trunk назначить и на SFP). Приведу ниже схему с использованием trunk по витой паре.
Приступим к настройке коммутационного узла A с маршрутизатором Mikrotik CCR1036-8G-2S+.
Назовем наш маршрутизатор «router-A».
Обозначим физические порты так, чтобы не возникало путаницы, каким сетям они принадлежат. Обозначим маркировкой lan физические порты, которые будут принадлежать сети (класса А) 10.1.0.0/24, маркировкой wifi физические порты, которые будут принадлежать сети (класса С) 192.168.1.0/24 и маркировкой trunk физические порты, которые будут использоваться под канал связи типа trunk.
Создадим виртуальные интерфейсы во вкладке bridge, для объединения LAN портов.
Создаем Vlan интерфейсы, с помощью которых будут транспортироваться сети 10.1.0.0/24 и 192.168.1.0/24 до коммутационного узла B по каналу связи типа trunk. VLAN id для сети 10.1.0.0/24 будет 11, а для сети 192.168.1.0/24 будет 22. С помощью этих id будет передаваться информация о принадлежности трафика к vlan1-lan и vlan2-wifi.
Назначаем LAN порты маршрутизатора виртуальным интерфейсам (bridge) согласно вышеуказанной схеме
(Добавлю этот LAN порт для возможно будущего коммутационного узла С, на всякий пожарный)
Назначаем сети виртуальным интерфейсам
Провайдер предоставляет мне интернет по протоколу EOiP. Поэтому вы на эту команду не обращайте внимания, а настраивайте доступ в интернет по wan-порту согласно настройкам, предоставленным Вашим провайдером
Настроим Пул раздаваемых адресов сетям, настроим dhcp
Включим NAT, чтобы устройства, находящиеся в сетях 192.168.1.0/24 и 10.1.0.0/24, имели выход в интернет.
Изолируем подсети, чтобы устройства из сети 192.168.1.0/24 не видели и не использовали устройства, находящиеся в сети 10.1.0.0/24. (Я предпочитаю таким способом осуществить изоляцию; есть еще способ изолировать подсети с помощью Route Rules, но я буду использовать правило Firewall)
Данное правило можно включать и отключать в зависимости от вашей потребности в доступе к устройствам из сети 10.1.0.0/24 в 192.168.1.0/24 или наоборот.
Теперь настроим коммутационный узел B с коммутатором Mikrotik CRS125-24G-1S
Назовем наш коммутатор «switch-B»:
Обозначим физические LAN порты. Объединим порты с 1 по 8 включительно в общий аппаратный коммутатор с мастер портом ether-1 и обозначим его master, остальные со 2 по 8 включительно обозначим slave. Аналогично сделаем и с портами с 9 по 16 включительно с мастер портом ether-9.
Создаем Vlan интерфейсы на физическом 24 lan-порту, с помощью которых будут транспортироваться сети 10.1.0.0/24 и 192.168.1.0/24 от коммутационного узла А по каналу связи типа trunk. Не забываем указать тот vlan id, который мы указали в соответствии с начальной схемой.
Создадим виртуальные интерфейсы во вкладке bridge для объединения LAN портов.
Источник
VLAN bridge на Mikrotik — TRUNK и ACCESS порты
Стоит заметить, что существует не один способ организации VLAN трафика на Mikrotik. Но только один из этих способов конфигурации VLAN является наиболее корректным, позволяющим исключить проблемы с производительностью и подключением.
Начиная с версии RouterOS 6.41 стало возможно использовать мост для фильтрации VLAN и именно эта конфигурация рекомендована официальным Wiki Mikrotik.
Освоить MikroTik Вы можете с помощью онлайн-куса « Настройка оборудования MikroTik ». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Рассмотрим базовую конфигурацию VLAN позволяющую разделить локальную сеть на два виртуальных сегмента для разных отделов офиса.
Ether1 — это trunk-порт, VLAN20 и VLAN30
Ether2 — access-порт VLAN20
Ether3 — access-порт VLAN30
Базовая схема коммутации VLAN
Для начала нам необходимо создать мост bidge1 с фильтрацией VLAN. Для включение фильтрации VLAN перейдите во вкладку VLAN и отметьте пункт «VLAN Filtering».
Мост с фильтрацией VLAN
В статье я буду приводить примеры настроек как для графического интерфейса так и для консоли.
Добавляем порты в мост bidge1 и назначаем им PVID.
PVID (Port VLAN ID) — используется для ACCESS-портов и маркирует весь входящий трафик соответствующим VLAN ID. Поэтому для порта Ether1 PVID не назначаем т.к. он является tunk-портом и передает tagged-трафик
Добавление access порта с PVID в bridge
Добавляем соответствующие записи в VLAN таблицу моста.
- Для VLAN20 в качестве порта передающего тегированный трафик выбираем Ether1 (trunk), порт для нетегированного трафика Ether2 (access).
- VLAN30 для тегированного трафика так же Ether1 (trunk), нетегированный — Ether3 (access).
VLAN таблица моста
В случае работающей VLAN фильтрации на bridge таблица VLAN выглядит примерно так:
Освоить MikroTik Вы можете с помощью онлайн-куса « Настройка оборудования MikroTik ». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
9 thoughts on “ VLAN bridge на Mikrotik — TRUNK и ACCESS порты ”
Всё гениально и просто.
Спасибо кеп!
Подскажите пожалуйста, в некоторых мануалах видел, что на этапе добавления записей в таблицу VLAN добавляют помимо портов еще и бридж, в каких случаях это нужно делать, а в каких нет?
Если вы повесите vlan на бридж, то он будет доступен на всех интерфейсах (портах) входящих в этот бридж, вот и все.
вопрос был не про vlan в бридж, а бридж во vlan, например в поле tagged, а делаю это для того, чтобы vlan имел доступ к процессору роутера, так как бридж по сути является портом cpu, и если не добавить бридж в вилан, то из этого вила не будет доступно, например, управление роутером.
Не понимаю о чем вы, что за доступ к процессору и порты cpu? Бридж не может быть никаким портом cpu! Если вы работаете с vlan, то вам нужно для начала понять что это такое, разобраться в понятиях trunk и access порта. И тогда больше не будете терять доступ к управлению микротиком.
Если вы хотите в порт микротика отправлять vlan и при этом чтобы подключенный на этот порт клиент работал без vlan (не умеет работать с vlan), то вам нужен access порт.
Если микротик является dhcp-сервером, то если я в tagged не добавляю бридж — vlan не работает либо работает не стабильно. На промежуточных микротиках добавляю только порты
Для начала нам необходимо создать мост bidge1 с фильтрацией VLAN. Для включение фильтрации VLAN перейдите во вкладку VLAN и отметьте пункт «VLAN Filtering».
После такого начала Вы потеряете доступ к устройству, так как еще не сконфигурировали VLANы .
Не надо создавать фильтрацию vlan на существующем бридже, через который осуществляется управление микротиком. Здесь ключевое слово СОЗДАТЬ мост.
У вас по записям и по картинкам как раз и управление и фильтрация на одном бридже bidge1
Источник