martes, 27 de enero de 2009

¿Distancia Administrativa o Métrica?

Es muy común escuchar gente involucrada en algún proceso de networking que habla de las diferentes "métricas" de los protocolos de enrutamiento dinámicos.

Es bastante común escuchar por ahi:
"La métrica de ospf es 110"

NO!!!!!


Vamos a diferenciar entre Métrica y Distancia Administrativa.



Cada protocolo de enrutamiento computa o calcula una métrica, que es un valor que representa la "dificultad" o el "costo" para llegar a una ruta de destino.

Pensemos en el costo como lo que se nos viene a la mente: el dinero.

Si un router tiene dos caminos hacia la misma red, sólo pondrá en la tabla de enrutamiento a aquella que tenga mejor métrica (menor costo). La única excepción es cuando los dos caminos tienen exactamente la misma métrica.

En ese caso se agregarán ambos caminos a la tabla de enrutamiento, este comportamiento se denomina frecuentemente ECMP (Equal Cost MultiPath). La cantidad de rutas de misma métrica que un router permite agregar a la tabla depende directamente del sistema operativo del mismo y de la configuración maximum-paths que pongamos en la configuración del equipo.

Cada protocolo de enrutamiento dinámico tiene una forma de calcular la métrica de la ruta hacia la red de destino. Veamos la forma rápidamente teniendo en cuenta el diagrama en donde se desean enviar paquetes desde la red A hacia la red B:

[caption id="attachment_86" align="aligncenter" width="500" caption="Red de Ejemplo"]Red de Ejemplo[/caption]

Tengamos en cuenta que todos los routers hablan el mismo protocolo de enrutamiento dinámico, si usamos:

RIP [v1|v2]:

Dado que es un protocolo {es:Vector_de_distancias|vector distancia}, cuenta la cantidad de "saltos" (routers) que se deben atravesar para llegar al destino, por lo que el camino A-B-C sería el preferido, aunque sea el camino con menor ancho de banda.

OSPF:

El camino con mayor ancho de banda será el preferido, por lo que el camino A-F-G-C será el que recorran los paquetes.

La fórmula para obtener la métrica es:

[math]\boxed{m = (\frac{10^8}{AnchoDeBanda})}[/math]

Donde el numerador es lo que se llama "Ancho de banda de referencia" y puede ser cambiado por otro número arbitrario en la configuración (pero debe ser igual en todos los routers).

EIGRP:

Este interesante protocolo en su configuración por defecto va a calcular la métrica de la ruta de acuerdo a dos variables: el ancho de banda y el retardo, pero también se puede configurar para que considere la confiabilidad, y la carga. Lamentablemente esta maravilla es un protocolo propietario de Cisco por lo que no se encuentra disponible en routers de otras marcas.
Nota: En muchos lugares se menciona que EIGRP calcula la métrica teniendo en cuenta el {es:MTU} de la interfase como variable K5. Sin embargo en la Librería de Certificación Oficial de CCNA de Wendell Odom en el Capítulo 10, página 382 se menciona que no se usa la MTU como variable de cálculo de la métrica de EIGRP.
He buscado en la web para tratar de sacarme la duda, y varias fuentes de información confirman que MTU se usa, así que el que quiera aportar algún dato útil acerca de este tema, por favor deje un comentario en el post.

La fórmula por defecto para el cálculo de la métrica de EIGRP es:

[math]\boxed{m = 256*(AnchoDeBanda+Retardo)}[/math].

Como podemos ver, cada métrica calculada por cada protocolo va a tener una forma muy distinta. Si usamos RIP va a ser un número menor a 16, si usamos OSPF va a ser menor a 65535 y si usamos EIGRP tendremos un número de por lo menos 7 cifras.

Por esto, vemos que cada protocolo tiene una forma distinta de medir la calidad de un camino hacia una red remota, y podemos ver que algún protocolo es mucho más preciso (o puede ver mayor cantidad de variables al momento de elegir).

Ahora el problema se plantea cuando en la red anterior todos los routers ejecutan varios protocolos de enrutamiento dinámico a la vez.

Supongamos que en la red se corre RIP y EIGRP:

Todas las métricas de RIP serían significativamente menores a las de EIGRP, por lo que equivocadamente podríamos pensar que el router va a optar por los caminos RIP dada la métrica más baja.

En este punto es donde entra la tabla de Distancia Administrativa: en esta tabla se define cuan "confiables" son los resultados de un protocolo de enrutamiento. La presentamos a continuación:

[table=3]

Dada la misma, podemos decir que el origen de la ruta que tenga menor distancia administrativa va a ser el que termine llenando la tabla de enrutamiento. Por ejemplo, si tenemos que:

