EIGRP automáticamente realiza balanceo de carga a enlaces de cargas iguales, para enlace de cargas desiguales se utiliza el comando variance [multiplicador]
Escenario de Pruebas
Nube conformada por dos Router los cuales se conectan por 3 enlaces 2 enlaces seriales de 1024Kbps y un enlace Ethernet a 768 Kbps.
Se configura los anchos de bandas enunciados con el comando Bandwidth. El proceso de EIGRP escoje la mejor ruta de acuerdo a la métrica, en nuestro caso los dos enlace Seriales tienen la misma métrica [90/3139840] debido a su común ( Delay, bandwidth).
Configuracion R1 | Configuracion R2 |
interface Loopback10 ip address 192.168.10.1 255.255.255.252 ! interface FastEthernet0/0 bandwidth 768 ip address 192.168.1.1 255.255.255.252 speed auto ! interface Serial0/0 bandwidth 1024 ip address 192.168.2.1 255.255.255.252 ! interface Serial0/1 bandwidth 1024 ip address 192.168.3.1 255.255.255.252 ! router eigrp 10 network 192.168.1.0 0.0.0.3 network 192.168.2.0 0.0.0.3 network 192.168.3.0 0.0.0.3 network 192.168.10.0 0.0.0.3 auto-summary ! | interface Loopback20 ip address 192.168.20.1 255.255.255.252 ! interface FastEthernet0/0 bandwidth 768 ip address 192.168.1.2 255.255.255.252 speed auto ! interface Serial0/0 bandwidth 1024 ip address 192.168.2.2 255.255.255.252 ! interface Serial0/1 bandwidth 1024 ip address 192.168.3.2 255.255.255.252 ! router eigrp 10 network 192.168.1.0 0.0.0.3 network 192.168.2.0 0.0.0.3 network 192.168.3.0 0.0.0.3 network 192.168.20.0 0.0.0.3 auto-summary ! |
Tabla de enrrutamiento.
Show ip router eigrp |
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks D 192.168.10.0/24 is a summary, 00:55:38, Null0 D 192.168.20.0/24 [90/3139840] via 192.168.3.2, 00:55:38, Serial0/1 [90/3139840] via 192.168.2.2, 00:55:38, Serial0/0 192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks D 192.168.1.0/24 is a summary, 00:55:41, Null0 192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks D 192.168.2.0/24 is a summary, 00:55:38, Null0 192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks D 192.168.3.0/24 is a summary, 00:55:38, Null0 R1# |
Revisando la topologia podemos ver los diferentes enlaces.
show ip eigrp topology |
IP-EIGRP Topology Table for AS(10)/ID(192.168.20.1) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 192.168.10.0/24, 2 successors, FD is 3139840 via 192.168.3.1 (3139840/128256), Serial0/1 via 192.168.2.1 (3139840/128256), Serial0/0 via 192.168.1.1 (3463680/128256), FastEthernet0/0 P 192.168.1.0/24, 1 successors, FD is 28160 via Summary (5002496/0), Null0 P 192.168.1.0/30, 1 successors, FD is 5002496 via Connected, FastEthernet0/0 P 192.168.2.0/24, 1 successors, FD is 2169856 via Summary (3011840/0), Null0 P 192.168.2.0/30, 1 successors, FD is 3011840 via Connected, Serial0/0 P 192.168.3.0/30, 1 successors, FD is 3011840 via Connected, Serial0/1 P 192.168.3.0/24, 1 successors, FD is 2169856 via Summary (3011840/0), Null0 P 192.168.20.0/24, 1 successors, FD is 128256 via Summary (128256/0), Null0 P 192.168.20.0/30, 1 successors, FD is 128256 via Connected, Loopback20 |
Podemos observar que se escoje el FS en este caso 3 sucesores de acuerdo a la menor FD.
Configuración de balanceo de carga en enlaces con desigual costo EIGRP
EIGRP permite balancear carga en enlaces de diferentes costo, esto es posible gracias al comando Variance [multiplicador]. La variance es un numero que multiplicado por el Costo menor iguala o supera al costo mayor del grupo de enlaces a balancear.
En este laboratorio tenemos dos enlaces de 1024kbps y un enlace de 512kbps.
router eigrp 10 variance 2 |
El comando traffic-share balanced permite que el router balance equitativamente las cargas dependiendo del costo en EIGRP, permitiendo enviar mas paquetes por el enlace de menor costo.
router eigrp 10 variance 2 traffic-share balanced |
CEF (Cisco Express Forwarding) en el Balanceo de Carga
Esta caracteristica de cisco permite un a conmutación avanzada y rápida en equipos L3. Trabaja con Network Based Application Recognition (NBAR), permitiendo definir el próximo sato (next-hop) del flujo analizando solo el primer paquete IP.
CEF crea una nueva tabla de ruteo rapido FIB(Forwarding information base) que se utiliza para conmutar el flujo de datos luego de decidir por ruteo el próximo salto con el primer paquete.
Balanceo de Carga
Es la habilidad del router de enviar paquetes pro diferentes enlaces. el router puede escojer el enlace de salida dependiendo del destino o por paquete.
Balanceo de carga por destino: Cuando el router enviá paquetes a un mismo destino el router siempre por la misma interfaz de salida.
R2#sh ip cef 192.168.10.1 192.168.10.0/24, version 17, epoch 0, per-destination sharing 0 packets, 0 bytes via 192.168.3.1, Serial0/1, 0 dependencies traffic share 1 next hop 192.168.3.1, Serial0/1 valid adjacency via 192.168.2.1, Serial0/0, 0 dependencies traffic share 1 next hop 192.168.2.1, Serial0/0 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes R2# |
Balanceo de carga por paquete: El router decide con cada paquete por que interfaz salir. Alterna los enlaces de salida.
R1#sh ip cef 192.168.20.1 192.168.20.0/24, version 19, epoch 0, per-packet sharing 0 packets, 0 bytes via 192.168.3.2, Serial0/1, 0 dependencies traffic share 1, current path next hop 192.168.3.2, Serial0/1 valid adjacency via 192.168.2.2, Serial0/0, 0 dependencies traffic share 1 next hop 192.168.2.2, Serial0/0 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes R1# |
Observamos el comportamiento de los paquetes en R2
R2#debug ip packet 10 R2(config)#ip cef R2(config)#access-list 10 permit 192.168.20.0 0.0.0.255 |
desde R1 generamos un ping hacia 192.168.20.1
Balanceo de Carga/ R(config-if) | Cisco express forwarding | Fast switching |
Por destino per-destination | ip cef ip load-sharing per-destination | no ip cef ip router-cache |
Por paquete per-packet | ip cef ip load-sharing per-packet | no ip cef no ip router-cache |
Balance de Carga por Destino (per-destination)
R2# *Mar 1 00:45:23.599: %SYS-5-CONFIG_I: Configured from console by console *Mar 1 00:45:30.403: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.407: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.439: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.443: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.479: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.479: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.483: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.487: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.523: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.523: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.559: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.563: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.599: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:45:30.603: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:45:30.643: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB |
Balanceo de carga por Paquete (per-packet)
*Mar 1 00:51:17.139: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.143: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.143: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.147: IP: tableid=0, s=192.168.10.1 (Serial0/1), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.147: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.147: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.147: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.151: IP: tableid=0, s=192.168.10.1 (Serial0/1), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.155: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.187: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.191: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.191: IP: tableid=0, s=192.168.10.1 (Serial0/1), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.195: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.199: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.199: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.203: IP: tableid=0, s=192.168.10.1 (Serial0/1), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.203: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.203: IP: tableid=0, s=192.168.10.1 (Serial0/0), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.207: IP: s=192.168.10.1 (Serial0/0), d=192.168.20.1, len 100, rcvd 4 *Mar 1 00:51:17.239: IP: tableid=0, s=192.168.10.1 (Serial0/1), d=192.168.20.1 (Loopback20), routed via RIB *Mar 1 00:51:17.239: IP: s=192.168.10.1 (Serial0/1), d=192.168.20.1, len 100, rcvd 4 |
para variar un muy buen articulo y muy bien explicado.
ResponderBorrarTe tengo de los preferidos en mis RSS y ya he pasado la voz de este excelente blog, sigue asi amigo !!!
Gracias por compartir tus conocimientos.
Fernando, Gracias por tu comentario.
ResponderBorraramigo esta muy buena la explicación, pero tenia entendido que el balanceo de carga no existe, si no que el equilibrio de carga.
ResponderBorrarSaludos, y gracias por compartir
Hola Skydbg gracias por tu cometario.
ResponderBorrarBueno esto es cuestión de palabras.
puedes configurar para que algún trafico utilice un enlace y otro trafico otro, eso podría definirse como equilibro de cargas de acuerdo a unas reglas.
pero cuando se realice balanceo por paquete donde un enlace envía un Paquete por un enlace y luego aleatoriamente por el otro podríamos definirlo como un balanceo ya que ambos enlaces subirán de manera paralela el consumo de ambos estará balanceado, recordando que esta forma consume mas recurso y añade delay ya que para cada paquete el router toma la decisión por donde enviarlo como si fuese el primer paquete de todo el mensaje.
Bueno lo importante es que sepamos que hace cada configuracion.
saludos,
Estimados una consulta, en principio soy nuevo en el tema de comunicacion sin embargo quiero consultar lo siguiente. Si se tienen dos proveedores de enlaces de datos un principal y otro de respaldo, ambos con el mismo ancho de banda, uno de ellos presenta la ruta mas corta y por ende EIGRP direccionara el la conexion por el mismo proveedor A, sin embargo se ha detectado inestabilidad con uno de los proveedores siendo el de la ruta mas corta, solo si se detecta caida total automaticamente se realiza el cambio de enlace pero si hay intermitencia no. Mi consulta es como podria definir como enlace primario el proveedor B no importando que sea la ruta mas corta. Cual seria el procedimiento de configuracion en el router. saludos y agradezco su apoyo
ResponderBorrarconfigura IPSLA
BorrarAmigo, muy buen articulo y muy bien explicado, solo tengo una duda en el primer ejemplo de balanceo con igual costo, segun entiendo en tu ejemplo no estas balanceando ya que solo escoges la mejor ruta, para esto deberías de aplicar un comando tal como "maximun-patch (numero)" para que te balance entre varios caminos, en cualquier caso corrijeme si me he equivocado.
ResponderBorrarsaludos
Hola Don_Bur es tas en lo correcto se sa Maximum-patch para que balance, yo no lo use por que EIGRP el maximum-patch es 4 por defecto, lo puede configurar de 1( no balancea) a 16.
BorrarSaludos.
Me parece que quiso decir a un maximo de 6
ResponderBorrarno puedo ver la imagen :(
ResponderBorrar