Quagga es un servicio que corre sobre distribuciones de Linux esencialmente convirtiéndolo en un enrutador muy poderoso.
Los que han configurado enrutadores Cisco encontrarán una interfaz muy familiar.
1. para instalar quagga en debian por ejemplo digitamos:
2. configuramos los demonios para que active zebra y bgpd con el siguiente comando:
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
3. Después hay que entrar a la ruta cd /usr/share/doc/quagga/examples/ y copiar los archivos zebra y bgpd a la ruta /etc/quagga, quedaría así:
#cp /usr/share/doc/quagga/examples/bgpd.conf.sample /etc/quagga/bgpd.conf
4. Reiniciamos el servicio de quagga:
5. Ahora podremos acceder por separado con una interfaz interactiva a cada uno de los demonios.
Demonio | Puerto |
zebra | 2601 |
ripd | 2602 |
ripng | 2603 |
ospfd | 2604 |
bgpd | 2605 |
ospf6d | 2606 |
Para acceder a Zebra (Password por defecto zebra):
Password: zebra
Router>enable
Router#conf t
Router(config)#interface eth0
Router(config-if)#ip address 200.100.100.1/24
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)# exit
Router# write
Configuration saved to /etc/quagga/router.conf
#telnet localhost 2605
Password: zebra
ripd> enable
ripd# configure terminal
ripd(config)# router bgp ASN de la red
ripd(config-router)# bgp router-id 192.168.1.6
...
ripd(config)# exit
ripd# write
Un ejemplo de configuración BGP es con dual stack para soportar IPv4 e IPv6:
hostname your_router_name password your_router_password log file /var/log/quagga/bgpd.log log stdout ! router bgp 65320 no synchronization bgp router-id 192.168.1.2 network 192.168.1.0 mask 255.255.255.0 neighbor 192.168.1.1 remote-as 65321 neighbor 192.168.1.1 description peer-router-v4 neighbor 2001:DB8:1::1 remote-as 65321 neighbor 2001:DB8:1::1 description peer-router-v6 no auto-summary no neighbor 2001:DB8:1::1 activate ! address-family ipv6 network 2001:DB8::/32 neighbor 2001:DB8:1::1 soft-reconfiguration inbound neighbor 2001:DB8:1::1 allowas-in neighbor 2001:DB8:1::1 activate neighbor 2001:DB8:1::1 route-map IPV6-OUT out exit-address-family ! ipv6 prefix-list pl-ipv6 seq 10 permit 2001:DB8::/32 route-map IPV6-OUT permit 10 match ipv6 address prefix-list pl-ipv6 set ipv6 next-hop global 2001:DB8:2::1 ! line vty !
La cláusula "soft-reconfiguration inbound" permite que todas la rutas recibidas queden en memoria, incluso las descartadas y así poder comparar la diferencia usando por ejemplo:
BGP table version is 6, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
- 192.168.2.0 172.16.0.2 100 0 65200 ?
- 192.168.3.0 172.16.0.2 100 0 65200 ?
Total number of prefixes 2
En comparación a:
BGP table version is 6, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
- 192.168.3.0 172.16.0.2 100 0 65200 ?
Total number of prefixes 1
6. Después de configurar todo lo de quagga procedemos a configurar las tarjetas de red. Para eso editamos el archivo:
7. Luego de hacer estas configuraciones hay que restaurar el servicio de red con el siguiente comando:
8. despues hay que activar el enrrutamiento en GNU/Linux con el siguiente comando:
y para que no se borre despues de reiniciar el sistema utilizamos la siguiente linea:
El comando vtysh es sumamente útil porque nos permite pasar comandos directo a nuestro router Linux desde la linea de comando:
# vtysh Hello, this is Quagga (version 0.99.22.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. Router#
Por ejemplo, para ver el estado de los peers BGP:
# vtysh -c "show ip bgp summary" BGP router identifier 192.168.1.6, local AS number 262149 RIB entries 1190232, using 127 MiB of memory Peers 6, using 27 KiB of memory Peer groups 1, using 32 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 262149 1030329 13021 0 0 0 01w2d00h 531812 192.168.1.2 4 262149 1317064 13021 0 0 0 01w2d00h 617296 192.168.1.3 4 262149 16253 13021 0 0 0 01w2d00h 1047 Total number of neighbors 3
Esto nos será sumamente útil para la elaboración de scripts o una página "Looking Glass" que configuremos en el futuro.