Quagga kasutamine Debianiga
Sisukord
Sissejuhatus
Quagga http://www.quagga.net/ on mitmetel levinud operatsioonisüsteemidel töötav modulaarne ruutingutarkvara, mis toetab selliste ruutinguprotokollide kasutamist
- OSPF
- BGP
- RIP
- IS-IS
Abstraktsel tasemel võib Quagga arhitektuuri kujutada selliselt
+----+ +----+ +-----+ +-----+ |bgpd| |ripd| |ospfd| |zebra| +----+ +----+ +-----+ +-----+ | +---------------------------|--+ | v | | UNIX Kernel routing table | | | +------------------------------+
- alati töötab protsess zebra, mille ülesandeks on teistelt deemonitelt saadud andmete põhjal muuta kerneli ruutingutabelit
- vastavalt sellele, kuidas on konkreetne ruuter seadistatud töötab seal üks või enam ruutingudeemonit (bgpd, ripd, ospfd)
Eesmärk
Olgu eesmärgiks kahe lokatsiooni vahelise ühenduse pidamisega üle kahe lingi, kusjuures kui üks link rikneb, arvutavad ruuterid ruutingutabelid ümber ja andmevahetus jätkub
internet | | ___ | | | ___ | |------ 192.168.15.253 192.168.15.254 | ------| | |___| | ____ eth1 eth1 ____ | | |___| | | |------ 1 Gbit/s -----| |----' | 192.168.17.17 --------| | | |--------- 192.168.14.14 ___ | eth0 | | | | eth0 | ___ | |------ |____|------ 10 Mbit/s -----|____| ------| | |___| | eth2 eth2 | |___| | 192.168.16.253 192.168.16.254 | | | Harukontor Peakontor
Sarnast tulemuse saab üldiselt saavutada kahel moel
- redundantsus moodustatakse etherneti kihis - võrguseadmete nn bonding; tavaliselt on sellisel juhtumil füüsiline otspunktide kaugus piiratud nö kaabli pikkusega, kuni mõned sajad meetrid
- redundantsus moodustatakse ip kihis - kasutatakse ruutinguprotokolle, nagu nt antud juhtumil ospf; iseenesest ei ole otspunktide vahekaugus praktiliselt piiratud
Tarkvara paigaldamine
Quagga tarkvara paigaldamiseks tuleb öelda
# apt-get install quagga
Kataloogis /etc/quagga peavad asuma seadistusfailid.
Ruuterite seadistamine
Enne Quagga tarkvara seadistamist tuleb ruuterite võrguseadmed seadistada. Seejärel moodustada kummaski arvutis sellise sisuga /etc/quagga/ospfd.conf seadistusfailid.
Peakontor
/etc/quagga/ospfd.conf sisu võiks olla nt selline
hostname ospfd password zebra log stdout ! interface eth1 ! interface eth2 ! router ospf ospf router-id 192.168.14.14 redistribute connected network 192.168.15.0/24 area 0.0.0.0 network 192.168.16.0/24 area 0.0.0.0 ! line vty
Harukontor
/etc/quagga/ospfd.conf sisu võiks olla nt selline
hostname ospfd password zebra log stdout ! interface eth1 ! interface eth2 ! router ospf ospf router-id 192.168.17.17 redistribute connected network 192.168.15.0/24 area 0.0.0.0 network 192.168.16.0/24 area 0.0.0.0 ! line vty
Quagga käivitamine
Quagga käivitamiseks tuleb öelda
# /etc/init.d/quagga start Loading capability module if not yet done. Starting Quagga daemons (prio:10): zebra ospfd2009/06/09 20:28:44 OSPF: ASBR[Status:1]: Update
Tulemusena tekivad kaks protsessi
# ps aux | grep quagga quagga 3396 0.0 1.0 22840 1364 ? Ss 23:28 0:00 /usr/lib/quagga/zebra --daemon -A 127.0.0.1 quagga 3400 0.0 1.4 25520 1876 ? Ss 23:28 0:00 /usr/lib/quagga/ospfd --daemon -A 127.0.0.1
Ruuteri haldusliidese kasutamine
Quagga ruuterist endast saab ruuterit hallata vtysh programmiga, liides on sarnane Cisco IOS'ile.
# export VTYSH_PAGER=cat # vtysh Hello, this is Quagga (version 0.99.10). Copyright 1996-2005 Kunihiro Ishiguro, et al. quagga-router#
Antud OSPF kasutusjuhtumil pakub huvi kontrollida, milliseks on ruutingud kujunenud, kirjutades 'show ip ospf ?' saab näha võimalikke asjakohaseid käske
quagga-router# show ip ospf ? <cr> border-routers for this area database Database summary interface Interface information neighbor Neighbor list route OSPF routing table
Nt küsides naabrite nimekirja
quagga-router# show ip ospf nei Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 10.0.14.1 1 Full/Backup 33.406s 192.168.15.254 eth1:192.168.15.1 0 0 0 10.0.14.1 1 Full/Backup 33.406s 192.168.16.254 eth2:192.168.16.1 0 0 0
või küsides ruutinguid
quagga-router# show ip ospf route ============ OSPF network routing table ============ N 192.168.15.0/24 [10] area: 0.0.0.0 directly attached to eth1 N 192.168.16.0/24 [10] area: 0.0.0.0 directly attached to eth2 ============ OSPF router routing table ============= R 10.0.14.1 [10] area: 0.0.0.0, ASBR via 192.168.15.254, eth1 via 192.168.16.254, eth2 ============ OSPF external routing table =========== N E2 192.168.10.0/24 [10/20] tag: 0 via 192.168.15.254, eth1 via 192.168.16.254, eth2 N E2 192.168.14.0/24 [10/20] tag: 0 via 192.168.15.254, eth1 via 192.168.16.254, eth2
Operatsioonisüsteemi juurkasutajana ruutingutabelit küsides saab veenduda, et Quagga tõepoolest modifitseerib ruutingutabelit
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.17.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.14.0 192.168.15.254 255.255.255.0 UG 20 0 0 eth1 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 0.0.0.0 192.168.10.254 0.0.0.0 UG 0 0 0 eth3
Tulemuse kontroll
Püstitatud eesmärgi täitmise kontrollimiseks sobib peab saama katkestada ühe kanali ja ühendus peab jääma tööle; ning peale katkestatud kanali tagasiühendamist (ning andes minutike aega ruutingute stabiliseerumiseks) katkestades teise kanali peab ühendus jällegi jääma otspunktide vahel käima. Ühe kanali katkestuse korral võiks paista selline naabrus
quagga-router# show ip ospf nei Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 10.0.14.1 1 Full/Backup 32.725s 192.168.16.254 eth2:192.168.16.1 0 0 0