Как и LAG, виртуальные LAG позволяют объединить одну или несколько Ethernet-линий для увеличения скорости и обеспечения отказоустойчивости. MLAG так же известна как VPC (Virtual port-channel). При обычном LAG агрегированные линии должны быть на одном физическом устройстве, в случае же с VPC агрегированные линии находятся на разных физических устройствах.
Функция VPC позволяет соединить два физических устройства в одно виртуальное.
Один из коммутаторов имеет роль VPC-primary, второй VPC-secondary.
Типовая схема для использования VPC :
Для нижестоящего устройства подключение к паре выглядит как подключение к одному устройству, так как пара коммутаторов использует один MAC-адрес (system-mac). Соответственно логическая схема выглядит следующим образом.
Данная схема предоставляет преимущество в виде исключения из топологии протоколов xSTP, так как отсутствует избыточность линков.
Сравнение VPC и стека.
Плюсы стека :
- Объединение в стек до 8 коммутаторов.
- Единый Control Plane. Для управления и мониторинга используется один IP-адрес Master-юнита в стеке.
Минусы стека :
- Единый Control Plane. Является как плюсом, так и основным минусом стека коммутаторов, так как выход из строя Master приводит к перерыву трафика управления и мониторинга, а также к перерыву в передаче L2/L3 клиентского трафика. Для исключения перерыва клиентского трафика, при передаче мастерства в стеке, необходим функционал NSF, который на данный момент находится на стадии активной разработки.
- Для обновления ПО необходимо перезагружать весь стек одновременно. Соответственно полная остановка в предоставляемых сервисах через стек.
- Два интерфейса с наибольшей пропускной способностью на каждом юните должны быть заняты под стековые линки. Два интерфейса используются для резервирования стекового линка.
Плюсы VPC :
- Объединение Data plane, при раздельном Control plane. Устройства в паре управляются и встают на мониторинг под уникальными IP - адресами в сети управления.
- Возможность раздельного обновления устройств. Хоть и не рекомендуется создание пары на разных версиях ПО, однако в рамках проведения работ за счет раздельного обновления устройств достигается отсутствие перерыва в предоставляемых сервисах.
- Дополнительный линк контроля состояния соседа в паре (Keepalive link) для исключения Split-Brain.
Минусы VPC :
- Необходимо настраивать каждое из устройств пары отдельно из-за использования раздельного Control plain как при настройке пары, так и при дальнейшей эксплуатации.
Таким образом VPC исключает почти все минусы стека, но добавляет необходимость конфигурирования двух устройств вместо одного.
Варианты применения VPC в сети передачи данных.
- На уровне доступа для подключения клиентского оборудования, серверов.
- На уровне агрегации для подключения коммутаторов доступа.
- На уровне ядра сети для агрегации сервисов и повышения отказоусточивости ядра.
Реализация VPC на коммутаторах MES
- VPC domain
Номер VPC домена должен совпадать на обоих коммутаторах, при этом каждый коммутатор может принадлежать только к одному VPC домену. Номер VPС домена используется для генерации system-mac-VPC, который является общим для двух коммутаторов.
В домене существуют две роли коммутаторов Primary и Secondary. Роли задаются с помощью команды role priority X в конфигурации VPC домена. Коммутатор с наименьшим приоритетом становится Primary.
При перезагрузке Primary, его роль переходит к Secondary и не передается при возвращении бывшего Primary в пару, для исключения прерывания трафика.
При настройке VPC на одноранговых коммутаторах должна быть одинаковая версия программного обеспечения.
- Peer Link
Основной линк между парой коммутаторов в VPC-домене. Через него проходит весь трафик, все VLAN должны быть добавлены в конфигурацию данного линка, иначе не будет резервирования. Требует большой пропускной способности.
Не использовать настройку switchport forbidden default-vlan на Peer-Link, так как трафик протокола VPC передается в нетегированном виде в default vlan.
- Механизм Peer Detection
Необходим для определения состояния соседа с помощью служебных сообщений через отдельный линк между коммутаторами для исключения Split-Brain в сети.
Рекомендуем назначать IP-адреса для Peer Detection на физические интерфейсы коммутаторов для полного исключения влияния L2-функционала.
Так как интерфейсы инициализируются последовательно, необходимо выбирать интерфейсы для Peer Detection с меньшим номером по отношению к Peer-Link.
При настроенном Peer Detection, в случае падения Peer-Link, secondary-коммутатор переводит все порты, состоящие в VPC группах, в состояние errdisable с сообщением:
LINK-W-PORT_SUSPENDED: Port Po2 suspended by vpc
Трафик, при этом, будет ходить через primary-коммутатор.
В случае падения Peer Detection линка не происходит никакой реакции, формируется сообщение в лог :
VPC-N-ROLECHANG: Peer detection protocol no longer detected.
Для Peer Detection сообщений не рекомендуется использовать основной линк VPC (нет смысла), также при падении данного линка, рассинхронизируется VPC пара, что вызовет простой в сети на время до понятия линка и последующего схождения VPC пары.
Типовая схема конфигурации VPC
Рассмотрим и настроим типовую схему VPC пары на уровне доступа для подключения клиентов.
Функционал VPC необходимо включать после выполнения конфигурации доменов. Функционал включается командой vpc в режиме глобальной конфигурации.
console(config)#vpc
Конфигурация Primary
Создаем VPC домен 1 и входим в его режим конфигурирования:
console(config)# vpc domain 1
Включаем Peer Detection и настраиваем интервал опроса.
console(config-vpcdomain)# peer detection
console(config-vpcdomain)# peer detection interval 200
Задаем destination, source IP-адреса для Peer Detection protocol:
console(config-vpcdomain)# peer detection ipaddr 1.1.1.2 1.1.1.1
Включаем отправку peer-keepalive, задаем таймаут.
console(config-vpcdomain)# peer keepalive
console(config-vpcdomain)# peer keepalive timeout 5 (значение по умолчанию)
Задаем role priority для коммутатора.
console(config-vpcdomain)# role priority 1
Назначить Port-Channel 1 в качестве peer-link:
console(config-vpcdomain)# peer link Port-Channel 1
Создаем VPC группы. Для каждого агрегированного интерфейса должна быть создана отдельная VPC группа. На парных устройствах номера VPC групп должны совпадать.
console(config)# vpc group 2
console(config-vpcgroup)# domain 1
console(config-vpcgroup)# vpc-port Port-Channel 2
console(config)# vpc group 3
console(config-vpcgroup)# domain 1
console(config-vpcgroup)# vpc-port Port-Channel 3
Назначаем на interface te1/0/1 IP-адрес для функционала Peer Detection
console(config)# interface te1/0/1
console(config-if)# ip address 1.1.1.1 /30
Добавляем физические интерфейсы в Po1 (Peer-Link), Po2, Po3 :
interface TenGigabitEthernet1/0/2 channel-group 1 mode auto exit ! interface TenGigabitEthernet1/0/3 channel-group 1 mode auto exit ! interface TenGigabitEthernet1/0/15 channel-group 2 mode auto exit ! interface TenGigabitEthernet1/0/16 channel-group 3 mode auto exit
На коммутаторе Secondary VPC настраивается аналогично :
vpc vpc domain 1 peer detection peer detection ipaddr 1.1.1.1 1.1.1.2 peer keepalive role priority 2 peer link port-channel 1 exit ! vpc group 2 domain 1 vpc-port port-channel 2 exit ! vpc group 3 domain 1 vpc-port port-channel 3 exit ! hostname Secondary ! interface TenGigabitEthernet1/0/1 ip address 1.1.1.2 255.255.255.252 exit ! interface TenGigabitEthernet1/0/2 channel-group 1 mode auto exit ! interface TenGigabitEthernet1/0/3 channel-group 1 mode auto exit ! interface TenGigabitEthernet1/0/15 channel-group 3 mode auto exit ! interface TenGigabitEthernet1/0/16 channel-group 2 mode auto exit
Для подключения оконечных устройств (на схеме обозначены как Access_1,Access_2) к VPC паре необходимо добавить интерфейсы в Port-Channel на каждом коммутаторе. Один линк от подключаемого коммутатора подключается к Primary, второй линк подключается к Secondary, в порты, добавленные в Port-Channel 2, Port-Channel 3 на VPC паре.
В схеме в качестве оконечных устройств используются коммутаторы.
Пример конфигурации интерфейсов коммутатора Access_1 :
interface tengigabitethernet1/0/1 channel-group 1 mode auto ! interface tengigabitethernet1/0/2 channel-group 1 mode auto ! interface Port-channel1 switchport mode trunk switchport trunk allowed vlan add 200
Коммутатор Access_2 настраивается аналогично.
Проверка состояния VPC на коммутаторах Primary и Secondary:
Primary# show vpc
VPC is enabled VPC domain 1 VPC role Primary peer detected (peer-link) role-priority 1 peer keepalive enabled system priority 32768 peer detection enabled peer link Po1 VPC group 2: Member port - Po2 domain - 1 VPC group 3: Member port - Po3 domain - 1
Secondary# show vpc
VPC is enabled VPC domain 1 VPC role Secondary peer detected (peer-link) role-priority 2 peer keepalive enabled system priority 32768 peer detection enabled peer link Po1 VPC group 2: Member port - Po2 domain - 1 VPC group 3: Member port - Po3 domain - 1
Проверка состояния VPC-линков :
Primary# show interfaces Port-Channel2
Port-Channel2 is up (connected) Interface index is 1002 Hardware is aggregated ethernet interface(s), MAC address is e8:28:c1:19:24:01 Interface MTU is 1500 Link is up for 0 days, 0 hours, 29 minutes and 1 seconds Link aggregation type is LACP No. of members in this port-channel: 2 (active 1) TenGigabitEthernet1/0/15, full-duplex, LACP active, 10000Mbps (active) TenGigabitEthernet3/0/15, LACP passive, 0Mbps (non-candidate) Active bandwidth is 10000Mbps 15 second input rate is 0 Kbit/s 15 second output rate is 0 Kbit/s 889 packets input, 60924 bytes received 0 broadcasts, 871 multicasts 0 input errors, 0 FCS 0 oversize, 0 internal MAC 0 pause frames received 1868 packets output, 131272 bytes sent 0 broadcasts, 1868 multicasts 0 output errors, 0 collisions N/S excessive collisions, 0 late collisions 0 pause frames transmitted
Primary# show interfaces Port-Channel3
Port-Channel3 is up (connected) Interface index is 1003 Hardware is aggregated ethernet interface(s), MAC address is e8:28:c1:19:24:01 Interface MTU is 1500 Link is up for 0 days, 0 hours, 4 minutes and 12 seconds Link aggregation type is LACP No. of members in this port-channel: 2 (active 1) TenGigabitEthernet1/0/16, full-duplex, LACP active, 10000Mbps (active) TenGigabitEthernet3/0/16, LACP passive, 0Mbps (non-candidate) Active bandwidth is 10000Mbps 15 second input rate is 0 Kbit/s 15 second output rate is 0 Kbit/s 28 packets input, 2620 bytes received 0 broadcasts, 28 multicasts 0 input errors, 0 FCS 0 oversize, 0 internal MAC 0 pause frames received 27 packets output, 2448 bytes sent 6 broadcasts, 19 multicasts 0 output errors, 0 collisions N/S excessive collisions, 0 late collisions 0 pause frames transmitted
Интерфейсы Te3/0/15 и Te3/0/16 отображаются для контроля конфигурации и состояния на соседнем устройстве в VPC-паре.
На коммутаторе Secondary вывод аналогичный.
Проверка корректности коммутации с помощью LLDP :
Primary# show lldp neighbors
Port Device ID Port ID System Name Capabilities TTL ---------- ----------------- ----------------- ------------------------------ ------------ ----- te1/0/1 e8:28:c1:8a:bf:00 te1/0/1 Secondary B, R 112 te1/0/2 e8:28:c1:8a:bf:00 te1/0/2 Secondary B, R 117 te1/0/3 e8:28:c1:8a:bf:00 te1/0/3 Secondary B, R 90 te1/0/15 e4:5a:d4:d3:66:40 te1/0/1 Access_1 B, R 99 te1/0/16 e4:5a:d4:6a:16:00 te1/0/1 Access_1 B, R 106
Secondary# show lldp neighbors
Port Device ID Port ID System Name Capabilities TTL ---------- ----------------- ----------------- ------------------------------ ------------ ----- te1/0/1 e8:28:c1:19:24:00 te1/0/1 Primary B, R 103 te1/0/2 e8:28:c1:19:24:00 te1/0/2 Primary B, R 109 te1/0/3 e8:28:c1:19:24:00 te1/0/3 Primary B, R 109 te1/0/15 e4:5a:d4:d3:66:40 te1/0/2 Access_2 B, R 119 te1/0/16 e4:5a:d4:6a:16:00 te1/0/2 Access_2 B, R 93
Диагностика протокола VPC:
show tech
show vpc
show vpc role
show vpc peer-detection
show vpc group X
Примечания :
1. При настроенном Peer Detection, в случае падения Peer-link, secondary-коммутатор переводит все порты, состоящие в VPC группах, в состояние errdisable с сообщением:
LINK-W-PORT_SUSPENDED: Port Po2 suspended by vpc
Трафик, при этом, будет ходить через primary-коммутатор.
Просмотр заблокированных портов выполняется командой show errdisable interfaces
Для восстановления порта необходимо использовать команду set interface active te1/0/x(Po x).
2. Для изменения system-mac используется команда:
console(config)# vpc domain 1
console(config-vpcdomain)# system mac-addr XX:XX:XX:XX:XX:XX
3. Primary коммутатор рассылает BPDU (при этом не обязательно чтобы коммутатор был STP Root).
4. Команда system priority value устанавливает приоритет системы для отправки в VPC порты. Должен быть одинаковый на обоих устройствах. Используется в работе протоколов STP/RSTP. При этом, если установлено значение, отличающееся от допустимых для приоритета STP/RSTP, число будет округлено в меньшую сторону.
Например, если использовать system priority 100, то в приоритете STP/RSTP будет установлен 0.