Este documento describe el protocolo de enrutamiento interno EIGRP. EIGRP es un protocolo híbrido que tiene características de vector distancia y estado de enlace. Calcula métricas compuestas basadas en ancho de banda, retardo, carga y otros factores. Usa el algoritmo DUAL para calcular el mejor camino basado en las métricas reportadas y factibles. También describe conceptos como rutas externas, sumarización, EIGRP Stub y vecinos unicast.
EIGRP - Protocolo de enrutamiento interior mejorado
1. EIGRP – Enhanced Interior Gateway RoutingEIGRP – Enhanced Interior Gateway Routing
ProtocolProtocol
Introducción al protocolo y característicasIntroducción al protocolo y características
Versión 1.0Versión 1.0
2. ¿Qué es EIGRP?
Es un protocolo de enrutamiento interno (IGP) que sirve para el
intercambio de rutas. Es comparable con OSPF en cuanto a
escalabilidad y funcionalidades, pero con RIP en cuanto al tipo de
protocolo (similar a vector distancia).
Características principales de EIGRP
- Protocolo considerado “híbrido” por tener características de “vector distancia” y
“estado enlace”, al tener cierto conocimiento de la topología.
- La métrica se deriva de los siguientes factores: Bandwidth, Delay, Load, Reliability
y MTU.
- Las publicaciones de rutas (updates) y demás paquetes EIGRP viajan usando el
protocolo IP 88 (RTP – Reliable Transport Protocol).
- Su distancia administrativa es de 90.
- Los updates viajan en multicast (224.0.0.10).
- La máscara de subred y nexthop viajan en los updates (soporta VLSM).
- Soporta autenticación de mensajes.
- Soporta balanceo de carga sobre enlaces de ancho de banda desiguales.
Introducción
3. Establecimiento de sesión e intercambio de rutas.
Arquitectura y funcionamiento
1. Router A envía un Multicast Hello, buscando por vecinos EIGRP.
PENDING
MULTICAST
HELLO
224.0.0.10
PENDING
UNICAST
UPDATE +
INIT + ACK
UNICAST
UPDATE +
INIT
NO PENDING
TOPOLOGY
TABLE
POISON
REVERSE END OF TABLE
TOPOLOGY
TABLE
POISON
REVERSE
ROUTER “A” ROUTER “B”
2. Router B responde con un paquete poniendo al Router A en estado “Pending”, en el cual no puede
enviar ninguna información de enrutamiento.
3. Router B envía un paquete Unicast a Router A, con el bit de inicialización “Init” activado.
4. Router A responde también con el bit “Init” mas una confirmación del paquete recibido
(“Acknowledgement”). SESIÓN ESTABLECIDA
5. Router B retira a A del estado “Pending”, permitiéndole el envío de tablas topológicas (rutas).
6. Empieza el intercambio de tablas topológicas (rutas), cada ruta recibida es respondida con un
“Poison Reverse” (misma ruta pero métrica máxima para asegurar la estabilidad).
7. El envío de rutas termina con un paquete “End of Table”.
8. Los routers quedan intercambiando paquetes “hello” unicast para mantener la adyacencia.
HELLO! HELLO!
4. Configuración básica.
Arquitectura y funcionamiento
ROUTER “A” ROUTER “B”
192.168.1.1/24 192.168.2.1/24
10.1.1.1/30 10.1.1.2/30
router eigrp 1234
network 10.1.1.0 0.0.0.3
network 192.168.1.0
no auto-summary
Con el comando network NO se definen las redes que se van a publicar, sino las redesCon el comando network NO se definen las redes que se van a publicar, sino las redes
de las interfaces donde se habilitará EIGRP, en formato de clase completa (classful).de las interfaces donde se habilitará EIGRP, en formato de clase completa (classful).
Estas redes de interfaz son a su vez las que serán publicadas en la red.Estas redes de interfaz son a su vez las que serán publicadas en la red.
La opciLa opción de colocar un wildcard es opcional y sirve para habilitar EIGRP en subredesón de colocar un wildcard es opcional y sirve para habilitar EIGRP en subredes
específicas.específicas.
router eigrp 1234
network 10.1.1.0 0.0.0.3
network 192.168.2.0
no auto-summary
5. Cálculo de métricas.
La métrica en EIGRP, conocida como métrica compuesta (Composite Metric) puede
ser calculada en función a los parámetros de interfaz Bandwidth, Delay, Load,
Reliability y MTU, mediante la siguiente fórmula:
Arquitectura y funcionamiento
MÉTRICA = 256 * (( K1 * BWmin + K2 * BWmin + K3 * ∑DLY ) * X
)
256-LOAD
Donde X = K5/(reliability + K4) ; para K1 ≠ 1
X = 1 ; para K1 = 1
Siendo los valores de las constantes: K1 = K3 = 1 y las demás cero, la fórmula
queda sólo dependiendo de los parámetros Bandwidth y Delay.
MÉTRICA = 256 * ( BWmin + ∑DLY )
Para que las métricas escalen, los valores de BW para EIGRP cambian de la
siguiente forma:
MÉTRICA = 256 * ( 107
+ ∑DLYusec )
BWminKbps 10
6. Cálculo de métricas.
Ejemplo:
Arquitectura y funcionamiento
10.1.1.0/24
BW = 1000Kbps
DELAY = 100usec
BW = 100Kbps
DELAY =
1000usec
BW = 56Kbps
DELAY =
2000usec
ROUTER A ROUTER B ROUTER C
MÉTRICA = 256 * ( 107
+ 100 + 1000 + 2000
)
56 10
MÉTRICA = 256 * ( 178571 + 310 ) el residuo de la división se
ignora
MÉTRICA =
45793536
CÁLCULO DE MÉTRICA COMPUESTA HACIA 10.1.1.0/24 EN ROUTER C
7. Cálculo de métricas.
Notas adicionales:
- Si los valores de “K” se modifican para que los parámetros Load y Reliability
entrne al cálculo, la toma de estos valores no sería real pues todos los parámetros
de interfaz sólo se miden cuando existe un cambio en el Bandwitdh o Delay, esto
no es suficiente para la lectura de Load y Reliability, los cuales cambian
constantemente.
Arquitectura y funcionamiento
- Todos los valores “K” deben ser iguales en todos los routers, para que las
vecindades levanten correctamente y los riesgos de un loop sean minimizados.
- Los valores de Bandwitdh y Delay dependerán de la velocidad de la interfaz, pero
son modificables con los comandos de interfaz bandwidth y delay
respectivamente.
8. Diffusing Update Algorithm (DUAL).
DUAL es el algoritmo utilizado por EIGRP para calcular la mejor métrica.
En el siguiente ejemplo, se calcula el mejor camino hasta Router F, desde el punto
de vista de Router A.
Arquitectura y funcionamiento
ROUTER A
ROUTER B
ROUTER FROUTER D
ROUTER E
ROUTER C
REPORTED DISTANCE (RD)
FEASIBLE DISTANCE (FD)
REPORTED DISTANCE: Métrica reportada por cada vecino hacia el destino
final.
FEASIBLE DISTANCE: Métrica total hacia el destino final a través de cada
150
150
100 100
100
150
150
9. Difusing Update Algorithm (DUAL).
Al calcular los valores FD y RD, se deben tener en cuenta las siguientes
condiciones:
- La ruta escogida será la que tenga el menor FD.
- Las demás rutas no deben tener un RD mayor que el menor FD, de lo contrario se
considerará una ruta inválida como protección ante posibles LOOPs.
Arquitectura y funcionamiento
ROUTER
A
ROUTER
B
ROUTER
F
ROUTER
D
ROUTER
E
ROUTER
C
REPORTED DISTANCE (RD)
FEASIBLE DISTANCE (FD)
150
150
100 100
100
150
150
A través
de RD FD
Menor
FD OBS
ROUTER
E 100 200 200 Mejor ruta
ROUTER
D 100 250 200 Ruta backup
ROUTER
B 300 450 200
Ruta
inválida
(posible
LOOP)
10. Difusing Update Algorithm (DUAL).
El mecanismo de detección de LOOPs puede marcar ciertas rutas válidas como
inválidas, como en el ejemplo.
Sin embargo, el algoritmo está hecho para cubrir casos como el siguiente:
Arquitectura y funcionamiento
ROUTER
F
ROUTER
B
ROUTER
D
ROUTER
C
ROUTER
A
REPORTED DISTANCE (RD)
FEASIBLE DISTANCE (FD)
150
20
150
20
100
En este ejemplo, desde el punto de vista de Router A hacia Router F, el RD
(reported distance) reportado por Router C hacia Router F indica un loop real y debe
ser invalidado (RD 340 > FD 300).
11. Difusing Update Algorithm (DUAL).
La mejor ruta de contingencia en caso de fallas es conocida como el Feasible
Sucessor (FS), el cual acelerará la conmutación en caso de fallas.
Arquitectura y funcionamiento
- En caso de existir un Feasible Sucessor, la conmutación se dará en cuestión de
milisegundos.
ROUTER
A
ROUTER
B
ROUTER
F
ROUTER
D
ROUTER
E
ROUTER
C
150
150
100 100
100
150
150
A través
de RD FD
Menor
FD OBS
ROUTER
E 100 200 200
ROUTER
D 100 250 200
ROUTER
B 300 450 200
Mejor ruta
Ruta backup
(FS)
Ruta inválida
(posible
LOOP)
- En caso de no existir un FS, si existen rutas inválidas, éstas serán re-calculadas,
en el caso del ejemplo, Router A pondrá a Router F en estado Active para iniciar
este recálculo y la ruta será revalidada (el proceso Active será detallado a
continuación).
12. Estados Activo y Pasivo (Active / Passive).
Una ruta se encuentra en estado Passive cuando se tiene identificado un FS o no
existen rutas de contingencia (habiendo ya consultado a todos los vecinos a través
de queries EIGRP ).
En caso no se tenga un FS identificado o en camino principal se haya perdido, la
ruta será puesta en estado Active hasta encontrar un FS válido o hasta saber,
luego de haber consultado a todos los vecinos, que no existe una ruta de
contingencia.
Arquitectura y funcionamiento
ROUTER
A
ROUTER
B
ROUTER
F
ROUTER
D
ROUTER
C
150
100 100
150
150
- En Router A, la ruta principal hacia
la red 10.1.1.0/24 es a través de
Router D.
- No existe un FS, pues la ruta de
contingencia es inválida, al ser el
RD mayor que el FD
10.1.1.0/24
- Al caer el enlace principal, no existe una ruta para llegar a la red 10.1.1.0/24, mucho menos un
Feasible Sucessor (FS). La ruta es puesta en estado Active, Router A envía un query a Router
B y éste contesta con una ruta válida, pues desde su punto de vista no existe un LOOP.
En caso un vecino no conteste a unEn caso un vecino no conteste a un queryquery positiva o negativamente, lapositiva o negativamente, la
ruta quedará en estadoruta quedará en estado SIA (Stuck en Active)SIA (Stuck en Active) por 3 minutos, luego depor 3 minutos, luego de
los cuales la sesión con este vecino se reiniciará.los cuales la sesión con este vecino se reiniciará.
13. Rutas externas.
Una ruta externa es cualquier ruta que ha sido redistribuida en EIGRP, cuyo origen
puede ser un protocolo dinámico, una ruta estática o una red directamente
conectada.
La ruta es marcada como “D EX” en la tabla de rutas:
Arquitectura y funcionamiento
Router# show ip route
…
D EX 20.1.1.0 [170/2560025856] via 10.1.1.4, 00:07:26, FastEthernet0
Router# show ip eigrp topo 172.31.1.98 255.255.255.255
...
External data:
Originating router is 172.31.4.100 (this system)
AS number of route is 1
External protocol is OSPF, external metric is 0
Administrator tag is 150 (0x00000096)
Además la ruta externa es asignada con una distancia administrativa de 170, para
preferir rutas internas sobre rutas aprendidas fuera del AS.
La ruta contiene la siguiente información adicional: Router ID originador, número de
AS, protocolo originador, métrica externa y etiqueta (tag) asignada (opcional).
14. Sumarización de rutas.
Arquitectura y funcionamiento
La sumarización puede ser automática o manual. La automática siempre sumarizará
las redes hasta la clase A, B ó C.
Siempre se recomienda el uso de sumarización manual para tener un mejor control y
evitar comportamientos no deseados, es por eso que la sumarización automática
está deshabilitada por defecto.
Ejemplo de sumarización automática:
router eigrp 1234router eigrp 1234
auto-summaryauto-summary
Ejemplo de sumarización manual:
interface FastEthernet 0/0interface FastEthernet 0/0
ip summary-address eigrp 1234 172.16.10.0 255.255.255.0 5ip summary-address eigrp 1234 172.16.10.0 255.255.255.0 5
S
172.16.10.4/30 172.16.0.0/16
S
172.16.10.4/30 172.16.10.0/24
F0/0
Notas importantes sobre rutas sumarizadas en EIGRP:
- Toda red sumarizada genera una ruta a null0 en la tabla EIGRP.
- Tienen una distancia administrativa de 5, puede ser cambiada sólo en rutas manuales,
típicamente se hace cuando se quiere sumarizar todas las redes en una ruta por defecto
0.0.0.0, para no sobreescribir otra ruta por defecto previamente aprendida.
15. EIGRP Stub.
Arquitectura y funcionamiento
CORE
Como vimos anteriormente, cada vez que un router EIGRP pierde una red, enviará
consultas (queries) para encontrar un camino principal o FS.
En el ejemplo, si Router A pierde una ruta, como por ejemplo una interfaz conectada,
enviará consultas a 8 routers, en redes más grandes esto podría ser un problema de
escalabilidad.
ROUTER
A
La solución es configurar EIGRP Stub en los routers que sabemos que no tendrán
más redes que las directamente conectadas, así se evitarán queries innecesarias.
Se utiliza el comando eigrp stub, especificando qué redes quiero enviar al vecino
(connected, summary, static, etc.)
router eigrp 1234
eigrp stub [connected |
summary | redistributed |
static | receive-only]
16. EIGRP Unicast.
Arquitectura y funcionamiento
EIGRP Passive-Interface.
Es posible configurar vecinos EIGRP unicast manualmente, esto servirá para
cuando, por ejemplo, el enlace no soporte el envío o recepción de paquetes
multicast.
En estos casos, todo intercambio de paquetes para formar la adyacencia ser[a
dirigido a la IP configurada. El comando a utilizar es:
router eigrp 1234
neighbor [dirección IP del vecino] [interfaz opcional]
Al igual que en otros protocolos, se puede deshabilitar el envío de updates EIGRP
por las interfaces donde sabemos que no habrá vecinos, para evitar tráfico
innecesario.
En una interfaz pasiva tampoco se formarán adyacencias, pero dicha interfaz se
publicará hacia el resto de la red. El comando a utilizar es:
router eigrp 1234
passive-interface [interfaz]
17. Timers EIGRP.
Arquitectura y funcionamiento
Como vimos al inicio, luego de formar una adyacencia, los vecinos EIGRP quedan
intercambiando ‘hellos’ para mantenerla. El periodo de intercambio (hello-interval)
es cada 5 segundos en casi todos los casos (en Frame-relay multipunto de menos
de 1.5Mbps o ISDN es cada 60 segundos).
Si no se reciben 3 hellos consecutivos (15 segundos), se habrá cumplido el
hold-time, con lo cual el vecino se declarará caído.
ROUTER “A” ROUTER “B”
HELLO!
Esperand
o HELLO
1
Esperand
o HELLO
2
Esperand
o HELLO
3
Vecino
CAIDO!!
HELLO!HELLO!
Es posible modificar estos timers con los siguientes comandos:
ip hello-interval eigrp [AS] [segundos]
ip hold-time eigrp [AS] [segundos]
18. key chain [nombre1]
key [número arbitrario]
key-string [contraseña EIGRP]
interface [interfaz]
ip authentication key-chain eigrp [AS] [nombre1]
ip authentication mode eigrp [AS] md5
Autenticación MD5.
Arquitectura y funcionamiento
La autenticación de paquetes EIGRP previene a la red de recibir información de
enrutamiento falsa, inyectada por equipos no autorizados.
El único modo disponible es MD5, el cual es un método fuerte de encriptación y no
permite ver las contraseñas reales directamente.
key chain LLAVERO-EIGRP
key 1
key-string LLAVE-SECRETA
interface FastEthernet0/0
ip authentication key-chain eigrp 1234 LLAVERO-EIGRP
ip authentication mode eigrp 1234 md5
19. Balanceo de carga desigual.
Arquitectura y funcionamiento
Para lograr balanceo de carga con métricas desiguales es necesario lo siguiente:
1. Tener dos o más rutas válidas, es decir, que cumplan la condición RD < FD, de tal manera
que una sea FS de la otra.
2. Escoger un valor numérico entero, el cual al multiplicarlo por la menor métrica, el resultado
sea mayor o igual que la mayor métrica. Este valor será configurado como la varianza
(variance).
La proporción de balanceo estará determinada por la división entre la mayor métrica y las
demás métricas.
Criterios de balanceo:
• En ambos casos RD < FD, por lo tanto
ambas rutas son válidas y existe un FS.
• La varianza es igual a 2, pues 2 x
1459200 = 2918400, mayor que 2739200.
FD = 2739200; RD = 1433600
FD = 1459200; RD = 1433600
Ruta principal
Feasible Sucessor
BW 1000k
DLY 1000us
BW 2000k
DLY 1000us
BW 2000k
DLY 1000us
BW 2000k
DLY 1000us
Proporción de balanceo:
2739200 / 1459200 = 1.877, aprox. 15/8
Configuración:
router eigrp 1234
variance 2
20. Ancho de banda utilizado por EIGRP.
Arquitectura y funcionamiento
El ancho de banda que EIGRP puede utilizar como máximo es el 50% del valor
configurado en la interfaz con el comando bandwidth (o el valor por defecto).
Esto no siempre es suficiente, sobretodo en enlaces de bajo ancho de banda. Para
esos casos se recomienda:
- En enlaces punto a punto dedicados, configurar el 100% del ancho de banda.
-En enlaces con un CIR y una tasa de exceso, configurar al valor del CIR.
- Tener en cuenta que al variar el valor del comando bandwidth para ajustar la
métrica, el ancho de banda utilizado por EIGRP también se verá afectado. En ese
caso, es preferible utilizar el comando delay para modificar la métrica.
interface [interfaz]
ip bandwidth-percent eigrp [AS] [porcentaje]
interface FastEthernet0/0
ip bandwidth-percent eigrp 1234 80
21. Comandos de monitoreo.
Arquitectura y funcionamiento
- show ip eigrp neighbor
Algunos datos básicos de cada vecino, mas los siguientes:
- SRTT: el tiempo en milisegundos que el vecino toma en responder a paquetes.
- RTO: cuando esperará este router antes de retransmitir si no se recibe confirmación
de recepción (acknowledgement).
- Q Cnt: número de paquetes esperando confirmación de recepción.
- Seq Num: Contador de paquetes enviados al vecino.
- show ip eigrp topology summary
Indica información resumida de EIGRP: cantidad de vecinos, paquetes enviados, etc.
- show ip eigrp topology
Indica si la ruta está Pasiva o Activa, así como la distancia, FD, RD y FS.
- show ip eigrp topology [ active | all-links | [network] [mask] ]
Información depurada de la tabla topológica.
- show ip eigrp topology zero
Rutas sin Feasible Sucessor o que no están en la tabla de rutas pues otro protocolo
les ganó.
22. Reinicio de sesiones.
Arquitectura y funcionamiento
- clear ip eigrp [AS]
Reinicia todo el proceso EIGRP
- clear ip eigrp [AS] neighbor
Reinicia el vecino especificado por el comando
- clear ip eigrp [AS] topology
Reinicia la topología mas no las vecindades
Debugs.
- debug ip eigrp [AS]
- debug ip eigrp [AS] neighbor
- debug ip eigrp [AS] notifications
- debug ip eigrp [AS] summary
23. Lectura de eventos.
Arquitectura y funcionamiento
Para ver información sobre eventos en vecindades, usar el comando eigrp log-
neighbor-changes.
Apr 21 11:02:22.285: … Neighbor 40.1.24.134 (ATM1/0.2934) is up: new
adjacency
Vecino nuevo.
Apr 21 11:02:22.941: … Neighbor 40.1.16.98 (ATM1/0.1955) is down: holding time
expired
Pasaron 15 segundos sin recibirse hellos de este vecino.
Apr 21 11:02:22.953: … Neighbor 40.1.7.86 (ATM1/0.872) is down: peer restarted
El router vecino reinició la adyacencia, se debe investigar por qué lo hizo.
Apr 21 10:52:24.787: … Neighbor 60.1.1.2 (FastEthernet1/1) is down: retry limit
exceed
Se retransmitió un paquete EIGRP 16 veces, sin recibirse confirmación.
Apr 21 11:12:42.945: … Neighbor 40.1.16.110 (ATM1/0.1963) is down: route filter
changed
Se reconfiguró un filtro EIGRP, por lo que la sesión se reinició
automáticamente.
24. Gracias.Gracias.
Contacto acerca de esta presentación:Contacto acerca de esta presentación:
Gianpietro Lavado ChiarellaGianpietro Lavado Chiarella
Network Consulting EngineerNetwork Consulting Engineer
Cisco SystemsCisco Systems
glch@cisco.comglch@cisco.com // glavado@cisco.comglavado@cisco.com