Cisco vPC (virtual Port Channel)

Cisco vPC (virtual Port Channel)

Hoy vamos a hablar de Cisco vPC (virtual Port Channel), que no es lo mismo a VSS (Virtual Switching System), aunque la idea subyacente sea muy parecida.

Cisco vPC (virtual Port Channel) es lo que se conocía desde hacía mucho tiempo como Multichassis Etherchannel, es decir, un port-channel construido sobre dos chasis diferentes.

En otras palabras podemos tener un switch top of the rack conectado a dos switches de distribución diferentes para temas de redundancia, pero nuestro switch ToR pensará que está unido sólo a un switch.

Esto tiene muchísimas ventajas como quitarnos de encima a Spanning Tree, o la posibilidad de utilizar los dos uplinks de forma simultánea y no un activo pasivo.

Un port-channel, o un bond, dependiendo de la plataforma que estéis utilizando es una técnica que permite balancear el tráfico entre varios puertos permitiendo aumentar el ancho de banda, aumentar la redundancia y por supuesto, como ya os he comentado evitar problemas de bucles y por tanto evitar que spanning tree esté bloqueando puertos y demás.

Antes de empezar con vPC permitidme comentar que si en VSS tenemos un único equipo a nivel lógico que se gestiona desde un único punto, en vPC cada switch se gestiona de forma independiente, es otra forma de atacar problemas similares.

Componentes de vPC

Arquitectura de vPC

vPC tiene una serie de componentes que es necesario conocer para poder entenderlo y posteriormente configurarlo:

  • vPC Domain: El dominio incluye los dos vPC peer switches, el peer link y todos los portchannels conectados a los switches de downstream. La parte de configuración del domain es donde se establece el domain-id, el keepalive o la prioridad.
  • vPC Peer Switch: El vPC peer switch es cada uno de los dos switches que están conectados a ese port-channel conocido como vPC peer link. De estos dos switches, uno ser el primario y el otro el secundario.
  • Peer Link: El vPC peer link es el enlace utilizado para sincronizar estados entre los vPC peer switch. El peer link es el encargado de llevar el tráfico de control entre los dos switches, así como el tráfico de multicast y broadcast y en determinados escenarios, tráfico unicast. Para formar peer links es necesario como mínimo interfaces de 10G.
  • Peer Keepalive Link: El keepalive link es el que monitoriza que el vPC peer switch esté vivo. Ese keepalive envía mensajes periódicos entre los dispositivos. El keepalive link puede ser un interfaz de gestión o un interfaz SVI.
  • vPC Member Port: Aquí nos referimos a los puertos que pertenecen al vPC.

Luego tenemos que tener en cuenta que es posible que tengamos unos puertos definidos en una de vPC pero no es un member port. El problema con esta configuración es que si falla algún vPC se suspenderán los member ports, pero este que no es un member port en si no se suspenderá. Así que es muy importante utilizar en ese caso el comando vpc orphan-port suspend.

El caso de los puertos huérfanos puede suceder en el momento en el que haya un equipo que sólo tenga un interfaz por ejemplo.

Configuración de vPC

Configurar el interfaz de gestión y la ruta por defecto para la gestión.

Nexus-1(config)# int mgmt 0
Nexus-1(config-if)# ip address 172.25.182.51/24
Nexus-1(config-if)# vrf context management
Nexus-1(config-vrf)# ip route 0.0.0.0/0 172.25.182.1

Tenemos que habilitar vPC y LACP porque por defecto en los Nexus viene deshabilitadas estas dos características:

Nexus-1(config)# feature vpc
Nexus-1(config)# feature lacp

Creamos una vlan:

Nexus-1(config)#vlan 101

Creamos el vPC domain 1:

Nexus-1(config)# vpc domain 1

Configuramos el keepalive link contra otro nexus utilizando la interfaz de gestión:

Nexus-1(config-vpc-domain)# peer-keepalive destination 172.25.182.52

Configuramos el vPC peerlink:

Nexus-1(config-vpc-domain)# int ethernet 1/17-18
Nexus-1(config-if-range)# channel-group 1 mode active
Nexus-1(config-if-range)# int po1
Nexus-1(config-if)# vpc peer-link
Nexus-1(config-if)# switchport mode trunk
Nexus-1(config-if)# switchport trunk allowed vlan 1,101

Creamos el vPC member port:

Nexus-1(config-if)# int ethernet 100/1/1
Nexus-1(config-if)# channel-group 10
Nexus-1(config-if)# int po10
Nexus-1(config-if)# vpc 10
Nexus-1(config-if)# switchport access vlan 101

Al configurar el vPC member port hemos usado el comando vpc 10 esto es lo que indica el vpc en si y obviamente en ambos lados tiene que ser igual.

En este punto configuraremos en el Nexus-2 lo mismo, la única diferencia será el

Nexus-2(config-vpc-domain)#peer-keepalive destination 172.25.182.51

Cuidado porque aquí la IP ha cambiado porque el Nexus-2 tiene ahora de peer-keepalive el Nexus-1 que tiene la IP que termina en 51.

En los switches de downstream configuraremos un port-channel normal y moliente, la única diferencia es que la mitad de los cables irán a un switch y otra mitad a otro.

Gestión del vPC

La gestión del vPC se realizará mediante los comandos:

show vpc brief
show vpc peer-keepalive
sh vpc consistency-parameters vpc 30
sh vpc orphan-ports

Foto de Brett Sayles en Pexels