LAN 1 OSPF: Open Shortest Path First informacje ogólne motywacja wprowadzenia RIP jest wolny, zawodny, produkuje duży ruch, pozwala na ścieżki o maksymalnie 15 przeskokach RIP źle się skaluje: rozrost system autonomicznego powoduje o rozrost tablic routingu o wzrost zapotrzebowania na pasmo do przekazywania informacji routingu OSPF to rekomendowany (IETF) następca RIP jest otwarty wsparcie dla elastycznych form adresowania (VLSM) bezpieczeństwo: autentykacja pakietów OSPF OSPFv1: RFC 1131 (1987), OSPFv2: RFC 2328, OSPFv3: RFC 2740 (wspiera IPv6) cechy OSPF wewnętrzny protokół routingu (IGP) stanu łącza, bezklasowy do obliczania najmniejszego kosztu dotarcia do miejsca docelowego służy algorytm SPF (Shortest Path First=algorytm Dijkstry) bogata metryka: 1-65535, czynniki oparte o pole protokołu IP ToS: opóźnienie, pasmo, niezawodność dobra zbieżność, przystosowanie do dużych sieci, niezawodność brak ograniczeń na rozmiar sieci hierarchia routingu: w oparciu o obszary (jest konieczna w dużych sieciach, rzędu kilku tysięcy routerów) równoważenie obciążenia na maksymalnie sześciu ścieżkach o równych kosztach opis topologii sieci routery OSPF wymieniają informację na temat topologii sieci (przechowywaną w bazie topologii), a nie tablice routingu każdy router wylicza swoją tablicę routingu z bazy topologii za pomocą algorytmu SPF model topologii: graf z węzłami w routerach i krawędziami w sieciach jednostka opisu topologii: łącze (R i,r j ) typy sieci: punkt-punkt, rozgłoszeniowe, nierozgłoszeniowe wielodostępowe (NBMA: Non-Broadcast Multi-Access), punkt-wielopunkt, wirtualne
LAN 2 aktualizacje wyzwalane są zmianami topologii wysyłane są w specjalnych pakietach: LSA - Link State Advertisment emisja pakietów LSA nazywana jest zalewaniem LSA LSA przekazywane są dalej przez każdy router bez większych modyfikacji i dystrybuowane są w całym obszarze OSPF (mechanizm znacznie szybszy niż w RIP, gdzie każda aktualizacja musi być: odebrana, sprawdzona, wytworzona ponownie i wysłana) istnieje wiele różnych pakietów LSA w zależności od rodzaju informacji i routera będącego źródłem informacji w każdym obszarze: aktualizacje przez zalewanie LSA, pomiędzy obszarami: aktualizacje wektora odległości czas zbieżności (dopiero po nim wylicza się SPF): czas wykrycia sąsiada (Hello) + czas zalewania (LSA) + czas wstrzymywania (hold-time, 5s, by zmniejszać niestabilność) minimalny czas pomiędzy dwoma wyliczeniami SPF: 10s mechanizmy polepszające wydajność protokołu podział na obszary (obszar ogranicza zalewanie wiadomości LSA) wprowadzenie obszarów końcowych (stub): minimalizują bazę danych stanów łącz i tablice routingu definicja różnych typów wiadomości LSA (typ1-typ7) transport wiadomości OSPF przenoszone są bezpośrednio w pakiecie IP (protokół 89), bez udziału TCP lub UDP docelowy adres IP o grupowy (w sieciach rozgłoszeniowych): 224.0.0.5 ( wszystkie routery OSPF ) i 224.0.0.6 (dla routera DR i BDR) o pojedynczy (w sieciach punkt-punkt lub nierozgłoszeniowych sieciach wielodostępowych) kontrolą sesji i błędami zajmuje się sam OSPF za pomocą pakietów potwierdzenia (LSAck: Link State Acknowlegement) autoryzacja OSPF wszystkie wiadomości routingu OSPF mogą być autoryzowane jawnym tekstem o zerowa autoryzacja: suma kontrolna nagłówka o sprawdzanie hasła za pomocą kryptografii o algorytm MD5 + niejawne hasło współdzielone
LAN 3 nawiązywanie przyległości (adjacency) routerów OSPF (stany routerów OSPF na łączu punkt-punkt) 1. osobne routery Rx, Ry: (grupa_routerów1)-rx- -Ry-(grupa_routerów2) włączamy routing OSPF i konfigurujemy na interfejsach stan: Down brak wiadomości OSPF stan: Attempt dotyczy sieci NBMA: brak nowych wiadomości od sąsiada 2. łączymy routery Rx, Ry kablem szeregowym: (grupa_routerów1)-rx- serial -Ry-(grupa_routerów2) stan: Init router wysyła pakiet Hello przez wszystkie interfejsy, na których skonfigurowano protokół OSPF na adres multicastowy 224.0.0.5 i oczekuje na odpowiedź w postaci pakietu Hello z drugiej strony czas trwania: 4 x czas( Hello interval =10 s w LAN, 60s w WAN), w tym czasie musi przyjść pakiet Hello od sąsiada - jeśli nie dotrze to router ponownie przechodzi do stanu Down każdy pakiet Hello zawiera listę identyfikatorów wszystkich sąsiadów stan: Two-way kiedy pakiety Hello przenoszą identyfikatory tych routerów, które właśnie zostały połączone i routery zgadzają się na pewne parametry połączenia może nastąpić dwustronna komunikacja z sąsiadem (sąsiedztwo) router zakłada w bazie topologii rekord na nowe łącze (Rx-Ry) _ stan: Exstart następuje wybór ról: master (router o wyższym adresie IP interfejsu) i slave w stanie Loading master wysyła pakiety LSR (Link State Request), a slave odsyła pakiety LSAck (Link State Acknowlegment) wybór początkowego numeru sekwencyjnego dla wiadomości DDP (Database Description Packet)
LAN 4 stan: Exchange oba routery wysyłają serię pakietów DDP (Database Description Packet), które są skróconą wersją bazy danych stanu łącza DDP zawiera łącza (=sieci) i związane z nimi identyfikatory routerów-źródeł pakietów LSA (Router ID) - informacje te w większości pochodzą od innych routerów (grupa_routerów) wyuczone przez Rx/Ry poprzez pakiety LSA każde łącze ma: Interface ID dla interfejsu wychodzącego, Link ID i metrykę DDP pełnią rolę (częściowych) LSA, które sumaryzują łącza każdego routera w bazie topologii sąsiada stan: Loading na podstawie odebranych pakietów DDP router może wykryć w swojej bazie, że informacja o jakimś łączu, którą otrzymał jest nowa - wtedy wysyła pakiet LSR (Link State Request), który jest żądaniem dosłania szczegółowych informacji o tym łączu router, od którego informacja jest żądana odpowiada pakietem LSU (Link State Update) zawierającym szczegóły na temat tego łącza router, który żądał informacji o łączu wysyła potwierdzenie odbioru LSU, którym jest LSAck (Link State Acknowledgement) stan: Full po odpytaniu o szczegółowe informacje w obie strony, ustanawiana jest przyległość stan ten oznacza identyczną bazę topologii u obu sąsiadów synchronizacja bazy danych slave master
LAN 5 3. rozgłaszanie informacji routingu pomiędzy routerami przyległymi Rx i Ry ustanowienie nowej przyległości (patrz wyżej) oznacza nową informację w bazie danych topologii informacja ta jest rozgłaszana przez routery Rx i Ry wszystkim swoim sąsiadom w pakietach LSA (Link State Advertisment) typ 1 (Router LSA) potencjalny problem: jeśli przyległość uzyskują routery, które wcześniej działały w obrębie istniejących sieci OSPF (grupa_routerów1/2), ich sąsiedzi w tych sieciach mogą nie mieć pewnych informacji o topologii (LSA dystrybuują informacje tylko o lokalnych łączach sąsiadów), ponieważ routery w tych sieciach nie mają potrzeby informowania o nowych łączach (ich łącza się nie zmieniły) rozwiązania: o każdy router wysyła swoje LSA co 30 min. (zgodnie z RFC, ale to daje długi czas niezgodności baz) o po otrzymaniu LSA każdy router nie tylko przekazuje je dalej, ale i natychmiast wysyła swe własne LSA (tzw. flash update - natychmiastowa aktualizacja, opcja ta jest konfigurowalna) po wymianie informacji LSA wszystkie routery osiągają zbieżność o każdy z bazy danych topologii oblicza swoją tablicę routingu za pomocą algorytmu SPF bez zmiany stanu łącz o pakiety LSA nie są wymieniane (przynajmniej przez 30 min) o na każdym interfejsie wymieniane są zawsze pakiety Hello, które sprawdzają przyległość sąsiada
LAN 6 rodzaje sieci, w których może działać protokół OSPF (sieć opisana powyżej): Point-to-Point szybka zbieżność wymagana częściowa topologia każdy-z-każdym rozgłaszanie LSA jest problemem (bez aktualizacji natychmiastowych bazy danych mogą być niespójne) prosta i odporna na błędy (sieci najczęściej spotykane): sieci rozgłoszeniowe (BMA: Broadcast Multi Access) przykład: Ethernet wymagają topologii każdy-z-każdym (full mesh) wykrywanie sąsiadów: automatyczne rozgłaszanie LSA przez router DR (BDR) wybór routera DR (BDR) jest automatyczny (sieci rzadziej spotykane): sieci wielodostępowe nierozgłoszeniowe (NBMA: Non-Broadcast Multi Access) przykład: Frame Relay, X.25, ATM wykrywanie sąsiadów: ręczne wymagają większej konfiguracji, ponieważ trzeba zdefiniować sąsiadów rozgłaszanie przez router DR wolniejsza zbieżność Point-to-Multipoint jeden adres IP dla chmury nie optymalne rozgłaszanie utrzymuje ścieżki główne dla każdego routera w chmurze rodzaje interfejsów OSPF normalny: rozgłasza pakiety LSA zablokowany: nie rozgłasza pakietów LSA członek grupy: jeśli pakiet LSA zostanie odebrany na interfejsie będącym członkiem grupy, interfejs ten rozgłasza go dalej na wszystkie interfejsy nie będące członkami grupy, ale nie rozgłasza na inne interfejsy w swojej grupie
LAN 7 problem sieci wielodostępnych NBMA i BMA (np. Ethernet) n routerów OSPF w jednym segmencie Ethernet musi stworzyć n(n-1)/2 przyległości zalewanie pakietami LSA przez każdy router wytworzyłoby wiele niepotrzebnych kopii LSA rozwiązanie: wybór routera desygnowanego do reprezentacji całego segmentu LAN (DR: Designated Router) DR: Designated Router reprezentuje wszystkie routery OSPF w całym segment LAN przed resztą sieci istnieje w sieci o więcej niż dwóch routerach tylko DR zalewa pakietami LSA resztę sieci (to redukuje ruch sieciowy i zmniejsza rozmiar bazy topologii) jest odpowiedzialny za generowanie wiadomości LSA dla całej sieci o sieci BMA: na adres 224.0.0.5 o sieci NBMA: transmisja pojedyncza wysyła LSA typ 2 (Network LSA) o zawartości o lista wszystkich routerów lokalnych o maska podsieci (Router LSA nie zawiera maski) wysyła zsumaryzowane wiadomości routingu każdy inny router tworzy przyległość tylko z DR wysyłając pakiety informujące o zmianach łączy o sieci BMA: na adres 224.0.0.6 ( tylko DR ) o sieci NBMA: transmisja pojedyncza automatyczny wybór DR w sieciach BMA o odbywa się w stanie Init: wyzwalany jest brakiem informacji o DR i BDR w pakietach protokołu Hello o jest realizowany za pomocą protokołu Hello, który przenosi priorytet routera (wartość: 0-255, domyślnie 1, jeśli 0 - router nie może zostać DR lub BDR) o DR zostaje router o najwyższym priorytecie (BDR zostaje drugi w kolejności) o jeśli jakieś routery mają ten sam priorytet jako DR wybierany jest router z najwyższym identyfikatorem Router ID (BDR zostaje drugi w kolejności) o wybór Router ID (najwyższy adres IP interfejsów loopback jeśli brak loopback to najwyższy adres IP interfejsów fizycznych; interfejs loopback jest zawsze aktywny bo nie zależy od protokołów/łączy fizycznych - Router ID oparte na loopback jest stabilne) BDR: Backup Designated Router jest wybierany dla redundancji ma drugi w kolejności największy priorytet (po DR) lub drugi w kolejności adres IP przyjmuje role DR, gdy DR ulegnie awarii (w takim przypadku zaczyna się elekcja nowego BDR) pełni funkcje takie jak DR obowiązują te same reguły adresowania pakietów LSA od i do BDR jak dla DR każdy inny router tworzy z nim przyległość jak z DR sam tworzy przyległość z DR
LAN 8 DR i BDR tylko DR i BDR nawiązują relacje przylegania ze wszystkimi routerami w obszarze bazy danych topologii DR i BDR są zsynchronizowane po wyborze DR i BDR zachowują swe role nawet po dodaniu nowego routera z większym priorytetem (krytyczny jest pierwszy wybór, ponieważ ustala trwałe role) jedynym sposobem kontroli wyboru DR/BDR jest ustawienie priorytetu innych routerów na zero ( DROTHER ), co powoduje, że nie mogą zostać DR lub BDR
LAN 9 routery OSPF są identyfikowane przez Router ID, unikalny w systemie autonomicznym używają protokołu Hello dla wykrycia routerów sąsiednich rozgłaszają pakiety LSA (różnego typu) IR: Internal Router wszystkie interfejsy ma w obrębie jednego obszaru BR: Backbone Router ma przynajmniej jeden interfejs w obszarze Backbone (area 0) ABR: Area Border Router ma interfejsy przynajmniej w dwóch obszarach (w tym jeden musi być obszarem 0, bo tylko przez niego obszar może być połączony z innymi obszarami [wyjątek: obszar podłączony do obszaru 0 łączem wirtualnym lub tunelem GRE]) obsługuje tyle kopii algorytmu (i bazy) SPF, ile jest podłączonych obszarów dedykowany do ruchu międzyobszarowego sumaryzują informację topologiczną obszarów przed jej dystrybucją w rdzeniu sieci o terminuje LSA typ 1 ( Router LSA ) i LSA typ2 ( Network LSA ) o przyjmuje i rozgłasza zsumaryzowane sieci IP przez LSA typ 3 ( Network Summary LSA ) z jednego obszaru do drugiego, które niosą informację o celach dostępnych przez niego i mają charakter aktualizacji wektora odległości jeśli odbiera wytworzone przez ASBR pakiety LSA typ 5 ( AS External LSA) to rozgłasza do wszystkich routerów w obszarze pakiety LSA typ 4 ( ASBR Summary LSA), które są trasami do routerów ASBR oblicza ścieżki do wszystkich sieci między-obszarowych - może wybrać najlepszą ścieżkę wyjściową routing międzyobszarowy składa się z odcinków: ścieżka do ABR, ścieżka przez obszar szkieletowy, ścieżka od ABR do celu ASBR: Autonomous System Boundary Router ma przynajmniej jeden interfejs w innej domenie routingu ma przynajmniej dwa aktywne protokoły routingu: OSPF i dodatkowy protokół redystrybuuje ścieżki zewnętrzne do domeny OSPF rozgłasza LSA typ 5 ( AS External LSA ), które niosą zsumaryzowaną informacje o celach w innej domenie routingu ASBR może być wewnętrzny lub ABR i jest lub nie jest częścią rdzenia
LAN 10
LAN 11 rodzaje obszarów problem skalowalności baza topologii i ruch OSPF rośnie proporcjonalnie do liczby łącz, czyli rozmiaru sieci pomysł o podział domeny OSPF na mniejsze obszary (area) i zatrzymywanie LSA typ 1 ( Router LSA ) i LSA typ2 ( Network LSA ) na granicy obszaru o dostępność obszaru z zewnątrz przez rozgłaszanie innych typów LSA o połączenie wszystkich obszarów przez obszar Backbone (area 0) obszar (area) to region wewnątrz systemu autonomicznego jest identyfikowany przez liczbę 32-bit w notacji kropkowo-dziesiętnej każdy router w obszarze ma identyczną bazę stanu łącz ukrywa szczegółową topologię przed innymi obszarami obszar rdzeniowy (=szkieletowy, backbone) area 0.0.0.0 obszar obowiązkowy zawiera routery ABR zachowuje się jak hub jest odpowiedzialny za dystrybucję informacji routing pomiędzy obszarami nierdzeniowymi obszar rdzeniowy musi być ciągły, poprzez łącza fizyczne lub wirtualne wszystkie inne obszary musza być podłączone do obszaru rdzeniowego (przynajmniej wirtualnie) obszar końcowy (stub area) motywacja: redukcja dużej liczby tras zewnętrznych wstrzykiwanych do domeny OSPF przez ASBR, a stąd redukcja bazy danych stanu łącz i wymagania na pamięć nie importuje zewnętrznej informacji routing (nie jest świadomy tras zewnętrznych) obszar, do którego ABR nie wysyła zewnętrznych LSA (LSA typ 4 ASBR Summary LSA i LSA typ 5 AS external LSA ) - takich zewnętrznych tras ASBR może wstrzykiwać dość dużo ABR rozgłasza w obszarze ścieżkę domyślną (przez siebie) ABR rozgłasza w obszarze zsumaryzowane LSA z innych obszarów (LSA typ 3 Network Summary LSA ) nie może zawierać routerów ASBR konfiguracja: wszystkie routery wewnątrz muszą być skonfigurowane jako stub
LAN 12 obszar TSA: Totally Stubby Area rozszerzenie idei obszaru końcowego firmy Cisco obszar taki jest konfigurowany w przypadku posiadania przez obszar pojedynczego wyjścia do obszaru rdzeniowego jeszcze mniejsza baza topologii niż na routerach w obszarze końcowym (stub) w obszarze nie rozgłasza się ani tras zewnętrznych (LSA typ 4 ASBR Summary LSA i LSA typ 5 AS external LSA ), ani tras zsumaryzowanych z innych obszarów (LSA typ 3) routery w tym obszarze nie są świadome istnienia żadnych sieci poza ich własnym obszarem - routing do celów poza obszarem (lub AS) odbywa się za pomocą (jednej) trasy domyślnej w stronę ABR, którą rozgłasza ABR za pomocą LSA typ 3 ( Network Summary LSA ) konfiguracja tylko na ABR (inne routery w obszarze zakładają, że znajdują się w obszarze końcowym (stub) i nie są świadome, że jest to totally stubby area obszar NSSA: Not So Stubby Area nadal jest to obszar końcowy, ale znajduje się w nim ASBR ASBR rozgłasza trasy zewnętrznej domeny routingu za pomocą LSA typ 7 ( NSSA External LSA ) LSA typ 7 ( NSSA External LSA ) mogą być tłumaczone przez ABR na granicy obszaru NSSA na LSA typ 5 ( AS External LSA ) tylko jeśli w wiadomości LSA typ 7 postawiony jest bit P konfiguracja: wszystkie routery wewnątrz muszą być skonfigurowane jako nssa sumaryzacja aby routing był efektywny schemat adresacji w obszarach powinien być hierarchiczny i zapewniać sumaryzację (agregację) każdy obszar niezależnie od typu (tranzytowy, końcowy, NSSA) może dokonywać sumaryzacji tras wewnątrzobszarowych w ABR przed rozgłaszaniem na zewnątrz wiadomości rozgłaszane przez ABR: LSA typ 3 ( Network Summary LSA ) sumaryzacja jest domyślnie wyłączona
LAN 13 brak styczności obszaru z obszarem rdzeniowym (Area 0) każdy obszar powinien być podłączony do obszaru rdzeniowego (Area 0), powód: LSA typ 3,4,5 (czyli te, które przepływają pomiędzy obszarami) to aktualizacje wektora odległości - aby nie było pętli routingu topologia powinna być topologią drzewa (grafu niecyklicznego) taka topologia jest możliwa tylko przy podłączeniu obszarów gwiaździście do obszaru 0 gdy podłączenie danego obszaru do obszaru 0 nie jest możliwe stosuje się o łącze wirtualne o tunel GRE łącze wirtualne to tunel wykonany z ABR pomiędzy danym obszarem, a obszarem przejściowym, do ABR łączącego obszar przejściowy i obszar 0 (obszar przejściowy nie może być obszarem końcowym czyli stub) tunel GRE (Generic Routing Encapsulation) musi być wykorzystany wtedy, gdy obszar pośredniczący jest obszarem końcowym (stub), wada: cały ruch (nie tylko routing) musi być enkapsulowany w tunelu GRE, co stanowi naddatek protokołowi (zmniejsza wydajność) przykład łącza wirtualnego [Area 0] 10.0.0.0/8 - ABR (id=1.1.1.1/32) - 12.0.0.0/8 [Area 1] 16.0.0.0/8 - ABR (id=2.2.2.2/32) - 20.0.1.0/8 [Area 2] router 2.2.2.2 generuje zsumaryzowane LSA do sieci 20.0.1.0/24 dla Area 1 i Area 0 router 2.2.2.2 generuje zsumaryzowane LSA do sieci, o których się dowiedział z Area 1 i Area 0 dla Area 2 konfig Cisco: Router 1.1.1.1: router ospf N network 10.0.0.0 0.255.255.255 area 0 network 12.0.0.0 0.255.255.255 area 1 area 1 virtual-link 2.2.2.2 Router 2.2.2.2: router ospf N network 16.0.0.0 0.255.255.255 area 1 network 20.0.0.0 0.255.255.255 area 2 area 1 virtual-link 1.1.1.1
LAN 14 wiadomości OSPF format wiadomości OSPF wiadomości OSPF są enkapsulowane bezpośrednio w pakiecie IP (numer protokołu 89) nie używa się transportu TCP ponieważ protokoły stanu łącza mają własny mechanizm niezawodności wbudowany w algorytm zalewania (ponadto obecnie routery traktują protokoły routingu preferencyjnie w stosunku do pakietów danych) pakiet OSPF powinien mieć ustawione pole priorytetu ( precedence ) na wartość Internetwork Control adres IP celu: grupowy (sieci point-to-point) lub adres pojedynczy przyległego routera adres IP źródła: IP interfejsu wysyłającego wszystkie pakiety OSPF zaczynają się standardowym nagłówkiem o długości 24 B nagłówek OSPF Version Type Message Length Router IP Address Area ID Checksum Authentication Type Authentication (octets 0-3) Authentication (octets 4-7) 0 8 16 24 31................................ Version 8-bit wersja protokołu, obecnie = 2 Type 8-bit typ pakietu OSPF jest 5 różnych typów o Hello o Database Description o Link State Routing Request o Link State Routing Update o Link State Acknowledgement Message Length 16-bit długość pakietu OSPF w bajtach (w tym nagłówek OSPF)
LAN 15 Router IP address 32-bit = Router ID routera wysyłającego Area ID 32-bit numer obszaru źródłowego (pozwala routerowi powiązać pakiet z odpowiednim poziomem hierarchii OSPF) jeśli pakiet jest przesyłany łączem wirtualnym to wartość jest 0.0.0.0 ponieważ łącza wirtualne traktowane są jako część obszaru rdzeniowego Checksum 16-bit suma kontrolna obliczana z całego pakietu łącznie z nagłówkiem Authentication Type 16-bit identyfikuje procedurę uwierzytelnienia dla pakietu OSPF o =0 brak o =1 hasło jawnym tekstem o =2 MD5 Authentication 64-bit pole danych uwierzytelnienia routera jeśli typ uwierzytelnienia =2 zawiera: key-id, długość skrótu, numer sekwencyjny (by zapobiec atakom typu replay ) sam skrót MD5 jest dołączony na końcu pakietu (po danych) odbieranie pakietów OSPF weryfikacja pakietu sprawdzenie sumy kontrolnej pakietu IP sprawdzenie, czy adres docelowy IP to adres intrerfejsu, na który pakiet przyszedł sprawdzenie, że numer protokołu jest 89 (OSPF) weryfikacja nagłówka OSPF pola nagłówka muszą się zgadzać z konfiguracją interfejsu przyjmującego o numer wersji musi być 2 o numer obszaru musi się zgadzać o pakiet musi być uwierzytelniony wg. kluczy skonfigurownych na interfejsie jeśli pakiet OSPF jest zgodny z oczekiwaniami jest przetwarzany przez odpowiedni protokół: Hello, DD, LSR, LSU, LSAck
LAN 16 typy pakietów OSPF Type = 1 pakiet protokołu Hello przenosi: interwał protokołu Hello, priorytet routera (jeśli 0: router nie może zostać DR lub BDR), interwał zaniku aktywności (dead interval), DR ID, BDR ID, ID sąsiada Network Mask Hello Interval Options Rtr Pri Router Dead Interval Designated Router Backup Designated Router Neighbor 1 Neighbor 2................................ Network Mask 32-bit maska sieci na interfejsie wysyłającym musi być zgodna z maską na interfejsie przyjmującym Hello Interval 16-bit liczba sekund pomiędzy pakietami Hello tego routera w sieciach wielodostępowych: 10s, w sieciach punkt-punkt: 30s Options 8bit opisuje możliwości routera (dla kompatybilności sąsiadów) używana jest także w innych typach wiadomości OSPF 0 0 DC EA N/P MC E T DC: OSPF Demand Circuit, =1: wspierane EA: External Attributes LSA, =1: wspierane N/P: NSSA External LSA, przenoszone tylko w LSA Typ 7, =1: dopuszczalna zamiana LSA Typ 7 na LSA Typ 5 MC: MOSPF, =1: wspierane E: AS External LSA, =1: wspierane T: ToS, =1: wspierane Rtr Pri 8-bit priorytet tego routera używany przy wyborze DR i BDR jeśli =0, router nie ma kwalifikacji na zostanie DR lub BDR
LAN 17 Router Dead Interval 32-bit liczba sekund przed zadeklarowaniem routera jako nieosiągalny = 4*(Hello Interval), (domyślnie 4*10s=40s) musi się zgadzać pomiędzy sąsiadami! Designated Router 32-bit identyfikator routera DR w tej sieci jest to adres IP interfejsu routera w sieci (nie Router ID!) jeśli nie ma DR równy 0.0.0.0 Backup Designated Router identyfikator routera BDR w tej sieci jest to adres IP interfejsu routera w sieci (nie Router ID!) jeśli nie ma BDR równy 0.0.0.0 Neighbor identyfikatory routerów, od których otrzymano ważne pakiety Hello w ostatnim interwale Dead Interval funkcje służy do wykrywania sąsiadów o periodyczne wysyłanie pakietów OSPF Hello na wszystkich interfejsach (konfigurowalne przez administratora, w Cisco IOS domyślnie co 10 s) o jeśli pakiet Hello nie jest odbierany przez określony czas (domyślnie 40 s) router przestaje rozgłaszać połączenie do tego routera i zaczyna trasować pakiety danych z ominięciem tego routera w sieciach wielodostępowych (sieciach o więcej niż dwóch routerach) za pomocą protokołu Hello wybierany jest DR i BDR o pakiety Hello routera zawierają jego priorytet (priorytet konfigurowany jest dla każdego interfejsu, w Cisco IOS wartość 1-255) o w sieciach wielodostępowych nierozgłoszeniowych (NBMA: Non-Broadcast Multi Access) administrator musi skonfigurować IP należące do DR w każdym sąsiedzie, albo wprowadzić listę sąsiadów do DR do wysyłania pakietów Hello OSPF używa zarówno adresów multicastowych (w medium rozgłoszeniowym, 224.0.0.5 i 224.0.0.6) jak i transmisji pojedynczej (w medium wielodostępnym nierozgłoszeniowym) protokół Hello działa odmiennie w sieciach rozgłoszeniowych i sieciach NBMA (Non- Broadcast Multi Access)
LAN 18 Type = 2 pakiet Database Description Packet (DDP) przenosi tylko nagłówki wiadomości LSA będących w bazie topologii (nie cała baza, tylko najświeższe) ponieważ baza topologii może być duża, informacje są przenoszone w wielu wiadomościach DDP protokół wymiany DDP między routerami (nazywany exchange ) jest asymetryczny najpierw wybierany jest router master i slave, dopiero wtedy routery wymieniają opisy swoich baz stanu łącz router slave potwierdza każdą wiadomość opisu bazy - następny pakiet opisu bazy jest wysyłany dopiero po potwierdzeniu poprzedniego Network Mask Interface MTU Options 0 0 0 0 0 I M S Database Sequence Number Link State Age Options Link StateType Link State ID Advertising Router Sequence Number Checksum Length Link State Age Options Link StateType Link State ID Advertising Router Sequence Number Checksum Length 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Interface MTU 16-bit rozmiar w bajtach największego datagramu IP, który może być wysłany przez interfejs bez fragmentacji Options 8-bit opisuje opcjonalne możliwości routera I M Init bit =1: pierwszy z pakietów opisu bazy More packets =1: są następne pakiety DDP
LAN 19 S master/slave =1: wiadomość przesłana przez master, inaczej przez slave Database Sequence Number numer sekwencyjny opisu bazy unikalna wartość początkowa (wskazywana bitem I) ustawiana jest przez router master w pierwszym pakiecie DDP wartość ta jest inkrementowana w kolejnych pakietach DDP aż do całkowitego wysłania opisu bazy pola od Link Age do Length to nagłówek LSA opisujący jedno łącze dla każdego łącza ten zakres pól jest powtarzany jeden po drugim Type =3 pakiet LSR: Link State Request jest wysyłana, gdy po wymianie z sąsiadem wiadomości opisu bazy, router wykrywa, że część jego łączy w bazie jest nowa wiadomość specyfikuje listę łączy (jedno pod drugim) nie posiada pól typu: numer sekwencyjny, suma kontrolna i wiek, ponieważ router, który pyta nie potrzebuje określonej instancji LSA, tylko aktualną sąsiad odpowiada najnowszą informacją, jaką posiada o tych łączach jeśli lista żądań jest długa, wysyłana jest więcej niż jedna wiadomość Link State Type Link State ID Advertising Router Link State Type Link State ID Advertising Router 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Link State Type specyfikuje który typ LSA jest oczekiwany: Router LSA, Network LSA, Link State ID zależy od typu LSA Advertising Router Router ID routera wysyłającego to LSA
LAN 20 Type = 4 pakiet LSU: Link State Update zawiera jedną lub więcej LSA (ograniczeniem jest MTU) użycie o przy rozgłaszaniu LSA: emisja uaktualnienia dokonuje się, jeśli zajdzie zmiana stanu łącza o przy odpowiedzi na zapytania LSR pakiety LSU są przenoszone przez kolejne routery w całej sieci ciało wiadomości składa się z listy wiadomości LSA (każde LSA zaczyna się 20- bajtowym nagłówkiem) Number of LSA Link State Advertisement 1 Link State Advertisement 2 Link State Advertisement N 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Type = 5 pakiet LSAck: Link State Acknowledgement jest narzędziem zapewnienia niezawodności dostarczenia LSA w pojedynczym pakiecie tego typu może być potwierdzone wiele wiadomości LSA w ciele wiadomości jest lista nagłówków LSA (pod tym względem format jest podobny do pakietu wiadomości opisu bazy - DDP), które są potwierdzane LSA Header 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LAN 21 LSA LSA: Link State Advertisement przenoszone są w pakiecie OSPF Typ = 4 (LSU: Link State Update) zamiast jednej dużej wiadomości LSA, rozgłaszanych jest wiele małych LSA (tzw. fragmentacja LSA) o pojedynczych łączach (tylko, gdy zachodzi zmiana stanu danego łącza) LSA składa się z nagłówka i ciała wiadomości nagłówek LSA jest taki sam dla wszystkich typów LSA i przenoszony jest przez pakiet OSPF Typ = 4 (LSU) i Typ = 2 (DDP) Link State Age Options Link StateType Link State ID Advertising Router Sequence Number Checksum Length 0 bit 31 LSA jest unikalnie identyfikowane przez pola Link State Type: każdy typ LSA ma oddzielny format Link State ID: identyfikuje LSA, zależy od typu łącza (patrz tabelka poniżej) Advertising Router: Router ID routera, który jest źródłem LSA ponieważ w domenie kolizyjnej może współistnieć wiele instancji LSA rozróżnia się je za pomocą pól Link State Age Link State Sequence Number Link State Checksum: suma kontrolna LSA obejmująca nagłówek LSA z wyłączeniem pola Link State Age, sposób obliczenia według RFC 1146 Length: długość LSA wraz 20 bajtowym nagłówkiem Link State Sequence Number pole 32-bit jest używane do wykrywania starych i zduplikowanych rozgłoszeń stanu łącza jest inkrementowane tylko po zmianie LSA, konsekwencje o każdy router musi sprawdzać, czy dane LSA zostało już wyemitowne o zapobiega burzy rozgłoszeń LSA po osiągnięciu wartości maksymalnej router czeka godzinę, aby LSA zestarzało się w bazie topologii - wtedy resetuje pole i znów rozgłasza LSA jeśli dwoma drogami dociera do routera LSA o takim samym numerze sekwencyjnym, to późniejsze jest odrzucane
LAN 22 Link State Age 16-bit jest ustawiane na wartość zero sekund przez router emitujący LSA (czas od chwili powstania) jest inkrementowane przez każdy router, przez który przechodzi LSA o wartość InfTransDelay jest zwiększana o liczbę sekund także podczas przechowywania LSA w bazie topologii nigdy nie jest zwiększane ponad wartość MaxAge (60 min) LSA mające wiek MaxAge o nie jest używane do obliczania tablicy routingu o jest traktowane jako najbardziej aktualne o jest natychmiast rozgłaszane Options znaczenie identyczne jak w protokole Hello znaczenie niektórych pól nagłówka LSA: typ łącza połączenie punkt-punkt do innego routera połączenie do sieci tranzytowej połączenie do sieci końcowej (stub) łącze wirtualne znaczenie pola LINK STATE ID Router ID sąsiada IP interfejsu routera DR (pod)sieć IP Router ID sąsiada zawartość pola LINK STATE DATA adres IP interfejsu routera-źródła LSA w stronę sieci adres IP interfejsu routera-źródła LSA w stronę sieci prefix IP sieci lub maska sieciowa MIB-II ifindex (adres IP) dla interfejsu routera-źródła LSA decyzja, czy rozgłaszać LSA tylko, jeśli otrzymany pakiet LSA o danej tożsamości jest nowszy nowszy jest ten, który ma większy numer sekwencyjny, jeśli taki sam: ten, który ma większą wartość sumy kontrolnej, jeśli taka sama: rozstrzyga wartość pola Link State Age o jeśli jedno z LSA ma wartość MaxAge, to jest uważane za nowsze o młodszy wiek, ale tylko, jeśli różnica wieku jest większa niż MaxAgeDiff (domyślnie 15 min) okresowe odświeżenie LSA: co czas LSRefreshTime (Cisco IOS, domyślnie 30 min)
LAN 23 LSA typ 1 = Router LSA V E B pochodzą od wszystkich routerów w danym obszarze i opisują stany ich interfejsów, są rozgłaszane w pojedynczym obszarze (nie dalej) w Ethernecie są wysyłane tylko do routera DR (Designated Router) ogłaszają zsumaryzowane stany łączy routera w obszarze (prowadzące do innych routerów lub sieci) zawiera o Link State ID = zależy od typu sieci (patrz tabelka powyżej) o Router ID routera rozgłaszającego, zazwyczaj adres loopback o Link State Data: liczba łączy i typ routera (32 bity) o opis łącza Link Type: typ łącza (P2P, stub, ) identyfikator sąsiedniego routera adres interfejsu routera metryka łącza dla domyślnego parametru TOS (Type of Service) inne metryki bit Virtual Link Endpoint =1, jeśli router będący źródłem LSA terminuje połączenie wirtualne a obszar jest tranzytowy bit External =1, jeśli router będący źródłem LSA jest ASBR bit Border =1, jeśli router będący źródłem LSA jest ABR Number of ToS liczba wyspecyfikowanych metryk ToS dla łącza dla każdej doklejana jest linia (ToS 00000000 ToS Metric) obecnie nie używane Number of ToS=0, brak też linii (ToS 00000000 ToS Metric) Metric koszt interfejsu, który wprowadza łącze LS header 0 0 0 0 0 V E B 0 0 0 0 0 0 0 0 Number of Links Link State ID Link State Data Link Type Number of ToS Metric ToS 0 0 0 0 0 0 0 0 ToS Metric ToS 0 0 0 0 0 0 0 0 ToS Metric 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LAN 24 LSA typ 2 = Network LSA są używane w sieciach wielodostępowych (rozgłaszanych lub NMBA) np. Ethernecie są rozgłaszane przez router DR (zazwyczaj interfejs loopback) w pojedynczym obszarze, w którym powstają opisują wszystkie routery w jednym obszarze (o pełnej przyległości do DR) oraz DR/BDR + jak dostać się do innych obszarów odległość od sieci do wszystkich dołączonych routerów wynosi 0 (przez to pola metryk w Network LSA nie muszą być specyfikowane) w nagłówku LSA pole Link State ID = adres IP routera DR (interfejsu dołączonego do LAN) zawiera o Network Mask: maska sieciowa dla tego segmentu rozgłoszeniowego o Attached Router: lista wszystkich identyfikatorów routerów w segmencie rozgłoszeniowym liczba zawartych routerów wynika z pola długość nagłówka LSA LS header Network Mask Attached Router Attached Router 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LSA typ 3 = Summary Network LSA są generowane tylko przez routery ABR i rozgłaszane w pojedynczym obszarze rozgłaszają sieci zewnętrzne względem obszaru w nagłówku LSA pole Link State ID = adres IP rozgłaszanej sieci nigdy nie są przekazywane przez ABR tylko ABR przepisuje otrzymane LSA i jako następny przeskok wpisuje siebie, następnie wysyła nowy LSA typ 3 do innych obszarów, do których jest podłączony sumaryzują sieci obecne w jednym obszarze dla innych obszarów ukrywają szczegóły topologi (LSA typ 1 i LSA typ 2) przed innymi obszarami zawierają trasy do innych obszarów (ale w AS): sieć docelowa + maska podsieci + metryka (jest to informacja routingu wektora odległości) trasy takie etykietowane są w tablicy routingu jako trasy międzyobszarowe jeśli rozgłaszana jest trasa domyślna w nagłówku LSA pole Link State ID = 0.0.0.0, a pole Network Mask = 0.0.0.0 pole ToS i ToS Metric jest opcjonalne (Cisco wspiera tylko ToS=0) LS header Network Mask 0 0 0 0 0 0 0 0 Metric ToS ToS Metric 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LAN 25 LSA typ 4 = ASBR Summary LSA źródłem są routery ABR (router rozgłaszający = ABR Router ID) i są rozlewane przez obszar rdzeniowy do innych routerów ABR rozgłaszają (osobno dla każdego celu) trasy do routerów ASBR (Link State ID = ASBR Router ID) nie są rozgłaszane do obszarów końcowych (stub) i obszarów TS (Totally Stubby) w nagłówku LSA pole Link State ID = Router ID rozgłaszanego routera ASBR prawie identyczne z LSA typ 3 (z wyjątkiem tego, że celem jest ASBR, a nie sieć) zawiera o identyfikatory routerów ASBR o maska 0.0.0.0 (trasa główna) o metryka pole ToS i ToS Metric jest opcjonalne Cisco wspiera tylko ToS=0 LS header 0.0.0.0 0 0 0 0 0 0 0 0 Metric ToS ToS Metric 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LSA typ 5 = AS External LSA źródłami są routery ASBR rozgłaszają (każda jedną) trasy zewnętrzne i trasę domyślną (LINK State ID = 0.0.0.0, maska = 0.0.0.0) zawiera o adres sieci zewnętrznej (poza domeną OSPF) + maska sieci zewnętrznej o metryka o następny przeskok (zewnętrzny, nie ASBR) są rozgłaszane w całym AS (oprócz obszarów końcowych i TSA) źródłem tras zewnętrznych w routerze brzegowym jest protokół BGP pole: E-bit o 0=metryka jest porównywalna z metryką OSPF (może być dodana dla wyliczenia kosztu) o 1= metryka nie jest porównywalna z metryką OSPF i powinna być ustalona na większą niż dowolna trasa wewnętrzna oznaczenie w tablicy routingu (Cisco): E1 (jeśli zawiera koszt zewnętrznych + wewnętrzych tras do celu), E2 (jeśli nie zawiera kosztu, domyślnie) tworzone komendą redistribute w instancji routingu OSPF Link State ID = IP sieci zewnętrznej (celu) router rozgłaszający = ASBR ID Forwarding Address: adres, do którego będą przenoszone dane; =0.0.0.0 jeśli następnym przeskokiem jest ASBR
LAN 26 jeśli rozgłaszana jest trasa domyślna w nagłówku LSA pole Link State ID = 0.0.0.0, a pole Network Mask = 0.0.0.0 metryka ToS: External Route Tag: nie używane przez OSPF E: typ metryki, E1/E2 E 0 0 0 0 0 0 0 LS header Network Mask Metric Forwarding Address External Route Tag E ToS ToS Metric Forwarding Address External Route Tag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LSA typ 7 = NSSA external LSA to zewnętrzne trasy importowane przez ASBR w obszarze NSSA router NSSA sygnalizuje, że jest NSSA ASBR poprzez ustawienie bitu E w swoim LSA typ 1 ( Router LSA) może być propagowany do innych obszarów przez routery ABR jako LSA typ 5 struktura taka sama jak w LSA typ 5 Forwarding Address o następny przeskok dla sieci pomiędzy NSSA a przyległym AS (jeśli ta sieć jest rozgłaszana jako trasa wewnętrzna) o Router ID routera NSSA-ASBR (w przeciwnym razie) inne LSA: LSA typ 6 = Group Membership LSA zdefiniowane dla rozszerzenia multicastowego do OSPF (MOSPF: Multicast OSPF) wspierane przez niektórych producentów obecnie nie używane LSA typ 8 = External Attribute LSA w OSPFv2 do transportu informacji BGP w domenie OSPF: sieci docelowe byłyby przenoszone w pakietach LSA typ 5, a ich atrybuty BGP w LSA typ 8 alternatywa dla ibgp większość implementacji OSPF nie wspiera tej funkcji w OSPFv3 przenosi listę adresów link-local IPv6
LAN 27 LSA będące rozszerzaniami OSPF dla aplikacji: LSA typ 9 OSPFv2 Opaque LSA RFC 2370 OSPFv3 Intra-Area-Prefix LSA zawiera prefiksy sieci obszarów końcowych i tranzytowych zasięg: łącze (czyli sieć, link-local) LSA typ 10 = Opaque LSA RFC 2370 zawiera informacje, które powinny być rozgłaszane przez inne routery, nawet jeśli router sam nie rozumie tej informacji zazwyczaj do rozszerzeń OSPF w kierunku inżynierii ruchu, rozgłaszania dodatkowych informacji ponad metrykę np. pasmo, kolor itp. zasięg: obszar (area-local) LSA typ 11 = Opaque LSA RFC 5250 rozgłaszany wszędzie oprócz obszarów końcowych (stub) nieprzeźroczysty ekwiwalent LSA Typ 5 ( External LSA ) protokoły OSPF i używane przez nie pakiety OSPF protokół\pakiet Hello DDP LSR LSU LSAck Hello X wymiana baz (exchange) X X X X zalewanie LSA (flooding) X X wyliczanie tablicy routing (działanie algorytmu SPF na grafie łącz w baize topologii) trasy wewnątrzobszarowe: przez działanie algorytmu SPF w każdym obszarze trasy międzyobszarowe: przez sprawdzanie wiadomości summary LSA (jeśli router dołączony jest do wielu obszarów [ABR], sprawdzane jest tylko summary-lsa z obszaru 0.0.0.0) w routerach ABR połączonych z jednym/więcej obszarami tranzytowymi (nie rdzeniowym): przez sprawdzenie summary-lsa w obszarze tranzytowym, żeby sprawdzić czy istnieją lepsze ścieżki niż znalezione wcześniej trasy do celów zewnętrznych: przez badanie wiadomości AS external LSA
LAN 28 zalety OSPF protokół standardowy szybkie, deterministyczne określenie tras ułatwia oddzielną administrację różnych części Internetu ułatwia ukrywanie szczegółów obszarów szczegółowa metryka można zdefiniować ścieżkę preferowaną przez przypisanie kosztów do interfejsów można izolować źle skonfigurowane lub źle funkcjonujące routery efektywne użycie informacji z innych protokołów routingu wady OSPF protokoły stanu łącza zużywają duże ilości pamięci na bazę topologii (każdy router utrzymuje mapę całej sieci) przy częstych zmianach w sieci routery stanu łącza zużywają dużo pasma do przesyłania LSA o każdej zmianie po otrzymaniu nowej wiadomości LSA router musi uruchamiać algorytm SPF i generować nową tablicę routing, co silnie obciąża CPU OSPF dla IPv6 = OSPFv3 mechanizmy fundamentalne protokołu OSPF (zalewanie LSA, wybór DR/BDR, obszary, obliczanie tablicy routingu z bazy łącz za pomocą algorytmu SPF) pozostają nie zmienione nowe LSA do przenoszenia prefiksów IPv6 o Inter-Area-Prefix-LSA (ekwiwalent LSA typ 3) o Inter-Area-Router-LSA (ekwiwalent LSA typ 4) o Intra-Area-Prefix-LSA (LSA typ9: ekwiwalent LSA typ 1 i LSA typ 2) z protokołu OSPF wyeliminowano uwierzytelnienie, uwierzytelniając same pakiety IPv6 przez nagłówki AH lub ESP