Dynamické směrování

Zbigniew Branny, xbranny@fi.muni.cz


Obsah


Směrovací protokoly

Směrovací protokoly slouží k dynamické změně cesty paketů sítí k dosažení lepších vlastností trasy (rychlejší spojení,  větší propustnost). 
Většinou jsou cesty tam i zpět stejné, ale nemusí to být pravidlem. Z bezpečnostního hlediska je důležitější cesta zpět od serveru.

Statické vs. dynamické směrování.


Distančně - vektorové

jsou založené na obecné myšlence:

když se směrovač X nachází 5 skoků od sítě Y a já sousedím se směrovačem X, tak musím být vzdálen 6 kroků od sítě Y.

Ohlasíte, jak daleko se nacházíte od sítí o nichž víte a když vaší sousedé neznají lepší zbůsob jak se dostat ke každé takové sítě označí vás za nejlepší bránu. Když už znají lepší cestu tak vaše hlášení ignorují. 


RIP (Routing Information Protocol)

Starý protokol definovaný v RFC1058, vyvinutý firmou Xerox.
Implementovaný jako démon routed .  Jednoduchý protokol, využívající počet skoků jako měřítko nákládů.
RIP byl navržen v době kdy jeden počítač stál statísíce dolarů a sítě byly relativně malé, a proto se domnívá že hostitelé vzdáleněší více než 15 skoků jsou nedosažitelní -> je nepoužitelný v LAN sítích s více než 15 směrovači.
Až příliš využívá vysilání a spotřebovává proto velké množství zdrojů, přesto odvádí výsledky, když se sít často mění nebo když topologie vzájemných sítí není známá. Po výpadku linky se ale stabilizuje jen pomalu.

 RIP-2
je nejběžnější verze protokolu RIP. Přidává podporu pro několik vlastností, které v původní verzi chyběly:

RIP verze 2 lze provozovat v kompatibilnim režimu, kde se zachovává většina vlastností verze 2, pro zpětnou komunikaci se starou verzi RIP.


IGRP, EIGRP ((Enhanced) Interior Gateway Routing Protocol)

Jsou proprietární směrovací protokoly, bežící jen na směrovačích firmy Cisco.

Protokol IGRP byl vytvořen, aby řešil některé nedostatky protokolu RIP, ještě než vznikly robustní standardy jako OSPF.

EIGRP rozumí i sitovým maskám 


BGP (Border Gateway Protocol)

Border Gateway Protocol slouží ke směrování mezi autonomními systémy (AS). 

Úkolem BGP je výměna informací mezi AS. Využivá se tzv. Path Vector Algorithm , kde ke každé smerovací informaci v tabulce je zároveň k dispozici nejenom směr, ale i uzly na trase, kterými sa má paket vydat.

BGP pracuje nad vrstvou TCP (port 179). 


Protokoly využívající stav linky

šíří informace v relativně nezpracované podobě. Záznamy vyměňované mezi směrovači mají podobu:

směrovač X sousedí se směrovačem Y, spoj funguje.

Kompletní sada takovýchto záznamů tvoří mapu sítě, ze které může každý směrovač vypočítat svou vlastní tabulku.

Hlavní výhodou těchto protokolů je:

nevýhody:


OSPF (Open Shortest Path First)

je definován v RFC2328. Využívá port 89 nad vrstvou IP. Pro výpočet nekratší cesty využívá Dijkstrův algoritmus. 

Protokol OSPF je první široce používaný protokol využívající stav linky a stále je nejoblíbenější. Jeho velké rozšíření bylo z větší části vyvolano podporou v programu gated , což je víceprotokolový daemon. 

Směrovací informace jsou zasílány v paketech o stavu spojů (LSP - Link State Packet), v nichž se popisuje stav rozhraní směrovače a jeho sousedů, tj. stav připojených sítí. Souhrn všech LSP tvoří topologickou databázi protokolu.

OSPF je dostatečně silný protokol, který dobře funguje pro velké, komplikované topologie. Oproti protokolu RIP má několik schopnosti a výhod, např. schopnost: 


