Universidad de Costa Rica Protocolo de Enrutamiento RIP

Anuncio
Universidad de Costa Rica
Facultad de Ingeniería
Escuela de Ingeniería Eléctrica
IE-0425 Redes de Computadoras
I ciclo 2015
Trabajo Final
Protocolo de Enrutamiento RIP
Josué David Vargas
Andrés Sánchez
Cristopher Rodríguez
Iván Brizuela
Grupo 2
Profesor: Eduardo Navas C.
22 de junio de 2015
Introducción
En la actualidad la tecnología de la comunicación digital permite la interconexión
de distintas redes de computadoras que se encuentran geográficamente dispersas
en todo el mundo. Pero para enviar y recibir paquetes de datos entre diferentes
localizaciones geográficas existe una gran cantidad de rutas posibles por las que
estos pueden viajar para llegar a su destino.
Debido a la necesidad de considerar la mejor ruta posible para transmitir los
paquetes de datos entonces surge la necesidad de emplear métodos que permitan
el tránsito eficiente de información en las redes por ello surge el concepto de
algoritmos de enrutamiento. Estos algoritmos deciden porque enrutadores deben
pasar para llegar a su destino.
Este tipo de algoritmos emplean tablas en donde se encuentra la información de
los equipos vecinos y los pesos de las rutas entre ellos para elegir la línea de
salida donde se enviarán los paquetes. Además en el enrutamiento se deben
actualizar las tablas para así poder manejar los cambios de topología y tráfico de
red durante las actividades de la red.
Un ejemplo de implementación de uno de los algoritmos antes mencionados es el
RIP (Routing Information Protocol), el cual será discutido en el presente trabajo.
Evolución de los protocolos de enrutamiento dinámico
Los protocolos de enrutamiento dinámico se han usado en redes desde comienzos
de la década de los ochenta. La primera versión de RIP se lanzó en 1982, pero
algunos de los algoritmos básicos dentro del protocolo ya se usaban en
ARPANETven 1969.
Debido a la evolución de las redes y a su complejidad cada vez mayor, han
surgido nuevos protocolos de enrutamiento. La figura muestra la clasificación de
los protocolos de enrutamiento.
Uno de los primeros protocolos de enrutamiento fue el Routing Information
Protocol (RIP). RIP ha evolucionado a una nueva versión, el RIPv2. Sin embargo,
la versión más nueva de RIP aún no escala a implementaciones de red más
extensas. Para abordar las necesidades de redes más amplias, se desarrollaron
dos protocolos de enrutamiento avanzados: Open Shortest Path First (OSPF) e
Intermediate System-to-Intermediate System (IS-IS). Cisco desarrolló el Interior
Gateway Routing Protocol (IGRP) y el Enhanced IGRP (EIGRP), que también
escala bien en implementaciones de redes más grandes (Graziani, 2008).
Asimismo, surgió la necesidad de interconectar diferentes redes y proveer el
enrutamiento entre ellas. El protocolo Border Gateway Routing (BGP) ahora se
usa entre ISP y entre ISP y sus clientes privados más grandes para intercambiar
información de enrutamiento.
Con la llegada de numerosos dispositivos para consumidores que usan IP, el
espacio de direccionamiento IPv4 está prácticamente agotado. Por tal motivo, ha
surgido el IPv6. A fin de sostener la comunicación basada en IPv6, se han
desarrollado versiones más nuevas de los protocolos de enrutamiento IP.
Protocolos de enrutamiento por vector de distancia en la actualidad
Para los protocolos de enrutamiento por vector de distancia, sólo existen
realmente dos opciones: RIP o EIGRP. La decisión acerca de qué protocolo de
enrutamiento se utilizará en una situación determinada depende de varios
factores, entre los que se incluyen:
 el tamaño de la red,
 la compatibilidad entre los modelos de routers y
 el requisito de conocimientos administrativos.
