iRWX.RU

Personal IT notes.

MikroTik: Настройка VLAN на коммутаторах серии CRS1xx/2xx. Lab #1.

UPD 2019.01.18: Добавлен синтаксис настройки VLAN с учетом изменений RouterOS 6.41+.

В данной статье мы настроим VLAN’ы на коммутаторе MikroTik CRS125-24G-1S и транковое соединение с коммутатором Cisco Catalyst 2960. Best Practices по настройке VLAN’ов на оборудовании обоих вендоров обсуждать не будем, поскольку цель — понять принципы. Начнем как всегда с постановки задачи.

Имеется:

— коммутатор MikroTik CRS125-24G-1S-RM с заводскими настройками;
— коммутатор Cisco Catalyst WS-C2960CG-8TC-L;

Конфигурация Cisco WS-C2960CG-8TC-L
!
interface Port-channel1
switchport trunk allowed vlan 1,10
switchport mode trunk
!
interface GigabitEthernet0/1
switchport access vlan 10
!
interface GigabitEthernet0/2
switchport access vlan 10
!
interface GigabitEthernet0/3
!
interface GigabitEthernet0/4
!
interface GigabitEthernet0/5
!
interface GigabitEthernet0/6
!
interface GigabitEthernet0/7
switchport trunk allowed vlan 1,10
switchport mode trunk
channel-group 1 mode on
!
interface GigabitEthernet0/8
switchport trunk allowed vlan 1,10
switchport mode trunk
channel-group 1 mode on
!
interface GigabitEthernet0/9
!
interface GigabitEthernet0/10
!

Требуется:

— настроить схему сети:

— в транковом соединении:
а) трафик VLAN1 передается без тега;
б) трафик VLAN10 передается тегированным;

Настройка.

— Сбрасываем предварительные настройки коммутатора:

/system reset-configuration skip-backup=yes no-defaults=yes
Dangerous! Reset anyway? [y/N]: y

system configuration will be reset

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

Для RouterOS 6.41+

Создаем бриджевый интерфейс 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

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

Для RouterOS pre-6.41

Для упрощения настройки выведем номера интерфейсов:

/interface ethernet print
Flags: X - disabled, R - running, S - slave 
 #    NAME            MAC-ADDRESS      MASTER-PORT     SWITCH 
 0    ether1       6C:11:11:11:11:C4     none          switch1
 1    ether2       6C:11:11:11:11:C5     none          switch1
 2    ether3       6C:11:11:11:11:C6     none          switch1
 3    ether4       6C:11:11:11:11:C7     none          switch1
 4    ether5       6C:11:11:11:11:C8     none          switch1
 5    ether6       6C:11:11:11:11:C9     none          switch1
 6    ether7       6C:11:11:11:11:CA     none          switch1
 7    ether8       6C:11:11:11:11:CB     none          switch1
 8    ether9       6C:11:11:11:11:CC     none          switch1
 9    ether10      6C:11:11:11:11:CD     none          switch1
10    ether11      6C:11:11:11:11:CE     none          switch1
11    ether12      6C:11:11:11:11:CF     none          switch1
12    ether13      6C:11:11:11:11:D0     none          switch1
13    ether14      6C:11:11:11:11:D1     none          switch1
14    ether15      6C:11:11:11:11:D2     none          switch1
15    ether16      6C:11:11:11:11:D3     none          switch1
16    ether17      6C:11:11:11:11:D4     none          switch1
17    ether18      6C:11:11:11:11:D5     none          switch1
18    ether19      6C:11:11:11:11:D6     none          switch1
19    ether20      6C:11:11:11:11:D7     none          switch1
20    ether21      6C:11:11:11:11:D8     none          switch1
21    ether22      6C:11:11:11:11:D9     none          switch1
22    ether23      6C:11:11:11:11:DA     none          switch1
23    ether24      6C:11:11:11:11:DB     none          switch1
24    sfp1         6C:11:11:11:11:DC     none          switch1

