Me mudo a Wordpress! Como ser un desarrollador Debian
May 25
-->

Quagga es un software libre de enrutamiento avanzado. Proporciona todos los protocolos derj45

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 Drakepie gnome
  • 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

Página oficial del software

Traducción del manual oficial de Quagga al español por Eduardo Collado y Mariano Juliá

Artículos relacionados:

-->

26 Respuestas to “Instalando Quagga en Ubuntu”

  1. Gravatar
    Guillermo Andres Comenta:

    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

  2. Gravatar
    Miguel Araujo Comenta:

    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

  3. Gravatar
    Guillermo Andres Comenta:

    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

  4. Gravatar
    Miguel Comenta:

    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

  5. Gravatar
    Guillermo Andres Comenta:

    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

  6. Gravatar
    Miguel Comenta:

    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

  7. Gravatar
    Guillermo Andres Comenta:

    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

  8. Gravatar
    Jose Vazquez Jeronimo Comenta:

    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.

  9. Gravatar
    Miguel Comenta:

    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

  10. Gravatar
    gringo Comenta:

    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…

  11. Gravatar
    Miguel Comenta:

    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

  12. Gravatar
    Jose Vazquez Jeronimo Comenta:

    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. Gravatar
    Miguel Comenta:

    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

  14. Gravatar
    Jose Vazquez Jeronimo Comenta:

    Muchas gracias por la ayuda

    Ese comando es el buscaba

    Nos vemos

  15. Gravatar
    Miguel Comenta:

    No hay de qué.

  16. Gravatar
    gringo Comenta:

    apa… no sabía ese método de “interface virtual1″ dentro de zebra (por lo leer el maldito manual… obviamente :P)

    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.

  17. Gravatar
    Miguel Comenta:

    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

  18. Gravatar
    Evelin Comenta:

    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.

  19. Gravatar
    Pepe Comenta:

    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…

  20. Gravatar
    Sergio Sam Comenta:

    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 :-)

  21. Gravatar
    Miguel Comenta:

    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

  22. Gravatar
    esteban Comenta:

    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

  23. Gravatar
    alpis Comenta:

    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

  24. Gravatar
    Miguel Comenta:

    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

  25. Gravatar
    Henry Comenta:

    Hola!

    Disculpa mi ignorancia apenas soy nuevo en esto del zebra y el quagga; hice todos los pasos que escribistes pero me quede en este paso que escribiste y no se que hacer :

    —————-Editamos las líneas:
    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——————————————————————————–

    Ahora cuando edito el “zebra=no” a “zebra=yes” y
    “ripd=no” a “ripd=yes”
    no se como salir de ahi y que se guarde la configuracion. Porfa man ayudame con esto.

    Thanks

  26. Gravatar
    Miguel Comenta:

    Buenas Henry,

    Pues lo que tienes que hacer es editarlo con un programa que manejes, por ejemplo gedit, que es un editor gráfico.

    Si no sabes usar vim, usa cualquier otro editor. En vim se guardar así:

    1.- Das al escape
    2.- Escribes :wq

    Un saludo

Deja un comentario