Как и LAG, виртуальные LAG позволяют объединить одну или несколько Ethernet-линий для увеличения скорости и обеспечения отказоустойчивости. MLAG так же известна как VPC (Virtual port-channel). При обычном LAG агрегированные линии должны быть на одном физическом устройстве, в случае же с VPC агрегированные линии находятся на разных физических устройствах.

Функция VPC позволяет соединить два физических устройства в одно виртуальное.

Один из коммутаторов имеет роль VPC-primary, второй VPC-secondary.


Типовая схема для использования VPC :


Peer-Link - основной линк между парой коммутаторов в VPC-домене. Через него проходит весь трафик, все vlan должны быть добавлены в конфигурацию данного линка, иначе не будет резервирования. Требует большой пропускной способности.

Peer-Detection - линк обмена служебными сообщениями peer-detection для определения состояния соседнего коммутатора в VPC-домене. Не требует большой пропускной способности (в рассматриваемой схеме для данного функционала используется интерфейс te1/0/1, можно использовать интерфейсы gi1/0/x).


Конфигурация Switch_1:


Включаем VPC глобально, используется после конфигурации VPC:


console(config)#vpc


Создаем VPC домен 1 и входим в его режим конфигурирования:


console(config)#vpc domain 1


Включаем peer-detection и настраиваем интервал, таймаут.


console(config-vpcdomain)#peer

console(config-vpcdomain)#peer detection interval 200

console(config-vpcdomain)#peer detection timeout 700


Задаем 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 для коммутатора, коммутатор с наименьшим приоритетом становится Primary.


console(config-vpcdomain)#role priority 1


Назначить Port-Channel в качестве peer-link:


console(config-vpcdomain)#peer link Port-Channel 1


Создаем VPC группу. Для каждого агрегированного интерфейса должна быть создана отдельная VPC группа. На парных устройствах номера VPC групп должны совпадать


console(config)#vpc group 1

console(config-vpcgroup)#domain 1

console(config-vpcgroup)#vpc-port Port-Channel 2


Назначаем на 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/12

channel-group 2 mode auto

exit

!

interface TenGigabitEthernet1/0/13

channel-group 3 mode auto

exit


На коммутаторе Switch_2 VPC настраивается аналогично :


vpc

vpc domain 1

peer detection

peer detection interval 200

peer detection timeout 700

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

vpc-port port-channel 2

exit

!

vpc group 3

vpc-port port-channel 3

exit

!

!

hostname Switch_2

!

!

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/12

channel-group 2 mode auto

exit

!

interface TenGigabitEthernet1/0/13

channel-group 3 mode auto

exit


Для подключения коммутаторов доступа (на схеме обозначены как Access_1,Access_2) к VPC паре необходимо добавить интерфейсы в Po на каждом коммутаторе. Один линк от подключаемого коммутатора подключается к Switch_1, второй линк подключается к Switch_2, в порты, добавленные в Po2, Po3 на VPC паре.


Пример конфигурации интерфейсов коммутаторов Access_1 :


interface tengigabitethernet1/0/3

channel-group 1 mode auto

!

interface tengigabitethernet1/0/4

channel-group 1 mode auto

!

interface Port-channel1

switchport mode trunk

switchport trunk allowed vlan add 200



Диагностика протокола VPC:


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. В случае падения Peer-detection линка не происходит никакой реакции


VPC-N-ROLECHANG: Peer detection protocol no longer detected.


3. Номер VPC домена должен совпадать на обоих коммутаторах, при этом каждый коммутатор может принадлежать только к одному VPC домену. Сам номер VPС домена используется для генерации system-mac-VPC, который является общим для двух коммутаторов.


Для изменения system-mac используется команда:


console(config)#vpc domain 1

console(config-vpcdomain)#system mac-addr XX:XX:XX:XX:XX:XX


4. Primary коммутатор рассылает BPDU (при этом не обязательно чтобы коммутатор был STP Root).


5. При настройке VPC на одноранговых коммутаторах должна быть одинаковая версия программного обеспечения.


6. НЕ использовать настройку switchport forbidden default-vlan на interface Po1, т.к. трафик протокола VPC ходит untagged в default vlan.


7. Для peer-detection сообщений не рекомендуется использовать основной линк VPC (нет смысла), также при падении данного линка, рассинхронизируется VPC пара, что вызовет простой в сети на время до понятия линка и последующего схождения VPC пары.