OSPF - 1

Seznámení s dynamickým routingem, protokolem OSPF a programem OpenOSPFd.

17.12.2007 00:00 | Radim Kolář | přečteno 10729×

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.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1520