antiCisco blogs » Blog Archive » Virtual PortChannel

antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 4 Март , 2014

vPC по сути своей является расширением всем нам известного классического PortChannel. Он позволяет соединить какое-либо сетевое устройство (свитч, сервер) с двумя коммутаторами Cisco Nexus так, что для этого downlink-устройства соединение (логически) будет выглядеть так

1

Терминология

  • vPC – набор portchanell’ов между vPC-peer устройствами и downstream устройствами
  • vPC-peer устройство – пара устройств, которые соединены между собой специальным каналом, который называется vPC peer link
  • vPC peer link – канал для синхронизации vPC-пиров. (Прим. Линки должны быть 10G)
  • vPC member порт – интерфейс, который относится в vPC домену
  • vPC домен – совокупность из vPC-peer устройств, линк vPC peer-keepalive и всех портов vPC member
  • vPC peer-keepalive порт – L3-линк между коммутаторами для обмена keepalive

2. Описание портов

vPC peer link

Вы можете сконфигурировать только два коммутатора для работы внутри vPC-домена, т.е. следующие топологии не поддерживаются:

3. Неподдерживаемые топологии

После настройки vPC peer link (сами настройки мы рассмотрим в конце статьи) коммутаторы договариваются между собой о том кто из них будет primary, а кто secondary (выбор идет на основе наименьшего MAC, либо приоритета). По сути, кто из них кто роли не играет (это важно только в определенных failover-ситуациях). Если primary выходит из строя, то secondary подхватывает его роль.

Прим. В случае настройки vPC между Nexus7000 настоятельно рекомендуется использовать разные линейные модули для peer-link

4. Модули N7K

По peer-link’у почти никогда не передается регулярный трафик. По нему бегает лишь unknown unicast, multicast/broadcast. Достигается это благодаря тому, что все MAC-адреса, таблицы IGMP snooping’а, ARP-таблицы и пр. синхронизируются между peer-устройствами посредством протокола Cisco Fabric Services.

Если vPC peer link падает, то проверяется доступность соседа через peer-keepalive линк. Если сосед жив, то secondary свитч гасит все свои vPC порты чтобы не допустить петель в сети. Соответственно весь трафик бегает через primary устройство. Если же связи нет и по keepalive-линку Вы спокойно можете получить состояние DualActive. Именно по этому рекомендую для peer link и peer-keepalive использовать разные физические интерфейсы.

Peer-keepalive link

Как я уже упоминал, peer-keepalive используется коммутаторами для периодической отсылки keepalive’ов и мониторинга состояния соседа. Это обычный L3-интерфейс, соответственно между свитчами должна быть L3-связность (как она будет реализована не важно – хоть через прямой L2-линк, хоть через облако с IGP).

По умолчанию keepalive летают раз в секунду. Вы можете настроить как keepalive interval, так и hold-timeout (по умолчанию последний равен 3 секундам). Таймер hold запускает в момент падения vPC peer link. В течение этого интервала времени secondary vPC peer игнорирует все keepalive сообщения для того, чтобы сетка смогла конвергировать.

Также есть понятие просто timeout’а. Этот таймер стартует в момент, когда счетчик hold-timeout достигает нуля. В течение timeout-интервала secondary vPC peer слушает hello keepalive от primary устройства. При получении единичного hello на secondary-устройстве блокируются все порты. Если же keepalive так и не будет получен, то secondary берет на себя роль active.

vPC Peer-Gateway

Данная фича позволяет vPC свитчу быть гейтом для пакетов, которые адресованы на МАС-адрес vPC соседа. Таким образом достигается оптимизация использования vPC peer линка. При включении данной технологии NX-OS отключает IP redirect на всех vlan-интерфейсах, которые относятся к vPC домену.

Compatibility параметры

Большинство настроек на интерфейсах двух коммутаторов в vPC домене должны быть идентичны. Если это не так, то могут быть большие проблемы (например, на одном свитче настроен trunk, а на другом access). Соответственно за конфигурацией на vPC пирах надо следить. Как только вы включаете vPC, автоматически протол активируется CFSoE (Cisco Fabric Services over Ethernet), который следит за идентичностью конфигураций.

 

Прим. Два vPC пира имеют разные control и management-plane. Соответственно и настраиваются они по-отдельности. CFSoE лишь может сравнить конфиги устройств.

 

