Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Overview
Short introduction to dynamic routing Introduce Quagga Installing Quagga on Debian Example Quagga configurations Demo Using Quagga in production
Static Routing
Simplist and most common method Manually configured by humans Cant handle network changes such as outages Doesnt scale with many network devices Requires least amount of expertise Generally used on hosts (PCs, printers, etc) and simple NAT routers
What is Quagga?
Open source routing software Forked 4 years ago from Zebra to form a much better and healthier decentralized community Similar syntax and look to Cisco IOS No control over OS, unlike IOS
Quagga features
RIPv1 and v2 (IPv4) RIPng (IPv6) OSPFv2 OSPFv3 BGPv4 with multiprotocol extension VTY shell Cisco like SNMP IPv6
Supported Platforms
GNU/Linux 2.2.x and higher FreeBSD 4.x and higher NetBSD 1.6 and higher OpenBSD 2.5 and higher
System Architecture
bgpd ripd ospfd Routing protocol daemons
Vtysh shell
to start configuring Dont forget to copy run start like on IOS Reboot and ensure convergence
Vtysh
Demo
Internet - 0.0.0.0/0
ISP - 192.168.21.254/24
NAT boundary
Lo 10.3.3.2/32
R1
R2
OSPF area 0
Router 1 Configuration
interface eth0 ip address 192.168.21.8/24 ! interface eth1 ip address 10.3.2.1/30 ! interface lo ip address 10.3.3.1/32 ! router ospf ospf router-id 10.3.3.1 redistribute connected network 10.3.2.0/30 area 0.0.0.0 default-information originate always ! ip route 0.0.0.0/0 192.168.21.254 ! ip forwarding
Router 2 Configuration
interface eth0 ip address 10.3.2.2/30 ! interface lo ip address 10.3.3.2/32 ! router ospf ospf router-id 10.3.3.2 redistribute connected network 10.3.2.0/30 area 0.0.0.0 ! ip forwarding
0.0.0.0/0 [110/1] via 10.3.2.1, eth0, 1d20h22m 10.3.2.0/30 [110/10] is directly connected, eth0, 1d20h33m 10.3.2.0/30 is directly connected, eth0 10.3.3.1/32 [110/20] via 10.3.2.1, eth0, 1d20h22m 10.3.3.2/32 is directly connected, lo 127.0.0.0/8 is directly connected, lo 192.168.21.0/24 [110/20] via 10.3.2.1, eth0, 1d20h22m
Production tips?
Make sure you have backups of /etc/quagga, /etc/network/interfaces, and iptables rules Keep templates Monitor the router as if it was a server: disk space, memory, load, etc Have redundant routers so that you can perform OS updates safely with 0 downtime Be consistent stick to your templates Run lean & mean K.I.S.S. Be secure But make sure you can somehow access the box even if routing is broken Stick to a single protocol if possible
Want to experiment?
Setting up 30 machines to simulate a 30 router network is tough Virtualize using Xen, VMWare, OpenVZ etc Linksys WRT54G with DDWRT/OpenWRT
Documentation
Documentation exists for quagga Wiki.quagga.net has more useful examples But its geared towards quagga itself and not dynamic routing Understanding routing protocols is critical Having experience with configuring RIP/OSPF/BGP on Cisco via CLI helps a lot CLI has built-in usage info using the ? mark like in Cisco IOS Zebra/Quagga mailing list archives Any Cisco OSPF/BGP syntax guides and examples Google
Questions/Discussion