Quagga es un software libre de enrutamiento avanzado. Proporciona todos los protocolos de
encaminamiento (routing) basados en TCP/IP:
- RIP v1/v2 (Routing Information Protocol)
- OSPF v2/v3 (Open Shortest Path First)
- BGP -4 y BGP -4+ (Border Gateway Protocol)
- IS/IS (Intermediate system-to-intermediate system)
Además de soportar ipv4, también soporta ipv6. Posee una arquitectura avanzada que le proporciona una gran calidad y potencia, con un motor multiservidor de encaminamiento.
Quagga en un fork de GNU/Zebra.
Instalación de Quagga en Ubuntu
Esta instalación ha sido probada en:
- Ubuntu 6.06 Dapper Drake

- Ubuntu 6.10 Edgy
- Ubuntu 7.04 Feisty Fawn
Instalamos quagga usando apt. Primero entraremos en modo root para no estar haciendo sudo constantemente.
sudo -s
apt-get install quagga
Se instalarán los siguientes paquetes NUEVOS:
quagga
Preconfigurando paquetes …Seleccionando el paquete quagga previamente no seleccionado.
(Leyendo la base de datos …100348 ficheros y directorios instalados actualmente.)
Desempaquetando quagga (de …/quagga_0.99.6-2ubuntu3.1_i386.deb) …
grep: /etc/quagga/*.conf: No existe el fichero ó directorio
Configurando quagga (0.99.6-2ubuntu3.1) …
Loading capability module if not yet done.
Starting Quagga daemons (prio:10):.
Ponemos los ficheros de configuración de quagga en su sitio.
cd /usr/share/doc/quagga/examples/
cp * /etc/quagga/
Renombramos los ejemplos de configuración, para usarlos y activar Quagga con la configuración por defecto.
cd /etc/quagga/
cp zebra.conf.sample zebra.conf
cp ripd.conf.sample ripd.conf
Configuramos los demonios para que active zebra, y por el momento RIP, aunque se hace de igual modo para los demás protocolos.
vim daemons
Editamos las línas:
zebra=yes
ripd=yes
Así hemos marcado que queremos que Quagga arranque los demonios zebra y ripd (Que se encarga de RIP). Para que cargue de nuevo la configuración, reiniciamos Quagga.
/etc/init.d/quagga restart
Stopping Quagga daemons (prio:0): (ripd) (zebra) (bgpd) (ripngd) (ospfd) (ospf6d) (isisd).
Removing all routes made by zebra.
Nothing to flush.
Loading capability module if not yet done. Starting Quagga daemons (prio:10): zebra ripd.
Ahora podremos acceder por separado con una interfaz interactiva a cada uno de los demonios. Para acceder a Zebra (Password por defecto zebra):
telnet localhost 2601
Para acceder al demonio de RIP (ripd) y configurarlo:
telnet localhost 2602
Configurando Zebra
Zebra es el demonio gerente. Los demonios que se encargan de los protocolos de enrutamiento son: ripd, ripngd, ospfd, ospf6d, bgpd.
telnet localhost 2601
Password: zebra
Podemos configurar Zebra editando el fichero de configuración zebra.conf o bien accediendo al demonio y por diversos comandos. Antes que nada con el signo de interrogación ? obtenemos una ayuda contextual de las posibilidades que se va clasificando, es decir, si ponemos ? nada más entrar, nos dice los posibles comandos que tenemos, pero si escribimos
debug ?
Nos informa sobre los modificadores del comando debug en concreto. Esto es importante que quede claro, porque nos va a servir de mucho al principio, hasta que vayamos aprendiendo las principales instrucciones.
Un ejemplo, cambiemos el nombre de host del router, ¿para qué? Imaginemos una red de más de 10.000 ordenadores, dividida en subredes comunicadas entre unos cuantos routers, ¿no sería útil que cada router tuviera un prompt distinto? Así podríamos configurar varios a la vez sin tener que recordar que vty corresponde a cada router. Vamos con ello:
enable
Password: zebra
Hemos entrado en el modo privilegiado y salido del modo usuario, ahora entraremos en el modo configuración. Estos son los únicos 3 modos existentes.
configure terminal
Algunos estaréis pensando que se parece mucho a Cisco, pues sí. La sintaxis es en un 95% aproximadamente idéntica a la de un Cisco, aunque Quagga tiene algunas configuraciones que un router Cisco no dispone. Así del mismo modo, podemos abreviar comandos:
config t
Si ahora hacemos un ‘?’:
hostname -----> Set system's network name
Creo que resulta claro, que esto es lo que estábamos buscando. Así que:
hostname CHINI
Y después de darle al intro, veremos como el prompt del router se actualiza. Ahora grabamos la nueva configuración del router en el fichero estático zebra.conf. Para ello tecleamos el comando:
write memory
También podemos usar el antiguo comando respetado en versiones posteriores por Cisco:
wr
El router nos informará de que la configuración se guardó:
Configuration saved to /etc/quagga/zebra.conf
Direcciones útiles
Traducción del manual oficial de Quagga al español por Eduardo Collado y Mariano Juliá

25 comments
Comments feed for this article
31 Mayo, 2007 a 5:42 am
Guillermo Andres
Luego del comando
/etc/init,d/quagga start
no arrancan los demonios habilitados en el archivo daemons….
Es que acaso necesito arrancarlos por comandos /etc/init.d/zebra start ????
Agradeceria mucho la ayuda
31 Mayo, 2007 a 8:42 am
Miguel Araujo
El comando correcto es:
/etc/init.d/quagga restart
No olvides que tienes que ser root para ejecutarlo. Fíjate que pongo restart y un punto en init.d (no coma, como has puesto). Si esto te da error, cópialo en el siguiente comentario y dime que distro estás usando.
Revisa los pasos anteriores, para ver que no te saltaste nada, porque el manual está muy bien probado, y nunca me dio fallos.
Saludos
31 Mayo, 2007 a 5:16 pm
Guillermo Andres
Lo de la coma fue un error de tipeo…
Introduje como mencionaste el comando como root
/etc/init.d/quagga restart
no me da njingun error pero los demonios de zebra ni ripd no arrancan… me da error al invocarlos
Estoy usando Ubuntu 2.6.17-11-generic
Gracias por la ayuda
31 Mayo, 2007 a 8:07 pm
Miguel
Prueba a hacer un “ps aux | grep quagga” y mira a ver si te da algo parecido a esto. Así sabremos si los demonios realmente han arrancado.
quagga 5069 0.0 0.1 2732 904 ? Ss 20:58 0:00 /usr/lib/quagga/zebra –daemon -A 127.0.0.1
quagga 5073 0.0 0.2 2836 1036 ? Ss 20:58 0:00 /usr/lib/quagga/ripd –daemon -A 127.0.0.1
Para invocar los demonios, prueba en vez de “telnet localhost 2601″ con “telnet 127.0.0.1 2601″ a ver si es que no tienes /etc/hosts.
Si aún así no te funciona, prueba con:
“sudo /usr/lib/quagga/zebra -d”
Pon aquí las salidas de tu consola, las que sean, si sigue sin funcionar.
No hay de que,
Nos vemos
1 Junio, 2007 a 12:37 am
Guillermo Andres
Listo ya tengo los demonios corriendo.
root@guillermo-laptop:/home/guillermo# ps aux | grep quagga
quagga 7277 0.0 0.0 2664 836 ? Ss 19:23 0:00 /usr/lib/quagga/zebra –daemon -A 127.0.0.1
quagga 7281 0.0 0.0 2760 1016 ? Ss 19:23 0:00 /usr/lib/quagga/ripd –daemon -A 127.0.0.1
root 7359 0.0 0.0 2796 748 pts/1 R+ 19:25 0:00 grep quagga
Ya los invoque y todo perfecto.
Ahora tengo esta duda. Cuando ingreso al VTYSH y coloco “show daemons” no me muestra nada. Me deberia mostrar los demonios zebra y ripd??
Otra duda es la siguiente: si quiero correr RIP necesito configurar ZEBRA.conf ?? lo pregunto porque quiero comunicar mi maquina con una maquina virtual Qemu corriendo Ubuntu usando RIP.
Saludos
1 Junio, 2007 a 9:39 am
Miguel
Ok! me alegro de que ya los pudieras arrancar e invocar.
Ahora no recuerdo si hay algún comando “show daemons”, luego lo miro porque no estoy en mi ordenador.
Sobre lo de la máquina virtual qemu con RIP, no te preoucpes, parece que me has leído la mente. El otro día comenté en el post de humor que estoy escribiendo un artículo sobre eso, con alguna sorpresa interesante.
Pero no creo que lo haga hasta que acabe los exámenes, 8 de junio, porque no tengo tiempo para nada. Así que te pido un poco de paciencia, nada más. Por cierto ¿Estás usando quagga para algún tema académico? ¿o para tu red doméstica? ¿o por curiosidad?
Nos vemos
2 Junio, 2007 a 6:13 pm
Guillermo Andres
Lo estoy usando para fines académicos pero pienso llevarlo a otro nivel, algo como un hooby o como tu dices por simple curiosidad. Voy a seguir trabajando en esto y bueno esperaré ese post. Saludos
7 Junio, 2007 a 10:45 pm
Jose Vazquez Jeronimo
Que tal
He instalado quagga en Ubuntu sin embargo tengo una duda
en la lista de comandos no me aparece show ip protocols
el cual sirve para ver los protocolos de enrutamiento
ojalá puedas ayudarme
gracias de antemano.
8 Junio, 2007 a 9:36 am
Miguel
Pues verás, si no te sale es porque ese comando en Quagga que yo sepa no existe. Quagga no funciona exactamente igual que un router Cisco y esto es importante tenerlo en cuenta. No todos los comandos son iguales, más o menos coinciden un 90 % y por supuesto un Cisco tiene muchos más comandos (Lo digo por si este comando es de un Cisco, que estoy ahora aprendiendo a manejarlos).
También es importante tener en cuenta la arquitectura de Quagga: Se subdivide en varios demonios que operan en diferentes puertos y puedes llamar del siguiente modo:
telnet 127.0.0.1 2601 –> Zebra
telnet 127.0.0.1 2602 –> Rip
Si quieres ver las rutas que tiene tu router, vas a Zebra y ahí poner “show ip route” y la inicial de la ruta te dice por que protocolo la ha aprendido.
Pero si quieres ver las de un protocolo en concreto, pues vas a RIP y haces “show ip rip”, por ejemplo.
Espero que esto resuelva tu duda,
Saludos
13 Junio, 2007 a 12:42 pm
gringo
en la universidad tenemos una materia de redes en las que en la práctica nos hacen armar distintas topografías usando subnetting, zebra y ripd.
en cada mesa de trabajo hay 4 máquinas, cada una con varias placas de red (que hacen de routers). Cada una de estas máquinas tienen 2 o 3 dummys para simular redes (virtuales) de máquinas…
mi pregunta es… existe alguna manera de setear la MAC a la dummy a través de zebra o ripd?? por lo poco que estuve mirando no hay nada
Antes de ver el paquete quagga lo hacíamos con los siguientes comandos…
ip link set dummy0 address 04:00:00:00:00:01 (seteo la MAC)
ip address add 192.168.35.254/22 dev dummy0 (seteo la interfaz a través de la cual la red virtual [representada por dummy0] se comunica con el router [simulado por la pc])
saludos…
13 Junio, 2007 a 1:35 pm
Miguel
Primero, gracias por tus comentarios, me animan a seguir escribiendo más artículos.
En mi asignatura he hecho cosas similares, también usando ordenadores con varias interfaces como routers con Quagga. Montando topologías y comprobando que funcionan por medio de pings y analizando el tráfico de red con WireShark.
Creo que no se puede setear la MAC de una interfaz desde Quagga, aunque habría que comprobarlo con el manual.
Sin embargo yo lo que hago es crear interfaces virtuales desde Zebra:
“telnet localhost 2601
enable
configure terminal
interface virtual1
ip address 10.13.0.1/24″
Con esto creo una interfaz que se llama virtual1 con ip de host 10.13.0.1 con una máscara 255.255.255.0. Luego puedo avisar esa red a través de RIP aunque la interfaz no exista o no esté conectada a nada, es casi como una interfaz de loopback.
¿Para que necesitas setear la MAC? ¿algún tema de ACLs?
Saludos
13 Junio, 2007 a 4:50 pm
Jose Vazquez Jeronimo
Que tal amigo
Lo he resuelto con “show ip rip” y “show ip route”
para visualizar la rutas, sin embargo he visto en algunas paginas
y el propio manual de quagga(en el subtema 5.10) menciona el comando
“show ip protocols”
Gracias por la ayuda
13 Junio, 2007 a 5:10 pm
Miguel
Me alegro Jose de que así te funcione. He leído el subtema que me dices, y me ha sorprendido encontrarlo.
Sin embargo entrando en ripd no tengo ese comando. Así que he estado ojeando y creo que ya sé por qué pasa. El tema es que la traducción del manual está basada en Quagga v0.96.1 y es probablemente de hace unos cuantos años.
Mientras que el Quagga que yo uso es:
“telnet localhost 2601
enable
show version
Quagga 0.99.6 (Router).
Copyright 1996-2005 Kunihiro Ishiguro, et al.”
Así que me temo que ese comando lo quitaron o cambiaron. De hecho después de estar un rato buscando he encontrado la nueva versión de ese comando (Basándome en la salida que produce show ip protocols en el subapartado 5.10) y es este:
“telnet localhost 2602
enable
show ip rip status”
Espero que te sirva, ya me dirás si esto zanja el asunto.
Nos vemos
13 Junio, 2007 a 7:11 pm
Jose Vazquez Jeronimo
Muchas gracias por la ayuda
Ese comando es el buscaba
Nos vemos
13 Junio, 2007 a 8:20 pm
Miguel
No hay de qué.
13 Junio, 2007 a 11:23 pm
gringo
apa… no sabía ese método de “interface virtual1″ dentro de zebra (por lo leer el maldito manual… obviamente
)
lo de setear las MAC en las dummy es mas bien un detalle… ahora no recuerdo bien… pero creo que si le hacía un ping a la dirección de la interfaz de la dummy0 (192.168.35.254 según mi ejemplo de arriba) no me respondía si no tenía una MAC asignada… (como es el caso de las eth… que ya las tienen)
igualmente, en caso de necesitarlo se que puedo setear primero la MAC de la dummy como en el ejemplo anterior y luego a través de zebra asignarle el ip
gracias por la información.
14 Junio, 2007 a 10:13 am
Miguel
No hay de qué, me alegro de que te sirva. Otra cosa, creo que si lo haces como te he comentado, sino recuerdo mal, en clase no nos hacía falta setear la MAC y la interfaz respondía a los pings. Siempre y cuando la hayas creado con Zebra.
Aunque como apuntas, siempre puedes usar la línea de comandos.
Nos vemos
15 Junio, 2007 a 8:57 am
Evelin
Hola Miguel Araujo!!!
Me agrado mucho esta forma de aprendizaje, una vez más adelante por el derecho de aprender a aprender.
Pues apenas instale Quagga, y me fue de mucha utilidad tu explicación, pero quiero saber algunas cosas más:
-Requiero instalar quagga en dos PC para que cada una funcione como ruteador y pueda intercambiar sus tablas de ruteo.
-Dos PC con privilegios de root.
Documento del proceso de configuración de quagga, el cual debe contener:
• Ubicación de archivos de configuración y de log que utiliza quagga
• Configuración de rip en cada ruteador
• Tabla de ruteo de cada ruteador donde aparezcan las redes recibidas
• Documentación de pruebas de conexión entre ambos ruteadores (ping, traceroute).
Saludos Cordiales. Evelin.
22 Junio, 2007 a 7:44 pm
Pepe
Que tal amigo
Estoy usando quagga y funciona muy bien pero ahora me gustaria saber si se puede usar este router para enlazar VLAN´s
Ya lo intente pero no me funciono del todo bien ya que no puedo hacer ping a la interfaz del Switch Cataliyst 2950 que estoy usando en conjunto
con el enrutador quagga.
Espero algunos consejos
Saludos cordiales…
30 Agosto, 2007 a 5:48 pm
Sergio Sam
hola esta muy bueno el tutorial bucando en google encontre que noc cuando creo que en la prehistoria en linux ponias la ruta y luego el comando /usr/sbin/routed y eso si solo eso ponia en juego a RIP … en los linux que tengo no pude encontrar ese programa ni en Debian ni en Ubuntu en algun lugar vi que decia instalar el paquete net-kit o algo asi lo instale y no paso nada … si solo quiero tener RIP en un linux sin programas como zebra quagga etc… no se puede ??? el tema es que tengo que poner RIP en un ipcop y no puedo instalar quagga …. alguna idea ???
Salu2
5 Septiembre, 2007 a 11:52 am
Miguel
Pues verás no soy tan experto en el tema, pero me extraña que no puedas recurrir a otro programa o software para solucionarlo. Siento no poder ayudarte. Le echaré un vistazo y si encuentro algo ya te comento.
Un saludo
10 Octubre, 2007 a 6:08 am
esteban
disculpa una pregunta cual seria el codigo o programa para generar las tablas de ruteo entre dos pcs ya que configuro el zebra pero no puedo generar el codigo para mostrarme las tablas en las pcs agradeceria me pdieras ayudar gracias
10 Diciembre, 2007 a 2:04 am
alpis
hola qengo una pequeña duda necesito simular una maquina como un router y la verdad ya he buscado varios documentos en los cuale sme han confundido mucho, quiziera saber si alguin tien un manual o algun documento que me pueda ayudar
11 Diciembre, 2007 a 8:22 pm
Miguel
Para esteban:
Bueno, lo primero es que hace bastante tiempo que no toco enrutamiento así que los comandos para enrutar no los tengo frescos. Pero configurar RIP no era nada complicado, hay bastante información en Internet, puedes usar casi de igual modo la de los routers Cisco.
Para alpis:
Bueno Quagga es una aplicación que te permite que un PC funcione como un router. La documentación existente no es mucha y la más útil que encontré está citada en este artículo.
Primero deberías saber cómo se configura alguno los posibles protocolos de routing y cómo funciona. Para ello puedes aprender con manuales para Cisco, ya que la sintaxis de Quagga es muy cercana a la de Cisco.
Si no, el único otro software libre que conozco para enrutar con un PC es FREESCO.
http://en.wikipedia.org/wiki/FREESCO
Espero que te sirva, Un saludo
29 Febrero, 2008 a 3:15 pm
Michelle
Soy nueva en quagga y necesito permitir que las VLANS que tengo configuradas en un switch se conecten simplemente para compartr la impresora que se encuentra en una de las vlans. Intente hacerlo similar a cisco pero la configuracion no es tan igual. Otra cosa que direccion ip debo colocarle a la interfaz eth0. Agradezco su respuesta.