Ниже приведен список параметров, которые обязаны совпадать:

  • port-channel mode (on/off/active/passive)
  • link speed/duplex
  • trunk mode
  • STP mode
  • STP region в случае использования MSTP
  • STP port type, loop/root guard
  • MTU

Параметры, которые желательно должны совпадать:

  • MAC aging timer
  • ACL config
  • QoS
  • Port Security
  • CTS
  • DHCP snooping (trust/untrust)
  • DAI
  • IPSG
  • HSRP/GLBP
  • PIM

Если какие-то из обязательных параметров не совпадают, то «проблемные» интерфейсы secondary устройства гасятся. Такая проверка у циски называется consistency parameter check. Работает она per vlan basis.

vPC номер

После создания vPC домена и vPC peer link, Вы настраиваете portchannel в сторону нижестоящего устройства. Каждому такому portchannel Вы должны назначить некий номер (vPC number), который должен быть одинаковым на обоих vPC пирах.

Типовые схемы vPC

Ниже на картинках Вы увидите типовые схемы, в которых внедряется vPC.

6. Топология 2 7. Топология 3 5. Топология 1

Взаимодействие vPC и других технологий

vPC и LACP

При построении LACP-соседства между vPC доменом и обычным коммутатором в качестве LACP ID используется MAC-адрес vPC домена.

vPC и STP

После перехода с классической топологии на vPC начинается конвергенция STP. Для STP vPC peer-link является постоянно активным. Primary vPC коммутатор управляет всем STP процессом: синхронизирует STP состояния со вторым коммутатором используя CFSoE. В служебных сообщениях BPDU в поле Bridge ID выставляется MAC-адрес vPC домена.

vPC и ARP

