iRWX.RU

Personal IT notes.

MikroTik: VLAN на коммутаторах CRS1xx/2xx/3xx и SOHO маршрутизаторах (RouterOS 6.41+). Lab #3.

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

Задачу возьмем из предыдущей лабораторной.


На схеме 3 коммутатора. Центральный из них принадлежит провайдеру, два крайних — конечному потребителю.
С провайдером заключены 2 договора:
— договор 1: хождение VLAN7 между площадками №1 и №2;
— договор 2: хождение VLAN14,15,16,17 между площадками №2 и №3.
Что либо менять провайдер у себя не может, т.к. есть договорные обязательства.

Оборудование в наличии:
— на площадке №1: маршрутизатор RB951G-2HnD использующий чип коммутации;
— на площадке №2: коммутатор CRS125-24G-1S-RM;
— на площадке №3: коммутатор CRS125-24G-1S-RM.

Т.к. в наличии коммутатора CRS3xx у меня нет, буду использовать имеющийся CRS125. На нем я применю синтаксис для CRS3xx, что деактивирует чип коммутации на коммутаторе, т.е. трафик будет обрабатываться через CPU. В работе так конечно делать нельзя, но для отработки написания нового синтаксиса вполне сойдет.

Требуется:
— объединить трафик VLAN7 в VLAN14 на CRS125-24G-1S-RM расположенным на площадке №2;
— доступ к управлению оборудованием обеспечить из VLAN7 и VLAN14.

Настройка коммутатора на площадке №2

Начнем настройку с данного оборудования как самого сложного элемента в сети.

Трансляцию VLAN7<=>VLAN14 настроим на выделенных портах и соединим их патч-кордом. Не знаю как настроить трансляцию средствами чипа коммутации без такой перемычки. Если кто подскажет как, то пишите в комментариях, добавлю в статью.

Схема хождения трафика внутри коммутатора:

— Задействуем чип коммутации.

Создаем бриджевый интерфейс BR_MAIN на который CPU будет принимать трафик.

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

Добавляем интерфейсы в данный бридж.

/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4
add bridge=BR_MAIN interface=ether5
add bridge=BR_MAIN interface=ether6
add bridge=BR_MAIN interface=ether7
add bridge=BR_MAIN interface=ether8
add bridge=BR_MAIN interface=ether9
add bridge=BR_MAIN interface=ether10
add bridge=BR_MAIN interface=ether11
add bridge=BR_MAIN interface=ether12
add bridge=BR_MAIN interface=ether13
add bridge=BR_MAIN interface=ether14
add bridge=BR_MAIN interface=ether15
add bridge=BR_MAIN interface=ether16
add bridge=BR_MAIN interface=ether17
add bridge=BR_MAIN interface=ether18
add bridge=BR_MAIN interface=ether19
add bridge=BR_MAIN interface=ether20
add bridge=BR_MAIN interface=ether21
add bridge=BR_MAIN interface=ether22
add bridge=BR_MAIN interface=ether23
add bridge=BR_MAIN interface=ether24
add bridge=BR_MAIN interface=sfp1

Проверяем, что чип коммутации задействован.

[admin@MikroTik] > /interface bridge port print
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload
 #     INTERFACE   BRIDGE   HW  PVID PRIORITY  PATH-COST INT-PATH-COST HORIZON
 0   H ether1      BR_MAIN  yes    1     0x80         10      10       none
 1 I H ether2      BR_MAIN  yes    1     0x80         10      10       none
 2   H ether3      BR_MAIN  yes    1     0x80         10      10       none
 3   H ether4      BR_MAIN  yes    1     0x80         10      10       none
 4 I H ether5      BR_MAIN  yes    1     0x80         10      10       none
 5 I H ether6      BR_MAIN  yes    1     0x80         10      10       none
 6 I H ether7      BR_MAIN  yes    1     0x80         10      10       none
 7 I H ether8      BR_MAIN  yes    1     0x80         10      10       none
 8 I H ether9      BR_MAIN  yes    1     0x80         10      10       none
 9 I H ether10     BR_MAIN  yes    1     0x80         10      10       none
