4.14. Настройка туннелирования протоколов L2
Назначение
Данная функциональность предназначена для прозрачной передачи пакетов канальных протоколов клиента (STP, LLDP и др.) через внешнюю сеть, изолируя их от инфраструктуры этой сети и позволяя клиентским устройствам взаимодействовать так, как если бы они находились в единой локальной среде.
Описание
При развертывании сети со сложной топологией могут возникнуть ситуации, когда отдельные площадки соединяются через сеть оператора связи или другую внешнюю сеть. Чтобы канальные протоколы, такие как STP и LLDP, функционировали на всех площадках так же, как и в единой сети, необходимо обеспечить прозрачную передачу пакетов этих протоколов между площадками.
Однако, стандартные L2-протоколы не рассчитаны на работу в транзитных сетях. Например, если клиентские коммутаторы начнут отправлять BPDU-пакеты STP через внешнюю сеть, оборудование в этой сети может принять их за свои и начать изменять топологию внутри своей инфраструктуры.
L2 Protocol Tunneling решает эту задачу так:
На входе (на пограничном устройстве со стороны клиента или на первом устройстве внешней сети) служебные кадры клиента распознаются и изменяются таким образом, что для транзитной сети они становятся неотличимы от обычного пользовательского трафика. Для этого стандартные пакеты L2-протоколов инкапсулируются во фреймы Ethernet со специально выделенным MAC-адресом назначения, задаваемым командой
l2protocol tunnel-dmac [MAC]из диапазона 0100.0CCD.CDD0 - 0100.0CCD.CDD2, 010F.E200.0003, или с адресом назначения 0100.0CCD.CDD0, если эта команда отсутствует.
Примечание
Для MAC-адреса источника внешнего фрейма используется системный MAC-адрес пограничного коммутатора, выполняющего инкапсуляцию.
После инкапсуляции, при передаче по внешней сети, эти кадры не распознаются как пакеты стандартных L2-протоколов и не обрабатываются как служебные. Оборудование просто пересылает их как любые другие Ethernet-фреймы, ориентируясь только на MAC-адрес назначения.
На выходе из внешней сети пограничное устройство восстанавливает исходные заголовки пакетов L2-протоколов (удаляет внешний заголовок Ethernet) и передаёт их клиентскому оборудованию в первоначальном виде.
В результате клиентские коммутаторы на разных площадках могут обмениваться BPDU-кадрами, LLDP-сообщениями и т.д. так, как будто между ними нет никакой промежуточной сети.
Настройка
Пакеты протоколов L2 включают STP BPDU, LACP slow protocol, DOT1X EAPOL, CFM.
В примере ниже коммутатор “Switch1” и коммутатор “Switch2” соединяет один канал связи. Порты “eth-0-1” коммутатора “Switch1” и коммутатора “Switch2” являются настроенными туннельными портами. Порты “eth-0-2” коммутатора “Switch1” и коммутатора “Switch2” являются магистральными портами. При поступлении на порт “eth-0-1” коммутатора “Switch1” пакетов вышеперечисленных L2-протоколов, к ним добавляется новый заголовок L2, после чего пакеты с новым заголовком пересылаются через магистральный порт. После приема пакетов портом “eth-0-2” коммутатора “Switch2” новый заголовок L2 будет удален, и пакеты будут отправлены на порт “eth-0-1” коммутатора “Switch2”.
Шаг 1: Вход в режим Global Config
Switch# configure terminal
Шаг 2: Вход в режим конфигурации VLAN и создание VLAN
Switch(config)# vlan database
Switch(config-vlan)# vlan 2-4
Switch(config-vlan)# exit
Шаг 3: Создание логического соединения Ethernet (EVC) и назначения для него VLAN
Switch(config)# ethernet evc evc_c1
Switch(config-evc)# dot1q mapped-vlan 2
Switch(config-evc)# exit
Switch(config)# ethernet evc evc_c2
Switch(config-evc)# dot1q mapped-vlan 3
Switch(config-evc)# exit
Switch(config)# ethernet evc evc_c3
Switch(config-evc)# dot1q mapped-vlan 4
Switch(config-evc)# exit
Шаг 4: Включение режима инкапсуляции пакетов L2-протоколов, установка МАС-адреса назначения туннеля и определение L2-протоколов по указанным MAC-адресам назначения
Switch(config)# l2protocol enable
Switch(config)# l2protocol tunnel-dmac 0100.0CCD.CDD2
Switch(config)# l2protocol mac 3 0180.C200.0008
Switch(config)# l2protocol mac 4 0180.C200.0009
Switch(config)# l2protocol full-mac 0100.0CCC.CCCC
Примечание
Для обеспечения большей гибкости при обработке инкапсулированных пакетов в версии AqNOS 7.6.1 появилась возможность назначать разные MAC-адреса для разных L2-протоколов. Это можно делать с помощью опции group-mac при определении L2-протоколов, которые нужно передать через внешнюю сеть командами l2protocol ( lldp | dot1x | stp | slow-proto | full-mac ) group-mac MAC или l2protocol mac MACNUM group-mac MAC в глобальном режиме конфигурации.
Шаг 5: Настройка туннельного порта, привязка L2-протоколов к EVC, настройка магистрального порта
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2-4
Switch(config-if)# spanning-tree port disable
Switch(config-if)# l2protocol mac 3 tunnel evc evc_c1
Switch(config-if)# l2protocol mac 4 tunnel evc evc_c2
Switch(config-if)# l2protocol full-mac tunnel evc evc_c3
Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2-4
Switch(config-if)# l2protocol uplink enable
Шаг 6: Выход из режима Global Config
Switch(config-if)# end
Шаг 7: Проверка
Вывод информации о туннельном интерфейсе:
switch1# show l2protocol interface eth-0-1
Interface PDU Address MASK Status EVC
(u)-Untagged
(t)-Tagged
========= ================= ============== ======== ================
eth-0-1 0180.c200.0008(u) ffff.ffff.ffff Tunnel evc_c1
eth-0-1 0180.c200.0008(t) ffff.ffff.ffff Tunnel evc_c1
eth-0-1 0180.c200.0009(u) ffff.ffff.ffff Tunnel evc_c2
eth-0-1 0180.c200.0009(t) ffff.ffff.ffff Tunnel evc_c2
eth-0-1 0100.0ccc.cccc(u) ffff.ffff.ffff Tunnel evc_c3
eth-0-1 0100.0ccc.cccc(t) ffff.ffff.ffff Tunnel evc_c3
eth-0-1 stp(u) ffff.ffff.ffff Peer N/A
eth-0-1 stp(t) ffff.ffff.ffff Peer N/A
eth-0-1 slow-proto(u) ffff.ffff.ffff Peer N/A
eth-0-1 slow-proto(t) ffff.ffff.ffff Peer N/A
eth-0-1 dot1x(u) ffff.ffff.ffff Peer N/A
eth-0-1 dot1x(t) ffff.ffff.ffff Peer N/A
eth-0-1 cfm(u) ffff.ffff.ffff Peer N/A
eth-0-1 cfm(t) ffff.ffff.ffff Peer N/A
eth-0-1 lldp(u) ffff.ffff.ffff Peer N/A
eth-0-1 lldp(t) ffff.ffff.ffff Peer N/A
eth-0-1 cdp(u) ffff.ffff.ffff Peer N/A
eth-0-1 cdp(t) ffff.ffff.ffff Peer N/A
eth-0-1 vtp(u) ffff.ffff.ffff Peer N/A
eth-0-1 vtp(t) ffff.ffff.ffff Peer N/A
Вывод информации о магистральном интерфейсе:
switch# show l2protocol interface eth-0-2
Interface PDU Address MASK Status EVC
(u)-Untagged
(t)-Tagged
========= ================= ============== ======== ================
eth-0-2 0180.c200.0008(u) ffff.ffff.ffff Peer N/A
eth-0-2 0180.c200.0008(t) ffff.ffff.ffff Peer N/A
eth-0-2 0180.c200.0009(u) ffff.ffff.ffff Peer N/A
eth-0-2 0180.c200.0009(t) ffff.ffff.ffff Peer N/A
eth-0-2 0100.0ccc.cccc(u) ffff.ffff.ffff Peer N/A
eth-0-2 0100.0ccc.cccc(t) ffff.ffff.ffff Peer N/A
eth-0-2 stp(u) ffff.ffff.ffff Peer N/A
eth-0-2 stp(t) ffff.ffff.ffff Peer N/A
eth-0-2 slow-proto(u) ffff.ffff.ffff Peer N/A
eth-0-2 slow-proto(t) ffff.ffff.ffff Peer N/A
eth-0-2 dot1x(u) ffff.ffff.ffff Peer N/A
eth-0-2 dot1x(t) ffff.ffff.ffff Peer N/A
eth-0-2 cfm(u) ffff.ffff.ffff Peer N/A
eth-0-2 cfm(t) ffff.ffff.ffff Peer N/A
eth-0-2 lldp(u) ffff.ffff.ffff Peer N/A
eth-0-2 lldp(t) ffff.ffff.ffff Peer N/A
eth-0-2 cdp(u) ffff.ffff.ffff Peer N/A
eth-0-2 cdp(t) ffff.ffff.ffff Peer N/A
eth-0-2 vtp(u) ffff.ffff.ffff Peer N/A
eth-0-2 vtp(t) ffff.ffff.ffff Peer N/A
eth-0-2 N/A N/A Uplink N/A
Вывод информации о MAC-адресе назначения туннеля:
Switch# show l2protocol tunnel-dmac
Layer2 protocols tunnel destination MAC address is 0100.0ccd.cdd2