RIP
Con el tiempo, el RIP ha pasado de ser un protocolo de enrutamiento con clase
(RIPv1) a un protocolo de enrutamiento sin clase (RIPv2). El RIPv2 es un
protocolo de enrutamiento estandarizado que funciona en un entorno de enrutador
de fabricante mixto. Los enrutadores fabricados por empresas diferentes pueden
comunicarse utilizando el RIP. Éste es uno de los protocolos de enrutamiento más
fáciles de configurar, lo que lo convierte en una buena opción para las redes
pequeñas. Sin embargo, el RIPv2 todavía tiene limitaciones. Tanto el RIPv1 como
el RIPv2 tienen una métrica de ruta que se basa sólo en el conteo de saltos y que
se limita a 15 saltos (Graziani, 2008).
Características del RIP:
 Admite el horizonte dividido y el horizonte dividido con envenenamiento en
reversa para evitar loops.
 Es capaz de admitir un balanceo de carga de hasta seis rutas del mismo
costo. El valor por defecto es de cuatro rutas del mismo costo.
Métricas.
Propósito de una métrica
En algunos casos, un protocolo de enrutamiento aprende sobre más de una ruta
hacia el mismo destino. Para seleccionar la mejor ruta, el protocolo de
enrutamiento debe poder evaluar y diferenciar entre las rutas disponibles. Para tal
fin, se usa una métrica. Una métrica es un valor utilizado por los protocolos de
enrutamiento para asignar costos a fin de alcanzar las redes remotas. La métrica
se utiliza para determinar qué ruta es más preferible cuando existen múltiples
rutas hacia la misma red remota.
Cada protocolo de enrutamiento usa su propia métrica. Por ejemplo, RIP usa el
conteo de saltos, EIGRP usa una combinación de ancho de banda y retardo, y la
implementación de OSPF usa el ancho de banda. El conteo de saltos es la métrica
más sencilla para hacer previsiones. El conteo de saltos se refiere a la cantidad de
enrutadores que debe atravesar un paquete para llegar a la red de destino. Para
R3 en la figura 1, la red 172.16.3.0 se encuentra a dos saltos o dos enrutadores de
distancia (Graziani, 2008).
Figura 1: Saltos en los enrutadores
Métricas y protocolos de enrutamiento.
Parámetros de las métricas
Diferentes protocolos de enrutamiento usan diferentes métricas. La métrica
utilizada por un protocolo de enrutamiento no es comparable con la métrica
utilizada por otro protocolo de enrutamiento. Dos protocolos de enrutamiento
diferentes pueden elegir diferentes rutas hacia el mismo destino debido al uso de
diferentes métricas.
El RIP elegirá la ruta con la menor cantidad de saltos, mientras que OSPF elegirá
la ruta con el ancho de banda más alto.
El campo métrica en la tabla de enrutamiento en distintos protocolos
La métrica para cada protocolo de enrutamiento es:
 RIP: conteo de saltos: la mejor ruta se elige según la ruta con el menor
conteo de saltos.
 IGRP e EIGRP: ancho de banda, retardo, confiabilidad y carga; la mejor
ruta se elige según la ruta con el valor de métrica compuesto más bajo
calculado a partir de estos múltiples parámetros. Por defecto, sólo se usan
el ancho de banda y el retardo.
 OSPF: costo; la mejor ruta se elige según la ruta con el costo más bajo.
Figura 2: Ejemplo de saltos
Los protocolos de enrutamiento determinan la mejor ruta en base a la ruta con la
métrica más baja. En el ejemplo de la figura 2 los enrutadores están usando el
protocolo de enrutamiento RIP. El valor de métrica es el segundo valor en los
corchetes para una entrada de la tabla de enrutamiento. En la figura 2, R2 tiene
una ruta hacia la red 192.168.8.0/24 que se encuentra a 2 saltos de distancia.
Diferencias básicas de RIP versión 1 y RIP versión 2
Primero mencionaremos las características más relevantes para RIPv1 y
RIPv2.
RIPv1:



Cada 30 segudos se transmiten las actualizaciones de routing por métrica
255.255.255.255
Un conteo de saltos de 15 ya se considera como infinito, por lo que no se
propaga la actualización de routing al siguiente router.
Para la selección de rutas se utiliza el conteo de saltos.
RIPv2:

A diferencia del RIPv1, el RIPv2 es un protocolo de routing sin clase, admite
VLSM (Variable Length Subnet Mask) y CIDR (Classless Inter-Domain
Routing)

