Proyecto final Protocolo de enrutamiento RIP

Universidad de Costa Rica
Escuela de Ingeniería Eléctrica
IE-0424 Redes de computadoras
Proyecto final
Protocolo de enrutamiento RIP
Arturo Apú Chinchilla, B20386
Erick Eduarte Rojas, B22305
Luis Diego Soto Ugalde, B26613
Profesor: Eduardo Navas Carro
8 de diciembre de 2015
IE-0424 Redes de computadoras
1.
Proyecto final
Introducción
En internet, los enrutadores son respondables de recibir y transmitir paquetes a través del set de
suredes. Cada uno toma decisiones basados en su conocimiento de la topología y de las condiciones
de la red.
Es posible tener un esquema de enrutamiento fijo si la red es sumamente simple; sin embargo, se
necesita un alto grado de cooperación dinámica entre los enrutadores para redes más complejas.
El Routing Information Protocol es un protocolo que, básicamente, define que cada enrutador
transmite su tabla de enrutamiento completa.
Es un algoritmo muy simple y fácil de implementar; sin embargo, conforme el internet se expande,
las actualizaciones del enrutador se hacen mucho más grandes y consumen significativamente más
ancho de banda. [1]
El RIP utiliza un diseño de vector distancia basado en el algoritmo Bellman-Ford distribuido.
Además, sufre de problemas de cuenta a infinito que retrasan su convergencia. [2]
2.
Origen de vector distancia
El vector distancia fue el algoritmo original de ARPANET en 1969. Esencialmente, el protocolo
usado por RIP es el mismo usado en ARPANET de primera generación.
Luego, en 1979 ARPANET se pasó a un protrocolo de estado de enlace por porblemas de cuenta
a infinito y lenta convergencia. Después, en 1988 se pasó a un protocolo de estado de enlace para
enrutamiento de “entre domino”. [2]
Posteriormente, ya en 1990, el protocolo OSPF (las siglas de Open Shortest Path First) se volvió
un estándar. Esto originó otro estándar llama ISIS (las siglas de Intermediate-System to IntermadiateSystem); este, a su vez, se trnasformó en un estándar ISO.
3.
Algoritmo Bellman-Ford
El algoritmo Bellman-Ford encuentra el camino más corto de un nodo a todos los otros nodos
en un grafo con pesos. Resulta más lento que el algotimo de Dijkstra; sim embargo, Bellman-Ford
resuelve el problema para pesos negativos. [3]
Siendo más específicos, el agoritma calcula el costo del camino más corto de un nodo a todos los
otros nodos del grado.
El algoritmo comienza asumiendo que el nodo inicial tiene costo cero y los demás nodos tienen
costo infinito y se construye el camino más corto preguntándose si el costo de la fuente más el costo
del nuevo nodo es menor al costo del destino.
Como se comentó, este es el algoritmo usado en los diseños de vector distancia, es el que se usa
en RPI y por ende el único que se usó en Internet hasta 1988.
4.
Sistemas autónomos
Un sistema autónomo se define como una interconexión de redes conectada por enrutadores
homogéneos; generalmente, los enrutadores están bajo el control de una solo entidad. [1]
Un protocolo de puerta de enlace interna (Interior Gateaway Protocol ) pasa información entre
enrutadores dentro de un sistema autónomo. Cuando se conectan varios sistemas autónomos, los
1 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
enrutadores en un sustema autónomo necesitan información acerca de las redes a las que se pueden
comunicar fuera del sistema; el protocolo usado para lograr esto se llama protocolo de puerte de
enlace externo (Exterior Gateaway Protocol ). [2]
El protocolo RPI es tipo IGP.
5.
Métrica RIP
La métrica para RIP es únicamente el conteo de saltos, no toma en cuenta otros criterios ancho
de bando, congestión, retardo y demás.
En este contexto, un salto es un trozo de la distancia del camino entre el origen y el destino. En
general, por comportamientos como store and forward y demás latencias, una gran cuenta de saltos
implica menor desempeño en tiempo real.
El conteo de saltos se refiere al número de dispositivos intermedios (por ejemplo enrutadores) por
los que los datos deben pasar entre la fuente y el destino.
Un salto corresponde a una medida de distancia en una red. De esta manera, la cuenta de saltos
es una aproximación de la distancia entre dos hosts.
Cada vez que un dispositivo recibe un paquete, el dispositivo aumenta el conteo de saltos del
dicho paquete en 1. Además, el dispositivo compara el conteo de saltos con un límite y descarta el
paquete si el conteo es muy alto. De esta manera se evita que algún paquete se quede rondando entre
hosts indefinidamente.
6.
Bucles de enrutamientos
Son una condición donde se transmite de forma continua un paquete dentro de una serie de
enrutadores pero nunca llega al destino. [5]
Los bucles de enrutamiento pueden ser causados por configuracón incocrrecta de rutas estáticas,
configuración incorrecta de redistribución de rutas, convergencia lenta, entre otras.
Conllevan uso excesivo de ancho de banda, exigenci a los recursos del CPU de los enrutadores e
incluso pérdida de actualizaciones de enrutamiento.
Para evitar tales incovenientes, los protocloes de vector distancia definen un número máximo de
saltos (como se mencionó en la sección de Métrica RIP), de manera que el paquete es eliminado si
se sobrepasa este líimite.
Otra forma de proteger la red de bucles es con temporizadores. Los temporizadores de espera
permiten que el enrutador no acepte los cambios realizados a una ruta durante un periodo especificado. Esto permite que las actualizaciones de enrutamiento se propaguen con la información más
actualizada.
En la Figura 1 se muestra un ejemplo de un bucle de enrutamiento.
2 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 1: Ejemplo de bucle de enrutamiento
7.
Cuenta a infinito
El problema de la cuenta al infinito es una condición en la que las actualizaciones aumentan
el valor de la métrica a un valor en el que cualquier router por esa ruta se considera inalcanzable,
este sería en caso de que la cuenta llegue a infinito, pero en la realidad se puede programar en el
router para darse cuenta de que una ruta se cayó sin tener que esperar a que se eleve ese valor tanto,
usualmente esta condición se tiene en protocolos de enrutamiento por vector de distancia.
En RIP, como la métrica utilizada es por saltos se estableció que cuando la cuenta llegue a 16
saltos se considera como un valor infinito por lo que la ruta es inalcanzable.
8.
Envenenamiento de ruta inversa
El envenenamiento de ruta es una técnica utilizada para marcar una ruta como inalcanzable lo
cual equivale a la cuenta al infinito. En este caso se tiene la métrica de saltos igual a 16 equivalente
a infinito. Si se tiene la ruta entre 2 nodos envenenada entonces la información que se da es inválida
por lo que no se intentará llegar a otro nodo mediante esta ruta ya que la distancia informada es
infinita.
Con este método aumenta la eficiencia de la red en caso de fallos ya que no se debe esperar a la
cuenta al infinito en caso de que no converja a un valor, sin embargo, involucra una mayor cantidad
de datos pero aún así es una técnica utilizada.
En la figura 2 se obsera un un caso en el que se el router R2 envenena la ruta con una cuenta de
saltos de 16 es decir una métrica infinita por la que la ruta esta envenenada y los routers en dicha
ruta son inalcanzables.
3 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 2: Ejemplo envenenamiento reverso
9.
Horizonte dividido
La técnica de horizonte dividido es una técnica que se utiliza para evitar que se formen lazos de
enrutamiento, de modo que un router no puede enviar una actualización de las tablas de enrutamiento por la ruta que aprendió el mismo. Por tanto el router no debe publicar la actualización por la
ruta que le llegó.
Se puede utilizar la técnica de horizonte dividido con enveneamiento en reversa, de modo que si
un router detecta que exite una ruta que es inalcanzable por las reglas del envenenamiento de ruta,
entonces el router deberá informar que la ruta es inalcanzable a través de la misma interfaz.
En la figura 3 se observa un ejemplo de horizonte dividido en la que el router R2 publica sus
actualizaciones a los routers R1 y R3 pero estos no reenvian la información a R2.
Figura 3: Ejemplo horizonte dividido
4 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
10.
Proyecto final
RIP versión 1, RIP versión 2
Entre las principales características de RIPv1 se tienen:
Se un protocolo de routing classful
Si se tienen más de 15 saltos no se envía la actualización de enrutamiento al siguiente router
ya que se considera infinito.
Se envían las actualizaciones de enrutamiento cada 30 segundos por métrica en la dirección
broadcast 255.255.255.255.
Se elige la ruta según el conteo de saltos.
Para RIP v2 se listan las siguientes características principales:
RIPv2 es un protocolo de routing classless, es decir, acepta VLSM (Variable Length Subnet
Mask) y CIDR (Class Inter Domain ROuter).
Si se tienen más de 15 saltos no se envía la actualización de enrutamiento al siguiente router
ya que se considera infinito.
Envía las actualizaciones por la dirección Multicast 224.0.0.9 para que sea más eficiente.
Tiene entradas de routing reducidas lo que permite sumarización de ruta en cualquier interfaz.
Posee un mecanismo de autenticación para proteger las actualizaciones entre los vecinos.
Resumiendo en la tabla 1 se compara las principales diferencias.
Tabla 1: Comparación entre RIPv1 y RIPv2
Característica
Protocolo
Métrica
Dirección de actualización
VLSM
CIDR
Sumarización
Autenticación
RIP v1
RIP v2
Classful
Saltos
255.255.255.255
No
No
No
No
Classless
Saltos
224.0.0.9
Sí
Sí
Sí
Sí
5 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
11.
Proyecto final
Classful o Classless
Un protocolo classful se refiere a un protocolo en el que no se envía la máscara de la subred en
cada actualización de las tablas de enrutamiento, de este modo RIPv1 es un protocolo classful el
cual asignaba en su momento las direcciones de red según su clase A, B o C, sin tomar en cuenta las
máscaras de la subred. La máscara de la subred utilizada se obtenía del primer octeto de la dirección
de red. De modo que un protocolo classful no diferencia entre las subredes por lo que todos los routers
deben encontrarse en la misma subred ya que este no acepta redes no contiguas.
La diferencia con RIPv2 radica en que se basa en un protocolo classless por lo tanto las direcciones
no se asignan en función de las clases de este modo las máscaras de la subred no se determinan por
el primer octeto de la dirección de red, sino que la máscara de subred se envía en el segmento RIPv2
para cada actualización de las tablas de enrutamiento, así las ventajas de un protocolo classless sobre uno classful es que soporta direfentes direcciones de subredes VLSM, y tienen CIDR (Soportan
dominios sin necesidad de usar clases).
La figura 4 muestra las diferencias entre un protocolo classful y uno classless respectivamente, en
la topologpia classful se observa que todos los routers están en la misma subred, mientras que en la
classless se muestra que se utilizan 2 subredes distintas.
Figura 4: Topología Classful y Classless
6 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
12.
Proyecto final
Formato paquete RIP
Los mensajes RIP se encapsulan en segmentos UDP con 512 números de puertos de origen/destino.
Con este encapsulado se tienen varios encabezados, el de enlace de datos, el encabezado de paquete
IP y el encabezado del segmento UDP de forma que un encapsulado de este tipo se ve de la siguiente
manera:
Figura 5: Encapsulado RIPv1 en segmento UDP
Las secciones de la figura 5 se componen de la siguiente forma:
Encabezado de Enlace de Datos: Posee las direcciones MAC de origen y Destino.
Encabezado del paquete IP: Posee las direcciones IP de origen y destino, así como el espacio
de protocolo para UDP.
Encabezado del segmento UDP: Posee los puertos de origen y destino, cada uno de 520.
Mensaje RIP: Contiene el tipo de mensaje si es solicitud o respuesta, la versión del RIP que se
utiliza, un identificador para la familia de direcciones, y la métrica que se utiliza. En caso de
que la versión utilizada sea RIPv2 se añaden además en el mensaje la eqtiqueta de la ruta, la
máscara de la subred y el siguiente salto. Además en cualquiera de las versiones RIP se pueden
tener hasta 25 de estas rutas, por lo que el mensaje puede aumentar su tamaño hasta 512 bytes.
En la figura 6 se observan los 2 formatos de los paquetes RIP arriba para RIPv1 y abajo para
RIPv2.
7 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 6: Formato de paquetes RIPv1 y RIPv2.
Para RIPv1 se tiene que cada una de las secciones del mensaje se describe de la siguiente forma:
Comando: Puede ser 1 o 2, 1 para solicitudes y 2 para respuestas.
Versión: Versión 1 o versión 2.
ID de la familia de direcciones: 2 para direcciones IP o 0 para solicitud de una tabla completa
de enrutamiento.
Dirección IP: Dirección de la ruta de destino.
Métrica: Siempre es conteo de saltos y va desde 1 hasta 16 saltos.
Para RIPv2 se añaden a las secciones anteriores lo siguiente:
Etiqueta de la ruta: Para identificar de que ruta se trata, hasta 25 rutas diferentes.
Máscara de la subred: Para identificar de que subred se trata.
Siguiente Salto: siguiente salto que se dará.
Los campos etiquetados como debe ser 0 son reservados para futuras implementaciones de RIP,
así como de RIPv1 a RIPv2 se usan varios de estos campos.
13.
Cuestionario
Se trabajo con la red de la figura 7.
8 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 7: Red utilizada.
Con base en la captura de wireshark proporcionada se desarrollaron algunas cuestiones.
13.1.
Pregunta 1
En la figura 8 se observa en los recuadros verdes que el protocolo utilizado es RIPv2.
Figura 8: Protocolo de enrutamiento utilizado.
13.2.
Preguntas 2,3 y 4
Se realizó un filtro para observar solo las tramas asociadas al protocolo de enrutamiento.En la
figura 9 se observa la información de la capa de transporte.
9 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 9: Información de capa 4.
En recuadros verdes se observa que el protocolo de capa 4 utilizado es UDP.Además en los valores
hexadecimales de la trama se resalta el valor del protocolo,el cual corresponde a 0x11.En el recuadro
rojo se observa el puerto de destino, el 520.
13.3.
Pregunta 5
En la figura 10 se observa la dirección MAC de destino de la trama 2. Esta dirección corresponde
a 01.00.5e.00.00.09 , la cual es la dirección de multicast asignada para RIPv2.
Figura 10: Dirección MAC de destino.
13.4.
Pregunta 6
En la figura 11 se observa la dirección IP de destino de la trama 2. Esta dirección corresponde a
224.0.0.9 , la cual es la dirección de multicast asignada para RIPv2.
10 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Figura 11: Dirección IP de destino.
13.5.
Pregunta 7
La métrica de RIP es la cantidad de saltos o hopcount en inglés.
13.6.
Pregunta 8
En la figura 12 se observa que el valor hexadecimal del comando en la trama 2 corresponde a
0x01, es decir es un comando request.
Figura 12: Comando request.
También se observa en el recuadro rojo que la métrica posee un valor de 16.Un valor de 16 para
la métrica indica una ruta inalcanzable, una distancia ïnfinita". En este caso se utiliza 16 por ser un
comando request .
En la figura 13 se observa que la trama 5 es la enviada por R2, esto debido a la dirección IP de
origen encerrada en el recuadro (1.1.1.2).
Figura 13: Trama enviada por R2.
11 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
14.
Proyecto final
Pregunta 9
En la figura 14 se observa la captura de la trama 10.En los valores hexadecimales se resalta el
valor de comando, el cual corresponde a 0x02.Esto indica que es un comando response.Esto se obsrva
en el recuadro rojo. Se envía esto ya que es la respuesta a los comandos request vistos anteriormente.
Figura 14: Información de enrutamiento.
En el recuadro naranja de la figura 14 se observa la dirección IP 1.1.1.2 de origen, esto indica que
R2 es el que envía la trama.La información de enrutamiento enviada indica que la cantidad de saltos
desde 1.1.1.2 hasta 2.2.2.0 (IP de destino,encerrado en verde) es 1 (valor de la métrica).También se
observa el valor de la máscara de subred, el cual es de 255.255.255.0. La métrica posee un valor de 1
ya que cuando R1 recibe la información por medio de R2 se da cuenta que la red 2.2.2.0 está a una
distancia de 1 salto de 1.1.1.2. Es decir, la red 2.2.2.0 está directamente conectada a la otra interface
de R2.
En al figura 15 se observa en el recuadro azul los tiempos de las tramas de los comandos de
Response. Se debe recordar que RIP posee temporizadores y uno de estos es el de actualización.
Figura 15: Tiempos de envío de las tramas RIPv2.
Esto significa que se debe refrescar la informaciń de enrutamiento cada 30 segundos aproximadamente. Se puede observar que, por ejemplo, el tiempo transcurrido entre las tramas 23 y 30 es de
aproximadamente este valor. Esta es la razón por la que las tramas 10,15,23 y 30 poseen la misma
información; ya que 15,23 y 30 solamente corresponden a actualizaciones.
14.1.
Pregunta Extra
La dirección de nexthop, recuadro azul en la figura 15, es 0.0.0.0 para indicar que el próximo salto
de la ruta es la IP del enrutador que envía la respuesta..Esto sucede porque se asume que la dirección
del enrutador proporciona una ruta más óptima. Todo lo anterior está definido en el protocolo RIP
12 de 13
Universidad de Costa Rica
IE-0424 Redes de computadoras
Proyecto final
Referencias
[1] Stallings, W. Data and computer communications. 5th ed. New Jersey, USA: Prentice Hall, 1997.
[2] Tanenbaum, A., Wetherall, D. Computer Networks. 5th ed. Massachusetts, USA: Prentice Hall,
2011.
[3] The Bellman-Ford Algorithm Recuperado de https://www-m9.ma.tum.de/graph-algorithms/
spp-bellman-ford/index_en.html el 5 de diciembre, 2015.
[4] Formato paquete RIP Recuperado de http://atc2.aut.uah.es/~jmruiz/Descarga_LE/Prac_
3.ProtocolosEnrutamientoDinamico_RIP_y_OSPF.pdf el 6 de diciembre, 2015.
[5] Graziani, R., Johnson, A. Conceptos y protocolos de enrutamiento. Cisco Network Academy, 2008.
13 de 13
Universidad de Costa Rica