Настроим интерфейс sfp1 в качестве 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 ethernet print
Flags: X - disabled, R - running, S - slave 
 #    NAME           MAC-ADDRESS     MASTER-PORT     SWITCH 
 0  S ether1      6C:11:11:11:11:C4     sfp1         switch1
 1  S ether2      6C:11:11:11:11:C5     sfp1         switch1
 2  S ether3      6C:11:11:11:11:C6     sfp1         switch1
 3  S ether4      6C:11:11:11:11:C7     sfp1         switch1
 4  S ether5      6C:11:11:11:11:C8     sfp1         switch1
 5  S ether6      6C:11:11:11:11:C9     sfp1         switch1
 6  S ether7      6C:11:11:11:11:CA     sfp1         switch1
 7  S ether8      6C:11:11:11:11:CB     sfp1         switch1
 8  S ether9      6C:11:11:11:11:CC     sfp1         switch1
 9  S ether10     6C:11:11:11:11:CD     sfp1         switch1
10  S ether11     6C:11:11:11:11:CE     sfp1         switch1
11  S ether12     6C:11:11:11:11:CF     sfp1         switch1
12 RS ether13     6C:11:11:11:11:D0     sfp1         switch1
13  S ether14     6C:11:11:11:11:D1     sfp1         switch1
14 RS ether15     6C:11:11:11:11:D2     sfp1         switch1
15  S ether16     6C:11:11:11:11:D3     sfp1         switch1
16  S ether17     6C:11:11:11:11:D4     sfp1         switch1
17  S ether18     6C:11:11:11:11:D5     sfp1         switch1
18  S ether19     6C:11:11:11:11:D6     sfp1         switch1
19  S ether20     6C:11:11:11:11:D7     sfp1         switch1
20  S ether21     6C:11:11:11:11:D8     sfp1         switch1
21  S ether22     6C:11:11:11:11:D9     sfp1         switch1
22  S ether23     6C:11:11:11:11:DA     sfp1         switch1
23  S ether24     6C:11:11:11:11:DB     sfp1         switch1
24 R  sfp1        6C:11:11:11:11:DC     none         switch1

Поскольку интерфейс sfp1 указан в качестве Master Port’а, его состояние всегда активное — «R», причем с соответствующей индикацией на панели коммутатора:

Далее для RouterOS ВСЕХ версий

— Объединим порты ether13 и ether15 в агрегированный канал, он же Trunk, он же EtherChannel в терминологии Cisco:

/interface ethernet switch trunk>
add member-ports=ether13,ether15 name=ETHCH-PORT

Больше никаких настроек транк на коммутаторе MikroTik CRS в момент публикации статьи не поддерживает. Функционирует он в статическом режиме. Балансировщик загрузки рассчитывает хэш на основе МАС адресов источника и назначения, IP адресов источника и назначения, а также TCP/UDP портов источника и назначения — ссылка.

— Настроим принадлежность портов коммутатора VLAN’ам:

Укажем порты принадлежащие VLAN10:

/interface ethernet switch vlan> 
add vlan-id=10 ports=ether1,ether2,ether3,ether4,ether13,ether15,switch1-cpu,ETHCH-PORT

Укажем порты принадлежащие VLAN1:

/interface ethernet switch vlan> 
add vlan-id=1 ports=ether5,ether6,ether7,ether8,ether9,ether10,ether11,ether12,ether13,ether14,ether15,ether16,ether17,ether18,ether19,ether20,ether21,ether22,ether23,ether24,switch1-cpu,ETHCH-PORT

Проверяем настройки:

/int ethernet switch vlan print
Flags: X - disabled, I - invalid, D - dynamic 
 #   VLAN-ID PORTS           SVL LEARN FLOOD INGRESS-MIRROR QOS-GROUP
 0        10 ETHCH-PORT      no  yes   no    no             none     
             ether1                     
             ether2                     
             ether3                     
             ether4                     
             switch1-cpu                
 1 D    4095 switch1-cpu     no  no    no    no             none
 2         1 ETHCH-PORT      no  yes   no    no             none
             ether5                     
             ether6                     
             ether7                     
             ether8                     
             ether9                     
             ether10                    
             ether11                    
             ether12                    
             ether14                    
             ether16                    
             ether17                    
             ether18                    
             ether19                    
             ether20                    
             ether21                    
             ether22                    
             ether23                    
             ether24                    
             switch1-cpu

Видим, что агрегируемые порты ether13 и ether15 не отображаются, вместо них указан ETHCH-PORT.

VLAN4095 — технологическая VLAN, которая создается после указания Master Port’а на интерфейсах.

В Wiki указано, что данная VLAN требуется для функционирования процессов внутри коммутаторов CRS и имеет меньший приоритет обработки, чем пользовательские VLAN’ы. Могу догадываться, что таким образом MikroTik и реализовал поддержку нескольких Master Port’ов на коммутаторах CRS, но не факт.

