Métrica EIGRP
Para poder establecer la distancia hacia la red de destino, EIGRP utiliza la métrica, donde la más baja es la utilizada para llegar al destino, y la que se instala en la tabla de rutas.
La métrica de este protocolo es una métrica compuesta, la cual está combinada por los siguientes vectores:
- Ancho de banda (BW): es el ancho de banda más bajo en la ruta hacia el destino (el valor de BW se calcula como [10^7]/[menor BW de la ruta en Kbps]).
- Carga (Load): corresponde a la peor carga hacia el destino (mayor carga de la ruta), la que se calcula sobre la base de la velocidad de paquetes y el ancho de banda configurado de la interfaz. Si el valor es 255, significa que la interfaz está 100% cargada.
- Retraso (Delay): la suma de los delay de las interfaces hasta llegar a la red de destino (calculado en decenas de microsegundos [µSeg/10]).
- Confiabilidad (Reliability): es la peor confiabilidad entre origen y destino, y esta se basa en los keepalives. Si el valor es 255, significa que la interfaz, es 100% confiable.
- MTU (Maximum Transmission Unit): este valor puede ser 0 o cualquier entero positivo. Se toma en cuenta la MTU más baja.
- Cantidad de saltos (Hop Count): es la cantidad de redes que debe pasar un paquete para llegar a la red de destino. El valor de este parámetro es acumulativo.
- Jitter: este se mide en microsegundos y se acumula a lo largo de la trayectoria. En la actualidad, EIGRP no tiene la capacidad de medir el Jitter, y por esto, el valor predeterminado es 0.
- Energía (Energy): el uso de la energía, da lugar a rutas con el consumo de energía más bajo que se seleccionan de una manera libre de loops y determinista. La cantidad de energía utilizada es acumulativa. Actualmente, EIGRP no informa el uso de energía, y como tal, el valor predeterminado es 0.
NOTA: es necesario dejar como nota, y una muy importante, que la MTU y la cantidad de saltos no son valores que se utilizan para calcular la métrica, solo son usados para establecer una mejor ruta hacia el destino cuando hay dos o más métricas iguales.
La fórmula de la métrica consiste en valores K (coeficientes), estos valores son los que especifican los parámetros a tomar en cuenta para calcular la métrica. Estos valores, en la configuración de router van del 1 al 5, y en la configuración de address-families (cuando se utiliza EIGRP named), los valores K van del 1 al 6.
La fórmula completa de la métrica de EIGRP es:
{([K1*BW] + [K2*BW]/[256- Load] + [K3*Delay])*(K5/[Reliability+K4])} * 256
Por defecto, los valores de los coeficientes se encuentran configurados de la siguiente forma, con el fin de brindar el mejor rendimiento en la mayoría de las redes:
- K1 == K3 == 1
- K2 == K4 == K5 == 0
- K6 == 0
Como solo los valores de K1 y K3 son 1, la fórmula reducida queda de la siguiente forma:
{([1*BW] + [0*BW]/[256- Load] + [1*Delay])*(0/[Reliability+0])} * 256 {([1*BW] + [0] + [1*Delay])*(1)} * 256 ([K1*BW] + [K3*Delay]) * 256
En caso de que K5 sea configurado en 0, el coeficiente de confiabilidad se establece en 1.
Coeficientes K1 y K2
K1 permite que la selección de la ruta hacia la red de destino, sea basada en el ancho de banda, mientras que K2, se usa para simular la congestión y entregar el throughput disponible de la interfaz, basado en la carga reportada por esta, ajustado al rendimiento máximo de la interfaz.
Coeficiente K3
Este coeficiente permite seleccionar la ruta usando la latencia o retardo (delay). EIGRP usa valores basados en un solo sentido.
Coeficientes K4 y K5
Estos dos coeficientes son usados para la selección basada en la calidad del enlace y la pérdida de paquetes.
Como se comentó en la fórmula anteriormente, si K5 se configura en 0, el valor de esa sección de la fórmula se define en 1, para no dejar en 0 el valor final del cálculo final.
Coeficiente K6
Este coeficiente es utilizado para permitir atributos extendidos (Extended Attributes), los cuales, se pueden utilizar para reflejar en una métrica agregada mayor que aquellos que tienen menor consumo de energía. Actualmente hay dos de estos atributos, los cuales, son el Jitter y Energía.
Métrica infinita
La métrica que se define como infinita, es aquella que especifica que la red es inalcanzable, y que, por lo tanto, esta ruta no será puesta en la tabla de enrutamiento.
Cuando el valor del delay es 4294967295 (0xFFFFFFFF en hexadecimal), la métrica se considera infinita.
El valor del ancho de banda que es considerado infinito es 281474976710655, lo que corresponde a 0xFFFFFFFFFFFF en hexadecimal.
Compatibilidad de delay en las interfaces de routers Cisco (Según la RFC 7868)
Bandwidth (Kbps) | Classic Delay | Wide Metrics Delay | Interface type |
---|---|---|---|
9 | 500000000 | 500000000 | Tunnel |
56 | 20000000 | 20000000 | 56 Kbps |
64 | 20000000 | 20000000 | DS0 |
1544 | 20000000 | 20000000 | T1 |
2048 | 20000000 | 20000000 | E1 |
10000 | 1000000 | 1000000 | Ethernet |
16000 | 630000 | 630000 | TokRing16 |
45045 | 20000000 | 20000000 | HSSI |
100000 | 100000 | 100000 | FDDI |
100000 | 100000 | 100000 | FastEthernet |
155000 | 100000 | 100000 | ATM 155 Mbps |
1000000 | 10000 | 10000 | GigaEthernet |
2000000 | 10000 | 5000 | 2 GigaEthernet |
5000000 | 10000 | 2000 | 5 GigaEthernet |
10000000 | 10000 | 1000 | 10 GigaEthernet |
20000000 | 10000 | 500 | 20 GigaEthernet |
50000000 | 10000 | 200 | 50 GigaEthernet |
100000000 | 10000 | 100 | 100 GigaEthernet |
200000000 | 10000 | 50 | 200 GigaEthernet |
500000000 | 10000 | 20 | 500 GigaEthernet |
Verificación de los valores de la interfaz
Para poder ver los valores de los vectores que usa la métrica, con el comando show interfaces es posible saber qué es lo que tiene configurado el router:
R1#show interfaces ethernet 0/0 Ethernet0/0 is up, line protocol is up Hardware is AmdP2, address is aabb.cc00.1000 (bia aabb.cc00.1000) Internet address is 192.168.12.1/24 MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:04, output 00:00:03, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 969 packets input, 94501 bytes, 0 no buffer Received 964 broadcasts (0 IP multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 input packets with dribble condition detected 1375 packets output, 119269 bytes, 0 underruns 0 output errors, 0 collisions, 1 interface resets 3 unknown protocol drops 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
Verificación de valores K
Para poder saber los valores asignados a las K, con el comando show ip protocols es posible verlos:
R1#show ip protocols *** IP Routing is NSF aware *** Routing Protocol is "application" Sending updates every 0 seconds Invalid after 0 seconds, hold down 0, flushed after 0 Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Maximum path: 32 Routing for Networks: Routing Information Sources: Gateway Distance Last Update Distance: (default is 4) Routing Protocol is "eigrp 10" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Default networks flagged in outgoing updates Default networks accepted from incoming updates EIGRP-IPv4 Protocol for AS(10) Metric weight K1=1, K2=0, K3=1, K4=0, K5=0 NSF-aware route hold timer is 240 Router-ID: 192.168.1.1 Topology : 0 (base) Active Timer: 3 min Distance: internal 90 external 170 Maximum path: 4 Maximum hopcount 100 Maximum metric variance 1 Automatic Summarization: disabled Maximum path: 4 Routing for Networks: 192.168.1.0 192.168.12.1/32 192.168.13.1/32 Routing Information Sources: Gateway Distance Last Update 192.168.12.2 90 01:09:36 192.168.13.2 90 01:09:36 Distance: internal 90 external 170
Si se desea cambiar estos valores, es posible hacerlo en la configuración de router:
R1(config)#router eigrp 10 R1(config-router)#metric weights ? <0-8> Type (Only TOS 0 supported) R1(config-router)#metric weights 0 ? <0-255> K1 R1(config-router)#metric weights 0 1 ? <0-255> K2 R1(config-router)#metric weights 0 1 0 ? <0-255> K3 R1(config-router)#metric weights 0 1 0 1 ? <0-255> K4 R1(config-router)#metric weights 0 1 0 1 0 ? <0-255> K5 R1(config-router)#metric weights 0 1 0 1 0
El valor de Type of Service siempre se configura en 0, y como se puede ver, los valores de las K no solo pueden ser 1, pueden ser un valor entero entre 0 y 255.
Es necesario tener en cuenta que, si los valores K son diferentes entre dos vecinos, no se establece la adyacencia entre estos:
R1(config-router)#metric weights 0 1 1 1 0 0 R1(config-router)#end R1# *Jul 20 01:38:47.776: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.13.2 (Serial1/0) is down: metric changed *Jul 20 01:38:47.777: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.12.2 (Ethernet0/0) is down: metric changed *Jul 20 01:38:48.511: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.12.2 (Ethernet0/0) is down: K-value mismatch *Jul 20 01:38:49.687: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.13.2 (Serial1/0) is down: K-value mismatch R1#show ip prot | in Metric weight Metric weight K1=1, K2=1, K3=1, K4=0, K5=0
Modificación del valor de ancho de banda de la interfaz
Para poder ajustar la métrica, es posible modificar el valor del ancho de banda en la interfaz, gracias al comando bandwidth (este valor no es el valor físico real del BW de la interfaz):
R1(config)#do sh int e0/0 | in BW MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec, R1(config)#int e0/0 R1(config-if)#bandwidth ? <1-10000000> Bandwidth in kilobits inherit Specify how bandwidth is inherited qos-reference Reference bandwidth for QOS test receive Specify receive-side bandwidth R1(config-if)#bandwidth 5000 R1(config-if)#do sh int e0/0 | in BW MTU 1500 bytes, BW 5000 Kbit/sec, DLY 1000 usec,
NOTA: no se recomienda modificar el valor del ancho de banda, porque este afecta a otros componentes como, por ejemplo: QoS o si se tiene también habilitado OSPF. Por esto, Cisco especifica que es mejor modificar el delay.
Modificación del valor de delay de la interfaz
La modificación de este valor, es similar al del BW, se utiliza el comando delay. Recordar que en la configuración el valor está en decenas de segundos:
R1(config)#do sh int e0/0 | in DLY MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec, R1(config)#int e0/0 R1(config-if)#delay ? <1-16777215> Throughput delay (tens of microseconds) R1(config-if)#delay 500 R1(config-if)#do sh int e0/0 | in DLY MTU 1500 bytes, BW 10000 Kbit/sec, DLY 5000 usec,