jueves, 15 de septiembre de 2011

Balanceo en uplinks de Cisco Nexus 1000v


Cuando un único módulo VEM dispone de más de una NIC física para garantizar la conectividad externa de un port-group, es necesario configurar el modo en el que se enviará el tráfico a través de ellos.

Se disponen de varias aproximaciones, las cuales se describen a continuación.

Agregado de enlace (LACP)

Este método exige que el punto terminador de las conexiones sea un mismo Hardware, al igual que sucede en cuando se utilizan switches físicos.

La configuración se realizaría del mismo modo que con el software IOS de los switches tradicionales:

n1000v# config t
n1000v(config)# interface ethernet 1/4
n1000v(config-if)# channel-group 5 mode active

Virtual Port-Channel (vPC)

Este despliegue describe la formación de un agregado de enlace cuando los extremos terminadores son switches diferentes. Esto es posible a diversas causas:

·         Se dispone de la capacidad VSS en los Cisco 6500 a los que se conecten los uplinks
·         Se tiene formado un stack con los switches destino
·         Se ha configurado la utilización de los uplinks siguiendo un diseño llamado “vPC Host Mode”

Con este último despliegue se deberán configurar subgrupos en las interfaces de uplink de cada VEM. Si se dispone de switches con capacidad CDP estos grupos pueden formarse automáticamente, de no ser así se tendrá que crear manualmente en cada uno de los profiles destinados a los uplinks. En el siguiente esquema se muestra una disposición típica en subgrupos.
 

Ilustración 1 -  Cisco Nexus 1000v vPC Host Mode

Un ejemplo de configuración podría ser el siguiente si los switches externos soportasen CDP.

n1000v(config)# port-profile UpLinkProfile2
n1000v(config-port-prof)# channel-group auto mode on sub-group cdp

Los siguientes comandos son un ejemplo en el caso de que no se soportase CDP en los switches de upstream.

n1000v(config)# port-profile UpLinkProfile3
n1000v(config-port-prof)# channel-group auto mode on sub-group manual n1000v(config-port-prof)# exit
n1000v(config)# interface ethernet3/2-3
n1000v(config-if)# sub-group-id 0
n1000v(config)# interface ethernet3/4-5
n1000v(config-if)# sub-group-id 1

MAC-Pinning

Cuando los switches externos no soportan ningún tipo de agregación de enlace, o tan solo se utiliza un uplink por switch, la configuración recomendada sería la utilización de la funcionalidad MAC-Pinning.

Esta funcionalidad es un método de balanceo basado en la MAC origen, de tal manera que cada una de las MACs internas, ya sean de máquina virtual o utilizadas por el propio ESX, serán vinculadas unívocamente (proceso llamado pinning) a cada uno de los uplinks según se vayan necesitando.

Cada una de las MACs de las diferentes máquinas virtuales tendrá conectividad al exterior por un único enlace de uplink.


Ilustración 2 -  Cisco Nexus 1000v MAC Pinning

La configuración en el VSM sería la que figura a continuación:

n1000v(config)# port-profile UpLinkProfile1
n1000v(config-port-prof)# channel-group auto mode on mac-pinning

Activo-Pasivo

Si por algún motivo se desease que solo uno de los uplinks, o un grupo de ellos, estuviese activo, dejando el resto como stand-by, se deberían configurar dos subgrupos (uno para el activo y otro para el pasivo) de manera manual, tal y como se ha mostrado anteriormente, tras lo cual se configuraría uno de ellos como prioritario para cada Port-Profile.

Un ejemplo podría ser el siguiente. Se define el subgrupo 0 como prioritario para los port-groups mediante al orden “pinning id”:

n1000v(config)# port-profile type vethernet VM_264
n1000v(config-port-prof)# pinning id 0
n1000v(config)# port-profile type vethernet VM_31
n1000v(config-port-prof  pinning id 0

Se asigna cada uno de los uplinks a los diferentes subgrupos:

n1000v(config)# interface Ethernet3/1
n1000v(config-if)# sub-group-id 0
n1000v(config)# interface Ethernet3/2
n1000v(config-if)# sub-group-id 0
n1000v(config)# interface Ethernet3/3
n1000v(config-if)# sub-group-id 1
n1000v(config)# interface Ethernet3/4
n1000v(config-if)# sub-group-id 1