RIP v2 en Linux con Quagga

¡Hola!

Hoy vamos a ver cómo se configura el encaminamiento dinámico en routers Linux, ya que no lo soportan de forma nativa. Para ello vamos a utilizar la suite Quagga, que incorpora implementaciones de OSPFv2, OSPFv3, RIP v1 y v2, RIPng y BGP-4 para plataformas Unix (FreeBSD, Linux, Solaris y NetBSD) y permite modificar la configuración de los equipos a través de las órdenes típicas del Cisco IOS.

Arquitectura de Quagga

Quagga está compuesto por varios daemons que trabajan de forma colaborativa para construir la tabla de encaminamiento. Por ejemplo, el daemon ripd maneja el protocolo RIP, mientras el daemon ospfd es el que soporta el protocolo OSPF. Para realizar los cambios en la tabla de encaminamiento del kernel y para la redistribución de las rutas entre diferentes protocolos, se utiliza el daemon zebra.


Instalación

Si quisiéramos realizar una instalación en producción con una configuración compleja, sería preferible descargar el código para configurarlo y compilarlo con las opciones deseadas. Para este ejemplo, sin embargo, instalaremos el paquete disponible en el repositorio de Debian.

#aptitude install quagga

Los daemons de quagga tienen su propio terminal o VTY (un CLI) al que nos conectaremos por telnet para su configuración. Tras la instalación, podemos comprobar cómo se han añadido al fichero /etc/services las siguientes entradas:


Configuración de RIPv2

La primera tarea consiste en editar el fichero /etc/quagga/daemons para activar los protocolos que queremos configurar en nuestra máquina y reiniciar el servicio:

#nano /etc/quagga/daemons

zebra=yes
bgpd=no
ospfd=no
ospf6d=no
ripd=yes
ripngd=no

#/etc/init.d/quagga restart

A continuación tenemos que crear un fichero de configuración para cada daemon activado. Cada daemon tiene asociado un fichero con un nombre específico:

zebra:
bgpd:
ospfd:
ospf6d:
ripd:
ripngd:
zebra.conf
bgpd.conf
ospfd.conf
ospf6d.conf
ripd.conf
ripngd.conf

Para crear los ficheros de configuración, podemos copiar los archivos de ejemplo que incorpora la documentación:

#cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf
#cp /usr/share/doc/quagga/examples/ripd.conf.sample /etc/quagga/ripd.conf

Para terminar, tenemos que cambiar los permisos, el propietario y el grupo de estos ficheros:

#chown quagga:quaggavty /etc/quagga/*.conf
#chmod 640 /etc/quagga/*.conf

Y reiniciamos el servicio:

#/etc/init.d/quagga restart

Ya podemos comenzar a configurar el encaminamiento dinámico, para lo que nos conectaremos por telnet al VTY del daemon ripd. Nos pedirá una contraseña: por defecto es zebra, pero puedes cambiarla en el fichero /etc/quagga/ripd.conf:

#telnet localhost ripd

Trying ::1…
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

Hello, this is Quagga (version 0.99.15).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

User Access Verification

Password:
ripd>

Y ya podríamos configurar nuestra máquina Linux para trabajar con RIP usando los comandos típicos del Cisco IOS:

ripd> enable
ripd# configure terminal
ripd(config)# router rip
ripd(config-router)# network 10.0.0.0/8
ripd(config-router)# network 20.0.0.0/8
ripd(config-router)# exit
ripd(config)# exit
ripd# write
Configuration saved to /etc/quagga/ripd.conf

Aquí puedes encontrar todas las opciones de configuración de RIP con Quagga, pero si lo has hecho alguna vez con un router Cisco verás que las órdenes son prácticamente iguales. Aquí tienes la guía de configuración de RIP en dispositivos Cisco.

NOTA: ¡no olvides activar el bit de forwarding para que tu máquina enrute!

#echo «1» > /proc/sys/net/ipv4/ip_forward

Y si quieres que perdure tras un reinicio:

#echo «net.ipv4.ip_forward = 1» >> /etc/sysctl.conf

1 Comentario

  1. Chen

    Hola,

    me parece muy muy mal que copies los artículos de otra gente y no cites a la fuente. De hecho, estás vulnerando la licencia de mi artículo (Creative Commons Reconocimiento-CompartirIgual), así que espero que edites este post para que cites al verdadero autor.

    Un saludo.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *