8

Mikrotik. VLAN. Q-n-Q. Все дела.

Все тот же товарищ, что интересовался резервированием на микротиках, не пользы ради, но любопытства для - интересовался, увидев, зачем я "цепляю" интерфейс vlan за другой интерфейс vlan?! По-моему, хорошая идея для написания краткой статьи на эту тему. Материалы, конечно, есть в Сети и на вики от Микротик, но видимо, этого недостаточно.


Я просто приведу несколько возможных конфигураций, поясню их и расскажу для чего можно применять. Думаю этого будет достаточно, для понимания вопроса, который я озвучил выше.


Если сделать так:

/interface bridge add name=bridge1 protocol-mode=none

/interface bridge port add bridge=bridge1 interface=ether2

/interface bridge port add bridge=bridge1 interface=ether3

То весь трафик будет прозрачно пропускаться между ether2 и ether3, "как просто провод". Область применения этого думаю и так понятно.


А если так:

/interface bridge add name=bridge1 protocol-mode=none

/interface bridge port add bridge=bridge1 interface=ether2

/interface bridge port add bridge=bridge1 interface=vlan1

То при направлении  vlan1 -> ether2 метки (tag) снимаются, в обратную сторону трафик помечается. Условно, можно сказать, используя терминологию cisco - ether2 в режиме access.

При такой конфигурации vlan1 обязательно должен быть "прицеплен" за какой либо ether, например ether1:

/interface vlan add name=vlan1 vlan-id=10 interface=ether1

Таким образом, входящий трафик в ether2 тэгируется (vlan id 10) и уходит через ether1. Иными словами - ether 1 в режиме trunk.

Применение этого тоже просто и распространено, например на каком-то участке сети, вам необходимо завернуть некий трафик в vlan или наоборот - достать его оттуда. Пропускаете транк через микротик, попутно "разворачивая" один из vlan.

Приведу для такой схемы пример конфигурации:

/interface bridge add name=bridge-trunk protocol-mode=none

/interface bridge port add bridge=bridge-trunk interface=ether2

/interface bridge port add bridge=bridge-trunk interface=ether3

/interface vlan add name=vlan201 vlan-id=201 interface=ether2

/interface bridge add name=bridge-access protocol-mode=none

/interface bridge port add bridge=bridge-access interface=ether4

/interface bridge port add bridge=bridge-access interface=vlan201


В этом примере,

ether2  - uplink(trunk), например перед ним cisco catalyst:

!

interface FastEthernet0/10

description -- to-ether2-mikrotik

switchport trunk encapsulation dot1q

switchport trunk allowed vlan 201-210

switchport mode trunk

spanning-tree portfast

no cdp enable

!


ether4 - туда отдается трафик абоненту, под которого используется 201 vlan id

ether3 - дальше в сеть.

Если потребуется выудить, скажем, 203 vlan id, далаем все тоже самое, но в другой, свободный ether или, кстати, в eoip туннель - так тоже можно.


Еще можно сделать такую конфигурацию:


/interface bridge add name=bridge-map protocol-mode=none

/interface bridge port add bridge=bridge-map interface=vlan201

/interface bridge port add bridge=bridge-map interface=vlan401


Я не стал писать в этом примере "создание" vlan201 и vlan401, предполагаю, что это и так понятно.

Это vlan mapping, когда нужно сменить vlan-id. Менять его может потребоваться на границе двух сегментов сети, когда приходящий vlan id уже используется в другом сегменте сети.


Но mapping лучше использовать не часто, это усложняет диагностику проблем, например.  Лучше для таких случаев, как я привел в пример выше, использовать Q-n-Q:


/interface eoip add name=eoip_transport local-address=1.1.1.1 remote-address=2.2.2.2 tunnel-id=3333

Представим, что у нас есть какая-то среда, в которой проблематично вланы протягивать, но нам очень-очень нужно.

/interface vlan add name=v3333 vlan-id=3333 interface=eoip_transport

а теперь представим, что у нас в разных сегментах сети (между которыми eoip туннель) есть пересекающиеся vlan id и нам надо через сторону 2.2.2.2, куда-то там еще...

/interface vlan add name=v201 vlan-id=201 interface=v3333

/interface bridge add name=bridge1  protocol-mode=none

/interface bridge port add bridge=bridge1 interface=v201

/interface bridge port add bridge=bridge1 interface=ether2


Должен отметить, что начиная с версии 6.41 RouterOS есть изменения по конфигурированию всего этого дела, но они еще не осели в моей памяти, а пишу я примеры по памяти, поэтому они слегка устаревшие, но рабочие.


И простите за такую схему =) (мне схемы рисовать не приходится, это делают за меня, но если подскажет кто хороший инструмент под linux для создания схем  - буду рад использовать в следующих статьях).

Mikrotik. VLAN. Q-n-Q. Все дела.

Таким образом, vlan id 201 из зеленой ветки и синей не пересекаются, а во внутрь красного vlan id 3333 можно еще сколько угодно затолкать, куда нибудь ответвить и так далее.