Open Shortest Path First (OSPF) jeinterní směrovací protokol IPtypu „link state“. Byl vyvinut v rámciInternet Engineering Task Force(IETF) od roku 1987. Aktuální verze OSPFv2 je popsána vRFC 2328 v roce 1997. Verze 3 je definována od roku 2008 vRFC 5340 (původně vRFC 2740 v roce 1999) a umožňuje použití OSPF v sítiIPv6.
Pracovní skupina OSPF byla vytvořena v rámci IETF v roce 1987, aby nahradila RIP . Je inspirován protokolem ARPANET vyvinutým BBN . Verze 1 byla publikována v RFC 1131 v roce 1990 (ale nikdy nebyla implementována). Verze 2 byla v roce 1991 popsána jako RFC 1247. V roce 1992 doporučila skupina Internet Engineering Steering Group (IESG) OSPF jako IGP pro internet v RFC 1371.
V OSPF každý směrovač navazuje vztahy sousedství se svými bezprostředními sousedy zasíláním ahoj zpráv v pravidelných intervalech. Každý směrovač poté komunikuje seznam sítí, ke kterým je připojen, prostřednictvím zpráv LSA ( Link-state Advertisements ) šířených krok za krokem do všech směrovačů v síti. Sada LSA tvoří databázi Link-State Database (LSDB) pro každou oblast, která je identická pro všechny zúčastněné směrovače v této oblasti. Každý směrovač pak použije Dijkstrova algoritmu , Shortest Path First (SPF) určit nejrychlejší cestu ke každému ze známých sítí v LSDB.
Správné fungování OSPF proto vyžaduje úplnou konzistenci výpočtu SPF, takže například není možné filtrovat trasy nebo je shrnout v rámci oblasti.
V případě změny topologie se nové LSA šíří krok za krokem a na každém routeru se znovu provede algoritmus SPF.
Aby se zabránilo šíření celé databáze odkazů a aby se omezil negativní dopad mávání nebo mávání (rychlé střídání dostupnosti odkazu), jsou všechny směrovače rozděleny do souvisejících skupin zvaných oblasti. , Na jejichž okraji lze shrnout být vyroben. Každá oblast se vyznačuje kladným nebo nulovým celým číslem pohybujícím se od 0 do 4 294 967 295, toto číslo je někdy vyjádřeno desítkovým zápisem s tečkami, stejně jako adresa IP . Každá podsíť patří do jedné oblasti.
Vždy existuje oblast páteře , oblast 0 nebo oblast 0.0.0.0, ke které jsou připojeny všechny ostatní oblasti.
Oblasti jsou logicky souvislé. Pokud směrovače, které tvoří oblast, nejsou fyzicky souvislé, pak jsou nakonfigurovány virtuální odkazy mezi směrovači, které mají společnou pracovní oblast. Tyto virtuální odkazy patří do oblasti 0. Protokol je považuje za nečíslované odkazy bod-bod.
Každý router je identifikován pomocí jedinečného ID routeru v síti. Router-id je 32bitové kladné číslo, obvykle reprezentované jako IP adresa. Pokud to není výslovně nakonfigurováno, použije se nejvyšší místní adresa IP a pokud existují rozhraní zpětné smyčky , použije se jako ID routeru jejich nejvyšší IP adresa. Určení router-id probíhá pouze při inicializaci procesu OSPF a přetrvává i poté, bez ohledu na rekonfiguraci nebo změnu stavu rozhraní.
Existují následující typy směrovačů:
Interní router router, jehož rozhraní jsou ve stejné oblasti; Area Border Router (ABR) router, který má rozhraní v různých oblastech; Autonomous System Boundary Router (ASBR) router, který vkládá trasy z jiných směrovacích protokolů nebo statické trasy do OSPF; Páteřní router směrovač, jehož alespoň jedno rozhraní patří do oblasti 0. Všechny ABR jsou páteřní směrovače.OSPF využívá protokol IP číslo 89. Hodnota TTL paketů je nastavena na 1, aby se zabránilo jejich šíření mimo podsíť, a pole ToS je nastaveno na 0. OSPF používá adresy vícesměrového vysílání ve všesměrových a bodových sítích.
Pakety OSPF mají velikost až 65535 bajtů a v případě potřeby využívají fragmentaci IP. Doporučuje se však vzít v úvahu MTU odkazu, aby se zabránilo fragmentaci distribucí LSA ve zprávách LS Update menších než MTU, pokud je to možné.
LSA mohou mít také až 64 KB, jsou však obecně malé, s výjimkou typu 1 ( router LSA ), který může být velký pro směrovače s mnoha rozhraními OSPF.
Existuje 5 typů paketů OSPF:
Dobrý den (typ 1) objevování sousedů a udržování sousedství; Popis databáze (DBD, typ 2) popis LSA; Žádost o stav odkazu (typ 3) žádost o LSA; Aktualizace stavu spojení (LSU, typ 4) aktualizace LSA; Potvrzení stavu spojení (typ 5) potvrzení LSA.Typ 1 (ahoj) se používá pro vytváření a udržování adjacencies, ostatní typy se používají pro synchronizaci LSDB.
Pakety LSA jsou podtypem paketu LSU, jsou definovány následující typy:
Typ 1 (router) vysílá router, popisuje stav jeho rozhraní; Typ 2 (síť) vysílán DR (určený router), popisuje routery připojené k podsíti; Typ 3 (souhrn) shrnutí trasy podle ABR; Typ 4 (souhrnné shrnutí) cesta k ASBR, generovaná ABR; Typ 5 (externí) vysílaný ASBR, popisuje externí trasu; Typ 6 (členství ve skupině vícesměrového vysílání) používaný MOSPF; Typ 7 (externí NSSA) externí trasa generovaná ASBR NSSA.Typy 1 a 2 představují vnitřní trasy oblasti (uvnitř oblasti), typy 3 a 4 jsou meziplošné trasy (IA). Páteřní směrovače jsou odpovědné za vysílání meziplošních směrovacích informací.
Vnější trasy se dělí na:
Typ E1 náklady na přístup k ASBR se přidají k počáteční metrice externí trasy; Typ E2 cena metriky je pevná a nezávisí na ceně ASBR.LSA jsou identifikovány původním routerem, typem LSA a ID LSA. Jejich význam se liší v závislosti na typu LSA:
Typ LSA | ID LSA |
---|---|
1 | ID routeru vysílače |
2 | IP adresa rozhraní DR |
3 | Cílová síťová adresa |
4 | ID routeru ASBR |
5 | Adresa externí sítě |
LSA typu 1 (router) se dělí na čtyři podtypy, které závisí na popsaném typu sítě.
+ Typ odkazu 1Podtyp | Popis | ID odkazu | Propojit data |
---|---|---|---|
1 | bod-bod | sousedova router-id | IP adresa rozhraní nebo MIB-II ifIndex, pokud rozhraní není očíslováno |
2 | odkaz na tranzitní síť | Adresa rozhraní DR | IP adresa rozhraní |
3 | odkaz na stub síť | síťová adresa | maska sítě |
4 | virtuální odkaz | sousedova router-id | IP adresa rozhraní |
Všechny LSA přicházejí s kontrolním součtem, který zajišťuje integritu dat. To se kontroluje po přijetí LSA, zaznamenává se v LSDB a předává se sousedům beze změn. Poté je v pravidelných intervalech znovu zkontrolováno, aby bylo zajištěno, že obsah LSDB nebyl poškozen.
Vedení LSALSA se vyznačují svým domácím routerem, typem a LSA ID. Pořadová čísla (32bitové celé číslo se znaménkem) se s každou změnou zvyšují o 1, přičemž první pořadové číslo je 0x80000001 (InitialSequenceNumber, -2 31 +1) až 0x7fffffff (2 31 ). Každá verze LSA nahrazuje verze s nižším pořadovým číslem. Pokud nedojde ke změně, LSA se obnovují každých 30 minut (LSRefreshTime). LSA, který dosáhne stáří jedné hodiny (MaxAge), je z LSDB vyloučen. Původní směrovač LSA může určit, že LSA není aktualizován nastavením bitu DoNotAge na 1 v možnostech.
LSA jsou vysílány spolehlivě. Když směrovač potřebuje aktualizovat LSA po změně topologie, zvýší své pořadové číslo a vysílá jej svým sousedním sousedům jako paket aktualizace stavu spojení (který může obsahovat více než jeden LSA). LSA jsou poté výslovně potvrzeny, v opačném případě jsou znovu vysílány. Směrovače, které přijímají LSA, porovnají jeho pořadové číslo s číslem, které již mají, a pokud je vyšší, zaregistrují LSA v LSDB a předají je také svému sousedovi. Pole LS Age se zvyšuje na každém přenosu, aby se zabránilo nekonečným smyčkám po chybě softwaru. Pokud je přijat LSA s pořadovým číslem shodným s tím, které již existuje v LSDB, ale s věkovým rozdílem menším než 15 minut (MaxAgeDiff), bude LSA ignorován.
Směrovač na počátku LSA, který chce odstranit z LSDB, jej vysílá s LS Age = MaxAge, což způsobí jeho eliminaci.
Směrovače upustí od aktualizace LSA častěji než každých 5 sekund (MinLSInterval). Směrovače odmítají aktualizace z LSA, které již byly aktualizovány před méně než sekundou.
Rozlišujeme následující typy oblastí:
oblast 0 oblast páteře; běžná oblast libovolná oblast, přičemž páteřní oblast je konkrétní iterací; oblast pahýlu oblast, do které se nešíří LSA typu 5 (vnější trasy); úplně útržkovitá oblast není tam šířen žádný LSA typu 3, 4, 5 nebo 7, s výjimkou výchozí trasy; ne tak drsná oblast (NSSA) typ oblasti pahýlů, který umožňuje vstřikování vnějších cest prostřednictvím LSA typu 7. Typ 7 bude převeden na typ 5, pokud je přenášen mimo oblast; zcela NSSA NSSA bez LSA 3 a 4 kromě jedné výchozí trasy.Není možné vytvářet virtuální odkazy prostřednictvím oblasti se zakázaným inzerováním, ani interní ASBR s oblastí se zakázaným inzerováním.
Point-to-point | Přenos | Point-to-multipoint (nevysíláno) |
Point-to-multipoint (všesměrové vysílání) |
NBMA | |
---|---|---|---|---|---|
DR / BDR | Ne | Ano | Ne | Ne | Ano |
ahoj / mrtvý | 10s / 40s | 10s / 40s | 30 s / 120 s | 30 s / 120 s | 30 s / 120 s |
objev sousedů | Ano | Ano | Ne | Ano | Ne |
RFC 2328 | Ano | Ano | Ano | Cisco | Ano |
V podsíti se směrovače, které se navzájem objevují díky protokolu hello, nazývají sousedy . V sítích point-to-multipoint a NBMA jsou sousedé konfigurováni explicitně. Dokud jsou parametry sousedů kompatibilní, pokusí se vytvořit relaci sousedství. Před výměnou informací o směrování je nutné navázat sousedství.
Sousedství může nabývat následujících stavů:
Dolů o tomto segmentu nebyly obdrženy žádné informace; Pokus v sítích NBMA označuje, že od nakonfigurovaného souseda nebyly přijaty žádné nedávné informace; Init byl přijat balíček ahoj; 2cestný byl přijat paket ahoj a ten obsahuje své vlastní ID routeru, což ukazuje, že existuje obousměrná komunikace. Volba DR a BDR probíhá v tomto stavu. Rozhodnutí o vytvoření sousedství je přijato na konci tohoto stavu. ExStart směrovače se pokusí stanovit počáteční pořadová čísla, která budou použita v paketech pro výměnu informací. Pro tuto výměnu se jeden ze směrovačů stane primárním směrovačem a druhý sekundárním. Výměna směrovače odesílají své LSDB pomocí paketů popisu databáze (DBD); načítání výměna LSDB je dokončena, směrovače požadují LSA, které potřebují; Úplný LSDB je synchronizován a je navázáno sousedství.Ahoj zprávy jsou zasílány v pravidelných intervalech na rozhraní, kde je aktivní OSPF. Na linkách typu point-to-point a broadcastových linkách jsou vysílány na multicastové adrese 224.0.0.5 (AllSPFRouters), na linkách bez broadcastu jsou zasílány na sousední unicastovou IP adresu.
Následující informace najdete zejména v balíčku hello:
Číslo oblasti je zahrnuto v záhlaví paketu OSPF. Sousednost se nevytvoří, pokud určité parametry nejsou kompatibilní (číslo oblasti, typ oblasti (pahýl nebo ne), ahoj / mrtvé období, autentizace).
Ke sdílení informací o směrování je u směrovačů OSPF vyžadován vztah sousedství. Ve vysílací síti ( Ethernet ), pokud by každý směrovač navázal vzájemnou sousedství s ostatními směrovači a vyměňoval si informace o stavu spojení, zátěž by byla nadměrná, počet sousedství by byl nebo v . Abychom tento problém překonali, zvolili jsme DR (určený router), který obdrží všechny informace o stavu odkazů a znovu je přenese na ostatní směrovače. Protože se to stává kritickým bodem sítě, je také určen BDR (záložní směrovač). Přilehlé číslo je tedy 2n-1, tj. En . Ostatní směrovače se označují jako DR Other .
OSPF používá ke komunikaci pouze vícesměrové vysílání s následujícími dvěma adresami:
Pouze DR generuje síť LSA (typ 2) odpovídající podsíti. LSID tohoto bude IP adresa DR v podsíti. Toto LSA také uvádí seznam směrovačů připojených k podsíti.
Volba DRU dané podsítě typu broadcast nebo NBMA má každý směrovač OSPF hodnotu nazvanou priorita mezi 0 a 255. Pokud je priorita nakonfigurována na 0, směrovač se neúčastní volby, a proto se nemůže stát DR ani BDR.
Způsobilé jsou další směrovače, které jsou alespoň ve stavu 2-Way.
Volby začínají BDR. Pokud již existuje více směrovačů, které označují jako BDR ve svých paketech hello, ten s nejvyšší prioritou bude zachován jako BDR, a pokud existuje více směrovačů s nejvyšší prioritou, pak ten, jehož ID routeru je nejvyšší je zachována jako BDR. Pokud existuje pouze jeden směrovač, který označuje BDR, tato volba přetrvává. Pokud je seznam kandidátů prázdný, pak je BDR směrovačem bez DR s nejvyšší prioritou a pokud existuje více než jeden, je zachován ten s nejvyšším ID routeru.
Stejným způsobem postupujeme s DR, pokud není kandidát na DR, pak je BDR povýšen na DR a volba BDR je zahájena znovu jako v předchozím odstavci.
Ostatní směrovače sousedí s DR a BDR. V případě poruchy DR se z BDR stává DR a proběhne nová volba BDR.
Podle tohoto postupu, pokud je do sítě přidán směrovač, když již existují DR a BDR, pak DR a BDR přetrvávají, i když je priorita nově příchozího vyšší.
Po navázání sousedství určí směrovače primární a sekundární směrovač i počáteční pořadové číslo. Primární směrovač pošle sekundární pakety Popisu databáze (DBD), které se skládají ze seznamu hlaviček LSA (ale bez skutečných dat LSA), sekundární si všimne LSA, které nemá, nebo jejichž pořadová čísla jsou vyšší než ten v jeho LSDB a poté si je nárokuje z primárních paketů s požadavky na stav spojení. Primární směrovač na něj reaguje pakety aktualizace stavu spojení, které obsahují požadované LSA. Sekundární pak odešle pakety aktualizace stavu propojení, které odpovídají LSA, které primární nemá, nebo které jsou na sekundární zastaralé.
Jakmile je synchronizace dokončena, přepne se sousednost do stavu Full a LSA budou vysílány normálně.
Trasy lze v OSPF shrnout na dvou úrovních:
OSPF používá numerickou metriku založenou na aditivní ceně, která se může pohybovat od 1 do 65535. Specifikace nedává této metrice žádný zvláštní význam, omezení spočívá v tom, že přidání nákladů na následné odkazy k určení celkové ceny musí mít význam .
Společnost Cisco používá výchozí hodnotu ceny odkazu, která je ( 108 ) / (šířka pásma linky v bitech / s). Například 10 Mbit / s odkaz bude mít cenu 10. Chcete-li zohlednit velmi vysokorychlostní připojení ( 1 Gbit / s a více), můžete ručně nastavit cenu každého odkazu nebo můžete nastavit šířku pásma odkaz větší než výchozí.
Bez ohledu na metriku jsou v tomto pořadí upřednostňovány následující typy silnic:
OSPF je schopen distribuovat zátěž na více odkazů, pokud je metrika pro každý cíl přesně stejná.
Pakety OSPF mohou být předmětem dvou forem autentizace, první sestává z hesla přenášeného v clear v paketu, druhé sestává z hash funkce MD5 vypočítané na paketu a sdíleného hesla.
OSPF používá Dijkstrův algoritmus k určení nejlepší cesty. Nazývá se také algoritmus SPF ( Shortest Path First ) nebo algoritmus nejkratší cesty první. Byl formulován Edsgerem Dijkstrou .
OSPF spouští své aktualizace vždy, když dojde ke změně topologie sítě, což pomáhá zkrátit dobu konvergence. Z aktualizace router nastaví topologickou databázi umožňující výpočet přístupnosti sítě díky výpočtu topologického stromu, jehož rootem je router.
OSPFv2 funguje pouze s IPv4 a pro něj. OSPFv3 byl proto definován v RFC 5340 . OSPFv3 funguje přes odkazy IPv6 a umožňuje směrování IPv6 pouze v počátečních RFC. OSPFv3 opouští ověřování OSPFv2 ve prospěch IPsec . OSPFv3 pracuje spíše na odkazech (adresovaných v IPv6, s alespoň adresami Link-Local), než na podsítích, jako je OSPFv2. Výsledkem je, že ID LSA již nemají nic společného s adresováním, které se nyní v nových LSA přenáší samostatně:
Následně RFC 5838 představil pojem rodiny adres , který umožňuje OSPFv3 současně přenášet různé informace o směrování a topologii pro různé rodiny adres, včetně IPv4 i IPv6. Je třeba poznamenat, že samotný OSPFv3 vždy běží na odkazech adresovaných v IPv6. Od tohoto RFC by OSPFv3 teoreticky byl schopen úplně nahradit OSPFv2 (kromě jakékoli představy o stabilitě a zralosti implementace).