Protocolo RIP
Funcionalidad
El protocolo RIP1 es un protocolo de encaminamiento dinámico de tipo IGP (Internal Gateway Protocol), mediante el cuál los router pertenecientes a un mismo Sistema Autónomo intercambian y actualizan sus correspondientes tablas de rutas.
El fundamento de dicho protocolo radica en el empleo del algoritmo vector distancia, que determina las redes que son alcanzables por un router mediante el cálculo del número de saltos existentes (mínimo 1, máximo 16). Es decir, que si el número de saltos necesarios para llegar a una determinada red es igual a 16, se dice que dicha red es inalcanzable.
La adaptación de rutas se hace a través del puerto 520 y el protocolo UDP mediante difusión de tablas cada 30 segundos (1 ciclo), o antes si ha habido algún cambio en las mismas. Si una ruta no es confirmada en 6 ciclos, se pone como inalcanzable (a 16 saltos) y si ésta permanece 2 ciclos más sin confirmar, se borra.
Es importante destacar, del mismo modo, que el protocolo RIP lleva asociadas ciertas limitaciones como son el reducido diámetro de red en el que opera, el excesivo tráfico de control y consumo de recursos de red que conlleva, la lenta convergencia y la elección de una ruta no siempre óptima (sólo tiene en cuenta el número de saltos existentes y no el estado de cada enlace).
Teniendo en cuenta todos estos aspectos, pasamos a explicar con más detalle los rasgos principales de las dos versiones existentes, RIPv1 y RIPv2, de la implementación de dicho protocolo. Aunque si bien es cierto, todo el estudio que aparece recogido en este informe atañe principalmente a RIPv1, ya que de RIPv2 sólo aparecen aquellas referencias que son comunes a ambas versiones.
RIPv1
Las principales características que definen esta primera versión del protocolo RIP son:
- No admite subredes.
- No admite direcciones con máscara de longitud variable (VLSM).
- No admite CIDR.
- Los intercambios de información no están autenticados.
RIPv2
A diferencia de la versión anterior, ésta presenta ciertas mejoras:
- Admite subredes.
- Admite direcciones con máscara de longitud variable (VLSM).
- Admite CIDR.
- Los intercambios están autenticados con contraseñas y se pueden llevar a cabo mediante multicast en lugar de broadcast (menos sobrecarga de la red).
Configuración CIT
Para poder implementar las operaciones anteriores en el router GNU/Linux es necesario averiguar previamente cómo se hacen en CIT, porque nos pueden servir de guía y porque nos van a hacer falta cuando queramos realizar alguna prueba concreta en la que haya un router CIT involucrado.
Habilitar/Deshabilitar RIP
Habilitar RIP
Operación que activa el protocolo RIP
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> enable
Deshabilitar RIP
Operación que desactiva el protocolo RIP
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> disable
Compatibilidad RIPv1/RIPv2
Con esta opción establecemos qué tipo de paquetes RIP (RIPv1 ó RIPv2) queremos que un determinado interfaz reciba o envíe, o directamente que no trabaje con ninguno de ellos (deshabilitamos el protocolo RIP para dicho interfaz).
RIPv1
Podemos habilitar la compatibilidad con RIPv1, tanto en el envío:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> send rip1
como en la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> receive rip1
RIPv2
Podemos habilitar la compatibilidad con RIPv2, tanto en el envío (modo multicast o broadcast):
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> send rip2-broadcast RIP config> compatibility <interfaz|dir_interfaz> send rip2-multicast
como en la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> receive rip2
Ambos
Existe la posibilidad de establecer compatibilidad con RIPv1 y RIPv2, de forma simultánea, pero sólo en la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> receive both
Ninguno
Podemos establecer que no haya ningún tipo de compatibilidad, tanto en el envío:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> send none
como en la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> compatibility <interfaz|dir_interfaz> receive none
Distribución de rutas
Habilitar redes desconectadas
Este mandato sirve para habilitar la propagación de redes, que no están directamente conectadas a una interfaz por la que se envían paquetes RIP.
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> allow-disconnected-subnetted-networks <interfaz|dir_interfaz>
Deshabilitar redes desconectadas
Este mandato sirve para deshabilitar la propagación de redes, que no están directamente conectadas a una interfaz por la que se envían paquetes RIP.
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> no allow-disconnected-subnetted-networks <interfaz|dir_interfaz>
Habilitar rutas por defecto
Para habilitar el envío de la/s ruta/s por defecto de un router (dirección 0.0.0.0) a otros router, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> default-routes
En cambio, si lo que queremos es habilitar la recepción de la/s misma/s, tendremos que proceder de la siguiente forma:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> default-routes
Deshabilitar rutas por defecto
Para deshabilitar el envío de la/s ruta/s por defecto de un router (dirección 0.0.0.0) a otros router, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no default-routes
En cambio, si lo que queremos es deshabilitar la recepción de la/s misma/s, tendremos que proceder de la siguiente forma:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> no default-routes
Habilitar rutas directas
Para habilitar el envío de las direcciones de las redes que están directamente conectadas a una interfaz, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> direct-routes
En el caso de la recepción, esta opción no está contemplada.
Deshabilitar rutas directas
Para deshabilitar el envío de las direcciones de las redes que están directamente conectadas a una interfaz, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no direct-routes
En el caso de la recepción, esta opción no está contemplada.
Habilitar rutas de red
Para habilitar el envío de direcciones de red, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> network-routes
Si queremos habilitar la recepción de las mismas, debemos proceder de la siguiente manera:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> network-routes
Deshabilitar rutas de red
Para deshabilitar el envío de direcciones de red, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no network-routes
Si queremos deshabilitar la recepción de las mismas, debemos proceder de la siguiente manera:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> no network-routes
Habilitar rutas de subred
Para habilitar la recepción de direcciones de subred, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> subnetwork-routes
En el caso del envío:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> subnetwork-routes
Deshabilitar rutas de subred
Para deshabilitar la recepción de direcciones de subred, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> no subnetwork-routes
En el caso del envío:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no subnetwork-routes
Habilitar rutas estáticas
Para habilitar el envío de direcciones de red, establecidas estáticamente, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> static-routes
En el caso de la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> static-routes
Deshabilitar rutas estáticas
Para deshabilitar el envío de direcciones de red, establecidas estáticamente, tenemos que hacer lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no static-routes
En el caso de la recepción:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> receiving <interfaz|dir_interfaz> no static-routes
Habilitar horizonte dividido
La opción de horizonte dividido, consistente en no enviar las rutas aprendidas de un router a ese mismo router, se habilita de la siguiente manera:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> split-horizon
Por defecto, todas las interfaces tienen habilitado este modo.
Deshabilitar horizonte dividido
Para deshabilitar la opción de horizonte dividido, hacemos lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no split-horizon
Habilitar rutas envenenadas
La opción de rutas envenenadas, consistente en enviar las rutas con métrica 16 para evitar bucles infinitos, se habilita de la siguiente manera:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> poisoned-reverse
Por defecto, todas las interfaces tienen habilitado este modo.
Deshabilitar rutas envenenadas
Para deshabilitar la opción de rutas envenenadas, hacemos lo siguiente:
p 4 Config> protocol rip -- RIP protocol user configuration -- RIP config> sending <interfaz|dir_interfaz> no poisoned-reverse
Configuración GNU/Linux
De manera similar a como se ha procedido con el protocolo IP, aquí se va a describir cómo realizar las operaciones correspondientes para la configuración del protocolo RIP, a través del servicio Ripd de Quagga.
Habilitar/Deshabilitar RIP
Habilitar RIP
Operación que activa el protocolo RIP.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# network (<dir_red>/<máscara>)|(<interfaz>)
Deshabilitar RIP
Operación que desactiva el protocolo RIP.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no network (<dir_red>/<máscara>)|(<interfaz>)
Compatibilidad RIPv1/RIPv2
La configuración que existe por defecto es que se envíen paquetes RIPv2 y se permita la recepción de paquetes de ambas versiones, pero dicha configuración se puede cambiar a nivel global (tanto para el envío como para la recepción) y a nivel individual (se configuran el envío y la recepción de forma independiente).
Para hacerlo a nivel global se tiene que indicar únicamente si se quiere trabajar con RIPv1 (1) o RIPv2 (2).
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# version <1 ó 2>
Para configurar el envío y la recepción por separado, si sólo se pretende alterar el envío, hay que hacer lo siguiente:
ripd> enable ripd# configure terminal ripd(config)# interface <interfaz> ripd(config-if)# ip rip send version <1 ó 2>
En cambio, si lo que se desea modificar es la configuración de la recepción, entonces hay que ejecutar los siguientes mandatos:
ripd> enable ripd# configure terminal ripd(config)# interface <interfaz> ripd(config-if)# ip rip receive version <1 ó 2>
Distribución de rutas
Agregar router vecino
En el caso en el que no queramos o podamos anunciar nuestras rutas mediante multicast, tendremos que definir cuáles son los router vecinos para saber a quiénes tenemos que mandárselas. Ejecutaremos el comando siguiente una vez por cada router que haya que registrar como vecino.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# neighbor <dir_router>
Borrar router vecino
Si queremos eliminar un router vecino que fue anteriormente agregado, tendremos que ejecutar los siguientes mandatos:
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no neighbor <dir_router>
Habilitar interfaz pasiva
Si establecemos que una interfaz actúe de forma pasiva, entonces todos los paquetes RIP que le lleguen los enviará solamente a los router vecinos.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# passive-interface <interfaz>
Si queremos habilitar esta opción en todas las interfaces del router, basta con hacer lo siguiente:
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# passive-interface default
Por defecto, todas las interfaces actúan en modo pasivo.
Deshabilitar interfaz pasiva
Si establecemos que una interfaz no actúe de forma pasiva, entonces todos los paquetes RIP que le lleguen los enviará mediante multicast o broadcast:
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no passive-interface <interfaz>
Habilitar rutas del sistema
Esta opción permite la distribución de las rutas que tiene almacenadas el kernel del sistema.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# redistribute kernel
Deshabilitar rutas del sistema
Esta opción evita la distribución de las rutas que tiene almacenadas el kernel del sistema.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no redistribute kernel
Habilitar rutas estáticas
Esta opción permite la distribución de las rutas estáticas del router.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# redistribute static
Deshabilitar rutas estáticas
Esta opción evita la distribución de las rutas estáticas del router.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no redistribute static
Habilitar rutas directas
Esta opción permite la distribución de las redes que están directamente conectadas al router.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# redistribute connected
Deshabilitar rutas directas
Esta opción evita la distribución de las redes que están directamente conectadas al router.
ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# no redistribute connected
Habilitar horizonte dividido
Para que un router no le envíe a un vecino rutas aprendidas por este último, es necesario ejecutar el siguiente mandato en el menú de configuración de la interfaz en la que queremos activarlo:
ripd> enable ripd# configure terminal ripd(config)# interface <interfaz> ripd(config-if)# ip rip split-horizon
Por defecto, todas las interfaces tienen habilitado este modo.
Deshabilitar horizonte dividido
Para permitir que un router le envíe a un vecino las rutas aprendidas por este último, es necesario ejecutar el siguiente mandato:
ripd> enable ripd# configure terminal ripd(config)# interface <interfaz> ripd(config-if)# no ip rip split-horizon
Autenticación
Deshabilitar autenticación
Operación que deshabilita cualquier tipo de autenticación en el protocolo RIP.
ripd> enable ripd# configure terminal ripd(config)# interface <interfaz> ripd(config-if)# no ip rip authentication mode ripd(config-if)# no ip rip authentication key-chain ripd(config-if)# no ip rip authentication string
Por defecto, la autenticación en Ripd está habilitada.
Pruebas
Para comprobar que el protocolo RIP funciona correctamente en el router GNU/Linux, se han preparado tres pruebas de testeo de RIPv1. La forma en que se van a describir las pruebas consiste en un diagrama de red, en el que se muestran todos los equipos que participan y la manera en que están interconectados entre sí, y la configuración de cada uno de esos equipos.
Prueba-1: RIPv1
Pasamos a detallar equipo por equipo cuáles son los pasos que hay que seguir para configurar cada uno de ellos. En el caso de los router CIT basta con acceder al menú de configuración, a través del puerto serie, y ejecutar todas las acciones que aparecen detalladas más abajo. Y en el caso del terminal, la configuración se hará a través de la consola de GNU/Linux.
Router CIT2
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos las direcciones de broadcast para ambas interfaces.
- Listamos las interfaces para comprobarlo.
- Habilitamos el protocolo RIP.
- Habilitamos la propagación de subredes desconectadas a través de
eth1
. - Permitimos la recepción de rutas por defecto de otros router.
- Permitimos la recepción de rutas de red.
- Permitimos el envío de rutas por defecto a otros routers.
- Permitimos el envío de rutas de red conectadas directamente al router.
- Permitimos el envío de rutas de red.
- Permitimos el envío de rutas estáticas configuradas en el router.
- Establecemos que vamos a trabajar con RIPv1.
- Creamos las rutas estáticas correspondientes y las listamos.
- Guardamos toda la configuración y reiniciamos.
p 4
Config> protocol ip -- Internet protocol user configuration -- IP config> address ethernet0/0 192.168.1.2 255.255.255.0 IP config> address ethernet0/1 192.168.2.1 255.255.255.0 IP config> broadcast-address network 192.168.1.2 1 IP config> broadcast-address network 192.168.2.1 1 IP config> list addresses IP addresses for each interface: ethernet0/0 192.168.1.2 255.255.255.0 NETWORK broadcast, fill 1 ethernet0/1 192.168.2.1 255.255.255.0 NETWORK broadcast, fill 1 x25-node IP disabled on this ifc IP config> exit Config> protocol rip -- RIP protocol user configuration -- RIP config> enable RIP config> allow-disconnected-subnetted-networks 192.168.2.1 RIP config> receiving 192.168.2.1 default-routes RIP config> receiving 192.168.2.1 network-routes RIP config> sending 192.168.2.1 default-routes RIP config> sending 192.168.2.1 direct-routes RIP config> sending 192.168.2.1 network-routes RIP config> sending 192.168.2.1 static-routes RIP config> compatibility 192.168.2.1 receive rip1 RIP config> compatibility 192.168.2.1 send rip1 RIP config> exit Config> protocol ip -- Internet protocol user configuration -- IP config> route 192.168.1.0 255.255.255.0 ethernet0/0 IP config> route 192.168.2.0 255.255.255.0 ethernet0/1 IP config> list routes route to 192.168.2.0,255.255.255.0 via ethernet0/1, cost 1 route to 192.168.1.0,255.255.255.0 via ethernet0/0, cost 1 IP config> exit Config> save Save configuration (Yes/No)? Y Building configuration as text... OK Writing configuration... OK on Flash Config> *restart Are you sure to restart the system(Yes/No)? Y
Router CIT
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos las direcciones de broadcast para ambas interfaces.
- Listamos las interfaces para comprobarlo.
- Habilitamos el protocolo RIP.
- Habilitamos la propagación de subredes desconectadas a través de
eth0
. - Permitimos la recepción de rutas por defecto de otros router.
- Permitimos la recepción de rutas de red.
- Permitimos el envío de rutas por defecto a otros routers.
- Permitimos el envío de rutas de red conectadas directamente al router.
- Permitimos el envío de rutas de red.
- Permitimos el envío de rutas estáticas configuradas en el router.
- Establecemos que vamos a trabajar con RIPv1.
- Creamos las rutas estáticas correspondientes y las listamos.
- Guardamos toda la configuración y reiniciamos.
p 4
Config> protocol ip -- Internet protocol user configuration -- IP config> address ethernet0/0 192.168.2.2 255.255.255.0 IP config> address ethernet0/1 192.168.3.1 255.255.255.0 IP config> broadcast-address network 192.168.2.2 1 IP config> broadcast-address network 192.168.3.1 1 IP config> list addresses IP addresses for each interface: ethernet0/0 192.168.2.2 255.255.255.0 NETWORK broadcast, fill 1 ethernet0/1 192.168.3.1 255.255.255.0 NETWORK broadcast, fill 1 x25-node IP disabled on this ifc IP config> exit Config> protocol rip -- RIP protocol user configuration -- RIP config> enable RIP config> allow-disconnected-subnetted-networks 192.168.2.2 RIP config> receiving 192.168.2.2 default-routes RIP config> receiving 192.168.2.2 network-routes RIP config> sending 192.168.2.2 default-routes RIP config> sending 192.168.2.2 direct-routes RIP config> sending 192.168.2.2 network-routes RIP config> sending 192.168.2.2 static-routes RIP config> compatibility 192.168.2.2 receive rip1 RIP config> compatibility 192.168.2.2 send rip1 RIP config> exit Config> protocol ip -- Internet protocol user configuration -- IP config> route 192.168.2.0 255.255.255.0 ethernet0/0 IP config> route 192.168.3.0 255.255.255.0 ethernet0/1 IP config> list routes route to 192.168.3.0,255.255.255.0 via ethernet0/1, cost 1 route to 192.168.2.0,255.255.255.0 via ethernet0/0, cost 1 IP config> exit Config> save Save configuration (Yes/No)? Y Building configuration as text... OK Writing configuration... OK on Flash Config> *restart Are you sure to restart the system(Yes/No)? Y
EQUIPO_B
- Asignamos la dirección IP 192.168.3.2 a la interfaz
eth0
del equipo. - Creamos una ruta por defecto al router GNU/Linux.
- Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
> sudo ifconfig eth0 192.168.3.2 netmask 255.255.255.0 > sudo route add default gw 192.168.3.1 > route ================================================================================== Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.2.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 ==================================================================================
Una vez que se han configurado todos los equipos, al comprobar las rutas que se han aprendido mediante el protocolo RIP observamos que en el router CIT2 queda lo siguiente:
p 3 Console Operator +protocol ip IP+DUMP rip Type Dest net/Mask Cost Age Next hop(s) RIP(0)[0] 192.168.3.0/24 [100/2 ] 20 192.168.2.2 (ethernet0/1) Routing table size: 2500 nets (210000 bytes), 2 nets known, 1 shown
Mientras que en el router CIT, tal y como se puede ver a continuación, no aparece la ruta 192.168.1.0. Ésto es debido a que al no haber ningún equipo conectado a dicha red, el router CIT2 no distribuye la ruta correspondiente.
p 3 Console Operator +protocol ip -- IP protocol monitor -- IP+dump-routing-table rip Type Dest net/Mask Cost Age Next hop(s) Routing table size: 2500 nets (210000 bytes), 2 nets known, 0 shown
Prueba-2: RIPv1
Pasamos a detallar equipo por equipo cuáles son los pasos que hay que seguir para configurar cada uno de ellos. En el caso de los router CIT basta con acceder al menú de configuración, a través del puerto serie, y ejecutar todas las acciones que aparecen detalladas más abajo. Y en el caso de los terminales, la configuración se hará a través de la consola de GNU/Linux.
EQUIPO_A
- Asignamos la dirección IP 192.168.1.1 a la interfaz
eth0
del equipo. - Creamos una ruta por defecto al router GNU/Linux.
- Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
> sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 > sudo route add default gw 192.168.1.2 > route ================================================================================== Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 default 192.168.1.2 0.0.0.0 UG 0 0 0 eth0 ==================================================================================
Router CIT2
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos las direcciones de broadcast para ambas interfaces.
- Listamos las interfaces para comprobarlo.
- Habilitamos el protocolo RIP.
- Habilitamos la propagación de subredes desconectadas a través de
eth1
. - Permitimos la recepción de rutas por defecto de otros router.
- Permitimos la recepción de rutas de red.
- Permitimos el envío de rutas por defecto a otros routers.
- Permitimos el envío de rutas de red conectadas directamente al router.
- Permitimos el envío de rutas de red.
- Permitimos el envío de rutas estáticas configuradas en el router.
- Establecemos que vamos a trabajar con RIPv1.
- Creamos las rutas estáticas correspondientes y las listamos.
- Guardamos toda la configuración y reiniciamos.
p 4
Config> protocol ip -- Internet protocol user configuration -- IP config> address ethernet0/0 192.168.1.2 255.255.255.0 IP config> address ethernet0/1 192.168.2.1 255.255.255.0 IP config> broadcast-address network 192.168.1.2 1 IP config> broadcast-address network 192.168.2.1 1 IP config> list addresses IP addresses for each interface: ethernet0/0 192.168.1.2 255.255.255.0 NETWORK broadcast, fill 1 ethernet0/1 192.168.2.1 255.255.255.0 NETWORK broadcast, fill 1 x25-node IP disabled on this ifc IP config> exit Config> protocol rip -- RIP protocol user configuration -- RIP config> enable RIP config> allow-disconnected-subnetted-networks 192.168.2.1 RIP config> receiving 192.168.2.1 default-routes RIP config> receiving 192.168.2.1 network-routes RIP config> sending 192.168.2.1 default-routes RIP config> sending 192.168.2.1 direct-routes RIP config> sending 192.168.2.1 network-routes RIP config> sending 192.168.2.1 static-routes RIP config> compatibility 192.168.2.1 receive rip1 RIP config> compatibility 192.168.2.1 send rip1 RIP config> exit Config> protocol ip -- Internet protocol user configuration -- IP config> route 192.168.1.0 255.255.255.0 ethernet0/0 IP config> route 192.168.2.0 255.255.255.0 ethernet0/1 IP config> list routes route to 192.168.2.0,255.255.255.0 via ethernet0/1, cost 1 route to 192.168.1.0,255.255.255.0 via ethernet0/0, cost 1 IP config> exit Config> save Save configuration (Yes/No)? Y Building configuration as text... OK Writing configuration... OK on Flash Config> *restart Are you sure to restart the system(Yes/No)? Y
Router CIT
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos las direcciones de broadcast para ambas interfaces.
- Listamos las interfaces para comprobarlo.
- Habilitamos el protocolo RIP.
- Habilitamos la propagación de subredes desconectadas a través de
eth0
. - Permitimos la recepción de rutas por defecto de otros router.
- Permitimos la recepción de rutas de red.
- Permitimos el envío de rutas por defecto a otros routers.
- Permitimos el envío de rutas de red conectadas directamente al router.
- Permitimos el envío de rutas de red.
- Permitimos el envío de rutas estáticas configuradas en el router.
- Establecemos que vamos a trabajar con RIPv1.
- Creamos las rutas estáticas correspondientes y las listamos.
- Guardamos toda la configuración y reiniciamos.
p 4
Config> protocol ip -- Internet protocol user configuration -- IP config> address ethernet0/0 192.168.2.2 255.255.255.0 IP config> address ethernet0/1 192.168.3.1 255.255.255.0 IP config> broadcast-address network 192.168.2.2 1 IP config> broadcast-address network 192.168.3.1 1 IP config> list addresses IP addresses for each interface: ethernet0/0 192.168.2.2 255.255.255.0 NETWORK broadcast, fill 1 ethernet0/1 192.168.3.1 255.255.255.0 NETWORK broadcast, fill 1 x25-node IP disabled on this ifc IP config> exit Config> protocol rip -- RIP protocol user configuration -- RIP config> enable RIP config> allow-disconnected-subnetted-networks 192.168.2.2 RIP config> receiving 192.168.2.2 default-routes RIP config> receiving 192.168.2.2 network-routes RIP config> sending 192.168.2.2 default-routes RIP config> sending 192.168.2.2 direct-routes RIP config> sending 192.168.2.2 network-routes RIP config> sending 192.168.2.2 static-routes RIP config> compatibility 192.168.2.2 receive rip1 RIP config> compatibility 192.168.2.2 send rip1 RIP config> exit Config> protocol ip -- Internet protocol user configuration -- IP config> route 192.168.2.0 255.255.255.0 ethernet0/0 IP config> route 192.168.3.0 255.255.255.0 ethernet0/1 IP config> list routes route to 192.168.3.0,255.255.255.0 via ethernet0/1, cost 1 route to 192.168.2.0,255.255.255.0 via ethernet0/0, cost 1 IP config> exit Config> save Save configuration (Yes/No)? Y Building configuration as text... OK Writing configuration... OK on Flash Config> *restart Are you sure to restart the system(Yes/No)? Y
EQUIPO_B
- Asignamos la dirección IP 192.168.3.2 a la interfaz
eth0
del equipo. - Creamos una ruta por defecto al router GNU/Linux.
- Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
> sudo ifconfig eth0 192.168.3.2 netmask 255.255.255.0 > sudo route add default gw 192.168.3.1 > route ================================================================================== Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.2.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 ==================================================================================
Una vez que se han configurado todos los equipos, al comprobar las rutas que se han aprendido mediante el protocolo RIP observamos que en el router CIT2 queda lo siguiente:
p 3 Console Operator +protocol ip IP+DUMP rip Type Dest net/Mask Cost Age Next hop(s) RIP(0)[0] 192.168.3.0/24 [100/2 ] 10 192.168.2.2 (ethernet0/1) Routing table size: 2500 nets (210000 bytes), 3 nets known, 1 shown
Y en el router CIT, a diferencia de lo que ocurría en la prueba anterior, aparece la ruta hacia la red 192.168.1.0 debido a que ahora hay un equipo conectado a dicha red.
p 3 Console Operator +protocol ip -- IP protocol monitor -- IP+dump-routing-table rip Type Dest net/Mask Cost Age Next hop(s) rip(0)[0] 192.168.1.0/24 [100/2 ] 30 192.168.2.1 (ethernet0/0) Routing table size: 2500 nets (210000 bytes), 3 nets known, 1 shown
Prueba-3: RIPv1
Pasamos a detallar equipo por equipo cuáles son los pasos que hay que seguir para configurar cada uno de ellos. En el caso del router GNU/Linux la configuración se hará a través de Zebra, ya que, junto con el resto de componentes que conforman Quagga, resulta ser la base Software sobre la que se va realizar todo el desarrollo del proyecto, así como las futuras ampliaciones.
En el caso de los router CIT basta con acceder al menú de configuración, a través del puerto serie, y ejecutar todas las acciones que aparecen detalladas más abajo. Y, por último, en el caso de los terminales, la configuración se hará directamente desde la consola GNU/Linux.
Router GNU/Linux
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos rip en ambas interfaces.
- Deshabilitamos la pasividad de las interfaces.
- Definimos los routers vecinos, que en este caso sólo es uno.
- Seleccionamos qué rutas se van a anunciar.
- Establecemos que vamos a trabajar con RIPv1.
- Deshabilitamos cualquier tipo de autenticación.
- Creamos las rutas estáticas correspondientes.
Router> enable Password: Router# configure terminal Router(config)# interface eth0 Router(config-if)# ip address 192.168.1.2/24 Router(config-if)# quit Router(config)# interface eth1 Router(config-if)# ip address 192.168.2.1/24 Router(config-if)# quit Router(config)# quit Router# quit ripd> enable ripd# configure terminal ripd(config)# router rip ripd(config-router)# network eth0 ripd(config-router)# network eth1 ripd(config-router)# no passive-interface eth0 ripd(config-router)# no passive-interface eth1 ripd(config-router)# neighbor 192.168.2.2 ripd(config-router)# redistribute static ripd(config-router)# redistribute connected ripd(config-router)# quit ripd(config)# interface eth1 ripd(config-if)# ip rip send version 1 ripd(config-if)# ip rip receive version 1 ripd(config-if)# no ip rip authentication mode ripd(config-if)# no ip rip authentication key-chain ripd(config-if)# no ip rip authentication string ripd(config-if)# quit ripd(config)# quit ripd# quit Router> enable Password: Router# configure terminal Router(config)# ip route 192.168.1.0/24 eth0 Router(config)# ip route 192.168.2.0/24 eth1 Router(config)# quit Router# show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route K * 127.0.0.0/8 is directly connected, lo C>* 127.0.0.0/8 is directly connected, lo S 192.168.1.0/24 [1/0] is directly connected, eth0 C>* 192.168.1.0/24 is directly connected, eth0 S 192.168.2.0/24 [1/0] is directly connected, eth1 C>* 192.168.2.0/24 is directly connected, eth1
Router CIT
- Asignamos las direcciones correspondientes a las interfaces de red.
- Habilitamos las direcciones de broadcast para ambas interfaces.
- Listamos las interfaces para comprobarlo.
- Habilitamos el protocolo RIP.
- Habilitamos la propagación de subredes desconectadas a través de
eth0
. - Permitimos la recepción de rutas por defecto de otros router.
- Permitimos la recepción de rutas de red.
- Permitimos el envío de rutas por defecto a otros routers.
- Permitimos el envío de rutas de red conectadas directamente al router.
- Permitimos el envío de rutas de red.
- Permitimos el envío de rutas estáticas configuradas en el router.
- Establecemos que vamos a trabajar con RIPv1.
- Creamos las rutas estáticas correspondientes y las listamos.
- Guardamos toda la configuración y reiniciamos.
p 4
Config> protocol ip -- Internet protocol user configuration -- IP config> address ethernet0/0 192.168.2.2 255.255.255.0 IP config> address ethernet0/1 192.168.3.1 255.255.255.0 IP config> broadcast-address network 192.168.2.2 1 IP config> broadcast-address network 192.168.3.1 1 IP config> list addresses IP addresses for each interface: ethernet0/0 192.168.2.2 255.255.255.0 NETWORK broadcast, fill 1 ethernet0/1 192.168.3.1 255.255.255.0 NETWORK broadcast, fill 1 x25-node IP disabled on this ifc IP config> exit Config> protocol rip -- RIP protocol user configuration -- RIP config> enable RIP config> allow-disconnected-subnetted-networks 192.168.2.2 RIP config> receiving 192.168.2.2 default-routes RIP config> receiving 192.168.2.2 network-routes RIP config> sending 192.168.2.2 default-routes RIP config> sending 192.168.2.2 direct-routes RIP config> sending 192.168.2.2 network-routes RIP config> sending 192.168.2.2 static-routes RIP config> compatibility 192.168.2.2 receive rip1 RIP config> compatibility 192.168.2.2 send rip1 RIP config> exit Config> protocol ip -- Internet protocol user configuration -- IP config> route 192.168.2.0 255.255.255.0 ethernet0/0 IP config> route 192.168.3.0 255.255.255.0 ethernet0/1 IP config> list routes route to 192.168.3.0,255.255.255.0 via ethernet0/1, cost 1 route to 192.168.2.0,255.255.255.0 via ethernet0/0, cost 1 IP config> exit Config> save Save configuration (Yes/No)? Y Building configuration as text... OK Writing configuration... OK on Flash Config> *restart Are you sure to restart the system(Yes/No)? Y
EQUIPO_B
- Asignamos la dirección IP 192.168.3.2 a la interfaz
eth0
del equipo. - Creamos una ruta por defecto al router GNU/Linux.
- Mostramos la tabla de rutas para comprobar que se ha actualizado correctamente.
> sudo ifconfig eth0 192.168.3.2 netmask 255.255.255.0 > sudo route add default gw 192.168.3.1 > route ================================================================================== Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.2.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 default 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 ==================================================================================
Una vez que se han configurado todos los equipos, al comprobar las rutas que se han aprendido mediante el protocolo RIP observamos que en el router GNU/Linux queda lo siguiente:
ripd> show ip rip Codes: R - RIP, C - connected, S - Static, O - OSPF, B - BGP Sub-codes: (n) - normal, (s) - static, (d) - default, (r) - redistribute, (i) - interface Network Next Hop Metric From Tag Time C(i) 192.168.1.0/24 0.0.0.0 1 self 0 C(i) 192.168.2.0/24 0.0.0.0 1 self 0 R(n) 192.168.3.0/24 192.168.2.2 2 192.168.2.2 0 02:38
Y en el router CIT aparece la ruta hacia la red 192.168.1.0, aun no habiendo ningún equipo conectado a la misma, ya que Quagga, a diferencia de CIT, sí envía dicha ruta.
p 3 Console Operator +protocol ip -- IP protocol monitor -- IP+dump-routing-table rip Type Dest net/Mask Cost Age Next hop(s) rip(0)[0] 192.168.1.0/24 [100/2 ] 10 192.168.2.1 (ethernet0/0) Routing table size: 2500 nets (210000 bytes), 3 nets known, 1 shown