- EIGRP - Propiedad de Cisco
- OSPF - Standard
- BGP - Standard
Empezamos con EIGRP.
2.1 EIGRP Enhanced Interior gateway Routing Protocol
Es una
evolución del protocolo IGRP, que es un protocolo de Vector Path.
EIGRP está
considerado un híbrido entre Vector Path y Link State porque tiene mejoras en
cuanto a la convergencia.
Utiliza al
algoritmo DUAL (Diffusing Update Algorithm) y soporta múltiples protocolos.
EIGRP usa la dirección multicast 224.0.0.10 para intercambiar
la info y usa el IP Protocol 88 para el transporte de capa 4. Un detalle interesante es que cuando el neighbor responde a la 224.0.0.10 lo hace directamente, es decir, con unicast.
El envío de paquetes EIGRP lo hace a través del protocolo RTP (Reliable Trasnport Protocol)
El envío de paquetes EIGRP lo hace a través del protocolo RTP (Reliable Trasnport Protocol)
Y al igual que RIPv2, soporta VLSM, sumarización y autenticación con md5 y, al ser un protocolo de Vector-Distancia (aunque se le considere híbrido) está expuesto al problema de Split Horizon con enlace NMBS o DMVPN.
Tipos de paquetes en
EIGRP:
- Hello: para formar la relación de vecindad. Se envía cada 5 segundos. El hold time 15
- Update: la primera vez manda toda la info que conoce. Luego solo envía “updates parciales" que pueden ser enviados por multicast o unicast.
- Query: pregunta por rutas
- Reply: la respuesta al query
- Ack: el mensaje de confirmación de update, query y reply.
Para configurar EIGRP:
(config)#router eigrp X - siendo X el número de AS
(config-router)#network X.X.X.X X.X.X.X (red y wilcard mask)
En vez de un número de AS, podemos configurar un nombre. Este modo se implementa a partir de la IOS 15.1. Nos ofrece más opciones, como la address family, que nos servirá para configurar IPv4 e IPv6 o la autenticación con HMAC-SHA-256. Este modo cambia un poco la forma de configurar las redes a propagar:
(config)#router eigrp CCIELAB
(config-router)#address-family ipv4 autonomous-system X
(config-router-af)#network X.X.X.X X.X.X.X (red y wilcard mask)
Si la X (AS) de la configuración con el modo de nombre coincide con la X (AS) de un vecino que tiene la configuración EIGRP estándar, formarían la vecindad. En el fondo coinciden en el AS.
Si queremos actualizar el equipo para que pase del modo clásico de EIGRP al nuevo modo, metemos el siguiente comando. Además, no se caen las vecindades al configurarlo:
(config-router)#eigrp update-cli X - X como nombre del proceso EIGRP
Por cierto, para formar la vecindad en IPv4 tiene que ser a este nivel, pero para IPv6 tenemos la posibilidad de configurarlo a nivel de interface.
Para formar la vecindad correctamente, los vecinos deben coincidir en los siguientes valores de configuración:
- Red/Subred de IPv4
- AS (número de sistema autónomo)
- Autenticación
- Valores de la métrica (valores K)
Un detalle importante es que podemos hacer que EIGRP trabaje en unicast, lo que es muy útil para enlaces, por ejemplo, VPLS. Tendríamos que configurarlo manualmente.
Métrica de EIGRP
Métrica de EIGRP
Está basada en 5 valores. Estos, si se configuran, tienen que coincidir en ambos vecinos.
- Bandwidth - K1
- Delay - K3
- Reliability - K4 y K5
- Loading - K2
- MTU
Realmente solo se utilizan bandwidth y delay.
Nota: los intervalos de los "timers" como el "hello" o el "hold time" no tienen que coincidir para formar la vecindad. Estos timers solo tienen significancia local.
router(config-if)# ip hello-interval eigrp 50 4 – cambia el intervalo de hello
router(config-if)# ip hold-time eigrp 50 12 – cambia el hold time
router(config-if)# ip hello-interval eigrp 50 4 – cambia el intervalo de hello
router(config-if)# ip hold-time eigrp 50 12 – cambia el hold time
TABLAS DE EIGRP
Tenemos cuatro definiciones importantes:
- Successor: la mejor ruta a destino
- Feasible Distance (FD): la mejor métrica (la del successor)
- Report Distance (RD): métrica aprendida de los vecinos
- Feasible Successor (FS): ruta de backup
Podemos
decir que es el único protocolo que tiene rutas de backup (feasible successor). El successor
es considerado la ruta principal.
El
funcionamiento es muy sencillo:
Tenemos un
router A con un destino B. Para llegar a este destino tiene dos
caminos: C y D. El sucesor es C porque tiene una métrica menor para llegar al destino. El feasible successor es D y se queda de backup al tener una métrica mayor. Esto sucede en la Topology Table. A la Routing Table solo se le pasa el sucesor.
Para ser considerado un feasible successor, la
distancia reportada (RD – Report Distance) debe ser menor que la
distancia factible (FD - Feasible Distance) del successor.
Nota: podemos encontrarnos que la RD (Report Distance) es también llamada AD (Advertised Distance). Se usan indistintamente pero en los últimos tiempos se prefiere usar RD para no confundirlo con la Administrative Distance que también usa el acrónimo AD.
En el show ip eigrp topology podemos verificar la FD y la RD para cada red
FD: 332800
RD:307200
FD: 332800
RD:307200
En el show ip route vemos la FD (332800) y la AD (90), que en este caso corresponde a la distancia administrativa, que es 90 para EIGRP. Por eso es preferible llamar a la RD así, para no confundirla con la AD de los protocolos de enrutamiento.
Una característica de EIGRP es que puede balancear hasta 16 enlaces, siendo por defecto 4.
Las tablas
que tiene EIGRP son:
- Neighbor table: Neighbors (vecinos). Sabe la ip y el hold time de los vecinos.
- Topology table: todas las rutas. Aquí están el successor y el feasible successor. En esta tabla se puede configurar “tagging” (etiquetado).
- Routing table: las mejores rutas.
Hay que tener en cuenta que EIGRP crea una neighbor table y una
topology table independientes para cada protocolo (IP, IPX, AppleTalk).
Importante recordar que EIGRP solo propaga la mejor ruta.
Comandos para ver las tablas:
- sh ip eigrp neighbors - si hay convergencia el campo query count de este comando (Q Cnt) está a 0.
- sh ip eigrp topology
- sh ip route – están marcadas con una D
- sh ip eigrp interfaces
- sh ip protocols
- debug eigrp packet
Modificación
de EIGRP
Es un protocolo flexible al que podemos tunear. Podemos modificar si queremos enviar o no updates, autenticación, el ancho de banda, el retardo, la métrica (valores K) y añadir atributos a esta a través de "offset-list".
Passive-interface:
Como en otros
protocolos, si queremos que una interface no envíe updates por una interface ni
formar vecindad, debemos configurarla como passive a nivel de interface:
(config-router)#passive-interface interface X/X
En EIGRP cuando ponemos una interface en passive también hacemos que no se envíen los "hello", por lo tanto se termina la vecindad. No forma vecindad, por lo que ni envía ni recibe.
Si hiciéramos un "redistribute connected" a nivel de router eigrp, redistribuiríamos a través de EIGRP todas las interfaces conectadas, incluidas las loopback. Passive-interface en las loopback hace que no puedan enviar updates puesto que no participan en la arquitectura del EIGRP, son solo rutas redistribuidas, como si vinieran de otro equipo.
Autenticación:
También
podemos establecer una autenticación entre vecinos. Para ello:
Creamos una
clave (la misma en todos los routers)
(config)#key chain CLAVE_EIGRP
(config-keychain)#key 1
(config-keychain-key)#key-string XXXX - password
(config-keychain-key)#accept-lifetime XXX
(config-keychain-key)#send-lifetime XXX
Y a nivel de interface:
(config-if)#ip authentication mode eigrp 50 md5
(config-if)#ip authentication key-chain eigrp 50 CLAVE_EIGRP
Bandwitdth:
EIGRP usa por defecto el 50% del ancho de banda del enlace. Es decir, si un enlace serial usa 1544, el protocolo EIGRP asignará la mitad (772) como bandwidth del enlace. Hay que tenerlo en cuenta también a la hora de ampliar ese uso.
(config-subif)#ip bandwidth-percent eigrp 50 80 - Aumentamos al 80%
Métrica:
La métrica en EIGRP es algo compleja. Normalmente se utilizan solo los valores K1 (bandwidth) y K3 (Delay):
Para
modificar los valores K de la métrica:
Para hacerlo a través de offset list:
Primero creamos un access-list declarando una red:
- (config)#access-list X permit X.X.X.X X.X.X.X
- (config-router)#offset-list X out XXXXX
Ruta por defecto:
EIGRP no genera una default-info originate como en RIP para propagar una ruta por defecto. Para hacerlo, tenemos 2 opciones:
- configurar una ruta estática 0.0.0.0/0 y redistribuirla: (config-router)#redistribute static
- propagarla manualmente: (config-router)#network 0.0.0.0 0.0.0.0
También está el comando "ip default-network", que genera una ruta estática y, si tiene una interface directamente conectada con ese rango, la propaga por EIGRP.
Se puede crear una ruta por defecto con una etiqueta (tag) solo para las rutas internas. Solo se puede activar si al proceso EIGRP se le ha dado un nombre y no un número.
Balanceo de carga:
EIGRP puede balancear rutas con diferentes costes. Para configurar el número de rutas que debe balancear:
Para configurar el balanceo de carga se utiliza el comando variance. Por defecto es 1 y, esto significa que balanceará tráfico a través de rutas que tenga el mismo coste. Si le ponemos variance 2, haría que se balanceara tráfico a través de rutas con un coste de hasta 2 veces peor que el coste de la ruta principal (successor), es decir, multiplica por el número que le configuremos.
- (config-router)#variance X
El proceso de balanceo se hace por flows (CEF per-flow) y no por paquetes.
La aplicación de variance no exime que se tengan que cumplir las reglas básicas de EIGRP en cuanto a la FD y la RD.
Filtros:
Se pueden aplicar filtros tanto de entrada como de salida para permitir o denegar redes.
- (config-router)#distribute-list X in / out
- (config-router)#distribute-list prefix X in / out
- (config-router)#distribute-list route-map X in / out
El proceso del Query
Cuando se cae una interface (down), el router lanza un query hacia sus vecinos preguntando por una ruta de backup. Cuando los vecinos reciben esa query preguntando por una ruta que saben que para llegar a ella se pasa por ese router, estos vecinos no contestan, ya que implicaría lanzar ellos también un query y congestionarían la red. Pero si hay uno de los vecinos que contesta, también esperará a ver si contestan los demás (3 minutos por defecto). Esto en grandes redes puede hacer que espere mucho tiempo y que se declare en Stuck-in-Active (SIA). Y cuando pasa esto, se corta la vecindad EIGRP.
Este proceso del query también sucede cuando perdemos nuestro successor y no tenemos un feasible successor. Por el contrario, si tenemos un feasible successor y se nos cae el successor, ni siquiera pasa a estado de Active el feasible successor: es una transición de milisegundos y el proceso query no se ejecuta.
Para evitar el SIA, Cisco recomienda dos opciones:
-Sumarización: propagando rutas sumarizadas, si se pierde una de ellas, cuando el router pregunte a los vecinos por una ruta de backup, estos, al ver que está dentro del rango sumarizado que les envía el router, le contestan con un reply diciendo NO. Se hace a nivel de interface:
- (config-subif)#ip summary-address eigrp 50 X.X.X.X X.X.X.X
Para el modo nombre:
- (config-router-af)#af-interface X
- (config-router-af-interface)#summary-address eigrp
- Stub: una red stub es una red que no tiene nada más allá de ese router, no hay ninguna red detrás. Cuando se forma la vecindad se intercambian esta información. Si tenemos configurado un router como stub, cuando se pierdan rutas en el AS, su vecino directamente no le preguntará, pues sabe que detrás de ese vecino no hay nada más. Así ahorramos procesos y ancho de banda.
- (config-router)#eigrp stub
- (config-router)#metric weight X X X X X
Para hacerlo a través de offset list:
Primero creamos un access-list declarando una red:
- (config)#access-list X permit X.X.X.X X.X.X.X
- (config-router)#offset-list X out XXXXX
Ruta por defecto:
EIGRP no genera una default-info originate como en RIP para propagar una ruta por defecto. Para hacerlo, tenemos 2 opciones:
- configurar una ruta estática 0.0.0.0/0 y redistribuirla: (config-router)#redistribute static
- propagarla manualmente: (config-router)#network 0.0.0.0 0.0.0.0
También está el comando "ip default-network", que genera una ruta estática y, si tiene una interface directamente conectada con ese rango, la propaga por EIGRP.
- (config-router)#ip default-network X.X.X.X
- (config-router)#network X.X.X.X
Se puede crear una ruta por defecto con una etiqueta (tag) solo para las rutas internas. Solo se puede activar si al proceso EIGRP se le ha dado un nombre y no un número.
- (config)#router eigrp PRUEBA
- (config-router)#eigrp default-route tag X.X.X.X
Balanceo de carga:
EIGRP puede balancear rutas con diferentes costes. Para configurar el número de rutas que debe balancear:
- (config-router)#maximum-paths X - selecciona rutas con mismo rango de red (por defecto está configurado para dar soporte a 4 rutas)
Para configurar el balanceo de carga se utiliza el comando variance. Por defecto es 1 y, esto significa que balanceará tráfico a través de rutas que tenga el mismo coste. Si le ponemos variance 2, haría que se balanceara tráfico a través de rutas con un coste de hasta 2 veces peor que el coste de la ruta principal (successor), es decir, multiplica por el número que le configuremos.
- (config-router)#variance X
El proceso de balanceo se hace por flows (CEF per-flow) y no por paquetes.
La aplicación de variance no exime que se tengan que cumplir las reglas básicas de EIGRP en cuanto a la FD y la RD.
Filtros:
Se pueden aplicar filtros tanto de entrada como de salida para permitir o denegar redes.
- (config-router)#distribute-list X in / out
- (config-router)#distribute-list prefix X in / out
- (config-router)#distribute-list route-map X in / out
El proceso del Query
Cuando se cae una interface (down), el router lanza un query hacia sus vecinos preguntando por una ruta de backup. Cuando los vecinos reciben esa query preguntando por una ruta que saben que para llegar a ella se pasa por ese router, estos vecinos no contestan, ya que implicaría lanzar ellos también un query y congestionarían la red. Pero si hay uno de los vecinos que contesta, también esperará a ver si contestan los demás (3 minutos por defecto). Esto en grandes redes puede hacer que espere mucho tiempo y que se declare en Stuck-in-Active (SIA). Y cuando pasa esto, se corta la vecindad EIGRP.
Este proceso del query también sucede cuando perdemos nuestro successor y no tenemos un feasible successor. Por el contrario, si tenemos un feasible successor y se nos cae el successor, ni siquiera pasa a estado de Active el feasible successor: es una transición de milisegundos y el proceso query no se ejecuta.
Para evitar el SIA, Cisco recomienda dos opciones:
-Sumarización: propagando rutas sumarizadas, si se pierde una de ellas, cuando el router pregunte a los vecinos por una ruta de backup, estos, al ver que está dentro del rango sumarizado que les envía el router, le contestan con un reply diciendo NO. Se hace a nivel de interface:
- (config-subif)#ip summary-address eigrp 50 X.X.X.X X.X.X.X
Para el modo nombre:
- (config-router-af)#af-interface X
- (config-router-af-interface)#summary-address eigrp
- Stub: una red stub es una red que no tiene nada más allá de ese router, no hay ninguna red detrás. Cuando se forma la vecindad se intercambian esta información. Si tenemos configurado un router como stub, cuando se pierdan rutas en el AS, su vecino directamente no le preguntará, pues sabe que detrás de ese vecino no hay nada más. Así ahorramos procesos y ancho de banda.
- (config-router)#eigrp stub
Connected y summary por defecto. Receive-only es como el passive-interface |
En configuraciónes tipo HUB-SPOKE, hay que configurar sumarización en el hub y, stub en los spokes
IPv6
Por último, comentar que EIGRP mantiene topología separadas para Ipv4 e Ipv6, con diferentes adyacencias y ejecución del DUAL. Además en IPv6 no podemos propagar redes IPv4 (ospfv3, is-is y bgp si pueden)
Usa el mismo protocolo de transporte: IP Protocol 88
La dirección multicast es: FF02::A
Cuando configuramos IPv6 para EIGRP, como Router-ID elegirá una dirección IPv4. Si no hay ninguna dirección IPv4, tendremos que configurarla manualmente.
Para configurarlo:
(config)#ipv6 unicast-routing
(config)#ipv6 router eigrp AS - nivel global
(config-if)#ipv6 eigrp AS - nivel interface
Para verificar:
show ipv6 eigrp interface
show ipv6 eigrp neighbor
show ipv6 eigrp topology
Este enlace lleva a la documentación de Cisco sobre el modo nombre.
Hola,
ResponderEliminarExcelente aporte me agrada mucho el blog, he podido practicar algunas cosas que no recordaba.
Me pregunto si puedo ver tambien las de OSPF y BGP, ya que solo aparece reflejada EIGRP.
Gracias por leer este msj.
Hola David,
ResponderEliminarGracias por el comentario, me alegra que te haya ayudado, esa era la intención.
A OSPF y BGP podías llegar a través del índice inicial pero ya he actualizado esta en la que estamos y tienes el enlace a cada uno de ellos.
Has pasado por los laboratorios? Creo que es lo mejor del blog.
Un saludo
Excelente blog!
ResponderEliminarMuy buen blog! Gracias por el aporte!
ResponderEliminarGracias a ti Mauricio. Gracias por decirlo y agradecerlo. Saludos
EliminarBuen material, gracias por el aporte!!
ResponderEliminar