Az Open Shortest Path First (OSPF) egy"link state" típusúIPbelső útválasztási protokoll . AzInternet Engineering Task Force(IETF) 1987-ben fejlesztetteki. Az OSPFv2 jelenlegi verzióját 1997-benazRFC2328írja le. A 3. verziót 2008 óta definiálják azRFC 5340-ben (kezdetben az 1999-esRFC2740-ben), és lehetővé teszi a az OSPF használata hálózatiIPv6-ban.
Az OSPF munkacsoportot az IETF -en belül hozták létre 1987-ben a RIP helyére . A BBN által kifejlesztett ARPANET protokoll ihlette . Az 1. verziót az RFC 1131- ben tették közzé 1990-ben (de soha nem valósították meg). A 2. verziót 1991-ben RFC 1247 néven írták le . 1992-ben az Internet Engineering Steering Group (IESG) az RFC 1371-ben az OSPF-t ajánlotta az Internet IGP- jének.
Az OSPF-ben minden útválasztó szomszédsági kapcsolatokat létesít közvetlen szomszédaival azáltal, hogy rendszeres időközönként üdvözlő üzeneteket küld . Ezután minden útválasztó továbbítja azoknak a hálózatoknak a listáját, amelyekhez kapcsolódnak a Link-state Advertisement ( LSA ) üzenetek, amelyeket lépésről lépésre terjesztenek a hálózat összes útválasztójának. Az LSA -k halmaza minden területhez egy összekapcsolt állapotú adatbázist (LSDB) alkot, amely azonos az adott területen részt vevő összes útválasztóval. Ezután minden útválasztó a Dijkstra algoritmusa , a Shortest Path First (SPF) segítségével határozza meg a leggyorsabb útvonalat az LSDB mindegyik ismert hálózatához.
Az OSPF megfelelő működéséhez tehát teljes konzisztencia szükséges az SPF számításában, így például nem lehet az útvonalakat kiszűrni vagy összefoglalni egy területen belül.
A topológia változása esetén az új LSA-kat lépésről lépésre terjesztik, és az SPF algoritmust újra végrehajtják minden útválasztón.
Annak elkerülése érdekében, hogy a linkek teljes adatbázisa elterjedjen, és hogy korlátozzuk a csapkodás vagy csapkodás negatív hatásait (gyors váltakozás a link elérhetőségében), az összes útválasztót felosztjuk kapcsolódó területeknek nevezett csoportokba , amelyek határán összefoglalók találhatók. tenni. Mindegyik területet 0 vagy 4 294 967 295 közötti pozitív vagy nulla egész szám különbözteti meg, ezt a számot néha pontozott tizedes jelöléssel fejezzük ki, ugyanúgy, mint egy IP-címet . Minden alhálózat egyetlen területhez tartozik.
Mindig van egy gerincterület , 0 terület vagy 0,0,0,0 terület , amelyhez az összes többi terület kapcsolódik.
A területek logikailag szomszédosak. Ha a területet alkotó útválasztók fizikailag nem kapcsolódnak egymáshoz, akkor virtuális kapcsolatok vannak konfigurálva a közös átmeneti területtel rendelkező útválasztók között. Ezek a virtuális linkek a 0. területhez tartoznak. A protokoll számozatlan pont-pont linkként kezeli őket.
Minden útválasztót a hálózat egyedi útválasztó-azonosítójával azonosítanak . Az útválasztó-azonosító egy 32 bites pozitív szám, amelyet általában IP-címként ábrázolnak. Kifejezett konfiguráció hiányában a legmagasabb helyi IP-címet kell használni, és ha vannak loopback típusú interfészek , akkor ezek közül a legmagasabb IP-címet kell használni router-azonosítóként. Az útválasztó-azonosító meghatározása csak az OSPF folyamat inicializálásakor megy végbe, és ezután is fennáll, függetlenül az interfészek újrakonfigurálásától vagy állapotának változásától.
A következő típusú útválasztók léteznek:
Belső útválasztó router, amelynek interfészei mind ugyanazon a területen vannak; Területi Határirányító (ABR) router, amelynek interfészei vannak különböző területeken; Autonóm rendszer útválasztó (ASBR) útválasztó, amely más útválasztási protokollokból vagy statikus útvonalakból származó OSPF útvonalakba injektál; Gerinchálózati útválasztó router, amelynek legalább egy interfésze a 0. területhez tartozik. Minden ABR gerinchálózati útválasztó.Az OSPF a 89-es IP-protokollt használja. A csomagok TTL- je 1-re van állítva, hogy megakadályozza azok továbbhaladását az alhálózaton, a ToS mező pedig 0-ra van állítva. Az OSPF multicast címeket használ a broadcast és a point-to-point hálózatokon.
Az OSPF csomagok legfeljebb 65535 bájt méretűek, és szükség esetén IP töredezettséget használnak. Javasoljuk azonban, hogy vegye figyelembe a link MTU- ját a töredezettség elkerülése érdekében, ha lehetséges, az LSA-kat az MTS-nél kisebb LS Update üzenetekben terjeszti.
Az LSA-k akár 64 KB-os méretűek is lehetnek, azonban általában kicsiek, kivéve az 1. típust ( LSA router ), amely nagy lehet a sok OSPF interfésszel rendelkező útválasztók számára.
Vannak 5 fajta OSPF csomagok:
Helló (1. típus) a szomszédok felfedezése és a szomszédságok fenntartása; Adatbázis leírása (DBD, 2. típus) az LSA-k leírása; Link állapot kérése (3. típus) LSA kérése; Link állapot frissítése (LSU, 4. típus) egy LSA frissítése; Link állapot nyugtázása (5. típus) egy LSA nyugtázása.Az 1. típus (hello) a szomszédságok létrehozására és fenntartására, a többi típus az LSDB szinkronizálására szolgál.
Az LSA csomagok az LSU csomagok altípusa, a következő típusok vannak meghatározva:
1. típus (router) útválasztó által sugárzott, leírja az interfészek állapotát; 2. típus (hálózat) DR (kijelölt útválasztó) által sugározva, az alhálózathoz csatlakoztatott útválasztókat írja le; 3. típus (összefoglaló) útvonal-összefoglaló ABR által; 4. típus (interarea összefoglaló) ABR által létrehozott útvonal az ASBR felé; 5. típus (külső) egy ASBR által sugárzott, egy külső útvonalat ír le; 6. típus (csoportos csoportos tagság) az MOSPF használja; 7. típus (külső NSSA) az NSSA ASBR által generált külső útvonal.Az 1. és 2. típus egy terület belső útvonalát képezi (területen belül), a 3. és 4. típus területközi útvonal (IA). A gerinchálózati útválasztók felelősek a területek közötti útválasztási információk közvetítéséért.
A külső útvonalak fel vannak osztva:
E1 típus az ASBR-hez való hozzáférés költségét hozzáadják a külső útvonal kezdeti mutatójához; E2 típus a mutató költsége fix, és nem függ az ASBR költségétől.Az LSA-kat a kiinduló útválasztó, az LSA típus és az LSA azonosító azonosítja. Ez utóbbi jelentése az LSA típusától függően változik:
LSA típus | LSA azonosító |
---|---|
1 | Az adó útválasztó-azonosítója |
2 | A DR interfész IP címe |
3 | A cél hálózati cím |
4 | Az ASBR router-id |
5. | A külső hálózat címe |
Az 1. típusú LSA (router) négy altípusra oszlik, amelyek a leírt hálózat típusától függenek.
+ 1. link típusAltípus | Leírás | Link azonosítója | Link adatok |
---|---|---|---|
1 | pontról pontra | a szomszéd útválasztó-azonosítója | Az interfész IP-címe vagy MIB-II ifIndex, ha az interfész nincs megszámozva |
2 | összeköttetés a tranzithálózattal | DR interfész címe | Interfész IP címe |
3 | link egy csonk hálózatra | hálózati cím | hálózati maszk |
4 | virtuális link | a szomszéd útválasztó-azonosítója | Interfész IP címe |
Minden LSA-hoz tartozik egy ellenőrző összeg, amely biztosítja az adatok integritását. Ezt az LSA kézhezvétele után ellenőrzik, rögzítik az LSDB-ben, és módosítás nélkül továbbítják a szomszédoknak. Ezután rendszeres időközönként ellenőrizzük, hogy az LSDB tartalma ne sérült-e meg.
LSA menedzsmentAz LSA-kat otthoni útválasztójuk, típusuk és LSA azonosítójuk jellemzi. A sorszámok (32 bites előjelű egész szám) minden változtatással 1-gyel nőnek, az első sorszám 0x80000001 (InitialSequenceNumber, -2 31 +1), legfeljebb 0x7fffffff (2 31 ). Az LSA minden változata az alacsonyabb sorozatszámú verziókat helyettesíti. Ha nincs változás, az LSA-kat 30 percenként frissítik (LSRefreshTime). Az egy órás kort elérő LSA (MaxAge) kikerül az LSDB-ből. Az LSA kiinduló útválasztója megadhatja, hogy az LSA ne frissüljön, ha a DoNotAge bitet 1-re állítja az opciókban.
Az LSA-kat megbízhatóan sugározzák. Amikor egy útválasztónak frissítenie kell egy LSA-t egy topológia módosítása után, akkor növeli a sorozatszámát, és Link-State Update csomagként sugározza a szomszédos szomszédokhoz (amely több LSA-t is tartalmazhat). Ezután az LSA-kat kifejezetten elismerik, ennek hiányában továbbítják őket. Az LSA-t fogadó routerek összehasonlítják annak sorozatszámát a már meglévővel, és ha magasabb, akkor regisztrálják az LSA-t az LSDB-ben, és továbbadják a szomszédjuknak is. Az LS Age mező minden egyes adáskor növekszik, hogy elkerüljük a végtelen hurkokat egy szoftverhiba után. Ha egy LSA-t ugyanolyan sorszámmal fogadunk, mint az LSDB-ben, de 15 percnél kisebb korkülönbséggel (MaxAgeDiff), az LSA figyelmen kívül marad.
Egy olyan LSA eredetű útválasztó, amelyet el akar távolítani az LSDB-ből, egy LS Age = MaxAge értékkel sugározza, ami megszünteti.
Az útválasztók tartózkodnak az LSA frissítésétől 5 másodpercenként gyakrabban (MinLSInterval). Az útválasztók elutasítják egy olyan LSA frissítéseit, amelyet már kevesebb, mint egy másodperccel ezelőtt frissítettek.
A következő típusú területeket különböztetjük meg:
terület 0 gerincterület; szabályos terület bármely terület, a gerincterület sajátos iteráció; csonk terület az a terület, amelyre az 5. típusú LSA-k nem terjednek (külső utak); teljesen csonka terület ott nem terjesztenek 3., 4., 5. vagy 7. típusú LSA-t, az alapértelmezett útvonal kivételével; nem túl ostoba terület (NSSA) olyan csonkterület típusa, amely lehetővé teszi külső útvonalak injektálását a 7-es típusú LSA-n keresztül. teljesen NSSA NSSA LSA 3 és 4 nélkül, az alapértelmezett útvonal kivételével.Csonkterületen keresztül nem lehet virtuális linkeket létrehozni, sem pedig belső csoporthoz tartozó ASBR-eket.
Pontról pontra | Adás | Pont-több pont (nem sugárzott) |
Pont-több pont (sugárzás) |
NBMA | |
---|---|---|---|---|---|
DR / BDR | nem | Igen | nem | nem | Igen |
szia / halott | 10/40-es évek | 10/40-es évek | 30s / 120s | 30s / 120s | 30s / 120s |
a szomszédok felfedezése | Igen | Igen | nem | Igen | nem |
RFC 2328 | Igen | Igen | Igen | Cisco | Igen |
Az alhálózatban az útválasztókat, amelyek felfedezik egymást a hello protokollnak köszönhetően, szomszédoknak nevezzük . A point-to-multi és NBMA hálózatokban a szomszédok kifejezetten konfigurálva vannak. Amíg a szomszédok paraméterei kompatibilisek, megpróbálnak szomszédsági relációt létrehozni. Az útválasztási információk cseréje előtt meg kell állapítani a szomszédságot.
A szomszédság a következő állapotokat veheti fel:
Le nem érkezett információ erről a szegmensről; Kísérlet az NBMA hálózatokon azt jelzi, hogy nem érkezett újabb információ a konfigurált szomszédtól; Benne üdvözlő csomag érkezett; 2 út üdvözlő csomag érkezett, amely tartalmazza a saját útválasztó-azonosítóját, ami azt mutatja, hogy kétirányú kommunikáció van. A DR és a BDR választása ebben az állapotban történik. A szomszédság kialakításáról az állapot végén születik döntés. ExStart Az útválasztók megpróbálják létrehozni az információcsere csomagokban használt kezdeti sorszámokat. Ehhez a cseréhez az egyik útválasztó lesz az elsődleges, a másik pedig a másodlagos. Csere az útválasztók adatbázis-leíró csomagokkal (DBD) küldik az LSDB-t ; Betöltés az LSDB-k cseréje befejeződött, az útválasztók kérik a szükséges LSA-kat; Teljes Az LSDB szinkronizálva van, és létrejön a szomszédság.Üdvözlő üzeneteket küldünk rendszeres időközönként azon interfészeken, ahol az OSPF aktív. Pont-pont linkeken és broadcast linkeken a 224.0.0.5 (AllSPFRouters) multicast címen , sugárzás nélküli linkeken a szomszéd unicast IP-címére kerülnek.
A hello csomagban a következő információk találhatók:
A terület száma szerepel az OSPF csomag fejlécében. A szomszédság nem jön létre, ha bizonyos paraméterek nem kompatibilisek (terület száma, terület típusa (csonk vagy sem), hello / dead periódusok, hitelesítés).
Szükség van egy szomszédsági kapcsolatra az OSPF útválasztók számára az útválasztási információk megosztására. Egy műsorszóró hálózatban ( Ethernet ), ha minden útválasztó szomszédságot létesítene egymással a routerrel és kicserélné a kapcsolat állapotára vonatkozó információkat, a terhelés túlzott lenne, a szomszédságok száma vagy az lenne . A probléma kiküszöbölése érdekében választunk egy DR-t (kijelölt útválasztót), amely megkapja az összes információt a kapcsolatok állapotáról, és továbbítja azokat a többi útválasztónak. Amint ez a hálózat kritikus pontjává válik, egy BDR-t (biztonsági mentésre kijelölt útválasztót) is kijelölnek. A szomszédsági szám tehát 2n-1, azaz en . A többi útválasztót DR Other néven említik .
Az OSPF csak csoportos küldéssel kommunikál, a következő két címmel:
Csak a DR generálja az alhálózatnak megfelelő hálózati LSA-t (2. típus). Ennek LSID-je lesz az alhálózat DR-jének IP-címe. Ez az LSA felsorolja az alhálózathoz csatolt útválasztókat is.
A DR megválasztásaEgy adott sugárzási vagy NBMA típusú alhálózathoz minden OSPF útválasztónak a prioritásnak nevezett értéke 0 és 255 között van. Ha a prioritás értéke 0, akkor az útválasztó nem vesz részt a választásokon, ezért nem válhat DR. És BDR néven sem.
Más útválasztók, amelyek legalább kétutas állapotban vannak, jogosultak.
A választás az NDK-val kezdődik. Ha már több útválasztó jelzi, hogy Bello a hello csomagjaikban, akkor a legmagasabb prioritású marad BDR-ként, és ha több router van a legnagyobb prioritással, akkor az, amelynek az útválasztóazonosítója a a legmagasabb értéket BDR-ként tartják meg. Ha csak egy útválasztó jelzi, hogy BDR, akkor ez a választás továbbra is fennáll. Ha a jelöltlista üres, akkor a BDR a legmagasabb prioritású jogosult nem DR útválasztó, és ha több is van, akkor a legmagasabb útválasztó-azonosítóval rendelkező megmarad.
Ugyanígy járunk el a DR-szel is, ha nincs DR-jelölt, akkor a BDR-t DR-be léptetik elő, és újból megkezdik a BDR-választást, mint az előző bekezdésben.
A többi útválasztó a DR és a BDR szomszédságában található. A DR meghibásodása esetén a BDR válik DR-vé, és új BDR-választásokat hajtanak végre.
Ezt az eljárást követve, ha egy útválasztót hozzáadnak a hálózathoz, amikor DR és BDR már létezik, akkor a DR-k és BDR-ek akkor is fennmaradnak, ha az újonnan érkező prioritás magasabb.
A szomszédság megállapítása után az útválasztók meghatározzák az elsődleges és a másodlagos útválasztót, valamint a kezdeti sorszámot. Az elsődleges útválasztó elküldi az adatbázis-leírás (DBD) csomagokat a másodlagosnak, ezek egy LSA fejlécek listájából állnak (de a tényleges LSA adatok nélkül), a másodlagos megjegyzi azokat az LSA-kat, amelyeknek nincs, vagy amelyek sorszáma magasabb, mint az LSDB-ben található, majd a Link State Requests csomagokkal igényli őket az elsődlegestől. Az elsődleges útválasztó Link State Update csomagokkal válaszol rá, amelyek a kért LSA-kat tartalmazzák. Ezután a másodlagos elküldi a Link State Update csomagokat, amelyek megfelelnek azoknak az LSA-knak, amelyek az elsődleges nem rendelkeznek, vagy amelyek a másodlagosnál elavultak.
A szinkronizálás befejezése után a szomszédság átkapcsol teljes állapotba, és az LSA-kat normál módon sugározzák.
Az útvonalak az OSPF két szintjén foglalhatók össze:
Az OSPF numerikus metrikát használ, egy additív költségen alapulva, amely 1 és 65535 között változhat. A specifikáció nem ad különösebb jelentést ennek a mutatónak, az a korlát, hogy az egymást követő linkek költségeinek összeadása a teljes költség meghatározása érdekében .
A Cisco az alapértelmezett értéket használja a link költségére, amely (10 8 ) / (link sávszélessége bit / s-ban). Például egy 10 Mbit / s-os kapcsolat költsége 10. A nagyon nagy sebességű kapcsolatok ( 1 Gbit / s és több) figyelembevétele érdekében manuálisan beállíthatja az egyes linkek költségeit, vagy beállíthat referencia sávszélességet. nagyobb, mint az alapértelmezett.
A metrikától függetlenül a következő úttípusokat részesítik előnyben ebben a sorrendben:
Az OSPF képes elosztani a terhelést több linken, mindaddig, amíg a mutató pontosan megegyezik az egyes célállomásokkal.
Az OSPF-csomagok kétféle hitelesítés tárgyát képezhetik, az első egy jelszóból áll, amelyet a csomag tiszta részében továbbítanak, a második a csomagra kiszámított MD5 hash függvényből és egy megosztott jelszóból áll.
Az OSPF Dijkstra algoritmusával határozza meg a legjobb utat. SPF ( Shortest Path First ) algoritmusnak vagy a legrövidebb út első algoritmusnak is nevezik . Edsger Dijkstra fogalmazta meg .
Az OSPF akkor indítja el a frissítéseket, ha változás történik a hálózati topológiában, ami segít csökkenteni a konvergencia időt. Egy frissítés alapján egy útválasztó létrehoz egy topológiai adatbázist, amely lehetővé teszi a hálózati hozzáférhetőség kiszámítását egy topológiafa kiszámításának köszönhetően, amelynek a gyökér az útválasztó.
Az OSPFv2 csak az IPv4-sel és az vele használható. Az OSPFv3-t ezért meghatározták az RFC 5340-ben . Az OSPFv3 IPv6-kapcsolatokon keresztül működik, és csak az eredeti RFC-kben engedélyezi az IPv6 útvonalát. Az OSPFv3 felhagy az OSPFv2 hitelesítésével az IPsec javára . OSPFv3 működik linkek (foglalkozni IPv6, legalább Link-Local címek) inkább alhálózatok mint OSPFv2 tette. Ennek eredményeként az LSA azonosítóknak már nincs közük a címzéshez, amelyet most külön szállítanak az új LSA-kba:
Ezt követően, az RFC 5838 vezette be a fogalmat Cím Family , amely lehetővé teszi, hogy egyszerre OSPFv3 adási más routing és topológia információt más címre családok, beleértve mind az IPv4 és IPv6. Meg kell jegyezni, hogy maga az OSPFv3 mindig az IPv6-ban címzett linkeken fut. Mivel ez az RFC, az OSPFv3 elméletileg képes lenne teljesen helyettesíteni az OSPFv2-t (eltekintve a stabilitás és a megvalósítás érettségének bármilyen fogalmától).