Как и 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 2 mode auto
exit
!
interface TenGigabitEthernet1/0/16
channel-group 3 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
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
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 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.