Envia actualizaciones a la dirección de multidifusión 224.0.0.9, lo que se
traduce en una mayor eficiencia.

Tiene entradas de routing reducidas, con esto admite la sumarización de
ruta manual en cualquier interfaz

Cuenta con protección mediante un mecanismo de autentificación para
proteger las actualizaciones de la tabla de routing entre vecinos.
Recapitulando tenemos entonces que las diferencias básicas entre RIPv1 y
RIPv2 son:
Características y funciones
Protocolo sin clase
Métrica
Dirección a la que se envían
las actualizaciones
Admite VLSM
Admite CIDR
Admite sumarización
Admite autenticación
RIPv1
RIPv2
No
Sí
Conteo de saltos en ambos casos, teniendo 15
como su cantidad máxima.
255.255.255.255
224.0.0.9
No
No
No
No
Sí
Sí
Sí
Sí
Classfull o classless
La diferencia entre un protocolo classfull o classless es que un protocolo
classfull no envía información de la máscara de subred en las actualizaciones de
enrutamiento.
RIPv1 es un protocolo classfull que en su momento asignaba las
direcciones de red en función de las clases (A, B o C) y no era necesario que
incluyera una máscara de subred ya que esta podía determinarse en función del
primer octeto de la dirección de red. Estos protocolos classfull pueden usarse
cuando una red se divide en subredes utilizando más de una máscara de subred.
Entre las limitaciones de los protocolos classfull está la imposibilidad de admitir
redes no contiguas. En la figura 6 se observa una representación de un
enrutamiento classfull:
Figura 6: Enrutamiento con protocolo classful
En caso contrario, RIPv2 es un protocolo classless. Este protocolo incluye
la máscara de subred con las direcciones de red en las actualizaciones de
enrutamiento. Actualmente, las redes no se asignan en función de clases y la
máscara de subred no puede determinarse según el valor del primer octeto como
pasaba en el caso de los protocolos classfull, esto sucede porque estos protocolos
admiten VLSM. La figura 7 muestra la representación de un enrutamiento
classless.
Figura 7: Enrutamiento con protocolo classless
Comprando las dos últimas figuras, vemos que la red classless está usando
máscaras de subred /30 y /27en la misma tipología.

Formato paquete RIP
Los datos en un mensaje RIP se encapsulan en un segmento UDP con 512 de
número de puertos de origen/destino. También se tiene el encabezado de enlace
de datos, encabezado de segmento y encabezado de segmento UDP. Con esto
tenemos que el mensaje RIPv1 tiene la siguiente forma de encapsulado:
Encabezado
enlace de datos
Encabezado de
paquete IP
Encabezado de
segmento UDP
Mensaje de RIP
512 bytes, hasta
25 rutas
Estas secciones se conforman de la siguiente manera:




Enlace de datos: Dirección MAC de origen y destino.
Paquete IP: Dirección IP origen y destino, así como el campo protocolo de
17 para UDP.
Segmento UDP: Puerto de origen y destino, cada uno de 520.
Mensaje RIP: Sí es solicitud o respuesta, versión del RIP (1 o 2), ID de
familia de direcciones (2 para IP) y la métrica (para este RIP es conteo de
saltos).
En la figura 8 se puede apreciar el formato de RIPv1 (Graziani, 2008).
Figura 8: Formato RIPv1
Descripción del formato de RIPv1:





