Proč jsou dynamické routovací protokoly potřeba
Při spojování dvou sítí, obvykle vystačíme se statickým routingem, jeho nastavení je jednoduché a pokud máme obě sítě spojené jen jedním routerem, lze jeho použití doporučit. Přidáním další sítě se už situace
začne komplikovat a pro nastavení správného statického routingu si už musíme topologii naší jednoduché sítě představit. Připojení čtvrté, páté sítě je obvykle zlom, kdy je výhodné přejít ze statického routingu na dynamický.
Dynamický routing není všeobecně moc oblíben, mnoho správců sítí ho považuje za zbytečný luxus nebo za příliš komplikovanou technologii, kterou se odmítají učit. Opak je pravdou, v následujícím článku si názorně předvedeme, že rozchodit dynamický routing je velice jednoduché a zvládne to i naprostý síťař začátečník.
Dynamický přináší mnoho výhod. Jednak odstraňuje nutnost měnit routovací tabulky na routerech při změně
topologie sítě, síť stačí jen předrátovat a není si potřeba dělat starosti s alokací nových IP adres tak aby odpovídaly fyzickému rozložení sítě a snadněji se pak navrhoval routing. V neposlední řadě
dynamický routing výrazně snižuje možnost chybné konfigurace způsobené lidským faktorem. Na druhou
stranu i malé chyby v routovacím software jsou kritické a ohrožují chod sítě.
Dynamické routovací protokoly
Dynamických routovacích protokolů které bychom mohli reálně použít zase tak moc není. Jedná se v podstatě o
velkou trojku RIPv2, OSPF a BGP. Složitost konfigurace (ale také spolehlivost) vzrůstá v této trojce směrem zleva doprava. RIP se dnes již prakticky u nových instalací nepoužívá s vyjímkou velmi malých, typicky domácích, sítí nebo sítí
s omezeným rozpočtem, protože RIP dnes umí i ty nejlevnější routery. OSPF je dobrý routovací protokol
pro začátek experimentů s dynamickým routingem - střední třída routerů a dokonce i OS Windows ho umějí a konfiguruje se snadněji než BGP.
BGP
není jako intranetwork routing protokol sice moc vhodné, ale nic široce dostupného lepšího a spolehlivějšího než OSPF v současnosti není. Je tu sice protokol IS-IS, který je ve většině případů spolehlivější než OSPF, ale ten
podporují jen Cisca a Junipery, použitelná open source implementace prozatím není, existuje experimentální implementace pro Zebru. Proto doporučuji
začít s OSPF a až se sít rozroste a začnou nedostatky OSPF více vadit, tak přejít na BGP úplně nebo na kombinaci OSPF/BGP.
OSPF
Jako dynamický routovací protokol budeme používat již v nadpisu uvedený OSPF. Jedná se o často nasazovaný protokol, který umí všechny routery s vyjímkou low-end třídy, která umí jen RIP. OSPF má
oproti RIPu dvě zásadní výhody: jednak je vhodný i pro velké sítě, podporuje různě veliké netmasky, umožňuje zohlednit rychlost (případně kvalitu linky), jako link state protokol rychleji mění topologii sítě při výpadku linky a jeho algoritmus zaručuje nalezení nejlepšího řešení.
Routovací software
V oblasti softwaru který umí OSPF moc velký výběr není. Prakticky to umí jen tři programy: OpenOSPFd z OpenBSD, XORP a Quagga.
Jako software budeme pro začátek používat OpenOSPFd vytvořený projektem OpenBSD. Velmi snadno se totiž konfiguruje a to začátečníci ocení.
OpenOSPFd
Nejlepším způsobem jak tento program obdržet je instalace OpenBSD. Pokud OpenBSD používat nechceme, tak tento program existuje podobně i jako OpenSSH i pro neBSD systémy. Jeho nepříliš často aktualizovaná homepage je
zde a downloadovat zdrojové kódy můžete
odsud. OpenOSPF najdete
také ve FreeBSD portech.
Konfigurace sítě v OpenBSD 4.2
Jak následně uvidíte, základní rozchození OSPF v OpenBSD je velmi snadná záležitost. Nainstalujeme OpenBSD na počítač, který má minimálně dvě podporované sïťové karty. Síťové karty lze nakonfigurovat
hned při instalaci. Konfigurace síťových karet je uložena v souborech /etc/hostname.jménorozhraní. Jméno rozhraní zjistíme příkazem ifconfig. Soubor hostname má jednoduchý formát např.:
inet 10.0.0.20 255.255.255.0 NONE
inet alias 192.168.2.1 255.255.255.0 NONE
nám nastaví dvě sítě na dané rozhraní. Při konfiguraci routeru se používají statické IP adresy, použití DHCP se silně nedoporučuje (ačkoliv je to u OSPF narozdíl od BGP možné). Potom je třeba povolit forwardování packetů mezi rozhranímy. To se dělá editací /etc/sysctl.conf kde odkomentujeme
na začátku souboru volby net.inet.ip.forwarding a net.inet.ip.multipath. Pro multicast routing potřebujete
speciální routovací software (v současnosti to umí jen XORP) a tak ho nechte zakomentovaný. Posledním krokem je smazání default routingu t.j. souboru /etc/mygate a reboot. V případě nejasností s konfigurací
sítě konzultujte man afterboot.
OpenBSD je díky své malé velikosti velmi vhodné, pro provozování z CF. Verzi OpenBSD 4.2 se mi pro použití na routeru podařilo ručně ořezat z původních 174MB na hezkých 19 MB (dekomprimovaná velikost hd image).
Toto ruční ořezání ale vyžaduje značné úsilí.
Nemíchtejte statický a dynamický routing
Předtím než se vrhneme na konfiguraci protokolu OSPF bych rád upozornil na jednu důležitou věc. Pokud je
to jen trochu možné, nemíchejte statický a dynamický routing. Statické routovací záznamy mají vyšší prioritu
než routovací záznamy které se vytvoří na základě informací získaných z routovacích protokolů a tak mají
administrátoři sítě často snahu je používat pro ruční úpravu routingu místo úpravy konfigurace dynamického routovacího daemona (kde se dá nastavit preference linky například pomocí nastavení metric, local weight, router preference, MED ). Hledání optimálního routingu v rozlehlejších sítích je netriviální záležitost a proto je lepší tento úkol přenechat počítačům, chybně nastavený statický routing způsobí nefunkčnost části sítě a tato chyba se navíc poměrně obtížně hledá.
Pokud i přes varování použijeme statický routing, je nutné jeho exportování pomocí routovacího
protokolu. Ostatní routovací daemoni se tak o něm dozví a tímpádem se vám nevytvoří routovací smyčka.
Při používání dynamického routingu se také vyhněte ručnímu nastavování default route v síti. Pokud potřebujete nastavit
v síti default routing (většinou se používá pro připojení do internetu přes nat) nechte ho nastavit přes dynamický routovací protokol. Na routeru (případně routerech), který je border routerem mezi sítí a internetem nastavte default route do internetu a vyexportujte jej pomocí OSPF. Jednotlivé routery si pak nastaví default routing na nejbližší border router sami.
Základní konfigurace OSPFd
Základní konfigurace OpenOSPFd je narozdíl od ostatních programů velmi jednoduchá,
stačí jen vyjmenovat rozhraní na kterých chceme provozovat protokol OSPF:
cat /etc/ospfd.conf
area 0.0.0.1 {
interface de0 {
}
interface de1 {
}
}
Pokud provozujeme více sítí na jednom rozhraní je u ospfd nutné zadat IP adresy aliasů do konfigurace.
Rozhraní s konfigurací:
inet 10.0.0.20 255.255.255.0 NONE
inet alias 192.168.2.1 255.255.255.0 NONE
se do ospfd.conf zadá jako:
interface de0 {
}
interface de0:192.168.2.1 {
}
Pak je potřeba povolit spouštění ospfd při bootu. Do /etc/rc.conf.local přidejte řádek ospfd_flags= rebootnout OS (nebo spustit ospfd ručně) a dynamický routing je hotov. Jak vidíte, je to vlastně celé jednoduché.
Tento postup pak opakujte i na ostatních routerech. Routery se navzájem najdou
a začnou si vyměňovat routovací informace. K ovládání programu ospfd slouží program ospfctl kterým si můžete nechat
vypsat informace o ostatních routerech ospfctl show neighbor nebo routovací tabulku ospfctl show rib.