10 I H ether11     BR_MAIN  yes    1     0x80         10      10       none
11 I H ether12     BR_MAIN  yes    1     0x80         10      10       none
12 I H ether13     BR_MAIN  yes    1     0x80         10      10       none
13 I H ether14     BR_MAIN  yes    1     0x80         10      10       none
14 I H ether15     BR_MAIN  yes    1     0x80         10      10       none
15 I H ether16     BR_MAIN  yes    1     0x80         10      10       none
16 I H ether17     BR_MAIN  yes    1     0x80         10      10       none
17 I H ether18     BR_MAIN  yes    1     0x80         10      10       none
18 I H ether19     BR_MAIN  yes    1     0x80         10      10       none
19 I H ether20     BR_MAIN  yes    1     0x80         10      10       none
20 I H ether21     BR_MAIN  yes    1     0x80         10      10       none
21 I H ether22     BR_MAIN  yes    1     0x80         10      10       none
22 I H ether23     BR_MAIN  yes    1     0x80         10      10       none
23 I H ether24     BR_MAIN  yes    1     0x80         10      10       none
24 I H sfp1        BR_MAIN  yes    1     0x80         10      10       none

Флаг «Н» напротив интерфейсов указывает на поддержку аппаратной обработки трафика.

— Создаем интерфейс VLAN14_MGMT для управления и назначаем ему IP адрес.

/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/ip address
add address=192.168.0.1/24 interface=VLAN14_MGMT

— Создаем таблицу VLAN’ов. Указываем VLAN’ы и принадлежащие им порты.

/interface ethernet switch vlan
add ports=ether1,ether3 vlan-id=7
add ports=ether1,ether4,switch1-cpu vlan-id=14
add ports=ether1,ether19,ether20 vlan-id=15
add ports=ether1,ether21,ether22 vlan-id=16
add ports=ether1,ether23,ether24 vlan-id=17

— Правила тегирования для ВХОДЯЩЕГО трафика.

/interface ethernet switch ingress-vlan-translation
add ports=ether19,ether20 new-customer-vid=15
add ports=ether21,ether22 new-customer-vid=16
add ports=ether23,ether24 new-customer-vid=17

Настраиваем порты, соединяющие трафик VLAN7 и VLAN14. Происходит замена тега VID 7 в VID 14 на порту ether4 и на порту ether3 замена тега VID 14 на VID 7.

/interface ethernet switch ingress-vlan-translation
add ports=ether3 new-customer-vid=07
add ports=ether4 new-customer-vid=14

— Снимаем все теги для ИСХОДЯЩЕГО трафика на нетегированных (ACCESS) портах.

/interface ethernet switch egress-vlan-translation
add ports=ether19,ether20,ether21,ether22,ether23,ether24 new-customer-vid=0

— Запрещаем чипу коммутации передачу тегов VLAN отсутствующих в таблице (secure mode).

/interface ethernet switch
set forward-unknown-vlan=no

Настройка маршрутизатора на площадке №1

Схему хождения трафика внутри маршрутизатора рисовать не стал, т. к. она идентична предыдущей схеме с разницей в принадлежности портов VLAN’ам.

— Задействуем чип коммутации.

Создаем бриджевый интерфейс BR_MAIN на который CPU будет принимать трафик.

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

Добавляем интерфейсы в бридж.

/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4

Порт Ether5 не будем включать в обработку чипом коммутации, оставим его под управление на время настройки, иначе в случае ошибки можем потерять управление устройством. После настройки VLAN’ов и проверки доступа к управлению, порт можно будет добавить в бридж BR_MAIN.
Данное правило применимо и к имеющимся коммутаторам, но поскольку я выполняю их настройку через консольный порт, то на коммутаторах порт под управление я выделять не стал.

— Создаем интерфейс VLAN14_MGMT для управления и назначаем ему IP адрес.

/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/ip address
add address=192.168.0.2/24 interface=VLAN14_MGMT

— Создаем таблицу VLAN’ов. Указываем VLAN’ы и принадлежащие им порты.

/interface ethernet switch vlan
add ports=ether1,ether3 vlan-id=7
add ports=ether1,ether2,switch1-cpu vlan-id=14
add ports=ether1,ether2 vlan-id=15
add ports=ether1,ether2 vlan-id=16
add ports=ether1,ether2 vlan-id=17

— Настроим правила обработки тегов VLAN портами чипа коммутации маршрутизатора.

/interface ethernet switch port
set ether1 vlan-header=add-if-missing vlan-mode=secure
set ether2 vlan-header=add-if-missing vlan-mode=secure
set ether3 vlan-header=always-strip vlan-mode=secure default-vlan-id=7
set switch1-cpu vlan-header=leave-as-is vlan-mode=secure