Comando: Sí es una solicitud es 1 y si es una respuesta es un 2.
Versión: Puede ser RIPv1 o RIPv2.
Identificador: 2 para IP, ó 0 para solicitud de una tabla competa de
enrutamiento.
Dirección IP: Dirección de ruta de destino
Métrica: Conteo de saltos entre 1 y 16.
Los campos que se indican como “Deben ser cero” son espacio que se deja
para futuras implementaciones del protocolo RIP (en RIPv2 ya se utilizan la
mayoría de estas previstas).
Los últimos 4 elementos del formato son la porción de la entrada de ruta,
donde se incluye el identificador de familia de direcciones, dirección IP y métrica.
Cuando de actualiza el RIP se pueden incluir hasta un máximo de 25 de estas
porciones de entrada de ruta. Por último, podemos tener un tamaño máximo de
datagrama de 512 bytes, esto no incluye los encabezados IP o UDP.
Conceptos de protocolos de enrutamiento
Distancia administrativa
La distancia o métrica es determinada por el número de saltos de enrutador hasta
el destino. RIP tiene una distancia administrativa de 120 (la distancia
administrativa indica el grado de confiabilidad de un protocolo de enrutamiento),
RIP no es capaz de detectar rutas circulares, por lo que necesita limitar el tamaño
de la red a 15 saltos. Cuando la métrica de un destino alcanza el valor de 16, se
considera como infinito y el destino es eliminado de la tabla. La métrica para un
destino se calcula como la métrica comunicada por un vecino más la distancia en
alcanzar a ese vecino. Las métricas se actualizan sólo en el caso de que la
métrica anunciada más el coste en alcanzar sea estrictamente menor a la
almacenada. Sólo se actualizará a una métrica mayor si proviene del enrutador
que anunció esa ruta. Las rutas tienen un tiempo de vida de 180 segundos
(Huitema, 2000).
Si pasado este tiempo, no se han recibido mensajes que confirmen que esa ruta
está activa, se borra. Estos 180 segundos, corresponden a 6 intercambios de
información. Una ventaja del protocolo RIP sobre el enrutamiento estático es su
configuración inicial que es muy simple y la actualización manual de su
configuración no es requerida ante cambios en la topología.
Sistema autónomo
Un sistema autónomo (AS) es un conjunto de redes bajo el control administrativo
de una única entidad que presenta una política de enrutamiento común para
Internet. En la figura, las empresas A, B, C y D se encuentran todas bajo el control
administrativo de un ISP (Proveedores de servicios de Internet) que en la figura 3
aparece como ISP1. Entonces ISP1 presenta una política de enrutamiento común
para todas estas empresas cuando publica rutas en ISP2.
Los lineamientos para la creación, selección y registro del sistema autónomo se
describen en RFC 1930. La Autoridad de Números Asignados de Internet (IANA
con sus siglas en inglés) asigna números AS, y es la misma autoridad que asigna
el espacio de dirección IP. Por lo general los ISP, los proveedores de “backbone”
de Internet y grandes instituciones que se conectan con otras entidades que
también cuentan con un número de AS. Estos ISP y las grandes instituciones
utilizan el Border Gateway Protocol, o BGP, del protocolo de enrutamiento de
“gateway” exterior para propagar información de enrutamiento. La gran mayoría de
las empresas e instituciones con redes IP no necesitan un número de AS porque
se encuentran bajo el control de una entidad más grande, como un ISP. Estas
empresas utilizan protocolos de “gateway” interior como RIP, para realizar el
enrutamiento de paquetes dentro de sus propias redes. Son una de muchas redes
independientes dentro del sistema autónomo de ISP. ISP es responsable del
enrutamiento de paquetes dentro del sistema autónomo y entre otros sistemas
autónomos (Graziani, 2008).
Figura 3: Ejemplo de sistema autónomo
Routing Loop o bucle de enrutamiento
El “routing loop” (bucle de enrutamiento) es una condición en la que un paquete se
transmite continuamente dentro de una serie de enrutadores donde nunca alcanza
la red de destino deseada. Un routing loop puede producirse cuando dos o más
enrutadores tienen información de enrutamiento que indica erróneamente que
existe una ruta válida a un destino inalcanzable (Graziani, 2008).
Situaciones en las que se podría dar un routing loop:
-Rutas estáticas configuradas incorrectamente.
-Redistribución de ruta configurada incorrectamente (la redistribución es un
proceso de envío de la información de enrutamiento desde un protocolo de
enrutamiento a otro).
-Tablas de enrutamiento incongruentes que no se actualizan debido a una
convergencia lenta en una red cambiante y rutas de descarte configuradas o
instaladas incorrectamente.
La convergencia ocurre cuando todas las tablas de enrutamiento de los routers se
encuentran en un estado de uniformidad.
La red ha convergido cuando todos los routers tienen información completa y
precisa sobre la red. El tiempo de convergencia es el tiempo que los routers tardan
en compartir información, calcular las mejores rutas y actualizar sus tablas de
enrutamiento. Una red no es completamente operativa hasta que la red haya
convergido; por lo tanto, la mayoría de las redes requieren tiempos de
convergencia cortos.
Consecuencias de los routing loops
Todos estos factores pueden hacer que la red se vuelva muy lenta y en algunos
casos muy severos completamente inoperante.
● El ancho de banda del enlace se utilizará para el tráfico que va de acá para
allá entre los enrutadores formando el un bucle.
● Probablemente la CPU de algún enrutador se sobrecargará con el envío
inútil de un paquete que afectará la convergencia de la red.
● Las actualizaciones de enrutamiento podrían perderse o no ser procesadas
a tiempo, lo que implicaría eventualmente más bucles de enrutamiento y
por lo tanto un deterioro mayor de la red.
● Los paquetes podrían perderse en los llamados “agujeros negros” y jamás
llegar a su destino.
Cuenta al infinito
La cuenta a infinito es una condición que se produce cuando las actualizaciones
de enrutamiento inexactas aumentan el valor de la métrica a "infinito" para una red
que ya no se puede alcanzar.
Una cuenta a infinito ocurre cuando se rompe el enlace de red y el algoritmo de
enrutamiento trata de calcular nuevos caminos más cortos. El problema de cuenta
hasta infinito resulta en como los protocolos de enrutamiento en especial los de
vector de distancia trabajan: Las buenas noticias llegan rápido, las malas noticias
llegan lento (Lindqvist, 2004).
Figura 4: Ejemplo enrutador configurado para evitar cuenta al infinito
Para detener el aumento de la métrica, el “infinito” se define un valor máximo de
métrica configurable en el enrutador.
Por ejemplo en el protocolo RIP, el infinito (métrica inalcanzable) se define como
16 saltos, así cuando una ruta se cae y se realiza la cuenta a infinito los
enrutadores colocan la red a 16 saltos de distancia, es decir marcan la ruta como
inalcanzable. En la figura 4 se muestra un ejemplo de cómo se puede configurar
un enrutador de modo que alcance el límite superior.
Horizonte dividido
Horizonte dividido es una técnica empleada en los protocolos de enrutamiento
basados en vectores de distancia para evitar bucles de enrutamiento. Esta técnica
le prohíbe a un enrutador dar a conocer una ruta a cierto destinatario si la ruta la
aprendió por parte de él mismo (Lindqvist, 2004). Entonces esta técnica dice que
un enrutador no debe publicar una red a través de la interfaz por la que le llegó la
actualización.
Se puede ejemplificar cómo funcionaría la técnica de horizonte dividido con la red
de la figura 5 de la manera siguiente: R2 publica las redes 172.10.3.0.0 y
172.16.4.0 a R1. R2 publica las redes 172.16.3.0 y 172.16.4.0 a R3. R1 publica la
red 172.16.1.0 a R2. R3 publica la red 172.16.4.0 a R2. Por lo tanto R2 no publica
172.16.4.0 a R3 por se0/1 ya que la ruta se originó por esa interfaz (Graziani,
2008).
Figura 5: Ejemplo de horizonte dividido.
Envenenamiento de ruta
Es un tipo de horizonte dividido donde no se le prohíbe a A informar a B de la ruta,
en su lugar A lo que le informa a B es que es imposible llegar a C mediante A,
diciendo que la distancia a C es infinita (16 en RIP). De esta manera B nunca
intentará llegar a C mediante A. Se le conoce como envenenamiento porque la
información que da A es falsa, y a su vez puede incrementar el tamaño de las
tablas de enrutamiento para redes de tamaño significativo, ya que enviar un 16
consume más recursos que no informar, por lo que se dice que se está
envenenando la ruta. Sin embargo, aunque el envenenamiento es un método que
involucra más datos y es más pesado, está confirmado que incrementa la
eficiencia de la red en caso de fallos, por lo que es una práctica que se frecuenta
(Lindqvist, 2004).
Se utiliza para marcar la ruta como inalcanzable en una actualización de
enrutamiento que se envía a otros enrutadores. La condición de inalcanzable para
RIP es igual a la de infinito con métrica de 16. De esta manera la ruta
envenenada tiene una métrica de 16 (Graziani, 2008).
Un ejemplo de envenenamiento de ruta para la red de la figura 5 es el siguiente:
1. La red 172.16.4.0 falla el enlace.
2. R3 envenena la métrica con un valor de 16 (para RIP) y envía una
actualización activa indicando que esta red no está disponible.
3. R2 procesa la actualización, como la métrica es de 16, R2 invalida la
entrada en su tabla de enrutamiento (pone también 16) y envía una
actualización del envenenamiento a R1.
4. R1 procesa la actualización e invalida la entrada de enrutamiento para
172.16.4.0 en su tabla.
Algoritmo de enrutamiento Bellman-Ford
Concepto grafo dirigido
Un grafo dirigido (o dígrafo) D consiste de un conjunto finito no vacío de elementos
llamados vértices conectados por un conjunto finito de pares ordenados llamados
arcos o aristas, donde éstas solo pueden ir en un solo sentido. En la figura 9 se
observa un dígrafo cuyas rutas de ida como de vuelta entre los nodos u y w son
distintas.
Figura 9: Ejemplo grafo dirigido
Algoritmo de Bellman-Ford-Moore
El algoritmo de Bellman-Ford-Moore es un algoritmo para calcular el camino más
corto en un grafo dirigido desde un vértice fuente hacia los otros vértices del grafo
y una ventaja de este algoritmo es que puede tener pesos negativos contrario a
otros algoritmos de enrutamiento como el Dijkstra (Bang, 2007).
El algoritmo tiene como entrada un grafo dirigido con pesos y ningún ciclo negativo
con el vértice s fijo. Además tiene como salida las distancias más cortas a cada
vértice desde s. Se usa la simbología δv= 0 para representar la distancia mínima a
partir del vértice s al vértice v.
Propiamente el algoritmo tiene tres etapas que se describen a continuación (Bang,
2007):



Se define la distancias δs= 0 y δv= ∞, para todo v distinto de s.
Si hay n vértices, para todo i=1 hasta n-1 para cada para cada arco v-u con
un peso w entre ellos, si δv+ w < δu, entonces δu = δv+ w.
Para cada arco v-u revisar si δu > δv+ w y en dado caso mostrar el mensaje
“el grafo contiene un ciclo negativo”.
Figura 10: Ejemplo del algoritmo de Bellman-Ford-Moore durante cinco
iteraciones del algoritmo (Bang, 2007)
Un ejemplo del algoritmo de Bellman-Ford es el que se encuentra 9 donde se
muestra cómo se lleva cabo el algoritmo con el intercambio de tablas para
definir el camino más corto (Tanenbaum, 2012).
Figura 11: Tablas de enrutamiento usando el algoritmo de Bellman-Ford.
Conclusiones
El protocolo RIP sirve como base para entender cómo en los protocolos de
enrutamiento se busca la mejor ruta posible tomando en consideración diferentes
parámetros (en el caso de RIP el número de saltos), para favorecer y permitir la
comunicación entre distintos enrutadores en partes lejanas geográficamente.
Gracias al desarrollo de esta tecnología innovadora en la capa de red del modelo
TCP/IP se ha podido construir la infraestructura de lo que hoy conocemos como
Internet mediante el establecimiento de conexiones confiables cuyos datos van a
llegar al lugar de destino esperado en el mejor tiempo posible.
Referencias
Bang-Jensen, J. Gutin, G. (2007). Digraphs Theory, Algorithms and
Applications. Springer Verlag. New York
Graziani, R., Johnson, A. (2008) Conceptos y protocolos de enrutamiento
Editorial : Cisco Network Academy
Huitema, Christian. (2000). Routing in the Internet. 2nd edition. Prentince Hall
2000.
Lindqvist, Janne. (2004). Counting to Infinity.Helsinki University of Technology.
Tanenbaum, Andrew S. (2012). Redes de Computadoras. Pearson Education,
Inc, México, 5ta. Edición.
Descargar