cs:quagga

Quagga

Quagga je softwarový směrovač, nástupce dřívějšího projektu Zebra. Je vydán pod otevřenou licencí GPL a distribuován v podobě zdrojových kódů a binárních balíčků pro vybrané systémy unixového typu. Podporuje IPv4 i IPv6 a hovoří směrovacími protokoly RIP, OSPF a BGP.

Program se skládá z několika démonů. Hlavní roli hraje démon zebra (dědictví po předchůdkyni), který shromažďuje směrovací informace, spolupracuje s jádrem systému a upravuje jeho směrovací tabulky. Ostatní démoni (ripd, ripngd, ospfd, bgpd) slouží jako rozhraní centrálního démona pro konkrétní směrovací protokoly. Nevýhodou tohoto distribuovaného uspořádání je poněkud chaotická konfigurace - každý démon má vlastní konfigurační soubor a vlastní rozhraní pro interaktivní komunikaci.

Problém roztříštěného ovládání řeší program vtysh (VTY shell), který řídí celou Quaggu. Spustit jej smí jen superuživatel root a může pak využívat příkazy všech démonů. vtysh může konfiguraci ukládat buď do jednoho společného konfiguračního souboru Quagga.conf, nebo do samostatných souborů pro jednotlivé démony (jejich jména jsou vždy démon.conf). Implicitiní a doporučovaný je režim se samostatnými konfiguračními soubory.

Quagga svým konfiguračním jazykem napodobuje směrovače Cisco Systems, shoda ale zdaleka není dokonalá. Zdaleka neobsahuje vše a nereaguje na změny, které postupně Cisco zavádí. Nejpoužívanější interaktivní příkazy jsou

show interface zobrazí stav rozhraní
show ip route aktuální směrovací tabulka IPv4
show ipv6 route aktuální směrovací tabulka IPv6
enable přechod do privilegovaného režimu
disable návrat do pozorovacího režimu
config term přechod do konfiguračního režimu
show running zobrazení aktuální konfigurace
write memory uložení aktuální konfigurace do souboru
reload restart démona
exit opuštění konf. režimu či celého démona

Další text obsahuje příkazy jednotlivých démonů. Lze je používat v jejich konfiguračních souborech, při interaktivní komunikaci s démonem nebo v programu vtysh.

zebra

Centrální démon slouží především k práci s jednotlivými rozhraními a ke konfiguraci statických cest.

Logika práce s rozhraními odpovídá směrovačům Cisco. Chcete-li nastavovat vlastnosti některého z nich, musíte vstoupit do konfiguračního režimu a následně se přepnout na příslušné rozhraní příkazem

interface //jméno//

Následně pak můžete nastavovat jeho parametry, jako například IPv6 adresu

ipv6 address //adresa/délka_prefixu//

Provedená změna se okamžitě promítá do operačního systému, jak si můžete ověřit příkazem ifconfig. Existující adresu lze odstranit, když jejímu konfiguračnímu příkazu předřadíte no. Tento princip je obecný, můžete negovat jakýkoli příkaz.

Pro řízení ohlášení směrovače slouží skupina příkazů ipv6 nd. Implicitně je ohlašování směrovače vypnuto, musíte je proto zapnout

no ipv6 nd suppress-ra

Lze nastavovat celou řadu parametrů, nejdůležitější jsou samozřejmě ohlašované adresy

ipv6 nd prefix-advertisement //prefix/délka//

Quagga sama o sobě nedokáže vytvářet nová rozhraní (např. tunely). Musíte je založit v operačním systému a pak už je můžete normálně využívat. Jejich identifikátory odpovídají identifikátorům v operačním systému.

Jako příklad uvedeme konfiguraci počítače se dvěma Ethernety do lokální sítě a tunelem sit0 připojujícím zdejší síť k IPv6 Internetu. Na rozhraní eth0 se používá bezstavová automatická konfigurace doplněná bezstavovým DHCPv6, na rozhraní eth1 se konfiguruje jen protokolem DHCPv6 (bezstavová konfigurace je zakázána). Do tunelu se neposílá ohlášení směrovače. Konfigurace by vypadala například následovně:

interface lo
  ipv6 nd suppress-ra

interface eth0
  description Hlavni segment
  ipv6 address 2001:db8:1:1::aaaa/64
  no ipv6 nd suppress-ra
  ipv6 nd other-config-flag
  ipv6 nd prefix-advertisement 2001:db8:1:1::/64

interface eth0
  description Uctarna
  ipv6 address 2001:db8:1:2::bbbb/64
  no ipv6 nd suppress-ra
  ipv6 nd managed-config-flag
  ipv6 nd prefix-advertisement 2001:db8:1:2::/64 no-autoconfig

interface sit0
  description Externi pripojeni
  ipv6 address 2001:a:b:c::2/64
  ipv6 nd suppress-ra

Statické cesty se zadávají příkazem

ipv6 route //prefix/délka// //kudy//

Na konec příkazu lze připojit informaci o vzdálenosti či klíčová slova blackhole (datagramy zahodit) nebo reject (datagramy zahodit a poslat odesilateli ICMPv6 zprávu.

ripngd

Konfigurace RIPng je velmi jednoduchá. Zahájíte ji příkazem

router ripng

Hlavní složkou konfigurace démona je výčet rozhraní, na nichž má běžet. Slouží k tomu příkazy

network //rozhraní//

Místo rozhraní můžete uvést i síť v obvyklém tvaru prefix/délka. Několika dalšími příkazy můžete ovlivňovat obsah směrovacích informací šířených RIPem.

redistribute bgp

do nich přidává cesty, které se dozvěděl z BGP. Podobně lze zařadit do směrování statické cesty (redistribute static) a přímo připojené sítě (redistribute connected). Pomocí

aggregate-address //prefix/délka//

lze agregovat menší sítě do jednoho společného prefixu. A konečně

default-information originate

zařadí do odesílaných informací i implicitní cestu. Konfigurace pro výše uvedený směrovač by mohla vypadat následovně:

router ripng
  network eth0
  network eth1
  network sit0
  redistribute static
  redistribute connected
  aggregate-address 2001:db8:1::/48
  default-information originate

ospf6d

Konfigurace démona ospf6d pro OSPFv3 se zahájí příkazem

router ospf6d

Směrovači je třeba přidělit identifikátor. Jedná se o 32bitovou hodnotu, zapisovanou ve stejném tvaru jako IPv4 adresa. Pokud směrovač má nějakou IPv4 adresu, je vhodné ji použít jako identifikátor:

router-id //identifikátor//

Následně je třeba zapnout OSPFv3 pro jednotlivá rozhraní a zařadit je do oblastí. To zajistí sada příkazů

interface //název_rozhraní// area //identifikátor_oblasti//

Pro každou oblast můžete definovat prefix obalující všechny její sítě. Místo nich pak bude posílat jen tento společný prefix. Postará se o to příkaz

area //identifikátor_oblasti// range //prefix/délka//

Opět použijeme směrovač z výše uvedených příkladů. Pro OSPF budou oba Ethernety v oblasti 0.0.0.100 a tunal v páteřní oblasti 0.0.0.0:

router ospf6d
  router-id 11.22.33.44
  interface eth0 area 0.0.0.100
  interface eth1 area 0.0.0.100
  interface sit0 area 0.0.0.0
  area 0.0.0.100 range 2001:db8:1::/48
  redistribute static rip connected

Další informace

Poslední úprava:: 24.09.2019 13:06