vlan-mode=secure — строгий режим обработки тегов VLAN при котором проверяется наличие VID в таблице VLAN’ов, а также проверяется соответствие VID своим портам;
vlan-header=always-strip — всегда удалять у исходящего кадра тэг VLAN;
default-vlan-id=7 — входящий кадр без тега VLAN будет протегирован данным номером VID, который должен присутствовать в таблице VLAN при secure режиме обработки тегов VLAN;
vlan-header=add-if-missing и vlan-header=leave-as-is — понятно из названия: добавлять теги и не модифицировать теги VLAN для исходящих кадров.

Настройка коммутатора на площадке №3

Настройку будем производить используя новый синтаксис, который на данный момент аппаратно поддерживается только на коммутаторах CRS3xx.

— Создаем бриджевый интерфейс BR_MAIN с выключенной обработкой тегов VLAN.

/interface bridge
add name=BR_MAIN protocol-mode=none vlan-filtering=no

— Добавляем интерфейсы в созданный бридж с указанием VLAN ID ACCESS портов. Для транковых портов VLAN ID не указываем.

/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4
add bridge=BR_MAIN interface=ether5
add bridge=BR_MAIN interface=ether6
add bridge=BR_MAIN interface=ether7
add bridge=BR_MAIN interface=ether8
add bridge=BR_MAIN interface=ether9
add bridge=BR_MAIN interface=ether10
add bridge=BR_MAIN interface=ether11
add bridge=BR_MAIN interface=ether12
add bridge=BR_MAIN interface=ether13
add bridge=BR_MAIN interface=ether14
add bridge=BR_MAIN interface=ether15
add bridge=BR_MAIN interface=ether16
add bridge=BR_MAIN interface=ether17 pvid=14
add bridge=BR_MAIN interface=ether18 pvid=14
add bridge=BR_MAIN interface=ether19 pvid=15
add bridge=BR_MAIN interface=ether20 pvid=15
add bridge=BR_MAIN interface=ether21 pvid=16
add bridge=BR_MAIN interface=ether22 pvid=16
add bridge=BR_MAIN interface=ether23 pvid=17
add bridge=BR_MAIN interface=ether24 pvid=17

Проверяем:

[admin@MikroTik] > /interface bridge port print
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload
 #     INTERFACE   BRIDGE  HW  PVID PRIORITY  PATH-COST INT-PATH-COST HORIZON
 0     ether1      BR_MAIN yes    1     0x80         10      10       none
 1 I   ether2      BR_MAIN yes    1     0x80         10      10       none
 2 I   ether3      BR_MAIN yes    1     0x80         10      10       none
 3 I   ether4      BR_MAIN yes    1     0x80         10      10       none
 4 I   ether5      BR_MAIN yes    1     0x80         10      10       none
 5 I   ether6      BR_MAIN yes    1     0x80         10      10       none
 6 I   ether7      BR_MAIN yes    1     0x80         10      10       none
 7 I   ether8      BR_MAIN yes    1     0x80         10      10       none
 8 I   ether9      BR_MAIN yes    1     0x80         10      10       none
 9 I   ether10     BR_MAIN yes    1     0x80         10      10       none
10 I   ether11     BR_MAIN yes    1     0x80         10      10       none
11 I   ether12     BR_MAIN yes    1     0x80         10      10       none
12 I   ether13     BR_MAIN yes    1     0x80         10      10       none
13 I   ether14     BR_MAIN yes    1     0x80         10      10       none
14 I   ether15     BR_MAIN yes    1     0x80         10      10       none
15 I   ether16     BR_MAIN yes    1     0x80         10      10       none
16     ether17     BR_MAIN yes   14     0x80         10      10       none
17 I   ether18     BR_MAIN yes   14     0x80         10      10       none
18 I   ether19     BR_MAIN yes   15     0x80         10      10       none
19 I   ether20     BR_MAIN yes   15     0x80         10      10       none
20 I   ether21     BR_MAIN yes   16     0x80         10      10       none
21 I   ether22     BR_MAIN yes   16     0x80         10      10       none
22 I   ether23     BR_MAIN yes   17     0x80         10      10       none
23 I   ether24     BR_MAIN yes   17     0x80         10      10       none

Обращаем внимание, что флаг «H» напротив интерфейсов не указан, значит трафик обрабатывается программно. Так происходит потому, что коммутаторы CRS1xx/2xx аппаратно не поддерживают Bridge VLAN Filtering . Данный функционал реализован пока что только на коммутаторах серии CRS3xx.

— Создаем таблицу VLAN’ов.

Указываем VLAN’ы и принадлежащие им порты с разделением по типу трафика: тегированный, не тегированный.