— Настроим на портах доступа добавление тегов VLAN для входящего нетегированного трафика:

Для VLAN10 портами доступа являются ether1…4.:

/interface ethernet switch ingress-vlan-translation> 
add ports=ether1,ether2,ether3,ether4 customer-vid=0 new-customer-vid=10

Для VLAN1 портами доступа являются ether5…24. Порты ether13 и ether15 в составе транка ETHCH-PORT передают трафик принадлежащий VLAN1 также нетегированный:

/interface ethernet switch ingress-vlan-translation> 
add ports=ether5,ether6,ether7,ether8,ether9,ether10,ether11,ether12,ether13,ether14,ether15,ether16,ether17,ether18,ether19,ether20,ether21,ether22,ether23,ether24,ETHCH-PORT customer-vid=0 new-customer-vid=1

Проверим настройки:

/interface ethernet switch ingress-vlan-translation print
Flags: X - disabled, I - invalid, D - dynamic 
 0   ports=ether1,ether2,ether3,ether4 service-vlan-format=any customer-vlan-format=any customer-vid=0 new-customer-vid=10 pcp-propagation=no sa-learning=yes 

 1   ports=ether5,ether6,ether7,ether8,ether9,ether10,ether11,ether12,ether13,ether14,ether15,ether16,ether17,ether18,ether19,ether20,ether21,ether22,ether23,ether24,ETHCH-PORT 
     service-vlan-format=any customer-vlan-format=any customer-vid=0 new-customer-vid=1 pcp-propagation=no sa-learning=yes 

 2 D ports="" service-vlan-format=any customer-vlan-format=any new-customer-vid=4095 pcp-propagation=no sa-learning=no

Заметим, что в этом выводе конфигурации порты ether13 и ether15 указываются вместе с транком ETHCH-PORT.

— Указываем порты, где исходящие кадры будут содержать теги:

VID 10 тегируется исходящий трафик на портах ether13, ether15 в составе транка ETHCH-PORT и switch1-cpu:

/interface ethernet switch egress-vlan-tag> 
add tagged-ports=ether13,ether15,switch1-cpu,ETHCH-PORT vlan-id=10

VID 1 тегируется исходящий трафик на порту switch1-cpu чипа коммутации:

/interface ethernet switch egress-vlan-tag> 
add tagged-ports=switch1-cpu vlan-id=1

На портах ether13 и ether 15 в составе транка ETHCH-PORT исходящий трафик принадлежащий VLAN1 передается без тега, поэтому эти порты не указываем.

Проверка конфигурации:

/interface ethernet switch egress-vlan-tag> print
Flags: X - disabled, I - invalid, D - dynamic 
 #   VLAN-ID TAGGED-PORTS     
 0         1 switch1-cpu
 1 D    4095
 2        10 ETHCH-PORT
             switch1-cpu

Здесь же порты ether13 и ether15 не указываются, только транк ETHCH-PORT.

— Постольку нам потребуются различные сервисы предоставляемые RouterOS, для каждой VLAN настраиваем интерфейсы vlan1 и vlan10:

Для RouterOS 6.41+

/interface vlan add name=vlan1 vlan-id=1 interface=BR_MAIN 
/interface vlan add name=vlan10 vlan-id=10 interface=BR_MAIN

Для RouterOS pre-6.41

/interface vlan add name=vlan1 vlan-id=1 interface=sfp1 
/interface vlan add name=vlan10 vlan-id=10 interface=sfp1

— Перед выполнением следующего пункта рекомендую проверить правильную работу собранной схемы: обмен трафика внутри каждой VLAN, изоляцию трафика разных VLAN, удаленное управление коммутатора MikroTik CRS из разных VLAN и т.д.

— После того, как убедились в корректной настройке коммутатора глобально запрещаем передачу тегов VLAN не указанных в настройках. Как я понимаю — это некий аналог Secure mode чипа коммутации на маршрутизаторах MikroTik.

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

PS

В процессе настройки лабораторной работы я столкнулся с фичей/особенностью/багом.
После настройки правил обработки тегов VLAN чипом коммутации терялось управление по MAC адресу, хотя подключение по IP происходило успешно. Данное поведение наблюдалось только на версиях RouterOS 6.41+. На более ранних версиях проблем с подключением не наблюдалось.

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

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

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

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