Mikrotik и VLAN
Сразу оговорюсь, что данная статья про Router OS, а не Switch OS.
На мой взгляд, работа с VLAN в Mikrotik освещена хуже всего. Да, конечно есть набор статей на эту тему, например вот:
- https://wiki.mikrotik.com/wiki/Manual:Interface/VLAN#InterVLAN_routing (за неуказание при публикации прямой ссылки на официальную доку прям словил хейта в личку)
- https://wiki.mikrotik.com/wiki/Manual:Basic_VLAN_switching
- https://lanmarket.ua/stats/bazovye-osnovy-nastroyki-vlan-v-routeros-na-oborudovanii-mikrotik-vlan-dlya-chaynikov-segmentatsiya/
- https://настройка-микротик.укр/nastrojka-vlan-v-mikrotik-trunk-i-access-porty/
- https://habr.com/en/post/322720/
И тому подобное. Но лично я когда их все читал. У меня не складывалось глубокого понимания, как именно это всё работает, только возможность повторить типовую конфигурацию.
То есть, эти статьи хороши, но на мой взгляд написаны для специалистов по микротикам, которым понадобилось еще и в 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-ах во всех строчках и это правильно):
Теперь всё пингуется и можно настроить остальные вещи типа фильтрации, НАТ и прочее, но это типовые вещи, о которых можно прочитать в других местах и потому выходят за рамки этой статьи.
P.S. Еще существует механизм работы с VLAN через меню Switch, но он поддерживается не на всём оборудовании, да и вообще сейчас речь была не про него.
P.P.S. Опять же, в комментариях меня убедили дописать, что конфигурации, о которых я писал, на одних железках будут работать быстро потому, что указанные функции будут выполняться аппаратно, а на других — медленно, потому что реализовано это будет программно с использованием ресурсов ЦПУ. И чтобы понять где аппаратно, а где — программно надо прочитать примерно следующий список ссылок:
- https://wiki.mikrotik.com/wiki/Manual:Interface/Bridge#Bridge_Hardware_Offloading
- https://wiki.mikrotik.com/wiki/Manual:CRS1xx/2xx_series_switches
- https://wiki.mikrotik.com/wiki/Manual:CRS3xx_series_switches
MikroTik.by
For every complex problem, there is a solution that is simple, neat, and wrong.
- Список форумовФорум по операционной системе MikroTik RouterOSОбщие вопросы
- Поиск
VLAN и VoIP
Базовая функциональность RouterOS
7 сообщений • Страница 1 из 1
sanya_rnd Сообщения: 5 Зарегистрирован: 15 дек 2016, 13:45
VLAN и VoIP
Сообщение sanya_rnd » 15 дек 2016, 14:01
Возник такой вопрос. Есть Mikrotik hAP ac. Есть настроенный VoIP-шлюз с PPPoE авторизацией.
Шлюз посадили за Mikrotik. Но выйти в сеть шлюз не может.
Провайдер насроил мне VLAN с опр. номером и сказал пробросить трафик с интерфейса туда. Но почему-то провайдер не может увидеть шлюз за микротиком вообще.
Chupaka Сообщения: 3915 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: VLAN и VoIP
Сообщение Chupaka » 15 дек 2016, 15:09
схема подключения где?
если VoIP-шлюз должен подключаться к провайдеру по PPPoE в заданном вилане — то вам надо создать данный вилан на интерфейсе, смотрящем на провайдера, создать бридж и добавить в этот бридж только что созданный вилан и ethernet-порт, к которому подключен VoIP-шлюз. PROFIT
sanya_rnd Сообщения: 5 Зарегистрирован: 15 дек 2016, 13:45
Re: VLAN и VoIP
Сообщение sanya_rnd » 15 дек 2016, 17:11
Видимо при восстановлении бэкапа vlan’ы сбились. Исправил интерфейсы.
Я добавил voip-bridge, В него включил vlan-voip-sfp-tagged, vlan-voip-bridge и ether1-voip.
После этого еще раз проверил настройки VLAN. Провайдер сказал, чтобы vlan на выходном интерфейсе был тегированный, а на локальном — нет.
Обновленный экспорт + схема(не совсем понимаю, какой она должна быть).
В данной конфигурации пока что ничего не работает.
Chupaka Сообщения: 3915 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: VLAN и VoIP
Сообщение Chupaka » 15 дек 2016, 17:23
Крутой рисунок. Только по нему я так и не понял, в какой порт воткнут VoIP-шлюз Предвосхищая ваш следующий вопрос: нет, я не телепат и за спиной у вас тоже не стою, через плечо не подглядываю
Нафиг вам vlan-voip-bridge? Где я про него писал? В бридже должно быть ДВА порта: тот, который смотрит на шлюз, и VLAN на интерфейсе провайдера
Use-Service-Tag=yes вам тоже явно не надо, выключайте, к тегированию это не относится, это QinQ
sanya_rnd Сообщения: 5 Зарегистрирован: 15 дек 2016, 13:45
Re: VLAN и VoIP
Сообщение sanya_rnd » 16 дек 2016, 08:56
Только по нему я так и не понял, в какой порт воткнут VoIP-шлюз
ether1-voip (он же ether1, самый первый, циферка 1 на задней панели ).
Нафиг вам vlan-voip-bridge? Где я про него писал? В бридже должно быть ДВА порта: тот, который смотрит на шлюз, и VLAN на интерфейсе провайдера
Провайдер так объяснил.
Use-Service-Tag=yes вам тоже явно не надо, выключайте, к тегированию это не относится, это QinQ
Без него вешается порт коммутатора провайдера. 2 раза проверил, 2 раза пришлось звонить и просить перегрузки порта. (Вот только мне его подняли).
Chupaka Сообщения: 3915 Зарегистрирован: 29 фев 2016, 15:26 Откуда: Минск Контактная информация:
Re: VLAN и VoIP
Сообщение Chupaka » 16 дек 2016, 16:21
Что значит «вешается»?
При Use-Service-Tag=no VLAN-тег обозначается стандартным для 802.1Q типом 0x8100. Если поставить Use-Service-Tag=yes, то тип меняется на 0x88a8, и оборудование провайдера явно не увидит эти пакеты, будет их просто дропать.
Почему что-то там вешается, когда оборудование провайдера видит пакеты в выделенном вилане — вопрос, скорее, к провайдеру.
Какой объём трафика проходит по вилану перед «зависанием»?
sanya_rnd Сообщения: 5 Зарегистрирован: 15 дек 2016, 13:45
Re: VLAN и VoIP
Сообщение sanya_rnd » 16 дек 2016, 18:01
Чудеса. Я в общем приготовился звонить в ТП и поднимать порт, как вдруг все заработало.
Схема bridge включающий (vlan, ether1) и vlan смотрящий на физ. канал заработала.
Я не знаю почему мне сказали неверные настройки. Скорее всего провайдер не часто работает с таким оборудованием.
И спасибо большое за помощь
Use service tag mikrotik что это
Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
vlan от провайдера
Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку «Действия до настройки роутера».
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Manual:Interface/VLAN
Virtual Local Area Network (VLAN) is a Layer 2 method that allows multiple Virtual LANs on a single physical interface (ethernet, wireless, etc.), giving the ability to segregate LANs efficiently.
You can use MikroTik RouterOS (as well as Cisco IOS, Linux and other router systems) to mark these packets as well as to accept and route marked ones.
As VLAN works on OSI Layer 2, it can be used just as any other network interface without any restrictions. VLAN successfully passes through regular Ethernet bridges.
You can also transport VLANs over wireless links and put multiple VLAN interfaces on a single wireless interface. Note that as VLAN is not a full tunnel protocol (i.e., it does not have additional fields to transport MAC addresses of sender and recipient), the same limitation applies to bridging over VLAN as to bridging plain wireless interfaces. In other words, while wireless clients may participate in VLANs put on wireless interfaces, it is not possible to have VLAN put on a wireless interface in station mode bridged with any other interface.
802.1Q
The most commonly used protocol for Virtual LANs (VLANs) is IEEE 802.1Q. It is a standardized encapsulation protocol that defines how to insert a four-byte VLAN identifier into Ethernet header. (see Figure 12.1.)
Each VLAN is treated as a separate subnet. It means that by default, a host in a specific VLAN cannot communicate with a host that is a member of another VLAN, although they are connected in the same switch. So if you want inter-VLAN communication you need a router. RouterOS supports up to 4095 VLAN interfaces, each with a unique VLAN ID, per interface. VLAN priorities may also be used and manipulated.
When the VLAN extends over more than one switch, the inter-switch link has to become a ‘trunk’, where packets are tagged to indicate which VLAN they belong to. A trunk carries the traffic of multiple VLANs; it is like a point-to-point link that carries tagged packets between switches or between a switch and router.
Note: The IEEE 802.1Q standard has reserved VLAN IDs with special use cases, the following VLAN IDs should not be used in generic VLAN setups: 0, 1, 4095
Q-in-Q
Original 802.1Q allows only one vlan header, Q-in-Q on the other hand allows two or more vlan headers. In RouterOS Q-in-Q can be configured by adding one vlan interface over another. Example:
/interface vlan add name=vlan1 vlan-id=11 interface=ether1 add name=vlan2 vlan-id=12 interface=vlan1
If any packet is sent over ‘vlan2′ interface, two vlan tags will be added to ethernet header — ’11’ and ’12’.
Properties
Property | Description |
---|---|
arp (disabled | enabled | proxy-arp | reply-only; Default: enabled) | Address Resolution Protocol mode |
interface (name; Default: ) | Name of physical interface on top of which VLAN will work |
l2mtu (integer; Default: ) | Layer2 MTU. For VLANS this value is not configurable. Read more>> |
mtu (integer; Default: 1500) | Layer3 Maximum transmission unit |
name (string; Default: ) | Interface name |
use-service-tag (yes | no; Default: ) | 802.1ad compatible Service Tag |
vlan-id (integer: 4095; Default: 1) | Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN. |
Note: MTU should be set to 1500 bytes same as on Ethernet interfaces. But this may not work with some Ethernet cards that do not support receiving/transmitting of full size Ethernet packets with VLAN header added (1500 bytes data + 4 bytes VLAN header + 14 bytes Ethernet header). In this situation MTU 1496 can be used, but note that this will cause packet fragmentation if larger packets have to be sent over interface. At the same time remember that MTU 1496 may cause problems if path MTU discovery is not working properly between source and destination.
Setup examples
Layer2 VLAN examples
There are multiple possible configurations that you can use, but each configuration type is designed for a special set of devices since some configuration methods will give you the benefits of the built-in switch chip and gain larger throughput. Check the Basic VLAN switching guide to see which configuration to use for each type of device to gain maximum possible throughput and compatibility, the guide shows how to setup a very basic VLAN trunk/access port configuration.
There are some other ways to setup VLAN tagging or VLAN switching, but the recommended way is to use Bridge VLAN Filtering. Make sure you have not use any known Layer2 misconfigurations.
Layer3 VLAN examples
Simple VLAN routing
Lets assume that we have several MikroTik routers connected to a hub. Remember that a hub is an OSI physical layer device (if there is a hub between routers, then from L3 point of view it is the same as an Ethernet cable connection between them). For simplification assume that all routers are connected to the hub using ether1 interface and has assigned IP addresses as illustrated in figure below. Then on each of them the VLAN interface is created. File:Image12004.gif
Configuration for R2 and R4 is shown below:
[admin@MikroTik] /interface vlan> add name=VLAN2 vlan-id=2 interface=ether1 disabled=no [admin@MikroTik] /interface vlan> print Flags: X - disabled, R - running, S - slave # NAME MTU ARP VLAN-ID INTERFACE 0 R VLAN2 1500 enabled 2 ether1
[admin@MikroTik] /interface vlan> add name=VLAN2 vlan-id=2 interface=ether1 disabled=no [admin@MikroTik] /interface vlan> print Flags: X - disabled, R - running, S - slave # NAME MTU ARP VLAN-ID INTERFACE 0 R VLAN2 1500 enabled 2 ether1
The next step is to assign IP addresses to the VLAN interfaces.
[admin@MikroTik] ip address> add address=10.10.10.3/24 interface=VLAN2 [admin@MikroTik] ip address> print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 10.0.1.4/24 10.0.1.0 10.0.1.255 ether1 1 10.20.0.1/24 10.20.0.0 10.20.0.255 pc1 2 10.10.10.3/24 10.10.10.0 10.10.10.255 vlan2 [admin@MikroTik] ip address>
[admin@MikroTik] ip address> add address=10.10.10.5/24 interface=VLAN2 [admin@MikroTik] ip address> print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 10.0.1.5/24 10.0.1.0 10.0.1.255 ether1 1 10.30.0.1/24 10.30.0.0 10.30.0.255 pc2 2 10.10.10.5/24 10.10.10.0 10.10.10.255 vlan2 [admin@MikroTik] ip address>
At this point it should be possible to ping router R4 from router R2 and vice versa:
"Ping from R2 to R4:" [admin@MikroTik] ip address> /ping 10.10.10.5 10.10.10.5 64 byte ping: ttl=255 time=4 ms 10.10.10.5 64 byte ping: ttl=255 time=1 ms 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 1/2.5/4 ms "From R4 to R2:" [admin@MikroTik] ip address> /ping 10.10.10.3 10.10.10.3 64 byte ping: ttl=255 time=6 ms 10.10.10.3 64 byte ping: ttl=255 time=1 ms 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 1/3.5/6 ms
To make sure if VLAN setup is working properly, try to ping R1 from R2. If pings are timing out then VLANs are successfully isolated.
"From R2 to R1:" [admin@MikroTik] ip address> /ping 10.10.10.2 10.10.10.2 ping timeout 10.10.10.2 ping timeout 3 packets transmitted, 0 packets received, 100% packet loss
InterVLAN routing
If separate VLANs are implemented on a switch, then a router is required to provide communication between VLANs. Switch works at OSI layer 2 so it uses only Ethernet header to forward and does not check IP header. For this reason we must use the router that is working as a gateway for each VLAN. Without a router, a host is unable to communicate outside of its own VLAN. Routing process between VLANs described above is called inter-VLAN communication.
To illustrate inter-VLAN communication, we will create a trunk that will carry traffic from three VLANs (VLAN2 and VLAN3, VLAN4) across a single link between a Mikrotik router and a manageable switch that supports VLAN trunking. File:Image12005.gif
Each VLAN has its own separate subnet (broadcast domain) as we see in figure above:
- VLAN 2 – 10.10.20.0/24;
- VLAN 3 – 10.10.30.0/24;
- VLAN 4 – 10.10.40.0./24.
VLAN configuration on most switches is straightforward, basically we need to define which ports are members of the VLANs and define a ‘trunk’ port that can carry tagged frames between the switch and the router.
«Configuration example on MikroTik router:»
«Create VLAN interfaces:»
/interface vlan add name=VLAN2 vlan-id=2 interface=ether1 disabled=no add name=VLAN3 vlan-id=3 interface=ether1 disabled=no add name=VLAN4 vlan-id=4 interface=ether1 disabled=no
«Add IP addresses to VLANs:»
/ip address add address=10.10.20.1/24 interface=VLAN2 add address=10.10.30.1/24 interface=VLAN3 add address=10.10.40.1/24 interface=VLAN4
RouterOS /32 and IP unnumbered addresses
In RouterOS, to create a point-to-point tunnel with addresses you have to use address with a network mask of ‘/32’ that effectively brings you the same features as some vendors unnumbered IP address.
There are 2 routers RouterA and RouterB where each is part of networks 10.22.0.0/24 and 10.23.0.0/24 respectively and to connect these routers using VLANs as a carrier with the following configuration:
/ip address add address=10.22.0.1/24 interface=ether1 /interface vlan add interface=ether2 vlan-id=1 name=vlan1 /ip address add address=10.22.0.1/32 interface=vlan1 network=10.23.0.1 /ip route add gateway=10.23.0.1 dst-address=10.23.0.0/24
/ip address add address=10.23.0.1/24 interface=ether1 /interface vlan add interface=ether2 vlan-id=1 name=vlan1 /ip address add address=10.23.0.1/32 interface=vlan1 network=10.22.0.1 /ip route add gateway=10.22.0.1 dst-address=10.22.0.0/24