MikroTik настройка q-in-q 88a8
На днях задали интересный вопрос по поводу q-in-q, и родилась идея описать простыми словами, как настраивать q-in-q на bridge без каких-либо костылей в виде саб интерфейсов vlan.
Прежде чем начать, обговорим топологию сети.
В нашей тестовой сети для лабы существует пять коммутаторов, они как-то соединены, и рождается некая топология сети.
Пояснительная записка к нашей сети.
Коммутаторы, которые имеют имя SW-# это коммутаторы «уровня доступа» к ним подключается конечное оборудование.
Коммутаторы QSW-# - коммутаторы, которые должны оборачивать весь трафик в 88a8 q-irouterosn-q с портов от коммутаторов «уровня доступа».
Номер метки STAG 100 q-in-q.
- Зелёный - сервера находятся в vlan 200.
- Красный - сервера находятся в vlan 300.
Всё сервера подключены в access порты, т.е.фреймы сервера отправляют без тега.
Синий vlan 400 управления, он должен быть на каждом коммутаторе как логический интерфейс, а также тэгом отправляться на SRV-4 предполагаем, что на данном сервере запущенна система мониторинга, которая собирает какие-то метрики с коммутаторов или там живёт наш админ =).
И так начнём с самого простого на всех коммутаторах создадим bridge и добавим в него порты, указанные на схеме, естественно я не буду показывать, как это делать на каждом коммутаторе так как процедура однотипная, все делаем по дефолту.
/interface bridge add name=br
/interface bridge port add bridge=br interface=ether1
/interface bridge port add bridge=br interface=ether2
/interface bridge set vlan-filtering=yes
И так далее на каждом коммутаторе, меняем только количество и имена интерфейсов.
На всех коммутаторах подготовим интерфейс управления отдельный и единственный sub interface vlan
/interface vlan add name=br.400 vlan-id=400 interface=br comment=Mgmt
Да, да, я именую интерфейсы vlan через точку, где перед номером тега указываю имя интерфейса родителя.
Ну а теперь начнём, настраивать коммутаторы с пояснением.
SW-1
Нам необходимо, указать, следующее:
При входе (ingress-filter) трафика без тега с первого интерфейса мы должны на такой трафик повесить метку 200. При выходе (egress-filter) трафика с 200 меткой c ether1, мы эту метку должны снять и отправить обычный ethernet.
Делается это одной командой просто устанавливаем pvid на данный интерфейс.
/interface bridge port
set pvid=200 [find interface=ether1]
Далее нам необходимо, 200 vlan отправить с тегом в ether2, опять же делается одной командой.
/interface bridge vlan
add bridge=br vlan-ids=200 tagged=ether2
Также на этом коммутаторе у нас есть 400 vlan управления, так как получить доступ надо к IP (читай CPU) указываем помимо ether2 также порт сам bridge.А также так как мы должны в первой порт отправлять данный трафик с тегом, указываем ещё и ether1
/interface bridge vlan
add bridge=br vlan-ids=400 tagged=ether2,br,ether1
SW-2
По аналогии с SW-1
Создаём access порты доступа или просто untagged
/interface bridge port
set pvid=200 [find interface=ether2]
set pvid=300 [find interface=ether1]
Заполняем таблицу VLAN тегированным портами.
/interface bridge vlan
add bridge=br vlan-ids=200 tagged=ether3
add bridge=br vlan-ids=300 tagged=ether3
add bridge=br vlan-ids=400 tagged=ether3,br
SW-3
По аналогии с SW-1 и SW-2 Создаём access порты доступа или просто untagged
/interface bridge port
set pvid=300 [find interface=ether1]
Заполняем таблицу VLAN тегированным портами.
/interface bridge vlan
add bridge=br vlan-ids=300 tagged=ether2
add bridge=br vlan-ids=400 tagged=ether2,br
Переходим непосредственно к Q-in-Q
На всех коммутаторах QSW сменим тип ethernet
/interface bridge set ether-type=0x88a8
А теперь по всем коммутаторам
QSW-3
Заполним таблицу vlan
/interface bridge vlan
add bridge=br vlan-ids=200 tagged=ether2
add bridge=br vlan-ids=300 tagged=ether2
add bridge=br vlan-ids=400 tagged=ether2,br
add bridge=br vlan-ids=100 tagged=ether1
обратите внимание, что мы добавили, 100 vlan.
Но появляется проблема, в том, что SW-2 нам шлёт трафик с типом ethernet 8100, а наш коммутатор (bridge) работает 88a8, мы должны каким-то образом указать коммутатору, что в данном порту что-то другое.
Нам необходимо указать, что весь трафик с ether2 оборачивать меткой 100, мы уже знаем, что это делается с помощью pvid, но для того, что коммутатор понимал, что он должен ожидать не 88a8, а 8100 мы должны указать tag-stacking=yes
Делаем
/interface bridge port
set pvid=100 tag-stacking=yes [find interface=ether2]
QSW-2
Вообще без комментариев, так как всё понятно
/interface bridge vlan
add bridge=br vlan-ids=200 tagged=ether2
add bridge=br vlan-ids=300 tagged=ether2
add bridge=br vlan-ids=400 tagged=ether2,br
add bridge=br vlan-ids=100 tagged=ether1,ether3
/interface bridge port
set pvid=100 tag-stacking=yes [find interface=ether2]
QSW-1
Так же без комментариев.
/interface bridge vlan
add bridge=br vlan-ids=200 tagged=ether2
add bridge=br vlan-ids=400 tagged=ether2,br
add bridge=br vlan-ids=100 tagged=ether1
/interface bridge port
set pvid=100 tag-stacking=yes [find interface=ether2]
Management на QSW
И осталось небольшой момент, который надо исправить у нас management трафик в 400 vlan бегает только между SW коммутаторами, но не доступны QSW, дело в том, что интерфейс который мы создавали пробовать «поймать» 400ую метку на интерфейсе CPU, но она обёрнута 100 меткой и чтобы наш 400ый мог достучаться, нам надо отправить трафик без метки в CPU т.е в сам bridge, делается это с помощью всё того же пресловутого pvid на самом интерфейсе бриджа и естественно мы должны указать как pvid 100, метка которая оборачивает наш 400ый vlan.
На всех коммутаторах QSW выполняем
/interface bridge set pvid=100 [find name=br]
Соответственно если у вас в разрыве будет стоять коммутаторы, которые будет через себя «таскать» только q-in-q ваша задача перевести коммутатор в 88a8 и работать как с обычным vlan, но только с верхней меткой, в нашем случае 100, а на внутренние метки не обращать внимания.
Я знаю, я много не договорил и многое не описал, многие термины я специально упустил и постарался объяснить простыми словами.
Поделиться
Обсуждение
Лицензия
Текст данной статьи распространяется под общедоступной лицензией CC BY-NC-ND 4.0, ознакомиться с тектом лицензии вы можете на данной странице.