RIP y OSPF conocen como llegar a la red a 200.0.0.0/24, dado que OSPF tiene menor distancia administrativa (110 < 120), OSPF va a ser el que escriba la ruta en la tabla de enrutamiento.
Solo las mejores rutas quedan en la tabla de enrutamiento. Las alternativas pueden estar (o no) en la tabla de topología del protocolo en cuestión (si este la tiene).

Por esto al afectuar el comando show ip route vamos a ver cosas como las siguientes:

[...]
C 123.39.65.152 is directly connected, Serial0
S 20.6.14.0/24 [1/0] via 23.43.44.62
O 159.35.46.0 [110/65] via 20.153.168.2, 00:00:03, Serial0
R 200.0.0.0/24 [120/3] via 23.43.44.1, 00:00:03, Serial0
[...]


En el mismo se puede ver a la izquierda el origen de la ruta: (C=conectada, S=Estática, O=OSPF, R=RIP).

En la tabla de enrutamiento de ejemplo que presentamos anteriormente vemos el origen, el prefijo destino y entre corchetes [distancia administrativa/métrica], por lo que podríamos ver que RIP nos enseña que podemos llegar a la red 200.0.0.0/24 si pasamos a através de 3 saltos de router.

Es evidente que no se conoce la misma red por OSPF (ni ningún otro protocolo de distancia administrativa menor), porque sino esa red no se aprendería por RIP.

Espero que haya sido claro el concepto a pesar de lo largo que quedo el post.

Saludos!

18 comentarios:

fede dijo...

magnifico post Ariel¡¡¡, sin embargo me gustaria me aclarases algunas dudas que me surgen:

IGRP es un protocolo de estado de enlace o vector distancia?? ¿¿¿IGRP ya no se utiliza, verdad??
" ...cuando los dos caminos tienen exactamente la misma métrica...se agregarán ambos caminos a la tabla de enrutamiento", al tener dos o mas(hasta maximum-paths) rutas ¿¿hay balanceo de carga simetrico??? ¿¿Y cuando se hace balanceo de carga asimetrico???

Gracias Ariel:D
Saludos.

Ariel Weher dijo...

Depende la documentación que leas, se define a EIGRP como un protocolo vector distancia o un protocolo híbrido.

En realidad esta maravilla comparte algunos aspectos con los protocolos vector distancia, pero justamente la "distancia" (número de saltos) no es una de las métricas definidas al momento del cálculo.

Vas a ver que en Cisco siempre hay una excepción a la regla: la cantidad de saltos hasta la ruta de destino sí está contenida dentro de la info que se tiene para cada ruta, pero de nuevo, no interviene en el cálculo de la métrica.

Si no me equivoco IGRP no existe más a partir de la versión 12.2 de IOS.

A su vez, claramente no es un protocolo de estado enlace, porque no tiene un mapa completo de la red, sino que maneja un 'perímetro' de información hasta el siguiente salto.

Por otro lado, el balanceo de carga asimétrico es uno de los temas que estoy preparando desde hace tiempo (la complejidad de los diagramas que hay que hacer me retrasa mucho).
Básicamente te puedo decir que si el protocolo tiene un segundo camino libre de bucles en la tabla de topología pero con una peor métrica (ruta que cumple con una condición de factibilidad que exige el protocolo), el administrador puede configurar una "varianza" que sería como decirle al router:

"Poné en la tabla todos los caminos sin bucles que sean hasta N veces peores que la ruta que está en la tabla (con N distinto de 1 que es el default)".

Con esto se habilita el balanceo asimétrico teniendo en cuenta que la carga se repartirá de acuerdo a un porcentaje que define la métrica de cada ruta.

En caso de que las métricas de dos caminos hacia una red sean iguales (cosa muy improbable porque son números de por lo menos 7 cifras) se activa el balanceo de carga simétrico sin configuración alguna.

De todas formas todos estos temas los tengo en la lista de quehaceres para los próximos posts del sitio.

Saludos!

bruno dijo...

Buenas Ariel. Tengo una duda respecto a OSPF y el balanceo de carga. Lei en un libro que tiene dos posibles balanceos, "Balanceo de carga por paquetes" y "Balanceo de Cargas por detino", La duda seria, cual es la que utiliza OSPF pode defecto, esto es configurable?? Muchas gracias por tu tiempo y atencion.

Ariel Weher dijo...

En realidad el balanceo de carga de igual costo (ECMP) no se basa en OSPF ni en ningún otro protocolo, sino que su funcionamiento radica básicametne en cómo hace el router (o el switch de capa 3) para conmutar los paquetes, ya sea utilizando fast-switching o bien una tecnología que se llama CEF (Cisco Express Forwarding).

Es muy interesante tu pregunta.
Me voy a anotar este tema para hacer un post detallado.

Muchas gracias por participar.

Saludos

Ariel dijo...

Hola. Es Claro hasta un cierto punto, tu post (además de estar completo). Pero mi duda es, sobre el ultimo punto. Si OSPF es el Protocolo de enturamiento con menor distancia administrativa que los que se esté ejecutando (RIP), segun la red 200.0.0.0/24, Porque al ver el contenido de la tabla de enrutamiento figura que esa red fue aprendida por RIP? -_^.

Gracias :)

Ariel

fede dijo...

IGRP es propietario de Cisco, pero EIGRP es estandar??
¿¿cuales son las tres tablas que utilizan los VD para calcular la tabla de routing??
¿¿el algoritmo FSM dual para que se usa??

Gracias Ariel:D

Ariel Weher dijo...

IGRP es propietario de Cisco, pero EIGRP es estandar?? <- Es de Cisco.

¿¿cuales son las tres tablas que utilizan los VD para calcular la tabla de routing?? <- EIGRP tiene la de topología, la de vecinos y finalmente la de rutas.

¿¿el algoritmo FSM dual para que se usa?? <- La Finite State Machine de DUAL es el componente clave por el que IEGRP obtiene las tablas de rutas EIGRP se basa en el Algoritmo de Actualización Difusa y difiere de los otros protocolos de enrutamiento en cuanto a que los cálculos de ruta son compartidos entre múltiples routers.

Saludos

fede dijo...

Muchas gracias por tu clara respuesta Ariel :D

Leandro Di Tommaso dijo...

Ariel, según la currícula de Cisco en EIGRP se utilizan como métricas:
* Ancho de banda
* Retraso
* Confiabilidad
* Carga

De los valores K, dos se asignan al cálculo de la confiabilidad.

Saludos!

Anónimo dijo...

Hola Ariel,
me encanta tu blog, estoy prepAarandome para el CCNA y tu blog me es de gran ayuda
veras no termino de entender si RIPv2 es un protocolo sin clase, ¿no podemos publicar “192.1.1.4″ “en lugar de “192.1.1.0″ (por ejemplo para publicar un enlace serie, /30)???

es decir:
R(config)# router rip
R(config)# version 2
R(config-router)# network 192.1.1.4(para la WAN)
R(config-router)# network 192.1.1.128(para la LAN)

espero que se entienda mi pregunta
Gracias, un saludo para todos:D

Ariel S. Weher dijo...

Si, RIPv2 soporta el envío de máscaras de red en los paquetes de actualización. Por lo tanto permite enviar prefijos de la misma clase y diferente longitud, aun si son discontínuos. Ahora en el caso que mencionas, se puede, pero en las 'network' solo se carga la red con clase.
Si configuras:
R(config)# router rip
R(config)# version 2
R(config-router)# network 192.1.1.4
R(config-router)# network 192.1.1.128
y luego haces un show running config vas a ver que dice
router rip
version 2
network 192.168.1.0

Saludos

Anónimo dijo...

OK, muchas gracias Ariel, supongo k tambien sirve para OSPF y EIGRP.¿Es asi?

muchas gracias, no terminaba de entederlo, saludos y gracias por tu pronta respuesta, saludos:D

Ariel S. Weher dijo...

Para EIGRP sí, con la salvedad de que podes usar una wilcard para limitar.

Por ejemplo:

router eigrp 10
network 10.0.0.0 0.0.0.255

En cambio para OSPF la wilcard tiene que estar sí o sí, además del número de área.

router ospf 10
network 10.0.0.0 0.0.0.255 area 0

Saludos

Anónimo dijo...

Muy buen blog, pero tengo una duda: Si a una red se puede llegar supongamos a través de rip y ospf es obvio que en tabla de enrutamiento aparecerá la ruta aprendida por ospf; pero si el enlace a esta ruta desaparece, en la tabla de enrutamiento aparecería como nueva ruta a esa red de destino la aprendida por rip o es que ya no aparece ninguna ruta a esa red remota????

Anónimo dijo...

oye muy buena expliación amigo si me sirvio de mucho gracias

MOISES RAMIREZ FARIAS dijo...

Excelente post amigo!

Unknown dijo...

Estimado, desde el primer momento que comencé con el estudio de los protocolos, pensé que lo correcto era llamarle "metrica" a la manera de calcular el "costo" y no utilizarlos como sinónimos.
Así, la métrica de RIP son hops (costo x hops), la métrica de Eigrp es BW, Dly, load, reliab y mtu (costo xxxx); y así con los otros

Felipe_990 dijo...

Gracias por la explicación! Quedó clarísimo!

Publicar un comentario