Таблица ARP’а также синхронизируется между участниками vPC посредством CFSoE (для этого необходимо ввести команду ip arp synchronize.

Ограничения и правила vPC

  • Вы должны включить фичу vpc прежде чем станут доступны конфигурирования
  • Необходимо в первую очередь настроить peer-keepalive link, а только потом peer-link
  • Для vPC peer-link’а необходимы 10Гб интерфейсы
  • Есть поддержка FEX

 

Конфигурация и верификация

В целом настройка vPC не представляет собой большой сложности.

Прим. Нужно лишь отдавать себе отчет о том, на какой платформе вы его строите (5k/7k) – ибо они поддерживают разные топологии (которые могут меняться в зависимости от версии NXOS). За актуальной информацией обращайтесь на design zone по адресу http://cisco.com/go/srnd, раздел Data Center.

В этой конкретной статье мы рассмотрим один пример построения vPC на Nexus7000. Топология представлена ниже.

 

Первым делом необходимо включить поддержку vPC командой feature vpc.

Следующим шагом является создание vPC-домена. За это отвечает команда глобальной конфигурации vpc domain <DOMAIN_ID>. Данное значение должно совпадать на двух vPC пирах.

Далее создаем peer-keepalive линк (в режиме конфигурации домена) командой peer-keepalive destination <IP ADDRESS VPC’ PEER>. При желании в команде можете указать каким IPP красить трафик, указать source IP и vrf (по умолчанию используется vrf management, в котором находится интерфейс mgmt0).

N7K-1# show vpc

Legend:

(*) — local vPC is down, forwarding via vPC peer-link

vPC domain id                   : 1

Peer status                     : peer link not configured

vPC keep-alive status           : peer is alive

Configuration consistency status: failed

Configuration consistency reason: vPC peer-link does not exists

vPC role                        : none established

Number of vPCs configured       : 0

Peer Gateway                    : Disabled

Dual-active excluded VLANs      : —

 

После поднятия peer-keepalive приходит время создать peer link. Для этого сначала помещаем нужные интерфейсы в trunk PortChannel, а затем внутри интерфейса даем команду vpc peerlink. Обращаю Ваше внимание на то, что если для peer-keepalive используются SVI-интерфейсы, то запретите данную vlan внутри peer-link.

N7K-1# show vpc

Legend:

(*) — local vPC is down, forwarding via vPC peer-link

vPC domain id                   : 1

Peer status                     : peer adjacency formed ok

vPC keep-alive status           : peer is alive

Configuration consistency status: success

vPC role                        : secondary

Number of vPCs configured       : 0

Peer Gateway                    : Disabled

Dual-active excluded VLANs      : —

vPC Peer-link status

———————————————————————

id   Port   Status Active vlans

—   —-   —— —————————————————

1    Po100  up     1-20,100

Если Вы видите что домен у Вас не поднимается, то скорее всего на 2ух коммутаторах где-то различаются настройки. Для проверки используйте следующую команду:

N7K-1# show vpc consistency-parameters global

 

Legend:

Type 1 : vPC will be suspended in case of mismatch

 

Name                        Type  Local Value            Peer Value

————-               —-  ———————- ————————

STP Mode                    1     Rapid-PVST             Rapid-PVST

STP Disabled                1     VLANs 91               VLANs 91

STP MST Region Name         1     customer               Customer

STP MST Region Revision     1     1                      1

STP MST Region Instance to  1

VLAN Mapping

STP Loopguard               1     Disabled               Disabled

STP Bridge Assurance        1     Enabled                Enabled

STP Port Type, Edge         1     Normal, Disabled,      Normal, Disabled,

BPDUFilter, Edge BPDUGuard        Disabled               Disabled

STP MST Simulate PVST       1     Enabled                Enabled

Interface-vlan admin up     2     40-43,50,60,70-71,91,1 40-43,50,60,70-

71,91,1

00-103                 00-103

Allowed VLANs               —     40-43,50,60,91,100-103 9,40-

43,50,60,91,100-1

,1000                  03,1000

Local suspended VLANs       —     —                      —

После поднятия непосредственно vPC домена остается лишь помещать необходимы интерфейсы в сторону коммутаторов/серверов/FEX’ов внутрь vPC. Делается это командой vpc <NUMBER> в режиме конфигурирования необходимого интерфейса. Этот номер должен быть идентичным на обоих vPC пирах. После этого интерфейс добавится в вывод команды show vpc.

N7K-1# show vpc

Legend:

(*) — local vPC is down, forwarding via vPC peer-link

vPC domain id                   : 1

Peer status                     : peer adjacency formed ok

vPC keep-alive status           : peer is alive

Configuration consistency status: success

vPC role                        : primary

Number of vPCs configured       : 1

Peer Gateway                    : Disabled

Dual-active excluded VLANs      : —

vPC Peer-link status

———————————————————————

id   Port   Status Active vlans

—   —-   —— —————————————————

1    Po100  up     1-20,100

vPC status

———————————————————————-

id   Port   Status Consistency Reason                     Active vlans

—   —-   —— ———— ————————— ————

1    Po1    up     success     success                    1-20,100

Опционально. Можно вручную задать МАС-адрес, который будет использоваться vPC доменом. Делается это с помощью system-mac <MAC>.

Также хотелось бы остановить внимание на команде vpc orphanports suspend, которая задается в режиме конфигурирования интерфейса. Делает она следующее: если vPC домен развалился, то необходимо погасить данный порт в случае, если он является orphan. Полные конфиги представлены ниже.

----- N7K-1 -----
feature vpc
vrf context VRF_VPC-KEEPALIVE
interface e2/47
 vrf member VRF_VPC-KEEPALIVE
 ip address 1.1.1.1 255.255.255.0
vpc domain 1
 peer-keepalive destination 1.1.1.2 source 1.1.1.1 vrf VRF_VPC-KEEPALIVE
 role priority 5
 system priority 100
#### PEER LINK #####
interface Po100
 switchport mode trunk
 vpc peer-link
##### MEMBER PORTS #####
interface e2/1
 channel-group 1 mode active
interface Po1
 switchport
 switchport mode trunk
 vpc 1
----- N7K-2 -----
feature vpc
vrf context VRF_VPC-KEEPALIVE
interface e2/47
 vrf member VRF_VPC-KEEPALIVE
 ip address 1.1.1.2 255.255.255.0
vpc domain 1
 peer-keepalive destination 1.1.1.2 source 1.1.1.1 vrf VRF_VPC-KEEPALIVE
 role priority 10
 system priority 100
#### PEER LINK #####
interface Po100
 switchport mode trunk
 vpc peer-link
##### MEMBER PORTS #####
interface e2/1
 channel-group 1 mode active
interface Po1
 switchport
 switchport mode trunk
 vpc 1
----- N7K-3 -----
interface e2/11-12
 switchport
 channel-group 1 mode passive
interface Po1
 switchport mode trunk
 

Метки: ,
Опубликовано: Unified Fabric

 

One Response to “Virtual PortChannel”

comment rss - Trackback

  1. ruslan:

    Спасибо.
    Хороший обзор самых базовых возможностей.
    Не понятен момент с hold-timeout: для чего он вообще нужен если его можно было включить в обычный timeout?

» Оставить комментарий

Вы должны войти чтобы прокомментировать.