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.