Agregando enlaces de switch
Cisco ofrece un método de escalar el ancho de banda agregando enlaces paralelos, lo que se llama EtherChannels. Desde 2 hasta 8 FastEthernet que crean un Fast EtherChannel (FEC de hasta 1600 Mbps) o desde 2 hasta 8 Gigabit Ethernet que crean un Giga EtherChannel (GEC de hasta 16 Gbps) o desde 2 hasta 8 10-Gigabit Ethernet que crean un 10-Gigabit EtherChannel (10GEC de hasta 160 Gbps).
El tener varios enlaces entre switches crea la posibilidad de producir bucles pero EtherChannel evita esa situación agregando los enlaces en un solo enlace lógico que puede actuar en modo acceso o trunk.
EtherChannel también ofrece redundancia agrupando varios enlaces físicos, si uno de los enlaces falla, el tráfico de dicho enlace se mueve a otro enlace correcto y cuando se recupera la carga de tráfico se vuelve a repartir entre los enlaces activo. Este proceso ocurre en mili segundos y es transparente para el usuario final.
En el caso de tener switches en Stack o VSS, podemos e incluso debemos usar interfaces en multiples swithes y/o slots que ofrece aún mayor redundacia, a esto se le conoce como Multichasis EtherChannel (MEC).
El tráfico en un EtherChannel se distribuye según unos métodos entre los enlaces individuales, aunque la carga no es necesariamente repartida uniformemente entre todos los enlaces. Las tramas se envían en un enlace concreto dependiendo del resultado de un algoritmo (hash). El algoritmo puede usar la dirección IP origen, dirección Ip destino, combinación de ambas, origen y destino de las direcciones MAC o número de puertos TCP/UDP. El algoritmo calcula un patrón binario que selecciona el número de enlace dentro del Etherchannel al cual enviar las tramas.
La distribución de carga se configura globalmente para todo el switch y todos los sus EtherChannel, no se puede configurar diferentes métodos por EtherChannel o por puerto. Para configurar la distribución de carga usaremos el comando:
Switch(config)# port-channel load-balance method
Método | Entrada Hash | Operación Hash | Modelo Switch |
---|---|---|---|
src-ip | Dirección IP origen | bits | todos los modelos |
dst-ip | Dirección IP destino | bits | todos los modelos |
src-dst-ip | direcciones IP origen y destino | XOR | todos los modelos |
src-mac | Dirección MAC origen | bits | todos los modelos |
dst-mac | Dirección MAC destino | bits | todos los modelos |
src-dst-mac | Dirección MAC origen y destino | XOR | todos los modelos |
src-port | Número de puerto origen | bits | 6500, 4500 |
dst-port | Número de puerto destino | bits | 6500, 4500 |
src-dst-port | Número de puerto origen y destino | XOR | 6500, 4500 |
Por defecto el método que se usa es dirección IP origen XOR dirección IP destino (en la tabla src-dst-ip) aunque algunos switches pueden usar src-mac. Por lo que es conveniente comprobar que método de balanceo usa el switch con el siguiente comando:
Switch# show etherchannel load-balance
También podemos comprobar cómo de efectivo es el método de balanceo, con el siguiente comando que nos indica la carga de cada enlace del EtherChannel:
Switch# show etherchannel port-channel
Es un protocolo propietario de Cisco para proveer configuración y negociación automáticas de EtherChannel entre switches. Los paquetes PAgP se intercambian entre switches por los puertos que soportan EtherChannel. Se identifican los vecinos y se aprenden las capacidades de los puertos que son comparados con las posibilidades del switch local. Los puertos que tiene el mismo ID de dispositivo de vecino y la posibilidad de agrupar puertos se agrupan juntos como un enlace EtherChannel punto a punto.
PAgP solo crean un EtherChannel en puertos que están configurados idénticamente, además si uno de los enlaces agregados se modifica, PAgP modifica los parámetros del EtherChannel (y el resto de puertos). Por defecto se configura en modo Auto en el cual solo establece el EtherCahnnel si el otro extremo lo inicia.
PAgP puede configurarse en modo desirable (modo activo) que activamente pregunta al switch vecino para negociar un EtherChannel, o en modo auto (modo pasivo, por defecto) que solo negocia si el otro extremo inicia la negociación.
LACP es un estándar de IEEE definido en 802.3ad. Los paquetes LACP se intercambian entre switches sobre puertos que soporten EtherChannel. Los vecinos son identificados y se aprenden las capacidades de los grupos de puertos y se comparan con las capacidades locales (al igual que en PAgP). Como distinción LACP asigna roles a los puntos finales de los EtherChannels.
El switch con la prioridad de sistema (system priority, un valor de prioridad de 2 bytes seguido de una dirección MAC de switch de 6 bytes) más baja toma las decisiones sobre que puertos participan activamente en el EtherChannel en un momento dado.
Los puertos se ponen activos de acuerdo a su prioridad de puerto (port priority, una prioridad de 2 bytes seguida de un número de puerto de 2 bytes) donde el valor más bajo es la prioridad más alta. Se pueden definir hasta un conjunto de 16 enlaces por cada EtherChannel aunque solo son seleccionados hasta 8 con las prioridades más altas (valores más bajos) como puertos activos del EtherChannel al mismo tiempo. El resto de puertos se ponen a la espera (standby) y se activarán si alguno de los puertos activos pierde el enlace (se pone down).
LACP puede configurarse en modo active (modo activo) que activamente pregunta al switch vecino para negociar un EtherChannel, o en modo passive (modo pasivo) que solo negocia si el otro extremo inicia la negociación.
Para configurar puertos para que negocien PAgP (que es el protocolo por defecto) podemos usar estos comandos:
Switch(config)# interface type mod/num Switch(config-if)# channel-protocol pagp Switch(config-if)# channel-group number mode {on | {{auto | desirable} [non-silent]}}
Para configurar puertos para que negocien LACP podemos usar estos comandos:
Switch(config)# lacp system-priority priority Switch(config)# interface type mod/num Switch(config-if)# channel-protocol lacp Switch(config-if)# channel-group number mode {on | passive | active} Switch(config-if)# lacp port-priority priority
La prioridad de sistema por defecto es de 32768 y va desde 1 a 65535. En caso de que ambos switches tengan la misma prioridad el que tenga menor MAC será el que tome las decisiones. La prioridad de puerto también es por defecto 32768 y va también desde 1 a 65535. Cuanto menor sea el valor de la prioridad más prioridad tendrá el puerto de estar activo.
Por defecto los switches Catalyst tienen activada la característica de detectar configuraciones de EtherChannel erróneas que ponen los interfaces (incluido el EtherChannel) en errdisabled. Para controlar esta característica podemos usar el siguiente comando:
Switch(config)# [no] spanning-tree etherchannel guard misconfig
Para ver la razón de err-disabled podemos usar este comando que nos indicará interfaces y razones:
Switch# show interfaces status err-disabled
Modo de negociación | ¿ Se envían paquete de negociación ? | Características | |
---|---|---|---|
PAgP | LACP | ||
On | On | No | Todos los puertos forman el port-channel |
Auto | Passive | SI | Espera hasta que le preguntan formar un port-channel |
Desirable | Active | SI | Pregunta activamente formar un port-channel |
Hay que tener en cuenta que Etherchannel consiste en que ambos extremos estén configurados iguales, mismas VLANs, mismo modo de trunk, misma velocidad y duplex. Además podemos seguir estos pasos:
Para verificar el estado de los EtherChannels de un switch podemos usar el comando "show etherchannel summary" que nos lista el estado de cada uno de los EtherChannels y los puertos asociados a cada uno de ellos.
Se establece Channel | |
---|---|
PAgP | LACP |
On-On | On-On |
Desirable-Auto | Active-Passive |
Desirable-Desirable | Active-Active |