IS-IS (Intermediate system to intermediate system)

je odpovědí organizace ISO na protokol OSPF. V současnosti se používá jen zřídka. 



Implementace v Unixu

Směrovací daemony sbírají informace se zdrojů:

Tyto informace spojují pro výpočet optimální sady směru a ty se vloží do systémové tabulky. Podmínky se časem mění a směrovací daemony se proto musejí vzájemně kontrolovat a ujistit se tak, že jejich jsou platné.


routed

je standartním směrovacím daemonem a stále se dodává s většinou verzí Unixu. Linuxová verze umí jen protokol RIP (ne verzi 2). 

Program routed lze provozovat v režimech:

routed -s (server)
routed -q (tichý režim)
routed -t (ladění)

První dva režimy naslouchají vysílaným paketům, ale jen servery distribuují své vlastní informace.

Pokud spustíte program bez volet, měl by běžet v tichém režimu s jedním rozhraním a v režimu server, má-li více rozhraní. 

Podporuje soubor /etc/gateways , který poskytuje statické směrovací informace o bránách, které budou předem poslány.


gated

je obecný směrovací systém, poporuje RIP (obě verze), OSPF, IS-IS, BGP. Z počátku distribuován jako open source, od roku 1992 je už bohužel zatížený licenční smlouvou od GateD Consortium. Gated: 

Obvykle se spouští bez parametrů. Načítá konfiguraci zpravidla z /etc/gated.conf . Jakmile daemon běží, lze jej ovládat pomocí příkazu gdc:

gdc start | stop | restart | reconfig
gdc interface (znovu zkontroluje seznam aktivních rozhraní jádra)
gdc toggletrace (logování)

zebra

je software distribuovaný pod GNU GPL licencí. V současnosti podporuje protokoly RIPv1,v2, OSPF, IGMP, BGP. Dokáže pracovat s IPv6. Poskytuje vysokou úroveň modularity. 

Konfigurační soubory: /etc/zebra.conf a /etc/ospfd.conf pro konfiguraci OSPF.


bird

je dynamický směrovač, který byl vyvinut na matematicko-fyzikální fakultě Karlovy Univerzity jako studentský projekt. Může být volně distribuován podle pravidel GNU GPL. Byl navržený aby pracoval na UNIXových systémech. Podporuje protokoly BGPv1, RIPv2, OSPF, BGP. Pracuje s IPv4 i IPv6.



Konfigurace (gated)  

Příklad souboru /etc/gated.conf
 Sekce 1: rip yes {
bradcast;
defaultmetric 10;
interface 192.225.40.253 noripout;
interface 192.225.55.253 ripout;
};

Sekce 2: ospf yes {
area 0.0.0.2 {
authtype none;
networks {
192.255.55.0 mask 255.255.255.0;
};
interface 192.255.55.253 cost 1 {
priority 2;
};
};
backbone {
interface 192.255.40.253 {
priority 2;
};
};
};

Sekce 3: static {
default gateway 192.255.10.254 preference 140 retain;
};

Sekce 4: export proto rip {
proto ospf {
ALL metric 1;
};
proto direct {
ALL metric 1;
};
proto static {
ALL metric 1;
};
};

Sekce 5: export proto ospf {
proto direct {
ALL metric 1;
};
};



gated pro OSPF

V souboru /etc/gated.conf nastaveni příkazu ospf:

ospf yes | no | on | off {
defaults {
router-prio;
};
traceoptions sledovací_přepínače;
backbone | (area oblast) {
networks {
síť exact | refines restrict;
síť mask maska exact | refines restrict;
síť masklen délka exact | refines restrict;
host hostitel exact | refines restrict;
};
stubhosts {
hostitel cost náklady;
};
interface seznam_rozhraní cost náklady {
enable | disable;
priority priorita;
};
};
};

Statické směry

příkaz static:

static {
cíl
gateway seznam_bran interface seznam_rozhraní preference přednost retain reject blackhole noinstall;
};

Příklady cíle:

host hostitel;
default;
síť
;
síť maska maska;
síť masklen délka;