/interface bridge vlan
add bridge=BR_MAIN tagged=ether1,BR_MAIN untagged=ether17,ether18 vlan-ids=14
add bridge=BR_MAIN tagged=ether1 untagged=ether19,ether20 vlan-ids=15
add bridge=BR_MAIN tagged=ether1 untagged=ether21,ether22 vlan-ids=16
add bridge=BR_MAIN tagged=ether1 untagged=ether23,ether24 vlan-ids=17

Обратите внимание на порты принадлежащие VLAN14: Мы в бридж BR_MAIN добавляем бриджевый интерфейс BR_MAIN в качестве тегированного порта, что бы этот бриджевый интерфейс BR_MAIN принимал теги VLAN14 трафика управления.

— Создаем интерфейс VLAN14_MGMT для управления и назначаем ему IP адрес.

/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/ip address
add address=192.168.0.3/24 interface=VLAN14_MGMT

— На созданном БРИДЖе включаем обработку тегов VLAN.

/interface bridge
set 0 vlan-filtering=yes

Выводы

С выходом RouterOS версии 6.41 настройка VLAN для большинства оборудования MikroTik кроме коммутаторов серии CRS3xx кардинально не изменилась. Упростилась настройка master-port’а для интерфейсов, вместо нее теперь выступает настройка бриджевого интерфейса и добавление в него требуемых интерфейсов. Все настройки обработки тегов VLAN остались прежними.

Если кратко, то теперь когда смотрите на конфиг RouterOS версии ДО 6.41 настройки для master-port меняете на настройки бриджевого интерфейса и все. CPU теперь принимает трафик не на master-port, а на бридж.

Было:

/interface ethernet 
set master-port=sfp1 numbers=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

Стало:

/interface bridge
add name=BR_MAIN protocol-mode=none
/interface bridge port
add bridge=BR_MAIN interface=ether1
.........<пропущен текст>...........
add bridge=BR_MAIN interface=ether24
add bridge=BR_MAIN interface=sfp1

PS

В процессе настройки лабораторной работы я столкнулся с фичей/особенностью/багом.
После настройки правил обработки тегов VLAN чипом коммутации терялось управление по MAC адресу, хотя подключение по IP происходило успешно.Причем проблема выявилась только на оборудовании площадок №1 и №2. На оборудовании площадки №3 данной проблемы не наблюдал, возможно из-за того, что трафик обрабатывался программно.

Для решения проблемы доступа по MAC адресу я создал новый список интерфейсов, добавил в него интерфейсы управления и в настройках MAC-Server’а указал данный список.

Для оборудования площадки №1:

/interface list 
add name=IFLIST_MGMT
/interface list member
add list=IFLIST_MGMT interface=VLAN14_MGMT
add list=IFLIST_MGMT interface=ether5
/tool mac-server
set allowed-interface-list=IFLIST_MGMT
/tool mac-server mac-winbox
set allowed-interface-list=IFLIST_MGMT

Для оборудования площадки №2:

/interface list 
add name=IFLIST_MGMT
/interface list member
add list=IFLIST_MGMT interface=VLAN14_MGMT
/tool mac-server
set allowed-interface-list=IFLIST_MGMT
/tool mac-server mac-winbox
set allowed-interface-list=IFLIST_MGMT

После данных настроек доступ по MAC адресу восстановился. На всем оборудовании лабораторного стенда использовалась версия RouterOS 6.42.10 (long-term)

Финальные конфигурации оборудования:

Площадка №1
/interface bridge
add name=BR_MAIN protocol-mode=none
/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/interface ethernet switch port
set 0 vlan-header=add-if-missing vlan-mode=secure
set 1 vlan-header=add-if-missing vlan-mode=secure
set 2 default-vlan-id=7 vlan-header=always-strip vlan-mode=secure
set 5 vlan-mode=secure
/interface list
add name=IFLIST_MGMT
/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4
/interface ethernet switch vlan
add independent-learning=yes ports=ether1,ether3 switch=switch1 vlan-id=7
add independent-learning=yes ports=ether1,ether2,switch1-cpu switch=switch1 vlan-id=14
add independent-learning=yes ports=ether1,ether2 switch=switch1 vlan-id=15
add independent-learning=yes ports=ether1,ether2 switch=switch1 vlan-id=16
add independent-learning=yes ports=ether1,ether2 switch=switch1 vlan-id=17
/interface list member
add interface=VLAN14_MGMT list=IFLIST_MGMT
add interface=ether5 list=IFLIST_MGMT
/ip address
add address=192.168.0.2/24 interface=VLAN14_MGMT network=192.168.0.0
/tool mac-server
set allowed-interface-list=IFLIST_MGMT
/tool mac-server mac-winbox
set allowed-interface-list=IFLIST_MGMT
Площадка №2
/interface bridge
add name=BR_MAIN protocol-mode=none
/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/interface ethernet switch
set forward-unknown-vlan=no
/interface list
add name=IFLIST_MGMT
/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4
add bridge=BR_MAIN interface=ether5
add bridge=BR_MAIN interface=ether6
add bridge=BR_MAIN interface=ether7
add bridge=BR_MAIN interface=ether8
add bridge=BR_MAIN interface=ether9
add bridge=BR_MAIN interface=ether10
add bridge=BR_MAIN interface=ether11
add bridge=BR_MAIN interface=ether12
add bridge=BR_MAIN interface=ether13
add bridge=BR_MAIN interface=ether14
add bridge=BR_MAIN interface=ether15
add bridge=BR_MAIN interface=ether16
add bridge=BR_MAIN interface=ether17
add bridge=BR_MAIN interface=ether18
add bridge=BR_MAIN interface=ether19
add bridge=BR_MAIN interface=ether20
add bridge=BR_MAIN interface=ether21
add bridge=BR_MAIN interface=ether22
add bridge=BR_MAIN interface=ether23
add bridge=BR_MAIN interface=ether24
add bridge=BR_MAIN interface=sfp1
/interface ethernet switch egress-vlan-translation
add new-customer-vid=0 ports=ether19,ether20,ether21,ether22,ether23,ether24
/interface ethernet switch ingress-vlan-translation
add new-customer-vid=15 ports=ether19,ether20
add new-customer-vid=16 ports=ether21,ether22
add new-customer-vid=17 ports=ether23,ether24
add new-customer-vid=7 ports=ether3
add new-customer-vid=14 ports=ether4
/interface ethernet switch vlan
add ports=ether1,ether3 vlan-id=7
add ports=ether1,ether4,switch1-cpu vlan-id=14
add ports=ether1,ether19,ether20 vlan-id=15
add ports=ether1,ether21,ether22 vlan-id=16
add ports=ether1,ether23,ether24 vlan-id=17
/interface list member
add interface=VLAN14_MGMT list=IFLIST_MGMT
/ip address
add address=192.168.0.1/24 interface=VLAN14_MGMT network=192.168.0.0
/tool mac-server
set allowed-interface-list=IFLIST_MGMT
/tool mac-server mac-winbox
set allowed-interface-list=IFLIST_MGMT
Площадка №3
/interface bridge
add name=BR_MAIN protocol-mode=none vlan-filtering=yes
/interface vlan
add interface=BR_MAIN name=VLAN14_MGMT vlan-id=14
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/interface bridge port
add bridge=BR_MAIN interface=ether1
add bridge=BR_MAIN interface=ether2
add bridge=BR_MAIN interface=ether3
add bridge=BR_MAIN interface=ether4
add bridge=BR_MAIN interface=ether5
add bridge=BR_MAIN interface=ether6
add bridge=BR_MAIN interface=ether7
add bridge=BR_MAIN interface=ether8
add bridge=BR_MAIN interface=ether9
add bridge=BR_MAIN interface=ether10
add bridge=BR_MAIN interface=ether11
add bridge=BR_MAIN interface=ether12
add bridge=BR_MAIN interface=ether13
add bridge=BR_MAIN interface=ether14
add bridge=BR_MAIN interface=ether15
add bridge=BR_MAIN interface=ether16
add bridge=BR_MAIN interface=ether17 pvid=14
add bridge=BR_MAIN interface=ether18 pvid=14
add bridge=BR_MAIN interface=ether19 pvid=15
add bridge=BR_MAIN interface=ether20 pvid=15
add bridge=BR_MAIN interface=ether21 pvid=16
add bridge=BR_MAIN interface=ether22 pvid=16
add bridge=BR_MAIN interface=ether23 pvid=17
add bridge=BR_MAIN interface=ether24 pvid=17
/interface bridge vlan
add bridge=BR_MAIN tagged=ether1,BR_MAIN untagged=ether17,ether18 vlan-ids=14
add bridge=BR_MAIN tagged=ether1 untagged=ether19,ether20 vlan-ids=15
add bridge=BR_MAIN tagged=ether1 untagged=ether21,ether22 vlan-ids=16
add bridge=BR_MAIN tagged=ether1 untagged=ether23,ether24 vlan-ids=17
/ip address
add address=192.168.0.3/24 interface=VLAN14_MGMT network=192.168.0.0

Ссылки

Настройка вышеописанной задачи на RouterOS pre-6.41
Настройка транка на CRS для гибридного трафика

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *