configurar bonding con trunk y lacp – II – ( switch )

Continuamos el post anterior de configuración de bonding con trunk y lacp pero esta vez, configurando el lado del switch ( un stack de dos switches en este ejemplo ).

El modo 4 del bonding ( 802.3ad ) requiere configuración sobre el switch, en el caso de los Cisco Catalyst, configurando un Portchannel en LACP.

La configuración del portchannel se basa en agregar diferentes puertos físicos, sobre uno lógico dotando de alta disponibilidad de red e incremento del ancho de banda disponible. Añadiremos el tipo de balanceo que más nos interese según el tráfico que esperemos.

Es decir, si esperamos tráfico simultáneo de muchas ip’s diferentes hacia múltiples destinos, el algoritmo que mejor nos conviene es el balanceo “ip origen XOR ip destino”. Los modelos de switch superiores a la gama Catalyst 3750 admiten un par más de algoritmos basados en puerto origen y puerto destino.

Configuración del balanceo del port-channel

switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
switch(config)#port-channel load-balance ?
dst-ip       Dst IP Addr
dst-mac      Dst Mac Addr
src-dst-ip   Src XOR Dst IP Addr
src-dst-mac  Src XOR Dst Mac Addr
src-ip       Src IP Addr
src-mac      Src Mac Addr

switch(config)#port-channel load-balance src-dst-ip

Configuración del port-channel en modo lacp:

Los puertos que agregaremos deben tener configurada y negociada la misma velocidad, módo dúplex, configuración de vlan … etc
En caso contrario, nos encontraremos que el port-channel no levantará.

En este ejemplo, usamos una configuración de portchannel en LACP con trunk 802.1Q, pasándole 3 vlanes, ya que estamos configurándolo para el ejemplo del lado lan de un firewall del post anterior.

interface GigabitEthernet1/0/1
description firewall-eth0
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,11,12
switchport mode trunk
spanning-tree portfast
channel-group 1 mode active

interface GigabitEthernet2/0/1
description firewall-eth1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,11,12
switchport mode trunk
spanning-tree portfast
channel-group 1 mode active

interface Port-channel1
description firewall
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,11,12
switchport mode trunk

Especificamos en el channel-group el “mode active” porque forzamos al portchannel el modo LACP y a empezar a intercambiar paquetes 802.3ad con el otro extremo.

El channel-group <nº> identificará el nº de portchannel asociado al que se unirán las interfaces físicas del switch.

Negociación de un port-channel:

Para que un portchannel/Etherchannel levante, entre los equipos que lo forman, ya sean switches con switches, hosts con switches etc, se transmiten unas tramas de negociación que usan el protocolo LACP o 802.3ad .

Los equipos Cisco pueden además operar con su versión propietaria de agregación de enlaces, llamada PAgP ( Port Aggregation Protocol )

Los modos posibles de la negociación en switch Cisco son :

mode on = Fuerza al portchannel sin PAgP ni LACP. Sólo funciona si el otro extremo está en on también.
mode off = desactiva PAgP y LACP y evita que los puertos se unan al port-channel
mode auto = activa PAgP en modo pasivo, el switch esperará hasta que reciba un paquete PAgP del equipo que va a negociar con él
mode passive = activa LACP en modo pasivo, el switch esperará hasta que reciba un paquete LACP del equipo que va a negociar con él.
mode desirable = activa PAgP en modo activo, el switch empezará a enviar paquetes PAgP
mode active = activa LACP en modo activo, el switch empezará a enviar paquetes LACP

Verificación:

switch#show etherchannel summary
Flags:  D - down        P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3      S - Layer2
U - in use      f - failed to allocate aggregator

M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port

Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi1/0/1(P)  Gi2/0/1(P)

En este ejemplo, vemos que el Port-channel nº 1 está en ( SU ) lo que significa que está en capa 2 y UP.

Además, los puertos asociados Gi1/0/1 y Gi2/0/1 están en ( P ) lo que significa que ambos están unidos al port-channel. Si uno de los puertos del host vecino no hubiese negociado correctamente saldría en Down ( D ).

Si deseamos ver información mas detallada tanto local como remota, podemos ejecutar un show etherchannel <nº de portchannel> detail

switch>show etherchannel 1 detail
Group state = L2
Ports: 2  Maxports = 16
Port-channels: 1 Max Port-channels = 16
Protocol:   LACP
Minimum Links: 0
Ports in the group:

Port: Gi1/0/1
------------
Port state    = Up Mstr Assoc In-Bndl
Channel group = 1           Mode = Active          Gcchange = -
Port-channel  = Po1         GC   =   -             Pseudo port-channel = Po1
Port index    = 0           Load = 0x00            Protocol =   LACP
Flags:  S - Device is sending Slow LACPDUs   F - Device is sending fast LACPDUs.
A - Device is in active mode.        P - Device is in passive mode.
Local information:
LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi1/0/1   SA      bndl      32768         0x1       0x1     0x202       0x3D
Partner's information:
LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
G1/0/1   SA      255       d4be.d9aa.f999  15s    0x0    0x11   0x2     0x3D
Age of the port in the current state: 14d:21h:01m:36s

Port: Gi2/0/1
------------
Port state    = Up Mstr Assoc In-Bndl
Channel group = 1           Mode = Active          Gcchange = -
Port-channel  = Po1         GC   =   -             Pseudo port-channel = Po1
Port index    = 0           Load = 0x00            Protocol =   LACP
Flags:  S - Device is sending Slow LACPDUs   F - Device is sending fast LACPDUs.
A - Device is in active mode.        P - Device is in passive mode.
Local information:
LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi2/0/1   SA      bndl      32768         0x1       0x1     0x202       0x3D
Partner's information:
LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Gi2/0/1   SA      255       d4be.d9aa.f999  15s    0x0    0x11   0x2     0x3D
Age of the port in the current state: 14d:21h:01m:13s
Port-channels in the group:
---------------------------
Port-channel: Po1  (Primary Aggregator)
------------
Age of the Port-channel   = 29d:05h:46m:00s
Logical slot/port   = 10/1          Number of ports = 2
HotStandBy port = null
Port state          = Port-channel Ag-Inuse
Protocol            =   LACP
Port security       = Disabled
Ports in the Port-channel:
Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
0     00     Gi1/0/1  Active 0
0     00     Gi2/0/1  Active  0
Time since last port bundled:    14d:20h:59m:13s    Gi2/0/1
Time since last port Un-bundled: 14d:21h:02m:05s    Gi2/0/1

Logs :

Conociendo los logs que se generan podemos, a parte de analizar lo que sucede en el dispositivo, mediante el uso de servidores syslog, recibir alertas en caso de problemas.

En el siguiente ejemplo de logs, vemos que un puerto provoca un mismatch en el portchannel ya que el vecino fuerza la velocidad de uno de sus puertos a 100 Mbps. Después el puerto cae y levanta a la velocidad correcta, en consecuencia el portchannel renegocia OK.

switch#show log | include EC
Feb 28 01:10:05 MET: %EC-5-CANNOT_BUNDLE2: Gi1/0/1 is not compatible with Gi2/0/1
and will be suspended (speed of Gi2/0/1 is 100M, Gi1/0/1 is 1000M) (switch)
Feb 28 01:10:40 MET: %EC-5-COMPATIBLE: Gi2/0/1 is compatible with port-channel members (switch)
Feb 28 01:13:10 MET: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/1,
 changed state to down
Feb 28 01:13:27 MET: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/1,
 changed state to up
Feb 28 01:13:28 MET: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up

En el siguiente ejemplo, un puerto del portchannel cambia de ID de vlan y de modo de trunking provocando el mismatch y en consecuéncia cayendo todo el Portchannel.

%EC-5-CANNOT_BUNDLE2: Gi1/0/14 is not compatible with Gi2/0/14 and will be suspended (access vlan of Gi1/0/14 is 1, Gi2/0/14 id 10)
%EC-5-CANNOT_BUNDLE2: Gi1/0/14 is not compatible with Gi2/0/14 and will be suspended (trunk mode of Gi1/0/14 is dynamic, Gi2/0/14 is access)

Gráficas :

En esta gráfica vemos la agregación de 4 interfaces de 1 Gbps.

Si sumamos todas las interfaces Gigabit, veremos que efectivamente dan lo que muestra el portchannel.

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *