You are on page 1of 69

ENGINYERIA TCNICA DE TELECOMUNICACI

ESPECIALITAT TELEMTICA

PROYECTO FINAL DE CARRERA


Curso 2007-2008

ATAQUE AL PROTOCOLO RIP

Alumno: Salvador lvarez


Director: Francesc Seb
Fecha entrega: Abril 2008

ATAQUE AL PROTOCOLO RIP

NDICE
PRESENTACION

1. INTRODUCCIN

1.1 Tabla de encaminamiento


1.2 Encaminamiento esttico y dinmico
1.3 Protocolo de encaminamiento
1.4 Concepto de EGP E IGP
2. RIP
2.1 Introduccin a RIP
2.2 Algoritmo del Vector de Distancia
2.2.1 Cambios en la topologia
2.2.2 Prevencin de la inestabilidad: Cuenta a infinito
2.2.3 Horizonte dividido con actualizacin inversa envenenada
2.2.4 Trigger Update
2.3 Especificaciones del Protocolo RIP
2.4 Formato del mensaje
2.5 Consideraciones en el direccionamiento
2.6 Temporizadores
2.7 Proceso de entrada
2.7.1 Comando Request
2.7.2 Comando Response
2.8 Proceso de salida
2.9 Ejemplo RIP
2.10 RIP VERSION 2
2.10.1 Formato mensaje RIP version 2
2.10.2 Consideraciones y compatibilidades
2.11 Limitaciones del protocolo
3. DISEO DE ATAQUE
3.1 Introduccin
3.2 Conocimiento de la red
3.3 Mensajeria falsa
3.4 Expansin de la mensajeria falsa
3.5 Provocar cancelacin de rutas
3.6 Persistencia
4. DESARROLLO
4.1 Introduccion
4.2 Anlisis funcional
4.3 Anlisis tcnico
4.4 Pruebas

6
9
10
10
12
12
12
17
19
22
26
27
28
30
32
33
34
35
36
37
40
40
43
44
45
45
45
46
48
50
51
52
52
52
55
58

4.4.1 Pruebas ST
4.4.2 Pruebas IT
4.4.3 Pruebas PR

59
59
61

5. CONCLUSIONES

64

6. RECURSOS UTILIZADOS

65

7. MANUAL

66

7.1 Introduccin
7.2 Requisitos
7.3 Caractersticas
7.4 Descripcin de la aplicacin
7.5 Mensajes de error

66
66
66
67
69

PRESENTACIN
Una ruta, en telemtica, es el camino que los datos deben seguir desde un
origen hasta llegar a su destino. En una arquitectura o topologa de red, es de
gran importancia que todas las entidades que forman parte de la misma,
ordenadores o routers, se puedan comunicar entre ellos. Una topologa de
red, puede ser tan simple como dos ordenadores conectados punto a punto, o
una gran red conmutada. Por esta razn es necesario que exista un
mecanismo que permita la comunicacin, sea cual sea la topologa de red. A
este mecanismo se le denomina encaminamiento, y determina las rutas que
deben seguir los datos.
En las redes que utilizan el protocolo TCP/IP, las mquinas encargadas de
encaminar la informacin se denominan routers. Los routers son mquinas
que tienen diversos interfaces de red. Cuando un router recibe una trama de
datos por una interfaz observa su cabecera IP para ver la direccin IP donde
va dirigida la trama. Segn el destino donde va dirigida la trama, sta va a ser
reenviada por un interfaz o por otro. La decisin sobre por qu lugar se debe
reenviar una trama se toma a partir de la informacin contenida en las tablas
de encaminamiento de un router. Esta informacin se puede configurar de
forma manual (proceso muy laborioso) por parte del administrador o se puede
obtener de forma automtica mediante la utilizacin de protocolos de
encaminamiento. Un protocolo de encaminamiento es utilitzado por los routers
de una red para intercambiar la informacin necesaria para que cada router
pueda configurar sus tablas de encaminamiento.
Uno de los protocolos de encaminamiento ms antiguos y conocidos, es el
Protocolo RIP, de las siglas en ingls, Routing Informacition Protocol. Pero,
Es realmente RIP un buen protocolo de encaminamiento? Este proyecto,
pretende demostrar las vulnerabilidades y problemas de seguridad que
presenta la utilizacin del protocolo RIP en redes conmutadas.
Primeramente, se analiza el protocolo, como funciona, que particularidades
tiene. A continuacin se hace un estudio de los posibles problemas de
seguridad del protocolo. Y por ltimo, se muestra la implementacin de una
aplicacin para ejecutar un ataque de denegacin de servicio en una red
conmutada que utilice el protocolo RIP como protocolo de encaminamiento.
Este ataque tiene como finalidad interferir en el correcto funcionamiento de la
red en cuestin. El ataque consiste en introducir en la red un equipo que
inserte mensajes falsos. Estos mensajes falsos, al ser recibidos y procesados
por los routers causaran su desconfiguracin de las tablas de
encaminamiento.
Para una buena comprensin de los temas tratados en el presente
proyecto, se recomienda que el lector tenga conocimientos bsicos en
configuracin de redes, conocimientos del protocolo TCP/IP, y conocimientos
del lenguaje de programacin JAVA.

1 INTRODUCCIN
1.1 TABLA DE ENCAMINAMIENTO
La funcin de encaminamiento de una red trata de encontrar las rutas de
mnimo coste a travs de la red, estando el parmetro de coste basado en el
nmero de saltos, el retardo esperado u otras mtricas.
Una red de comunicaciones puede ser muy simple. Por ejemplo, dos
ordenadores conectados mediante un cable determinan una red de
comunicaciones. En una red de estas caractersticas es evidente que el flujo
de datos que ira de un ordenador a otro ser siempre por el cable que los une.

Fig 1.
Pero, lo habitual encontrarnos arquitecturas de red ms complejas. En ese
caso, los routers deben estar configurados para que los datos enviados entre
dos mquinas cualquiera lleguen a su destino. Por ejemplo, en la Fig 2. se
muestra una red con 4 ordenadores.

Fig 2.

Cada ordenador debe poder comunicarse con el resto de ordenadores de


la red. El ordenador A esta directamente conectado con B. Por lo tanto,
utilizan el cable de red que los une para comunicarse. En el caso de que el
ordenador A quiera comunicarse con el ordenador C, es necesario que el flujo
de datos pase por el ordenador B. Entonces, en ordenador B debe ser el
encargado de hacer llegar los datos que quiere enviar A a su destino. En este
6

caso como el destino es el ordenador C, reenviara los datos por su interfaz 3.


De manera similar se pueden determinar cada ruta necesaria para que todos
los ordenadores de la red se puedan comunicar.
Se pueden presentar las rutas fcilmente en una tabla para cada
ordenador de la red. Por ejemplo, el ordenador A tendra la siguiente tabla de
rutas:
Destino
B
C
D

Puerta enlace
B
B

Interfaz
1
1
1

La puerta de enlace es la mquina a travs de la cual una mquina enva


sus datos para que lleguen a destinos con los cuales no est conectada
directamente. En este caso, el ordenador A utiliza el ordenador B como puerta
de enlace para comunicarse con el resto de la red. Segn este esquema, es
responsabilidad de B que los datos acaben llegando a su destino. La interfaz,
es el medio fsico que se utiliza en cada ruta. En el ejemplo, como el
ordenador A solo dispone de una interfaz, enviar todos sus datos por esta. A
cada ruta posible, tambin se le conoce con el nombre de Entrada de la tabla.
La tabla de rutas del ordenador B tendra la siguiente pinta:
Destino
A
C
D

Puerta enlace

Interfaz
1
3
2

Como el ordenador B esta interconectado con todos los ordenadores de la


red en cuestin, no necesita puertas de enlace para comunicarse.
De forma similar se puede determinar las tablas del ordenador C y del
ordenador D:
Destino
B
D
D

Puerta enlace

Destino
C
B
A

Puerta enlace

Interfaz
2
1
2
Interfaz
1
3
2

Se puede observar como utilizan B como puerta de enlace para


comunicarse con A.
Segn lo visto hasta el momento, una tabla de rutas contiene la
informacin que indica a una mquina como encaminar una trama de datos a
partir del destino donde esta va dirigida. A esta tabla se le denomina Tabla de
encaminamiento.
En una tabla de encaminamiento, se incluye el destino que se quiere
alcanzar, la puerta de enlace, si procede, y la interfaz que se utiliza para llegar
al destino. Adicionalmente se incluyen otros parmetros tiles para el
encaminamiento, que se vern ms adelante. En las redes TCP/IP, el destino
se indica mediante la direccin IP del ordenador de destino, y la puerta de
enlace por la direccin IP del ordenador que hace tal funcin.

Fig. 3

La red representada en la Fig.3, esta constituida por tres ordenadores, y


dos redes. Por una parte, tenemos la red 192.168.1.0/24, y por otra, la red
192.168.2.0/24. Se han asignado direcciones IP en las interfaces de los
ordenadores respetando la singularidad en la red. La tabla de
encaminamiento que obtendramos del ordenador A seria similar a la
siguiente:
Ordenador A
Destination
192.168.1.0
192.168.2.0

Gateway
0.0.0.0
192.168.1.2

Genmask
255.255.255.0
255.255.255.0

Iface
eth0
eth0

Cuando una mquina esta directamente conectada a una red, no necesita


puerta de enlace, gateway, para comunicarse con esta. En ese caso se utiliza
la direccin 0.0.0.0 para indicar que no es necesario puerta de enlace. El
ordenador A, como esta directamente conectado a la red 192.168.1.0 no
necesita puerta de enlace. En cambio, para comunicar con la red 192.168.2.0,
necesita de la puerta de enlace 192.168.1.2.
Las tablas de encaminamiento de los ordenadores B y C tendran la
siguiente pinta:

Ordenador B
Destination
192.168.1.0
192.168.2.0

Gateway
0.0.0.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0

Iface
eth0
eth1

Como el ordenador B est directamente conectado a las dos redes no


necesita de puertas de enlace.
Ordenador C
Destination
192.168.1.0
192.168.2.0

Gateway
192.168.2.1
0.0.0.0

Genmask
255.255.255.0
255.255.255.0

Iface
eth0
eth0

Si el ordenador A desea enviar una trama de datos a la mquina C,


consultar la tabla de encaminamiento para decidir donde tiene que dirigir los
datos. En este caso enviar los datos por la nica interfaz que tiene, la interfaz
eth0, que conecta directamente con B. Cuando el ordenador B recibe los
datos de A, ve que va dirigido al ordenador C en la cabecera IP. Entonces,
consultar en las tablas de encaminamiento por que interfaz tiene que
reencaminar los datos. En este caso por su interfaz eth1. Finalmente los datos
llegan a su destino, el ordenador C.

1.2 ENCAMINAMIENTO ESTTICO Y DINMICO


En redes no demasiado grandes, es factible configurar las tablas de
encaminamiento de forma manual. Cuando las tablas de encaminamiento se
configuran de forma manual, el encaminamiento se denomina Esttico. En el
encaminamiento esttico la informacin de las tablas de encaminamiento se
configuran una nica vez. Esta informacin permanecer inalterada a no ser
que la modifiquemos manualmente.
Para redes ms grandes y complejas, esto no es factible. En primer lugar,
un nmero mayor de ordenadores, implica un nmero mayor de rutas a
configurar, siendo una tarea laboriosa, y en ocasiones difcil de hacer. Por otra
parte, cambios en la topologa, tales como incluir ms ordenadores, suponen
reconfigurar todos los ordenadores de la red para obtener comunicacin con
los ordenadores incluidos. Adems, si un enlace falla, como las rutas son
fijas, este mtodo no es capaz de encontrar rutas alternativas para encaminar
los datos. En definitiva, la tcnica de encaminamiento esttico no se adapta al
estado de la red.
Por consiguiente, es necesario disponer de un mecanismo automtico para
solucionar todos estos problemas. Este mecanismo debe rellenar la

informacin de las tablas de encaminamiento de los routers de forma


automtica. Adems, en caso de cambios en la topologa de la red, la
informacin de las tablas debe actualizarse tambin de forma automtica. De
esta forma, evitamos que cambios en la topologa de red, tales como fallos en
enlaces o ampliaciones de red, provoquen problemas de comunicacin. A este
mecanismo se le denomina Encaminamiento Dinmico. El contenido de las
tablas de encaminamiento cambia en la medida que lo hacen las condiciones
de la red.
Para hacer posible el encaminamiento dinmico es necesario que las
estaciones intercambien informacin acerca del estado de la red.

1.3 PROTOCOLO DE ENCAMINAMIENTO


Un protocolo de encaminamiento define el mecanismo mediante el cual los
routers de una red intercambian la informacin necesaria para configurar sus
tablas de encaminamiento.
Es necesario que en una red, todos los routers utilicen el mismo protocolo
de encaminamiento para intercambiar informacin. Solo as se puede tener la
certeza de que el mecanismo funcionar correctamente.
La meta de un protocolo de encaminamiento es muy simple:
Proporcionar la informacin necesaria para el encaminamiento.

1.4 CONCEPTO DE EGP E IGP


En una red tal como Internet, es inverosmil que se use un nico protocolo
de encaminamiento. La red est organizada por diferentes Sistemas
Autnomos. Se entiende por sistema autnomo un conjunto de redes y
dispositivos que se encuentran administrados por una solo entidad, o al
menos tiene un grado razonable de control a nivel tcnico y de administracin.
Cada sistema autnomo tiene su propia tecnologa de encaminamiento. Esta,
por tanto, puede ser diferente o no para cada sistema autnomo. El protocolo
de encaminamiento usado dentro de un sistema autnomo se le denomina un
IGP (Interior Gateway Protocol). Este protocolo se ocupa de que el contenido
de las tablas de encaminamiento de los routers del sistema autnomo sea
correcto.

10

Fig. 4

Para interconectar sistemas autnomos se usa otro protocolo a parte. Los


protocolos usados en este caso, son los EGP (Exterior Gateway Protocol).
Mediante estos protocolos, los distintos sistemas autnomos pueden
intercambiar informacin sobre las redes que se encuentran en su interior.

11

2 RIP
2.1 INTRODUCCIN A RIP
RIP, de las siglas en ingles Routing Information Protocol, es un protocolo
de encaminamiento dinmico basado en el Algoritmo de Bellman-Ford (o
Vector de Distancia). La descripcin de este algoritmo fue a manos de Ford
and Fulkerson, de ah que este algoritmo a veces tambin se le denomine
como el Algoritmo Ford-Fulkerson. El trmino Bellman-Ford tambin es usado
para referirse a este algoritmo. Viene del hecho que la formulacin se basa en
la ecuacin del Bellman, la base de la Programacin Dinmica. El algoritmo
del Vector de Distancia, define los procedimientos utilizados en el protocolo
RIP para llevar a cabo en encaminamiento, as como de otros protocolos de
encaminamiento como IGRP y EIGRP de Cisco.
Este protocolo se ha utilizado para el encaminamiento de redes de
ordenadores desde la aparicin de ARPANET. La red ARPANET naci en
1969 como resultado de un proyecto de investigacin del Departamento de
Defensa norteamericano, que trataba de encontrar una va de comunicacin
alternativa a la comunicacin a travs de radio, ya que se prevea que en el
caso de una guerra nuclear, temor con fundamento en aquella poca, las
comunicaciones por radio se veran fuertemente afectadas. ARPANET se
considera como el origen de Internet.
RIP Comenz a ser un estndar de facto para intercambiar informacin de
encaminamiento entre routers y hosts. Se utiliz para dicho propsito por la
mayora de los vendedores comerciales de routers IP.
El protocolo RIP se usa como un IGP. Fue diseado para trabajar con un
tamao de red moderado. Por consiguiente, esta pensado para redes que no
sean demasiado grandes. No est pensado para el uso en ambientes muy
complejos.

2.2 ALGORITMO DEL VECTOR DE DISTANCIA


El algoritmo del vector de distancia, define un procedimiento que busca la
mejor ruta para cada destino en una red cualquiera de computadores. Para
llevar a cabo esto, los routers de la red intercambian un conjunto de mensajes.
Con la informacin obtenida, cada router guarda una ruta hacia cada
destinacin posible en el sistema, es decir, construye una tabla de
encaminamiento. En la prctica es necesario guardar la siguiente informacin
para cada destinacin:
- Direccin de destino: En implementaciones IP de este algoritmo, esto se
traduce como la direccin IP de destino del host o de la red.
- Puerta de enlace: El siguiente router donde se deben enviar los datos para
que este se encarge de reencaminarlos hasta su destino.

12

- Interfaz: La conexin fsica que se debe usar para alcanzar la primera puerta
de enlace.
- Mtrica: Parmetro que mide el coste de la ruta. En RIP, la mtrica utilizada
es el nmero de saltos que se debe realizar para alcanzar el destino.
-Temporizador: Indica cuando fue la ltima actualizacin de la ruta.

A este conjunto de informacin se le conoce como Vector de distancia, ya


que para cada ruta posible se incluye la distancia hasta llegar al destino,
mediante el parmetro de mtrica. Por tanto los routers de la red intercambian
vectores de distancia para que todos los participantes en el algoritmo
obtengan informacin sobre el estado de la red.
La mtrica es una medida que sirve para comparar rutas. Si se obtienen
dos rutas para llegar al mismo destino, se dice que la mejor ruta para llegar a
ese destino es la que consuma un nmero menor de recursos de la red, es
decir la del mnimo coste. En el protocolo RIP, se utiliza una mtrica que
cuenta a travs de cuantos routers deben pasar los datos hasta llegar a su
destino, es decir, el nmero de saltos que se debe realizar para alcanzar el
destino. Por tanto, ante dos rutas posibles, la mejor, la del mnimo coste, ser
la que realice un nmero menor de saltos hasta llegar a un destino dado.

Fig. 5

Por ejemplo, en la Fig. 5, la mtrica de la ruta que va del ordenador A


hasta el ordenador D es 2, ya que tiene que pasar a travs del ordenador B
hasta llegar a su destino. Para llegar al ordenador F, existen dos
posibilidades, o dos rutas: a travs de B o a travs de C. Si se escoge a travs
de B la mtrica de esa ruta es 3. En cambio si se escoge a travs de C la
mtrica es 2. Por tanto esta ltima es la mejor ruta ya que su mtrica es
13

menor. Por otra parte, se considera mtrica 0 la ruta de ir de una estacin a s


misma. Aunque esta ruta parezca intil, se debe incluir en los vectores de
distancia.
En el ejemplo anterior se ha considerado una mtrica de 1 para cada
enlace de la red. En ocasiones la mtrica puede ser diferente en cada enlace.
Esto es as porque puede ser que un enlace sea ms lento que otro, o
simplemente menos fiable. Por esta razn se definen mtricas diferentes. En
cualquier caso, en RIP se utiliza por defecto mtricas de valor 1 en todos los
enlaces.
Inicialmente cada mquina de la red solamente tiene informacin de s
misma. Con los primeros mensajes intercambiados obtienen informacin
sobre sus vecinos. A medida que se van intercambiando ms mensajes con
las mquinas vecinas el conocimiento de la red es mayor. Es necesario que la
informacin se reciba peridicamente para mantener las mejores rutas en todo
momento. De esta forma, es posible mantener las rutas ptimas para todo el
sistema entero solamente usando la informacin obtenida de routers vecinos.
Es de esperar que este algoritmo converja en las estimaciones correctas
sobre las rutas en un tiempo finito, siempre y cuando no haya cambios de la
topologa de red. No existe un orden sobre el envo de informacin entre
entidades. Simplemente, es importante que las entidades no paren de enviar
actualizaciones, y que las redes no retrasen los mensajes demasiado. Cada
entidad puede enviar actualizaciones segn su propio reloj. Ante un cambio de
sistema o topologa el algoritmo de encaminamiento comienza a moverse
hacia un nuevo equilibrio, usando el viejo como su punto de partida.
Cogiendo como referencia la Fig. 5, veamos como evoluciona el algoritmo
partiendo desde el inicio.

Fig. 6

Primeramente, cada estacin solo tiene informacin de s misma, por tanto


la informacin que contendran los vectores de distancia ser la siguiente:

14

ESTACION
A
B
C
D
E
F

Vector de distancia
[A:0]
[B:0]
[C:0]
[D:0]
[E:0]
[F:0]

Cada estacin puede llegar a ella misma con mtrica 0. Con la informacin
enviada, las estaciones aprenderan las rutas a las estaciones vecinas que
tienen directamente conectadas, con un coste de 1.
ESTACION
A
B
C
D
E
F

Rutas aprendidas
[A:0, B:1:i1, C:1:i2]
[B:0, A:1:i1, D:1:i2]
[C:0, A:1:i1, E:1:i2]
[D:0, B:1:i1, E:1:i2]
[E:0, C:1:i3, D:1:i1, F:1:i2]
[F:0, E:1:i1]

En los vectores de distancia, se incluyen ahora las rutas aprendidas:


ESTACION
A
B
C
D
E
F

Vector de distancia
[A:0, B:1, C:1]
[B:0, A:1, D:1]
[C:0, A:1, E:1]
[D:0, B:1, E:1]
[E:0, C:1, D:1, F:1]
[F:0, E:1]

Las estaciones aprenden rutas de sus vecinos, y actualizan sus tablas de


encaminamiento. En la siguiente actualizacin incluyen las rutas que han
aprendido en sus vectores de distancia que envan:

ESTACION
A
B
C
D
E
F

Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DB:2:i1, EC:2:i2]
[B:0, A:1:i1, D:1:i2, CA:2:i1, ED:2:i2]
[C:0, A:1:i1, E:1:i2, BA:2:i1, DE:2:i2, FE:2:i2]
[D:0, B:1:i1, E:1:i2, FE:2:i2, CE:2:i2, AB:2:i1]
[E:0, C:1:i3, D:1:i1, F:1:i2, BD:2:i1, AC:2:i3]
[F:0, E:1:i1, DE:2:i1, CE:2:i1]

Cuando se aprende una ruta nueva, se debe almacenar la puerta de


enlace y el interfaz. Por ejemplo, La estacin A, ha aprendido la ruta de D,
pero para llegar a D debe enviar los datos a travs de B. En la tabla se
simboliza como DB (D va B). Se puede observar que la estacin A y B an

15

no saben de la existencia de la estacin F, y al revs, la estacin F no sabe de


la existencia de A y B.
Las estaciones envan sus vectores de distancia, con las rutas aprendidas:
ESTACION
A
B
C
D
E
F

Vector de distancia
[A:0, B:1, C:1, D:2, E:2]
[B:0, A:1, D:1, C:2, E:2]
[C:0, A:1, E:1, B:2, D:2, F:2]
[D:0, B:1, E:1, F:2, C:2, A:2]
[E:0, C:1, D:1, F:1, B:2, A:2]
[F:0, E:1, D:2, C:2]

Obsrvese que en los vectores de distancia no se incluye la puerta de


enlace de la ruta ni el interfaz. Sola se informa la mtrica de cada destinacin.
En la tercera iteracin las estaciones siguen aprendiendo nuevas rutas:
ESTACION
A
B
C
D
E
F

Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DB:2:i1, EC:2:i2, FC:3:i2]
[B:0, A:1:i1, D:1:i2, CA:2:i1, ED:2:i2, FD:3:i2]
[C:0, A:1:i1, E:1:i2, BA:2:i1, DE:2:i2, FE:2:i2]
[D:0, B:1:i1, E:1:i2, FE:2:i2, CE:2:i2, AB:2:i1]
[E:0, C:1:i3, D:1:i1, F:1:i2, BD:2:i1, AC:2:i3]
[F:0, E:1:i1, DE:2:i1, CE:2:i1, BE:3:i1, AE:3:i1]

La red ha llegado al equilibrio en tres actualizaciones. Todas las


estaciones se pueden comunicar entre ellas, ya que han aprendido todas las
rutas. Aun as es necesario seguir enviando actualizaciones para mantener el
equilibrio de forma peridica para que las estaciones detecten cambios en la
topologa. Por ejemplo, si dejamos de recibir el vector de distncia de un
router vecino, esto se debe a que dicho router ya no resulta accesible para
nosotros.
Se puede resumir las acciones que debe hacer cada estacin que
participa en el algoritmo en tres puntos:
Mantener una tabla con una entrada para cada destinacin posible en el
sistema. La entrada contendr la distancia a la destinacin, y la primera puerta
de enlace en la ruta de esa red y el interfaz. Conceptualmente, debe de haber
una entrada para ella misma, con mtrica 0, pero no ser realmente incluida
en la tabla de encaminamiento.
-

Peridicamente, enviar su vector de distancia a cada vecino.

Recibir los vectores de distancia de sus vecinos y comparar las entradas


recibidas con las almacenadas en la tabla de encaminamiento. Si se
encuentra alguna con una mtrica menor, escoger la nueva ruta.

16

2.2.1 CAMBIOS EN LA TOPOLOGIA


En una red, los routers y lneas fallan. Esto implica que la topologa de red
cambia, y por el mismo motivo, el sistema de vecinos cambia. Por lo tanto, la
prxima vez que se hace el clculo de rutas, el cambio tiene que reflejarse.
Para solventar este problema, el algoritmo del vector de distancia debe
disponer de un mecanismo de caducidad de las rutas. Este mecanismo es
propio del protocolo especfico que se utilice. En el protocolo RIP, cada puerta
de enlace que participa en el encaminamiento enva un mensaje de
actualizacin a todos sus vecinos una vez cada 30 segundos. Si no se obtiene
la actualizacin transcurridos 180 segundos, se considera que o la puerta de
enlace se ha roto o que la red de conexin ha dejado de funcionar. Entonces,
se marca la ruta como invlida. Si recibimos de otro vecino una ruta vlida, se
substituye por la ruta que esta marcada como invlida. Se espera 180
segundos antes de dar por caducada una ruta a pesar de esperar respuesta
de nuestros vecinos cada 30 segundos. Desafortunadamente, en las redes,
los datos se pierden de vez en cuando, por lo tanto, no es buena idea
invalidar una ruta basndose en una sola actualizacin que falte.
Es til tener una manera de notificar a nuestros vecinos que no hay
actualmente una ruta vlida de una cierta red. RIP, como otros protocolos de
esta clase, hace esto a travs de un mensaje normal de actualizacin,
marcando esa red como inalcanzable. Se elige una mtrica especfica para
indicar una destinacin inalcanzable; ese valor es ms grande que la mtrica
vlida ms grande que esperamos ver. En la implementacin existente del
RIP, se utiliza 16. Este valor se refiere normalmente al infinito, puesto que es
ms grande que la mtrica vlida ms grande. 16 puede parecer un nmero
asombrosamente pequeo. Ms adelante se ver porque se escoge este y no
otro.
En la Fig. 7, tenemos una topologa de red constituida por cuatro
ordenadores conectados.

Fig. 7

17

Con la red en equilibrio, las estaciones tienes las siguientes rutas


aprendidas:
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DC:2:i2]
[B:0, A:1:i1, C:1:i2, DC:2:i2]
[C:0, A:1:i3, B:1:i1, D:1:i2]

Por tanto, enviarin los siguientes vectores de distancia:

ESTACION
A
B
C

Vector de distancia
[A:0, B:1, C:1, D:2]
[B:0, A:1, C:1, D:2]
[C:0, A:1, B:1, D:1]

En la Fig. 8 se ilustra el caso anterior, pero el enlace entre la estacin A y


C ha dejado de funcionar. Se simboliza con una x.

Fig. 8
La estacin A y la estacin C se ven afectadas por este cambio de
topologa y marcan sus rutas como invlidas. Se incluyen las rutas invlidas
con una mtrica de 16, es decir, inalcanzables:
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1, C:16, D:16]
[B:0, A:1:i1, C:1:i2, DC:2:i2]
[C:0, A:16, B:1:i1, D:1:i2]

En la siguiente actualizacin, las estaciones afectadas aprenden de la


estacin B una ruta alternativa. La red se vuelve a equilibrar.

18

ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1, CB:2:i1, DB:3:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, AB:2:i1, B:1:i1, D:1:i2]

Segn lo visto hasta ahora, se puede garantizar que el algoritmo permite a


las estaciones, que encuentren las rutas idneas a las destinaciones de la red.
En caso de un cambio de topologa el algoritmo es capaz de equilibrarse en
un cierto tiempo.

2.2.2 PREVENCIN DE LA INESTABILIDAD: CUENTA A INFINITO


El valor de mtrica escogido en RIP para representar un destino
inalcanzable, es 16. Si suponemos que un destino es inaccesible, todas las
puertas de enlace inmediatamente vecinas fijarn la mtrica para ese destino
a 16. Las puertas de enlace un salto ms lejos de los vecinos directos
terminaran con una mtrica 17; las entradas dos saltos ms lejos con 18, y
as sucesivamente. Esto es debido a que el clculo de la mtrica es la suma
de costes para esa ruta. An as en RIP el valor mximo permitido para una
mtrica es 16. Por tanto el sistema converge en una mtrica de 16 para el
destino inalcanzable, en todas las puertas de enlace, es decir, una puerta de
enlace como mximo puede fijar una mtrica 16 en sus rutas, y esta indica
que el destino de esa ruta es inalcanzable.
En el apartado anterior, se ha visto que el algoritmo del vector de distancia
permite equilibrar la red en un cierto tiempo cuando se produce un cambio en
la topologa de red. En algunos casos, segn la topologa de red y el cambio
de topologa producido, el tiempo de convergencia no es aceptable.
En la Fig. 9 se ilustra una topologa de tres ordenadores.

Fig. 9

19

Las rutas aprendidas al inicio son:


ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1]

Desde este punto, A y C envan sus vectores de distancia:

Fig. 10
Vector de A: [A:0, B:1]
Vector de C: [C:0, B:1]

La estacin B tambin enva su vector de distancia:

Fig. 11
Vector de B: [B:0, A:1, C:1]

La estacin A aprende la ruta a la estacin C. Y la estacin C aprende la


ruta a la estacin A.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1, CB:2:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1, AB:2:i1]

La red ha llegado al equilibrio, cada estacin puede comunicarse con el


resto de estaciones del sistema. Supngase que la lnea de comunicacin
entre la estacin A y B deja de funcionar:

20

Fig. 12
En la siguiente actualizacin B no recibe el vector de distancia de A.
Transcurrido un tiempo sin recibir informacin sobre la estacin A, la ruta a la
estacin A que tiene almacenada la estacin B, caduca, y se marca como
inalcanzable, es decir con mtrica 16. Recurdese que en RIP, el tiempo de
caducidad de una ruta, es de 180 segundos.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, AB:2:i1]

Como la estacin A queda aislada, tampoco recibe vectores de distancia


de B y marca sus rutas como inalcanzables.
La estacin C enva su vector de distancia.

Fig. 13
Vector de C: [C:0, B:1, A:2]

Como C an no sabe que la lnea entre la estacin A y la estacin B ha


fallado, tiene en su base de datos una ruta para llegar hasta la estacin A ,
que para ella es vlida. Por tanto se incluye esta ruta en su vector de
distancia. B piensa que C tiene un camino alternativo para llegar a la estacin
A e incluye una nueva entrada en su base de datos con mtrica 3.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:3:i2, C:1:i2]
[C:0, B:1:i1, AB:2:i1]

En este punto, como la estacin C no recibe de la estacin B la ruta que


aprendi para llegar a la estacin A (AB:2), despus de un cierto tiempo

21

marcar esa ruta como invlida, y en la actualizacin siguiente aprender de


nuevo la ruta de la estacin B, pero esta vez, con mtrica 4.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:3:i2, C:1:i2]
[C:0, B:1:i1, AB:4:i1]

Ahora es B quin no recibe actualizacin de la ruta A que aprendi de C


(AC:3). Por tanto, a la larga adoptara una mtrica de 5 para esta ruta.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:5:i2, C:1:i2]
[C:0, B:1:i1, AB:4:i1]

Por culpa de estos rebotes de informacin entre las estaciones, la mtrica


de la ruta a la estacin A se va incrementando, y no es eliminada de las tablas
de encaminamiento. No se cancelar por completo hasta que no se alcance
una mtrica de 16, la mxima permitida. Por tanto se puede concluir que el
tiempo de convergencia es lento. A este tipo de problemas se le conoce como
Cuenta a infinito.
Para prevenir este tipo de situaciones, en el protocolo RIP se implementa
dos mecanismos: Horizonte dividido con actualizacin inversa, y Trigger
Update.

2.2.3 HORIZONTE DIVIDIDO CON ACTUALIZACIN INVERSA


ENVENENADA
El problema descrito en el apartado anterior es causado por el hecho de
que las estaciones se engaan mutuamente sobre las estimaciones que
hacen.
Horizonte dividido, es una tcnica para evitar estos problemas. Para
conseguirlo, no se enva informacin sobre una ruta por el mismo enlace por
el que ha llegado. Adems se utiliza la tcnica de Inversa envenenada. Si
una ruta es inalcanzable si que se anuncia por la misma interfaz que se
aprendi que la ruta es inalcanzable.
Vase la evolucin de la topologa de la Fig. 12, aplicando estas tcnicas.
Partimos del equilibrio antes de que la estacin A dejara de funcionar.
ESTACION
A
B
C

Rutas aprendidas
[A:0, B:1:i1, CB:2:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1, AB:2:i1]

22

Cuando la estacin A deja de funcionar:


ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, AB:2:i1]

La estacin C enva su vector de distancia:


Vector de C: [C:0, B:1]
Como C aprendi la ruta a la estacin A por la interfaz que la une con la
estacin B, en su vector de distancia no incluye esta ruta. Por lo tanto, la
estacin B no aprender de nuevo la ruta a la red que ha dejado de funcionar
cuando C mande su vector. Con el tiempo C marcara su ruta a la estacin A
como no vlida por el hecho de no recibir actualizaciones por parte de B:

ESTACION
A
B
C

Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, A:16]

Se puede concluir que utilizando estas tcnicas la convergencia es mucho


ms rpida. De todas formas, en algunas topologas no es suficiente con
utilizar estas tcnicas.
En la Fig. 15 se muestra un escenario con 5 estaciones.

Fig. 14

23

ESTACION
N
A
B
C
D

Rutas aprendidas
[N:0, A:1:i1, CA:2:i1, BA:2:i1, DA:3:i1]
[A:0, N:1:i3, B:1:i1, C:1:i2, DB:2:i1]
[B:0, A:1:i2, D:1:i1, CA:2:i2, NA:2:i2]
[C:0, A:1:i2, D:1:i1, BA:2:i2, NA:2:i2]
[D:0, B:1:i1, C:1:i2, AB:2:i1, NB:3:i1]

La red funciona correctamente y todas las estaciones se pueden


comunicar con el resto de estaciones del sistema. De repente, la lnea que
une estacin N con la estacin A deja de funcionar.

Fig. 15

Como consecuencia a esto la estacin N queda aislada del sistema y con


el tiempo eliminar todas sus rutas por no recibir vectores de distancia de la
estacin vecina A. Por otra parte, la estacin A marcar la ruta a la estacin N
como invlida al no recibir actualizaciones. A enva su vector de distancia
indicando con mtrica 16 la ruta a la estacin N.

24

Fig. 16

Esto implica que las estaciones B y C marquen la ruta a la estacin N


como inalcanzable. Supngase en este punto que D enva su vector de
distancia.

Fig. 17
Como la estacin D aprendi la ruta a la estacin N gracias a la estacin
B, no incluye en el vector de distancia dirigido a B esta ruta. Pero, en el vector
de distancia dirigido a la estacin C si que incluye esta ruta. Debido a esto, la
estacin C cree encontrar una ruta alternativa a travs de la estacin D y
activa de nuevo la ruta a la estacin N con mtrica 4 va D.
En las siguientes actualizaciones se entra en un proceso de cuenta a
infinito de la ruta N:

25

Fig. 18

En este ejemplo se puede observar que la convergencia ante cambios en


la topologa es lenta. Por tanto se necesita de otro mecanismo adicional para
evitar estas situaciones. Este mecanismo es Trigger Update.

2.2.4 TRIGGER UPDATE


La tcnica Trigger Update, consiste en enviar las actualizaciones
inmediatamente ante un cambio de rutas. Es decir, si una estacin cambia
una ruta de su base de datos, inmediatamente informa a sus vecinos de dicho
cambio. Con este tipo de tcnica se evita el problema descrito en el ejemplo
anterior.

26

Fig. 19

Retmese el ejemplo cuando la estacin A enva sus vectores de


distancia, indicando que la ruta a la estacin N es inalcanzable.
Inmediatamente despus de que B y C reciben la noticia de que la ruta a la
estacin N es inalcanzable, reenvan esta informacin. Con esto se consigue
que la estacin D se entere de que la ruta a la estacin N es inalcanzable
antes de su prxima actualizacin peridica, y se evita de esta forma la cuenta
a infinito.
Hasta el momento se ha enseado las bases de los protocolos de
encaminamiento basados en vectores de distancia. Se han mostrados
diversos ejemplos donde en las rutas de encaminamiento se incluyen rutas
hacia diferentes mquinas. No obstante, en redes IP, las mquinas se
agrupan en redes. Conceptualmente, el proceso de encaminamiento es igual
al mostrado en los ejemplos del algoritmo del vector de distancia, pero se
incluye informacin de como llegar a una determinada red.

2.3 ESPECIFICACIONES DEL PROTOCOLO RIP


El Protocolo RIP tiene 2 versiones. La versin 1 descrita en el RFC
(Request For Comments) 1058, y la versin 2, descrita en el RFC 2453. En el
presente texto se describe primeramente el protocolo basndose en la versin
1. Finalmente, se dedica un apartado adicional para indicar las ampliaciones y
mejoras que aporta la versin 2 del protocolo.
Cada router que utilice RIP se entiende que tiene interfaces a una o ms
redes del sistema. La mtrica que se usa en RIP es el nmero de saltos y es
un nmero entero entre 1 y 15 inclusivos. Por defecto se utiliza una mtrica de

27

1 por salto. Sin embargo, un administrador del sistema puede fijar la mtrica
de cada red manualmente.
Cada entidad que usa RIP debe tener una tabla de encaminamiento. Esta
tabla de encaminamiento debe tener una entrada para cada destinacin
posible en el sistema. Cada entrada contiene por lo menos la informacin
siguiente:
La direccin IP del destino o un rango de direcciones indicado mediante
direccin de red + mscara
-

La mtrica, o nmero de saltos hasta alcanzar el destino

La direccin IP de la puerta de enlace siguiente. Si el destino est en una


de las redes directamente conectadas, este campo no ser necesario.
Una bandera para indicar que la informacin sobre la ruta ha cambiado
recientemente.
-

Temporizadores de tiempo asociados a la ruta.

La direccin IP de destino, puede ser tanto una direccin IP de una


mquina como una direccin IP de una red o subred. Por tanto, en los
vectores de distancia que intercambian los routers se puede anunciar rutas
tanto de mquinas como de redes o subredes.
Inicialmente, las tablas de encaminamiento de cada router solo contienen
entradas a las redes que estn directamente conectadas. Despus, cada
router empieza a enviar vectores de distancia. Con los vectores de distancia
recibidos los routers aprenden rutas nuevas de sus vecinos que van
introduciendo en sus tablas de encaminamiento, siguiendo las pautas que
marca el algoritmo del vector de distancia descrito en el apartado anterior.

2.4 FORMATO DEL MENSAJE


RIP enva su informacin encapsulada en datagramas del protocolo UDP
(User Datagram Protocol). UDP es un protocolo del nivel de transporte para el
intercambio de datagramas. Permite el envo de datagramas a travs de la red
sin que se haya establecido previamente una conexin, ya que el propio
datagrama incorpora suficiente informacin de direccionamiento en su
cabecera. Tampoco tiene confirmacin, ni control de flujo, por lo que los
paquetes pueden adelantarse unos a otros, y tampoco se sabe si ha llegado
correctamente, ya que no hay confirmacin de entrega o de recepcin. Cada
router que usa RIP tiene un proceso de encaminamiento que enva y recibe
datagramas por el puerto 520 UDP. Por tanto, un datagrama RIP tendr una
cabecera IP y una cabecera UDP.

28

Adems RIP permite procesos silenciosos. Un proceso silencioso


normalmente no enva ningn mensaje. Sin embargo, escucha los mensajes
enviados por otros. Estos procesos son utilizados habitualmente por
ordenadores que no actan como puertas de enlace, pero desean escuchar
los mensajes de encaminamiento para supervisar las puertas de enlace
locales y mantener sus tablas de encaminamiento actualizadas.
A continuacin se muestra el formato que tienen los datagramas que se
utilizan en RIP versin 1 para enviar informacin de la red. Los tamaos de
campo estn en octetos.
0

7
8
15 16
COMANDO (1)
VERSIN (1)
ADDRESS FAMILY IDENTIFIER
ADDRESS (4)
0 (4)
0 (4)
MTRICA (4)

31
0 (2)
0 (2)

Estos datagramas no son otra cosa que vectores de distancia. Cada


datagrama contiene un comando, un nmero de versin, y otros argumentos
referentes a una ruta. Cada datagrama puede contener hasta 25 rutas. Hay
campos que quedan con valor 0. Estos campos estn pensados para
ampliaciones en futuras versiones del protocolo.

Si se tiene que enviar ms de 25 entradas, se debe enviar en ms de un


mensaje.

29

A continuacin se describir el formato de la versin 1 del protocolo. Los


comandos utilizados en esta versin son:
1 Request: Una peticin al sistema para enviar toda o parte de su tabla de
encaminamiento.
2 Response: Mensaje que contiene toda o parte de la tabla de
encaminamiento del remitente. Este mensaje se puede enviar en respuesta a
una peticin, o puede ser un mensaje de actualizacin generado por el
remitente.
3 Traceon: Obsoleto. Los mensajes que contienen este comando deben ser
ignorados.
4 Traceoff: Obsoleto. Los mensajes que contienen este comando deben ser
ignorados.
5 Reserved: Este comando reservado es utilizado por Sun Microsystems
para propsitos suyos. Si se aaden nuevos comandos en alguna versin ms
actual, deben comenzar por el 6. Los mensajes que contienen este comando
pueden ser ignorados si en las implementaciones utilizadas no esta definido.
Para Request y Response, el resto del datagrama contiene una lista de
destinaciones, con informacin sobre cada una. Cada entrada en esta lista
contiene:
Identificador de la familia: Especfica el tipo de direccin de esa entrada.
En direcciones IP el identificador de la familia es 2.
Direccin: Direccin destino de la ruta.
Mtrica: Nmero de saltos hasta llegar a la direccin de destino. Debe
ser un valor entre 1 y 16 inclusivos.
El tamao mximo del datagrama es 512 octetos. Esto incluye solamente
las partes del datagrama descritos arriba. No tiene en cuenta las cabeceras
propias del IP o del UDP.

2.5 CONSIDERACIONES EN EL DIRECCIONAMIENTO


Los routers de una red RIP, intercambian mensajes de peticin y de
respuesta para llevar a cabo el encaminamiento. Sin embargo, las
destinaciones que aparecen en estos mensajes pueden ser de redes, de
ordenadores, o una direccin por defecto (la direccin 0.0.0.0). Generalmente,
la informacin de encaminamiento de ordenadores individuales no es
necesaria. Si cada ordenador en una red o subred dada es accesible a travs
de una puerta de enlace, entonces no es necesario considerar a estos en las
tablas de encaminamiento.

30

Fig. 20
En la Fig. 20 se muestran dos redes: La red 10.0.0.0 y la red 192.168.1.0.
Para que el ordenador A se pueda comunicar con la red 192.168.1.0 no es
necesario que almacene en su tabla de encaminamiento la ruta a cada uno de
los ordenadores de esta red, ya que todos estos son accesibles a travs de la
puerta de enlace B, con direccin 10.0.0.2. Por lo tanto su tabla de
encaminamiento sera:
RED
10.0.0.0
192.168.1.0

GW
DC
10.0.0.2

Mtrica
0
1

GW: Gateway
DC: Directamente conectado
Si se incluyen las rutas a los ordenadores individuales la tabla de
encaminamiento sera ms complicada:
RED
10.0.0.0
192.168.1.0
192.168.1.2
192.168.1.3
192.168.1.4

GW
DC
10.0.0.2
10.0.0.2
10.0.0.2
10.0.0.2

Mtrica
0
1
1
1
1

Claramente se puede ver que en este caso se puede resumir las rutas a
los ordenadores individuales por la ruta a la red.
Por tanto, los routers que utilizan RIP, al encaminar un datagrama, primero
deben comparar su direccin de destino con la lista de direcciones ya
aprendida, para ver si es posible emparejarla con una direccin de subred o
una red ya aprendida.
Cuando un router evala una destinacin nueva que recibe, su
interpretacin depender de si conoce o no la mscara de subred que se le
aplica. Si la conoce, es posible determinar que tipo de direccin es. Por
ejemplo, considrese que la red 128.6.0.0 tiene una mscara de subred de
255.255.255.0. Por tanto la direccin 128.6.0.0 es de red, la 128.6.4.0 es de

31

subred, y la 128.6.4.1 es una direccin de un ordenador en particular. Sin


embargo, si el router no sabe la mscara de subred, la interpretacin de una
direccin puede ser ambigua. En este tipo de casos, se considera que estas
direcciones corresponden a direcciones de ordenador. Para evitar esta clase
de ambigedad, no se debe enviar rutas de subred a otros vecinos que no
sepan la mscara apropiada. Por tanto, a menos que se hayan hecho las
provisiones especiales, las rutas a una subred no se deben enviar fuera de la
red de la cual forma parte dicha subred.
La direccin especial 0.0.0.0 es usada como la ruta por defecto. Esta
direccin se utiliza para agrupar todas aquellas direcciones que no se sabe
donde encaminarlas. Normalmente, es decisin del administrador la manera
de manejar este tipo de entrada.

2.6 TEMPORIZADORES
Para determinar la caducidad de una ruta es necesario el uso de
temporizadores. Cada router asocia tres temporizadores para cada ruta que
tiene almacenada:
- Tiempo de actualizacin cada 30 segundos. Cada vez que el temporizador
llega a 30 segundos se produce una actualizacin. El proceso de RIP
despierta y enva un mensaje de respuesta no solicitado con el vector de
distancia, a todos los routers vecinos.
- Tiempo de En cancelacin a los 180 segundos. Una vez transcurridos 180
segundos sin recibir actualizacin de una ruta, se considera no vlida. Sin
embargo la ruta se retiene un cierto periodo de tiempo, lo cual permite advertir
a los vecinos que la ruta ha sido eliminada.
- El temporizador del recolector de basura, a los 120 segundos. Una vez
transcurridos 120 segundos, despus de que una ruta haya pasado al estado
En cancelacin, la ruta es definitivamente eliminada de la tabla de
encaminamiento. El nombre de este temporizador, recolector de basura,
viene del hecho que esta asociado a todas aquellas rutas residuales que se
deben ir borrando de la tabla de encaminamiento.

Por consiguiente, para que una ruta pase al estado En Cancelacin


deben transcurrir 6 perodos de actualizacin sin recibir noticias de esta ruta, y
120 segundos ms para que sea definitivamente eliminada.

32

Una ruta puede ser marcada como no vlida por dos razones:
- El temporizador de En cancelacin expire.
- La mtrica de la ruta es 16.
En cualquier caso, se sigue el siguiente proceso para cancelar una ruta:
- El temporizador de recolector de basura se fija a 120 segundos.
- La mtrica para la ruta se fija a 16 (infinito). Esto hace que la ruta sea
quitada del servicio.
- Se activa una bandera indicando que ha cambiado esta entrada. Esto implica
el envo inmediato del nuevo vector de distancia (Trigger Update).
Hasta que expira el contador de tiempo de recolector de basura, la ruta se
incluye en todas las actualizaciones enviadas, con una mtrica de 16. Cuando
expira el contador, la ruta se suprime de la base de datos y no se incluye en
los vectores de distancia.
Si se encuentra una nueva ruta a esta red mientras el contador recolector
de basura esta activo, la nueva ruta substituye la que est a punto de ser
suprimida, y el contador se desactiva.

2.7 PROCESO DE ENTRADA


El proceso de entrada del protocolo RIP se produce cuando un router que
utiliza este protocolo recibe un vector de distancia RIP, y consiste en el
procesamiento de este. Antes de procesar los vectores detalladamente, se
debe observar el formato de estos. Para ello se mira el campo Versin en el
datagrama:
Versin 0:
Los datagramas con versin 0, son ignorados. Estos
corresponden a una versin anterior del protocolo, en la que el formato del
paquete era de una mquina especfica.
Versin 1: Los datagramas se procesarn. Todos los campos que tienen que
ser 0 se comprueban. Si una de ellos no lo es, el mensaje entero se ignora.
Versin >1: Versiones futuras del protocolo, que pueden utilizar los campos
puestos a 0. Este es el caso de la versin 2 que veremos ms adelante.
Despus de comprobar la versin, el proceso depender del valor que
tenga el campo Comando.

33

2.7.1 COMANDO REQUEST


La peticin (Request) se usa para recibir toda o parte de la tabla de
encaminamiento. Normalmente, se enva una peticin broadcast por el puerto
UDP 520. En este caso, los ordenadores que participan de forma pasiva, es
decir, que solo estn a la escucha no responden a la peticin. Sin embargo,
puede haber situaciones que interese que respondan tambin. En ese caso, la
peticin se debe enviar por un puerto UDP que no sea el 520. Si la peticin
viene de cualquier otro puerto, deben responder.
La peticin es procesada entrada a entrada. Si no hay entradas, no se da
ninguna respuesta. Existe un caso especial. Si hay una sola entrada en la
peticin, con un identificador de la familia de la direccin de 0 (que significa
sin especificar), y una mtrica al infinito, es decir, a 16, esto es equivalente a
una peticin de toda la tabla de encaminamiento.
0

7
1 (Request)

15

16

VERSIN
0

31
0
0

0
0
0
16 (Metrica)

Este tipo de mensaje suele ser enviado por routers que acaban de ser
reiniciados o routers que se ponen en funcionamiento por primera vez. A
excepcin de este caso especial, el proceso es muy simple. Para cada
entrada, se mira la destinacin en la base de datos de encaminamiento. Si
hay una ruta, poner la mtrica de esa ruta en el campo mtrica
correspondiente del datagrama. Si no hay ruta para esa destinacin
especificada, poner a infinito, es decir, 16, en el campo mtrica. Una vez que
se hayan completado todas las entradas, poner el comando en respuesta, es
decir comando a valor 2, y enviar el datagrama nuevo por el puerto por el cual
vino.
Si la peticin es de la tabla completa, se hace el proceso normal con horizonte
dividido. Por tanto ciertas entradas de la tabla de encaminamiento no sern
mostradas. En cambio, si la peticin es de un nmero especfico de entradas,
se enviarn las pedidas, pero no se aplicara el proceso de horizonte dividido.
Normalmente esto ltimo se utiliza para hacer diagnsticos.

2.7.2 Comando Response


Para generar un mensaje de respuesta el campo comando del mensaje
debe ser 2. Las respuestas se pueden recibir por varias razones:
- Respuesta a una consulta especfica
- Una actualizacin regular
- Accionados por un cambio en la mtrica

34

Indiferentemente de cmo fueron generadas las respuestas, el proceso a


seguir es el mismo.
Como el proceso de respuesta puede actualizar la tabla de
encaminamiento de un router, es importante comprobar que el mensaje de
respuesta sea vlido. La respuesta debe ser ignorada si viene por otro puerto
que no sea el 520. La direccin IP de la respuesta se debe comprobar para
que sea de un vecino vlido.
Una vez el datagrama es considerado vlido, se procesan las entradas una
a una. Mirar la direccin de destino. Comprobar el identificador de la familia de
la direccin. Si no es un valor esperado, por ejemplo direcciones IP, ignorar la
entrada. Tambin se tiene que comprobar que las direcciones no sean de la
clase D o E, o si es la 127 loopback o de localhost. Comprobar que la
versin sea coherente con los campos a 0 que debe llevar.
Cuando el mensaje de respuesta recibido tiene el formato correcto segn
las comprobaciones anteriores, se cotejan las rutas recibidas por las ya
aprendidas. Primeramente se mira si la ruta esta o no en la tabla de
encaminamiento. En caso de que no este, generalmente se agregar una
entrada nueva. Sin embargo, hay varias excepciones. Si la mtrica es infinita,
no se agregar la entrada. Se debe evitar agregar rutas a ordenadores si son
parte de una red o subred para la cual ya se tiene entrada buena. En
cualquier otro caso, se agregar una nueva entrada a la base de datos de
encaminamiento. Esto incluye las acciones siguientes:
-

Insertar la destinacin y la mtrica.

Insertar la puerta de enlace.

Inicializar el temporizador de caducidad de la ruta. Si el temporizador


recolector de basura est funcionando en esa ruta, pararlo.
Activar la bandera de cambio de ruta, y sealar el proceso de salida para
provocar una actualizacin.
Si hay una ruta ya existente, primero se tiene que comparar las puertas de
enlace. Si es la misma, se inicializa el temporizador de caducidad. Despus se
compara la mtrica. Si la mtrica es ms baja:
Se actualiza la ruta por la del datagrama, Es decir, se pone la nueva
mtrica y la puerta de enlace nueva.
-

Inicializar el temporizador.

Activar la bandera de cambio de ruta, y sealar el proceso de salida para


provocar una actualizacin.
Si la mtrica nueva es 16, se inicia el proceso para suprimir la ruta. La ruta
se utilizar solo para los paquetes de encaminamiento, y se inicializa el
35

temporizador de cancelacin. Observar que una cancelacin se produce solo


cuando la mtrica se pone por primera vez en 16. Si la mtrica era ya 16, una
futura cancelacin ser ignorada.
Si la mtrica nueva es igual que la vieja, lo ms simple es no hacer nada,
solo se inicializa el temporizador de caducidad.
Cualquier entrada se ignora en el caso que fallen las comprobaciones,
pues esta es considerada peor que la ruta actual.

2.8 Proceso de salida


En este apartado se detalla el proceso usado para crear los mensajes de
respuesta que contienen toda o parte de una tabla de encaminamiento. Este
proceso puede ser accionado por varios motivos:
Debido a una peticin. En este caso, el mensaje solo se enva a una
destinacin.
Por una actualizacin regular. Cada 30 segundos, la tabla entera se
enva a los vecinos.
Debido a actualizaciones accionadas. Siempre que la mtrica de una ruta
cambia, se acciona una actualizacin.
Cuando una respuesta se tiene que enviar a todas las destinaciones, es
decir, la actualizacin regular o una actualizacin accionada, se enva un
mensaje broadcast a todas las redes conectadas. En la mayora de los casos
esto equivale a todas las puertas de enlace vecinas. Sin embargo, hay
algunos casos donde esto no es bueno, ya que puede llegar a redes que no
interesa que lleguen mensajes de encaminamiento. Si este es el caso, se
debera crear una lista real de los vecinos, y enviar un datagrama a cada uno
explcitamente. Este mecanismo es definido por cada implementador.
Las actualizaciones accionadas pueden causar cargas excesivas en redes
con capacidad limitada o con muchas puertas de enlace. Por consiguiente, el
protocolo requiere que se incluyan provisiones para limitar la frecuencia de
actualizaciones accionadas. Las actualizaciones accionadas se pueden anular
si coincide al mismo tiempo con la actualizacin regular.
Las actualizaciones accionadas no necesitan incluir la tabla de
encaminamiento entera. Solo las rutas que han cambiado. Ms
concretamente, en los mensajes generados se incluirn las rutas que tengan
la bandera de cambio activada. Cuando se hacen actualizaciones accionadas
o normales se usa el horizonte dividido. Una vez se hayan hecho las
actualizaciones accionadas, las banderas de cambio se deben desactivar.
La nica diferencia entre una actualizacin accionada y otros mensajes de
actualizacin es la posible omisin de las rutas que no han cambiado. El resto
de los mecanismos son similares.

36

A continuacin se detalla como se genera un datagrama de respuesta para


una red directamente conectada en particular:
La direccin IP origen debe ser la del ordenador que enva la actualizacin.
Esto es importante porque esta direccin se pone en las tablas de
encaminamiento de otros routers. Si se utiliza una direccin incorrecta, otros
routers pueden no encaminar bien los datagramas.
Poner el nmero de la versin RIP. Poner el comando en respuesta. Poner los
campos que deben ser cero, a cero. Ahora se van completando las entradas.
El tamao mximo del datagrama es 512 octetos. Cuando no hay
suficiente espacio hay que enviar dos datagramas.
Las rutas se deben incluir en el datagrama aunque sus mtricas sean
infinitas. Si la puerta de enlace de una ruta est en la red para la cual esta
destinado el datagrama, la mtrica se pone a 16, o se quita la entrada entera.
Ignorar las entradas segn horizonte dividido con retorno envenenado.

2.9 EJEMPLO RIP


A modo de ejemplo y para retener los procedimientos vistos anteriormente
que usa el protocolo RIP, se propone un ejemplo de una red RIP, ilustrado en
la Fig. 21.

Fig. 21
Se trata de un conjunto de 4 redes y 3 routers dispuestos en serie. Cada
router tiene dos interfaces y se han asignado direcciones IP respetando la
singularidad en la red.
Inicialmente los routers tienen en sus tablas de encaminamiento las redes
a las que estn directamente conectadas. Cada 30 segundos, los routers
envan sus tablas por sus interfaces a todos sus vecinos. Para ello utilizan la
direccin de broadcast.
Router A
Destino
Mscara
Gateway IF
Mtrica
192.168.0.0 255.255.255.0 0.0.0.0
eth0 0
192.168.1.0 255.255.255.0 0.0.0.0
eth1 0

37

Router B
Mtrica
Destino
Mscara
Gateway IF
192.168.1.0 255.255.255.0 0.0.0.0
eth0 0
192.168.2.0 255.255.255.0 0.0.0.0
eth1 0
Router C
Destino
Mscara
Gateway IF
Mtrica
192.168.2.0 255.255.255.0 0.0.0.0
eth0 0
192.168.3.0 255.255.255.0 0.0.0.0
eth1 0

Supngase que los routers acaban de encenderse. En este caso, envan


un mensaje de peticin de la tabla de encaminamiento a sus vecinos. El
formato de este mensaje es de una sola entrada, con un identificador de la
familia de la direccin de 0 y una mtrica al infinito, es decir, a 16.
0

7 8
1 (Request)
0 (Cero)

15

16

1 (Versin)

31
0
0

0
0
0
16 (Mtrica)

Supngase que el router B recibe una peticin de la tabla del router A. El


router B construye su vector de distancia y lo enva al router A. El router A
recibir el siguiente datagrama:
0

7
2 (Response)

15

16

1 (Versin)

31
0
0

192.168.2.0
0
0
1 (Mtrica)

Como se puede observar, en el datagrama enviado, no se incluye la ruta a


la red 192.168.1.0. ya que se esta utilizando horizonte dividido.
El router A actualiza su tabla de encaminamiento:
Router A
Destino
192.168.0.0
192.168.1.0
192.168.2.0

Mscara
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.1.2

IF
eth0
eth1
eth1

Mtrica
0
0
1

38

De forma similar el resto de routers del sistema tambin aprendern las rutas.
Router B
Destino
192.168.1.0
192.168.2.0
192.168.3.0
192.168.0.0

Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.1.1

IF
eth0
eth1
eth1
eth0

Mtrica
0
0
1
1

Mscara
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.2.2

IF
eth0
eth1
eth0

Mtrica
0
0
1

Router C
Destino
192.168.2.0
192.168.3.0
192.168.1.0

Debido a las Trigger Updates, cuando se realiza un cambio en la tabla de


encaminamiento de cada router se genera automticamente una
actualizacin.
Router A
Destino
192.168.0.0
192.168.1.0
192.168.2.0
192.168.2.0

Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.1.2
192.168.1.2

IF
eth0
eth1
eth1
eth1

Mtrica
0
0
1
2

Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.1.1

IF
eth0
eth1
eth1
eth0

Mtrica
0
0
1
1

Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.2.2

IF
eth0
eth1
eth0
eth0

Mtrica
0
0
1
2

Router B
Destino
192.168.1.0
192.168.2.0
192.168.3.0
192.168.0.0
Router C
Destino
192.168.2.0
192.168.3.0
192.168.1.0
192.168.0.0

Con esto, los routers aprenden todas las rutas del sistema, y la red llega a
su equilibrio con rapidez.

39

2.10 RIP VERSION 2


En este apartado se pretende describir las mejoras que ofrece RIP v2
respecto a su versin anterior.

2.10.1

FORMATO MENSAJE RIP VERSION 2

RIP v2 tambin usa el puerto 520 UDP para enviar y recibir datagramas. El
formato de RIP v2 permite que los routers compartan informacin adicional
importante. La cabecera del mensaje es el mismo para los RIP v1 y los RIP
v2. En cambio el resto del mensaje cambia sustancialmente:
0

7 8
15 16
COMANDO (1)
VERSIN (1)
0 (2)
ADDRESS FAMILY IDENTIFIER
ETIQUETA DE RUTA (2)
CABECERA EXTRA (20)
IP ADDRESS (4)
MSCARA DE SUBRED (4)
SIGUIENTE SALTO (4)
MTRICA (4)

31

Para especificar que se trata de RIP v2 se pone el nmero 2 en el campo


versin. Campos que en la versin 1 del protocolo se dejaban a 0, ahora en la
versin 2 se utilizan. Los campos aadidos son:
- Etiqueta de ruta:
El campo de etiqueta de ruta proporciona un mtodo para separar las rutas
internas de RIP, es decir, rutas para las redes dentro del dominio de
encaminamiento RIP, y las rutas externas de RIP, aprendidas por un EGP o
de otro IGP.
Los routers que utilizan otros protocolos a parte de RIP se deben
configurar con la etiqueta de ruta para importar rutas de otras fuentes. Las
rutas importadas de un EGP deben marcarse con una etiqueta fijada
arbitrariamente.
Seran posibles otras aplicaciones a la etiqueta de ruta, mientras todos los
routers del dominio RIP las usen.
- Cabecera extra para autenticacin:
En la versin dos, el protocolo tiene una nueva funcionalidad de
autentificacin. RIP utiliza una entrada completa para realizar esta funcin. Si
el identificador de la familia de la direccin de la primera y solamente de la
primera entrada de un mensaje es 0xFFFF, el resto de la entrada contiene
informacin de autentificacin. Esto significa que como mximo habr 24
entradas RIP en el resto del mensaje. Si no usamos autentificacin en un
mensaje, la secuencia 0xFFFF no debe aparecer en ningn identificador de la
familia de direccin en ninguna entrada. Un mensaje con autentificacin
comenzara como sigue:

40

7 8
15
COMANDO (1)
VERSIN (1)
0XFFFF

16

31
SIN USO (2)
TIPO DE AUTENTIFICACIN (2)

AUTENTIFICACIN (16)

Actualmente, el nico tipo de autentificacin es una contrasea simple y


corresponde al tipo 2. Los 16 octetos contienen la contrasea en texto plano.
Si la contrasea ocupa menos de 16 octetos, se rellena con ceros a la
izquierda.
Si un router no se configura para autentificar mensajes RIP v2, los
mensajes RIP v1 y los RIP v2 no autentificados sern aceptados. Los
mensajes RIP v2 autentificados sern rechazados. Si el router se configura
para autentificar mensajes RIP v2, los mensajes RIP v1 y los RIP v2 que
pasen la autentificacin sern aceptados. Los no autentificados y los
mensajes no vlidos de RIP v2 sern rechazados. Para una seguridad
mxima, los mensajes RIP v1 deben ser ignorados cuando se esta
autentificando, si no, la informacin de encaminamiento de mensajes
autentificados sera propagada por routers RIP v1 de forma no autentificada.
Como los mensajes que utilizan autentificacin estn marcados con una
familia de direccin 0xFFFF, un sistema RIP v1 ignorara este mensaje.
- Mscara de Subred:
El campo de mscara de subred contiene la mscara de subred que se
aplica a la direccin IP. Si este campo es cero, entonces quiere decir que no
se ha incluido la mscara para esa entrada.
En un interfaz donde un router RIP v1 puede or la informacin de otro RIP
v2 las reglas que se aplican son las siguientes:
- La informacin interna de una red nunca debe ser anunciada en otra red.
- La informacin sobre una subred en particular no se puede anunciar donde
los routers son RIP v1, donde se puede considerar una ruta de host.
- Siguiente salto:
Es la siguiente direccin IP a la cual deben ser enviados los paquetes de
una ruta. Un valor de 0.0.0.0 en este campo indica que el siguiente salto es
va el autor del anuncio RIP. Una direccin de salto siguiente, forzosamente,
debe ser accesible directamente.
El propsito de este campo es eliminar los paquetes que son encaminados
a travs de saltos adicionales del sistema. Es especialmente til para redes
donde RIP no esta funcionando en todos los routers.

41

Fig. 22
En la Fig. 22, se muestra un ejemplo de aplicacin del campo Siguiente
salto. En este ejemplo se estn usando dos protocolos de encaminamiento
diferentes. Por una parte se esta utilizando RIPv2, y por otra, se esta
utilizando el protocolo OSPF. Como A y C utilizan un protocolo de
encaminamiento diferente no se entienden y entonces A no puede aprender
nuevas rutas a travs de C. Por tanto todas las rutas las debe aprender a
travs de B. No obstante, B puede utilizar el campo Siguiente salto para
indicar al router A que reencamine directamente sus paquetes al router C, y
de esta forma conseguir un encaminamiento ms ptimo.
Obsrvese que el salto siguiente es un campo de consulta. Es decir, si se
ignora la informacin proporcionada, se puede encaminar pero es posible que
no de la forma ptima. Si el salto siguiente recibido no es directamente
accesible, debe ser tratado como 0.0.0.0.

2.10.2 CONSIDERACIONES Y COMPATIBILIDADES


Para reducir la carga innecesaria, se usa una direccin multicast en las
actualizaciones peridicas. La direccin multicast es 224.0.0.9.
Si un router RIP v2 recibe una peticin RIP v1, debe responder con una
respuesta RIP v1. Si el router se configura para enviar solamente mensajes
RIP v2, no debe responder la peticin de RIP v1.
La versin 1 del protocolo especfica que los mensajes RIP de la versin 0
son ignorados, que las de versin 1 son ignorados cuando se encuentre un
campo definido como 0 y es diferente a cero, y que los mensajes RIP de
versin mayor a 1 no deben ser descartados si no se encuentra un campo
definido como 0 con valor diferente de cero. Por tanto la versin 2 de RIP es
totalmente compatible con la versin antigua.
Un router compatible es necesario por dos razones. Primero, en
implementaciones de RIP v1 no se siguen algunas reglas propias de RIP v2.
En segundo lugar, el uso de multicasting evitara que los sistemas RIP v1
recibieran las actualizaciones RIP v2. Por consiguiente un router debe ser
configurado interfaz a interfaz segn corresponda.
Un router tiene cuatro configuraciones:

42

RIP v1, en el cual solamente se envan los mensajes RIP v1


Compatibilidad RIP v1, en el cual los mensajes RIP v2 son broadcast.
RIP v2, en el cual los mensajes RIP v2 son multicast
Ninguno, que inhabilita enviar mensajes RIP.

Se recomienda fijar por defecto RIP v1 o RIP v2, pero nunca


Compatibilidad RIP v1. Esto es as debido a los problemas potenciales que
pueden ocurrir en algunas topologas.
Los routers deben tambin configurarse, para aceptar RIP v1 solamente,
RIP v2 solamente, o ninguno. Debe configurarse por interfaz. Se recomienda
que por defecto se escoja el elegido para enviar actualizaciones.
Como los paquetes de la versin 1 no contienen informacin de subred, la
semntica empleada por los routers en las redes que contienen la versin 1 y
las redes de la versin 2 se debe limitar al de la versin 1.

2.11 LIMITACIONES DEL PROTOCOLO


El protocolo RIP no soluciona todos los problemas del encaminamiento.
Segn lo mencionado en la introduccin, est previsto para el uso como IGP,
en redes razonablemente homogneas y de tamao moderado. A
continuacin se enumeran algunas limitaciones especficas del protocolo:

El protocolo esta limitado para redes que no superen los 15 saltos en sus
rutas. Los diseadores pensaron que el diseo bsico del protocolo era
inapropiado para redes ms grandes. Ntese que este lmite asume un coste
unitario para cada salto. Esta es la manera que RIP se configura
normalmente. Si el administrador del sistema elige utilizar costes ms
grandes, el lmite superior de 15 puede convertirse en un problema.
Otro limitacin es la cuenta al infinito en ciertas situaciones inusuales. Si
en un sistema, una ruta de encaminamiento implicar a todos los routers, la
resolucin de la ruta requerira mucho tiempo (si la frecuencia de las
actualizaciones de la informacin de encaminamiento es limitada) o ancho de
banda (si las actualizaciones fueran enviadas siempre que los cambios fueran
detectados). Tal ruta consumira una cantidad grande de ancho de banda de
la red antes de que la ruta fuera corregida. Creemos que en casos realistas,
esto no ser un problema excepto en lneas lentas. Incluso entonces, el
problema ser bastante inusual, puesto que se toman varias precauciones
para prevenir estos problemas.
Este protocolo usa mtrica fija para comparar rutas alternativas. Esto no
es apropiado para situaciones donde se requiere un servicio a tiempo real,
fiabilidad, o balanceo de carga.

43

Hasta aqu llega la descripcin del protocolo RIP. En el siguiente bloque se


presenta el diseo de ataque utilizado para vulnerar la seguridad del
protocolo, y provocar de esta forma una denegacin del servicio en una red
cualquiera.

44

3. DISEO DE ATAQUE
3.1 INTRODUCCIN
Una vez se tienen todos los detalles del funcionamiento del protocolo RIP,
descritos en el apartado anterior, ya se est en condiciones para iniciar el
diseo de una estrategia para provocar una denegacin de servicio en una
red conmutada que utilice este protocolo para enrutar.
Se parte de la idea de que se dispone de una entidad o PC, dentro de la
red, la cual se controla completamente. La red podr ser cualquier topologa
posible, por lo tanto, se debe determinar cuando ser posible y cuando no una
denegacin de servicio utilizando la estrategia de ataque que se define en
este apartado.
La definicin de la estrategia de ataque presentada en este apartado es
terica. Esto quiere decir que hace falta una puesta a la prctica para
confirmar el correcto funcionamiento.

3.2 CONOCIMIENTO DE LA RED


La primera condicin para realizar un buen ataque, es conocer la red a la
que se esta atacando. No obstante, se ha mencionado como premisa que la
red atacada puede presentar cualquier topologa. Por tanto se debe buscar un
mecanismo que permita conocer la red, sea cual sea la topologa de la misma.
Supngase que tenemos control de una entidad dentro de una red
cualquiera donde se utiliza el protocolo RIP. Si se actuara como un sistema
silencioso o pasivo, es decir, sin participar en las actualizaciones de las tablas,
llegaran actualizaciones de los vecinos por lo menos cada 30 segundos. Por
consiguiente, el primer paso para realizar el ataque ser aprender de los
vecinos el estado de la red. Y que mejor forma para conocer el estado de la
red que realizando una peticin de vector de distancia directamente a los
routers que se encuentran en nuestro segmento de red.
Como ya se vio en la definicin del protocolo, para realizar una peticin de
toda la tabla se construye un datagrama con el campo comando 01, y una
sola entrada. El identificador de la familia de esta entrada ser 0 (sin
especificar), y con mtrica 16.
0

01

15

16

VERSIN (1)
0

31
0 (2)
0 (2)

IP ADDRESS (4)
0 (4)
0 (4)
16

45

Si se encuentran routers conectados directamente a nuestra entidad


controlada, se recibir como mnimo un vector de encaminamiento de cada
uno.

3.3 MENSAJERIA FALSA


Gracias a la informacin recibida por la peticin de las tablas de
encaminamiento la entidad controlada tendr conocimiento de las LANs que
hay interconectadas en el sistema que tiene que atacar.
Para provocar una denegacin de servicio en una red, hay que provocar
que los routers de la red no reencaminen bien los datos. Para conseguir esto,
se debe conseguir que las tablas de encaminamiento de los routers no sean
correctas, es decir, las rutas no sean las adecuadas para encaminar.
El parmetro mtrica es el utilizado para determinar si una ruta es mejor
que otra, y por tanto, es el parmetro que utilizan los routers para actualizar
sus rutas, el parmetro que es capaz de cambiar una ruta de las tablas de
encaminamiento. Aprovecharemos este aspecto para modificar las tablas de
encaminamiento de los routers de forma fraudulenta.
Por consiguiente, la entidad controlada tiene que ser capaz de forzar a los
routers de la red a reencaminar mal los datos. Para ello, puede enviar
vectores de distancia con mtricas falsas, especialmente escogidas, que
hagan cambiar las rutas que estos tienen almacenadas en sus tablas de
encaminamiento.

Fig. 23
Supngase que el ordenador A de la Fig. 23 es la entidad controlada
dentro de un sistema RIP. El ordenador B presentara la siguiente tabla de
encaminamiento:

Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0

Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0

Gateway
0.0.0.0
0.0.0.0
2.0.0.2
2.0.0.2
2.0.0.2
2.0.0.2

IF
eth0
eth1
eth1
eth1
eth1
eth1

Mtrica
0
0
1
2
3
4

46

Con el fin de cambiar las tablas de encaminamiento del ordenador B, la


entidad controlada A debe proporcionar rutas mejores a las que tiene B
almacenadas. Para proporcionar una ruta mejor debe tener una mtrica
menor. La menor mtrica permitida en el protocolo RIP es 1. Por tanto, la
entidad controlada debe construir un vector falso de actualizacin con las
mtricas a 1:
0

02

15

16

VERSIN (1)
2

31
0 (2)
0 (2)

1.0.0.0
0 (4)
0 (4)
1
2

0 (2)
2.0.0.0
0 (4)
0 (4)
1

0 (2)
3.0.0.0
0 (4)
0 (4)
1

0 (2)
4.0.0.0
0 (4)
0 (4)
1
2

0 (2)
5.0.0.0
0 (4)
0 (4)
1

0 (2)
6.0.0.0
0 (4)
0 (4)
1

Cuando el ordenador B reciba este vector, mirar si hay alguna ruta mejor
que las que tiene almacenadas en su tabla de encaminamiento. En este caso,
encontrar que la ruta a la red 4.0.0.0 es mejor, ya que la entidad controlada
le esta proporcionando una alternativa con mtrica 1 y el ordenador B tiene
esta ruta con mtrica 2. Por tanto el ordenador B actualizara su tabla de
encaminamiento. Por el mismo motivo, la ruta a la red 5.0.0.0 y la red 6.0.0.0
tambin cambiaran:

47

Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0

Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0

Gateway
0.0.0.0
0.0.0.0
2.0.0.2
1.0.0.1
1.0.0.1
1.0.0.1

IF
eth0
eth1
eth1
eth0
eth0
eth0

Mtrica
0
0
1
1
1
1

A partir de este momento los datos que el ordenador B quiera enviar a la


red 4.0.0.0 a la red 5.0.0.0 o a la red 6.0.0.0, los enviar por su interfaz eth0
va 1.0.0.1, y como es de esperar, los datos no llegarn nunca, es decir, se ha
provocado una denegacin de servicio entre el ordenador B y la red 4.0.0.0,
5.0.0.0 y 6.0.0.0. A efectos de B la topologa de red es como la de la Fig. 24:

Fig. 24

El ordenador B no ha actualizado ms rutas porque las alternativas que le


daba la entidad controlada A eran a igual de condiciones o peores. Por tanto,
por ahora se puede concluir que es posible provocar una denegacin a los
vecinos de la entidad controlada enviando mtricas 1, pero solo en las redes
que se encuentren como mnimo a dos saltos de los ordenadores atacados.

3.4 EXPANSIN DE LA MENSAJERIA FALSA


Como ya se vio anteriormente, el protocolo RIP implementa Triggered
Update. Esta tcnica consiste en enviar actualizaciones inmediatamente
despus de sufrir un cambio de rutas. En el caso que nos ocupa en el ejemplo
anterior, cuando el ordenador B sufre un cambio de sus rutas informar a sus
vecinos de dichos cambios:

Fig. 25
48

Como el protocolo tambin implementa horizonte dividido solo enviara la


actualizacin a su ordenador vecino C. Las rutas que cambiaron en el
ordenador B eran las rutas con destinacin a la red 4.0.0.0, a la red 5.0.0.0, y
a la red 6.0.0.0. Con la actualizacin enviada, C recibir estas tres rutas
nuevas con mtrica 2. Antes de la actualizacin C tena la siguiente tabla de
encaminamiento:
Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0

Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0

Gateway
2.0.0.1
0.0.0.0
0.0.0.0
3.0.0.2
3.0.0.2
3.0.0.2

IF
eth0
eth0
eth1
eth1
eth1
eth1

Mtrica
1
0
0
1
2
3

El ordenador C compara sus rutas almacenadas con las rutas recibidas en


la actualizacin, y realiza los cambios cuando encuentra una ruta mejor:
Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0

Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0

Gateway
2.0.0.1
0.0.0.0
0.0.0.0
3.0.0.2
3.0.0.2
2.0.0.1

IF
eth0
eth0
eth1
eth1
eth1
eth0

Mtrica
1
0
0
1
2
2

Como era de esperar el ordenador C ha cambiado su ruta a la red 6.0.0.0


puesto que el ordenador B le ofreca una alternativa mejor, aunque falsa, ya
que esta informacin ha sido transmitida mediante el ataque iniciado por la
entidad controlada A. En este caso se provoca una denegacin de servicio
entre el ordenador C y la red 6.0.0.0. El resto de rutas no se han visto
afectadas, ya que el ordenador B no puede ofrecer una ruta mejor al
ordenador atacado C.
Con este ejemplo, se puede concluir que los mensajes falsos enviados por
una entidad controlada dentro de un sistema RIP se extendern por la red y
pueden provocar cambios en las rutas y por tanto denegacin del servicio,
siempre y cuando la ruta que ofrece el vecino sea mejor que la ruta que tiene
almacenada el ordenador atacado en cada caso.

3.5 PROVOCAR CANCELACIN DE RUTAS


Como se vio anteriormente en la definicin del protocolo, el proceso de
cancelacin de una ruta se puede dar en los siguientes casos:
-

No se recibe actualizacin de una ruta y esta caduca


Se recibe una actualizacin de la ruta con mtrica 16.

49

Si se recibe un vector de distancia cuyas rutas tienen mtrica 16 se inicia


el proceso de cancelacin de las rutas, y estas no son utilizadas por la tabla
de encaminamiento hasta que se consiga una ruta alternativa.
Retmese el ejemplo de la Fig. 23. La tabla de encaminamiento de B seria:
Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0

Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0

Gateway
0.0.0.0
0.0.0.0
2.0.0.2
2.0.0.2
2.0.0.2
2.0.0.2

IF
eth0
eth1
eth1
eth1
eth1
eth1

Mtrica
0
0
1
2
3
4

Supngase que el ordenador controlado A enva un vector cuyas rutas


tienen mtrica 16 al ordenador B:
0

02

15

16

VERSIN (1)
2

31
0 (2)
0 (2)

1.0.0.0
0 (4)
0 (4)
16
2

0 (2)
2.0.0.0
0 (4)
0 (4)
16

0 (2)
3.0.0.0
0 (4)
0 (4)
16

0 (2)
4.0.0.0
0 (4)
0 (4)
16
2

0 (2)
5.0.0.0
0 (4)
0 (4)
1

0 (2)
6.0.0.0
0 (4)
0 (4)
16

Debido a este vector, el ordenador B iniciara el proceso de cancelacin de


las rutas:

50

Destino Mscara Gateway IF


Mtrica
1.0.0.0 255.0.0.0 0.0.0.0
eth0 0
2.0.0.0 255.0.0.0 0.0.0.0
eth1 0

Por tanto las rutas desaparecen de la tabla de encaminamiento hasta que


se encuentra una alternativa. Se ha provocado una denegacin de servicio
entre el ordenador B y las redes 3.0.0.0, 4.0.0.0, 5.0.0.0 y 6.0.0.0.
Se puede ver, que enviando vectores con mtrica 16 es posible provocar
una denegacin de servicio entre un vecino y una red, siempre y cuando la
red no este directamente conectada a este vecino.
La expansin de la mensajera falsa sera similar a la descrita en el
apartado anterior.

3.6 PERSISTENCIA
Hasta el momento se ha visto que es posible realizar una denegacin de
servicio enviando mensajera falsa, y provocando la actualizacin de las tablas
de encaminamiento de nuestros vecinos.
No obstante, para conservar la denegacin de servicio es necesario enviar
mensajes falsos peridicamente. Esto es as, ya que en RIP las rutas tienen
una caducidad. Por tanto, para conservar la denegacin de servicio, la entidad
controlada dentro del sistema RIP debe enviar mensajeria falsa
periodicamente.

51

4. DESARROLLO
4.1 INTRODUCCION
Tomando como punto de partida la estrategia de ataque definida en el
bloque anterior, ha llegado la hora de implementar una aplicacin que ayude a
demostrar la base terica de la estrategia de ataque, y provoque una
denegacin de servicio en una red RIP.
Como lenguaje de programacin se ha escogido Java. Para ello se ha
instalado un kit de desarrollo y el programa IDE NetBeans como apoyo. El kit
de desarrollo java utilizado es el JAVA 2 SDK en su versin 1.3.1. Java 2
SDK incluye herramientas tiles para desarrollar y probar programas escritos
en el lenguaje de programacin Java y que se ejecutan en la plataforma Java.
Estas herramientas estn diseadas para que se utilicen desde la lnea de
comandos. Para desarrollar de una manera ms cmoda se ha utilizado el
programa Netbeans. NetBeans es una plataforma para el desarrollo de
aplicaciones usando Java y un Entorno integrado de desarrollo (IDE)
desarrollado por la Plataforma NetBeans.
Para simplificar la implementacin se ha considerado que la entidad
controlada dentro del sistema RIP tiene una nica interfaz. Esto es as porque
se entiende que la entidad controlada ser un ordenador personal.
La aplicacin dispone, por una parte, de una interfaz grfica donde se
informa de los eventos y de los posibles errores, y por otra parte, la lgica que
trata los datagramas o paquetes de datos RIP que se reciben y se envan a la
red atacada. Recurdese que el protocolo RIP utiliza el puerto UDP 520. Por
lo tanto, para recibir y enviar datagramas se utilizan sockets UDP
configurados en el puerto 520. Este puerto es posible que este ocupado por
alguna otra aplicacin a la hora de ejecutar la aplicacin. Si es as, se debe
matar el proceso para dejar libre el puerto 520.

4.2 ANLISIS FUNCIONAL


En este apartado se describen los aspectos funcionales que rene la
aplicacin de ataque al protocolo RIP.
Infraestructura Tcnica: La aplicacin de ataque al protocolo RIP esta
programada ntegramente en JAVA.
Definicin funcional: La aplicacin debe provocar una denegacin de servicio
enviando mensajera RIP falsa de forma persistente. Las entradas a la
aplicacin sern la versin RIP utilizada (RIPv1 o RIPv2) y la mtrica falsa
utilizada (mtrica 1 o mtrica 16). El programa mostrar los resultados que va
obteniendo del ataque por pantalla.

52

RIPv1 / RIPv2: Segn la versin escogida por el usuario, la forma de enviar


los datagramas cambia. En el caso de RIP versin 1, se utilizar la direccin
broadcast. En cambio, si se utiliza RIP versin 2, se utilizar la direccin
multicast (224.0.0.9). Por otra parte se debe tener en cuenta el formato de los
mensajes descritos en la definicin del protocolo segn la versin escogida.
Interfaz grfica: La interfaz grfica es el mecanismo que se utiliza para
interactuar con el usuario de la aplicacin. Consta de dos botones: Uno para
iniciar el ataque: Conectar y otro para pararlo: Stop. Adems el usuario
puede escoger que tipo de ataque quiere realizar: vectores con mtrica 1, o
vectores con mtrica 16, y si la red a la que quiere atacar utiliza RIPv1 o
RIPv2. Tambin dispone de una pantalla donde se informa de los eventos que
se suceden en el transcurso del ataque o posibles errores que puedan
ocasionarse.
La eleccin de la versin RIP, as como el tipo de ataque que se desea
realizar se escogen mediante listas desplegables.

Fig. 26

Es posible realizar cualquier tipo de configuracin:

RIP1
RIP2

Ataque Mtrica 0
RIP1 + Ataque Mtrica 1
RIP2 + Ataque Mtrica 1

Ataque Mtrica 16
RIP1 + Ataque Mtrica 16
RIP2 + Ataque Mtrica 16

En la pantalla se informa, mediante mensajes, de todos los eventos que se


produzcan a lo largo del ataque. En todos los mensajes se incluye la hora. La
pantalla tambin sirve para informar de posibles fallos o errores y que
opciones tiene el usuario para solventarlos.
A continuacin se muestra un esquema de la interaccin entre el usuario y
la aplicacin:

53

Fig. 27

El programa finaliza cuando se produce un error o cuando el usuario


presiona el botn Stop.
Diagrama funcional de actividades: El usuario indica los parmetros de
entrada e inicia el ataque. La aplicacin hace una peticin de la tabla de
encaminamiento segn el parmetro de entrada V (versin RIP). Cuando la
aplicacin obtiene la tabla de encaminamiento, informa al usuario por pantalla
del estado de la red. Acto seguido enva la mensajera falsa dependiendo de
los parmetros de entrada V (versin RIP) y M (Mtrica).
A continuacin se muestra un esquema de la interaccin entre el usuario,
la aplicacin y la red RIP atacada.

54

Fig. 28

Este esquema representa un ciclo de ejecucin. Esto quiere decir que la


peticin de la tabla de encaminamiento y el ataque se har indefinidamente
hasta que se pare la ejecucin de la aplicacin, ya sea debido a un error o a la
finalizacin manual por parte del usuario.
Excepciones controladas: Se controlan las excepciones que puedan surgir
informando al usuario a travs de la pantalla de la interfaz grfica. Las
excepciones pueden ser de formato RIP, de red, de cdigo...
Una excepcin, implicar la parada automtica del proceso de ataque y
por tanto de la ejecucin del programa, dando la posibilidad al usuario de
iniciar un nuevo ataque cuando lo desee.
Riesgos: Se pueden encontrar problemas de comunicacin con el router
vecino, ocasionados por:
- Problemas a nivel de IP.
- Problemas de sincronismo al enviar y recibir datagramas.

4.3 ANLISIS TCNICO


En este apartado se describen los aspectos tcnicos que debe reunir la
aplicacin de ataque al protocolo RIP.

55

Classes JAVA: La aplicacin consta de tres classes bien diferenciadas. La


primera clase, atac.class, se trata de la clase principal. Se encarga de la
interfaz grfica y la gestin del hilo de ejecucin del ataque. recibirUDP.class,
se encarga de la comunicacin en red mediante sockets UDP. Adems en
esta clase se implementarn las actividades del ataque. entrada.class, se
trata de una clase que almacena de forma ordenada las datos de una entrada
RIP. La clase atac.class, contiene adems una lista o vector de entradas.

56

Diagrama tcnico de actividades:

Fig. 29

57

Excepciones controladas: Los errores ms comunes en la aplicacin, o mejor


dicho las excepciones, son las de comunicacin. Todas las excepciones se
controlan con try catch en el cdigo Java. En caso de producirse
excepciones se procede siempre de la misma manera:
- Se reporta el mensaje de error a la pantalla de la interfaz grfica.
- Se para el hilo de ejecucin del ataque RIP.
Para hacerlo ms inteligible, no se muestran los mensajes de error que
reporta Java, sino que se controla para mostrar por pantalla un mensaje ms
claro, para que el usuario lo entienda. Sin embargo, si un error no se ha tenido
en cuenta, se mostrar el mensaje de error que proporciona Java.
A continuacin se enumeran las excepciones java que se controlan:
SocketException:
Exception Java
Address already in use: Cannot bind

No route to host: Datagram send


failed
socket closed

Mensaje mostrado
Socket: El puerto 520 lo esta usando
otra aplicacin, cirrela para poder
iniciar el ataque
Socket: No se ha podido enviar la
peticin. Revise las conexiones de red
Socket: Socket cerrado

IOException
Exception Java
Receive timed out

Mensaje mostrado
E/S: Los vecinos no estn
contestando a la peticin RIP

4.4 PRUEBAS
Un plan de pruebas es necesario para demostrar el correcto
funcionamiento de la aplicacin. Se definen tres entornos de pruebas:
- ST (SystemTest): Abarca el proceso de desarrollo y programacin de la
aplicacin. Se ha comprobado la compilacin del programa y el buen
funcionamiento a nivel local.
- IT (Integracin): Abarca la comunicacin del programa con la red. Se han
hecho pruebas de comunicacin con un router.
- PR (Produccin): Se ha escogido un caso real para probar el ataque.

58

4.4.1 PRUEBAS ST
Las pruebas ST, consisten en comprobar el buen funcionamiento del
cdigo de la aplicacin a nivel local. Estas pruebas se reducen a que el cdigo
compile correctamente, y se comporte segn lo descrito en el anlisis
funcional y anlisis tcnico. Se han realizado las siguientes comprobaciones:
- Botones de conectar y stop: Se ha comprobado que se inicie el hilo de
ejecucin al hacer clic a conectar, y que finalice al hacer clic en stop.
- Desplegables: Se ha comprobado que se recoge la versin y el tipo de
ataque de forma correcta, desde la interfaz grfica.
- Formato mensajes: Se ha comprobado que los mensajes que salen por la
pantalla tengan el formato deseado, en especial, los retornos de carro y la
hora que se produjo el evento.
- Datagramas: Se ha comprobado que la confeccin de los datagramas sea
la correcta, para prevenir posibles errores en las pruebas IT.

4.4.2 PRUEBAS IT

Las pruebas IT, consisten en comprobar la correcta comunicacin entre la


entidad controlada y el router vecino, verificando que se estn realizando las
actividades esperadas.
Para ello es necesario disponer de un router que disponga de RIP, tanto la
versin 1 como la versin 2. En este caso, se ha utilizado un ordenador Linux
del laboratorio, instalando la aplicacin routed.
Routed es una implementacin en cdigo libre del protocolo RIP. En los
ordenadores de laboratorio no viene instalado por defecto en el SO Linux.
Pero no es difcil de conseguir e instalar.
Para la instalacin se realizan los siguientes pasos:
./configure with-c-compiler=cc
make
make install
Una vez instalado se ubica en "/usr/sbin". Ejecutarlo es tan fcil como:
/usr/sbin/routed
Una vez el ordenador esta configurado para que utilice RIP, enviar un
mensaje de actualizacin de sus tablas de encaminamiento cada 30
segundos. Lo podemos comprobar mediante un anlisis con el programa
Wireshark.

59

Fig. 30
El programa Wireshark es un analizador de protocolos utilizado para
realizar anlisis y solucionar problemas en redes de comunicaciones para
desarrollo de software y protocolos, y como una herramienta didctica para
educacin. Cuenta con todas las caractersticas estndar de un analizador de
protocolos.
Como otros analizadores de protocolos, Wireshark soporta la utilizacin de
filtros. En este caso, para capturar solo el trfico del protocolo RIP se ha
utilizado el siguiente filtro:
- udp port 520
Con este filtro solo se captura el trfico UDP que venga del puerto 520, el
utilizado por el protocolo RIP.
Para comprobar el buen funcionamiento del programa se han testeado los
siguientes temas:
- Comprobar que se enva el datagrama de peticin de la tabla de
encaminamiento y se recibe una respuesta correcta por parte del router.
- Comprobar el formateo de la tabla de encaminamiento, y la correcta
insercin en la lista de entradas.
- Comprobar el buen funcionamiento del programa en la confeccin de los
datagramas de ataque, prestando atencin en la versin y el tipo de ataque
que se debe realizar en cada caso.
- Comprobar que los datagramas falsos de ataque se envan correctamente.
Para realizar las pruebas se han utilizado trazas en el cdigo, para mostrar
por consola las actividades que se realizaban, y se ha utilizado el programa
Wireshark para ver la comunicacin entre la entidad controlada que ejecuta la
aplicacin y el router.

60

4.4.3 PRUEBAS PR
Se ha configurado una red de pruebas:

Fig. 31

Se trata de una topologa de red constituido por 5 ordenadores. La entidad


controlada es un porttil con sistema operativo windowsXP, que tiene
instalado el programa de ataque. Todos los ordenadores tienen sistema
operativo linux, con tres interfaces de red, y el demonio routed instalado. En
este caso solo necesitaremos 2 interfaces de red para los ordenadores A, B y
C, y una interfaz para el ordenador D.
Con esta topologa se consigue la entidad atacada A obtenga mediante
aprendizaje dinmico de rutas una ruta de mtrica 2, la ruta a la red
192.168.4.0. Esto es til para realizar pruebas con mensajes falsos de mtrica
1 desde la entidad controlada.
Se han asignado direcciones IP en las interfaces de red de cada ordenador
respetando la singularidad en cada red. De esta forma, en la red 192.168.3.0,
el ordenador B tiene la direccin 192.168.3.1 asignada en su interfaz, y el
ordenador C tiene la direccin 192.168.3.2.
Para configurar cada ordenador se ha utilizado la siguiente metodologa:
#Deshabilitamos las interfaces que se estn utilizando
ifconfig eth2 down
#Habilitamos la redireccin de paquetes
echo 1 > /proc/sys/net/ipv4/ip_forward
#Configuramos las interfaces
ifconfig eth0 192.168.1.2 up
ifconfig eth1 192.168.2.1 up

61

Esto es un guin de ejemplo para el ordenador A. Se ha configurado de


forma similar el resto de ordenadores.
Para configurar el porttil, la entidad controlada, se le ha asignado la IP
192.168.1.1 desde el panel de control de windows.
Antes de arrancar routed la tabla de encaminamiento de A tenia la
siguiente pinta:
Kernel IP routing table
Destination
Gateway
192.168.2.0
0.0.0.0
192.168.1.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0

Flags Metric Ref


U
0
0
U
0
0

Use Iface
0 eth0
0 eth1

Flags Metric Ref


U
0
0
U
0
0

Use Iface
0 eth0
0 eth1

Flags Metric Ref


U
0
0
U
0
0

Use Iface
0 eth0
0 eth1

Flags Metric Ref


U
0
0

Use Iface
0 eth1

La tabla de encaminamiento de B:
Kernel IP routing table
Destination
Gateway
192.168.3.0
0.0.0.0
192.168.2.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0

La tabla de encaminamiento de C:
Kernel IP routing table
Destination
Gateway
192.168.4.0
0.0.0.0
192.168.3.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0

La tabla de encaminamiento de D:
Kernel IP routing table
Destination
Gateway
192.168.4.0
0.0.0.0

Genmask
255.255.255.0

Se arranca routed y se obtiene lo siguiente en el ordenador A:


Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.2.2
192.168.3.0
192.168.2.2
192.168.2.0
192.168.2.1
192.168.2.0
0.0.0.0
192.168.1.0
192.168.1.2
192.168.1.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
UG
UG
U
UG
U

Metric
2
1
0
0
0
0

Ref
0
0
0
0
0
0

Use
0
0
0
0
0
0

Iface
eth0
eth0
eth0
eth0
eth1
eth1

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
UG
U
UG
U
UG

Metric
1
0
0
0
0
1

Ref
0
0
0
0
0
0

Use
0
0
0
0
0
0

Iface
eth0
eth0
eth0
eth1
eth1
eth1

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
U
UG
U
UG

Metric
0
0
0
0
1

Ref
0
0
0
0
0

Use
0
0
0
0
0

Iface
eth0
eth0
eth1
eth1
eth1

En el ordenador B:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.3.2
192.168.3.0
192.168.3.1
192.168.3.0
0.0.0.0
192.168.2.0
192.168.2.2
192.168.2.0
0.0.0.0
192.168.1.0
192.168.2.1

En el ordenador C:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.4.1
192.168.4.0
0.0.0.0
192.168.3.0
192.168.3.2
192.168.3.0
0.0.0.0
192.168.2.0
192.168.3.1

62

192.168.1.0

192.168.3.1

255.255.255.0

UG

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
U
UG
UG
UG

Metric
0
0
1
2
3

Ref
0
0
0
0
0

0 eth1

En el ordenador D:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.4.2
192.168.4.0
0.0.0.0
192.168.3.0
192.168.4.1
192.168.2.0
192.168.4.1
192.168.1.0
192.168.4.1

Use
0
0
0
0
0

Iface
eth1
eth1
eth1
eth1
eth1

Se observa que se han aprendido rutas nuevas va RIP. Adems, en el


ordenador A se ha obtenido una ruta con mtrica 2.
Iniciamos el ataque utilizando mensajes falsos con mtrica 1. Se observa
lo siguiente en la tabla de encaminamiento del ordenador A:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.1.1
192.168.3.0
192.168.2.2
192.168.2.0
192.168.2.1
192.168.2.0
0.0.0.0
192.168.1.0
192.168.1.2
192.168.1.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
UG
UG
U
UG
U

Metric
1
1
0
0
0
0

Ref
0
0
0
0
0
0

Use
0
0
0
0
0
0

Iface
eth1
eth0
eth0
eth0
eth1
eth1

La ruta con mtrica 2 ha sido atacada. Ahora cada vez que A se quiera
comunicar con la red 192.168.4.0 enviara los paquetes hacia nuestra entidad
controlada. Segn este experimento se puede afirmar que la estrategia de
ataque enviando mensajes falsos con mtrica 1 es efectiva para atacar rutas
con mtricas igual o mayor de 2.
El ataque tiene que ser persistente. Si no lo fuera el ordenador A vuelve a
tomar la ruta correcta.
Una posible aplicacin, aparte de denegar el servicio, con este tipo de
ataque es poder escuchar datos de una red que en cualquier otro caso no
tenemos acceso. Segn este caso se puede capturar el trfico que el
ordenador A enva a la red 192.168.4.0, y luego redireccionar los paquetes
otra vez a su destinacin real.
Iniciamos el ataque enviando mensajes con mtrica 16. Obtenemos lo
siguiente:
Kernel IP routing table
Destination
Gateway
192.168.2.0
192.168.2.1
192.168.2.0
0.0.0.0
192.168.1.0
192.168.1.2
192.168.1.0
0.0.0.0

Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0

Flags
UG
U
UG
U

Metric
0
0
0
0

Ref
0
0
0
0

Use
0
0
0
0

Iface
eth0
eth0
eth1
eth1

Se observa que las rutas que se aprendieron va RIP han desaparecido de


la tabla de encaminamiento. Han sido aadidas en el proceso de cancelacin
y ya no se usan para encaminar.

63

5. CONCLUSIONES
Tras realizar las pruebas, se puede observar que el protocolo RIP es
vulnerable tanto utilizando el ataque de mtrica 16 como utilizando el ataque
de mtrica 1.
No obstante, en las pruebas se han configurado los routers para que utilice
RIP en todas las redes que tiene directamente conectadas. Esto, en un caso
real no seria necesario. Retomemos el caso de pruebas:

Fig. 32

El protocolo RIP participa en todas las interfaces. Pero se puede ver que
en la interfaz Ethernet, que conecta con la red donde se encuentra la entidad
controlada no sera necesario configurar RIP. Esto es as porque no hay
ningn router que le pueda interesar la informacin que enva RIP. Adems,
en el caso que el administrador de la red le interesase que la red Ethernet
utilizar RIP, puede configurarlo de forma pasiva, de esta forma los mensajes
de respuesta que reciba el ordenador A por esa interfaz son rechazados
directamente.
Por lo tanto, se puede concluir que RIP, aunque es vulnerable, es til en
un entorno de confianza, y hay que prestar especial atencin a la hora de
configurarlo y no utilizarlo en las interfaces donde no haga falta.

6. RECURSOS UTILIZADOS
Para desarrollar el presente proyecto se han utilizado diferentes tipos de
recursos. Por una parte, se ha hecho uso de recursos bibliogrficos para la
documentacin sobre el protocolo RIP. Para ello se han consultado los RFCs
(Request For Comments) nmero 1058 y 2453. Internet tambin ha sido en
diversas ocasiones una fuente de inspiracin.

64

En cuanto a los programas empleados, se ha utilizado el kit de desarrollo


java SDK 1.3.1_13. Adems se ha utilizado el IDE NetBeans. Por otro lado, ha
sido de mucha utilidad la aplicacin Wireshark, para el estudio de los
datagramas UDP RIP. Tambin ha sido de gran apoyo la aplicacin cports,
para matar puertos cuando ha sido necesario.
Para las pruebas de Integracin y Produccin, se ha utilizado cuatro PCs
con Linux, un porttil con Windows XP y el programa routed. El programa
routed, es una implementacin del protocolo RIP en cdigo abierto.

65

7. MANUAL
7.1 INTRODUCCIN
Este documento recoge la gua de usuario de la aplicacin Java de ataque
al protocolo de encaminamiento RIP.
Mediante esta herramienta, el usuario puede realizar un ataque a una red
conmutada que utilice RIP como protocolo de encaminamiento, desde un
ordenador conectado a dicha red.

7.2 REQUISITOS
Para al ejecucin correcta de la aplicacin se debe disponer de la mquina
virtual java instalada en el ordenador que vaya a realizar el ataque. Adems
se debe disponer de acceso a la red atacada.

7.3 CARACTERSTICAS
La principal caracterstica de la aplicacin de ataque al protocolo RIP, es
la capacidad para realizar un ataque de red sin necesidad de tener
conocimientos tcnicos del protocolo, simplemente utilizando una sencilla
interfaz grfica. El ataque es posible en cualquier topologa de red, desde un
ordenador conectado a la red.
Adems la aplicacin soporta tanto RIP en su versin 1, como la versin
2. El tipo de ataque que se consigue es una denegacin de servicio en la red,
y es posible realizarlo siguiendo dos estrategias diferentes.

66

7.4 DESCRIPCIN DE LA APLICACIN


Elementos de la aplicacin:

Fig. 33

1.- Conectar: Mediante este botn iniciamos un ataque


2.- Stop: Mediante este botn paramos un ataque
3.- Seleccin de versin: Seleccin de la versin del protocolo RIP que utiliza
la red que queremos atacar.
RIP1: Seleccin de la versin 1 del protocolo RIP
RIP2: Seleccin de la versin 2 del protocolo RIP
4.- Seleccin de tipo de ataque: Seleccin del tipo de ataque que deseamos
realizar.

- Ataque mtrica 16: La aplicacin enviar mensajes falsos con el campo


mtrica 16.
- Ataque mtrica 1: La aplicacin enviar mensajes falsos con el campo
mtrica 1.

5.- Pantalla: Se muestra mediante mensajes el proceso del ataque y los


mensajes de error.
Inicio del ataque:
Para iniciar un ataque presionar el botn conectar. Se mostrar por
pantalla el siguiente mensaje:

67

Fig. 34
-Intentando crear Socket UDP 520...: La aplicacin intenta iniciar una conexin
por el puerto 520, utilizado por el protocolo RIP.
-Versin escogida: Se muestra la versin que se ha escogido.
-Ataque escogido: Se muestra el tipo de ataque escogido.
-Socket creado con xito: Indica que la aplicacin ha conseguido iniciar la
conexin.
-Ejecutando rutina: Peticin de tabla de encaminamiento: La aplicacin enva
un mensaje RIP solicitando al router la tabla de encaminamiento. El formato
del mensaje depender de la versin escogida antes de conectar.

Fig. 35

68

- Datagrama request enviado: Informa de que el datagrama de peticin de la


tabla de encaminamiento ha sido enviada con xito.

- Datagrama recibido: Informa de que el router ha contestado y se ha recibido


la tabla de encaminamiento con xito.
- Red RIP: Tabla de encaminamiento recibida: Informa de que se ha recibido
una tabla de encaminamiento con el formato correcto.
- Entrada aprendida: x.x.x.x Mtrica: x: Indica que una nueva ruta ha sido
aprendida, especificando la direccin IP y la mtrica.
- Ejecutando rutina: Enviar datagrama falso: Envo de un datagrama falso.
Con las rutas aprendidas se construye un datagrama falso segn el tipo de
ataque y la versin RIP escogida, para ser enviado a la red atacada.
- Datagrama falso enviado: Indica que el datagrama falso ha sido enviado con
xito.

7.5 MENSAJES DE ERROR

Mensaje
Socket: El puerto 520 lo esta usando
otra aplicacin, cirrela para poder
iniciar el ataque
Socket: No se ha podido enviar la
peticin. Revise las conexiones de
red.
Socket: Socket cerrado

E/S: Los vecinos no estn


contestando a la peticin RIP
Error comando: No se ha recibido un
datagrama response
Error versin: La red no es
compatible con RIP1
Error versin: La red no es
compatible con RIP2

Descripcin
El programa no se puede
ejecutar porque el puerto 520,
que utiliza RIP, esta ocupado
por otra aplicacin.
Se ha producido un problema
de comunicacin con la red.
El socket se ha cerrado.
Normalmente cuando se clica
en el botn stop.
Si los vecinos tardan ms de
30 segundos en contestar una
peticin
Si se recibe un datagrama que
no es de respuesta.
La red que se esta intentando
atacar no utiliza RIP1
La red que se esta intentando
atacar no utiliza RIP2

69