przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
bio-sk
»
ospf
bio-sk:ospf
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
===== [ekstra] Sposoby i protokoły tworzenia tablicy tras ===== Sposoby uzyskiwania informacji o trasach: <html><div style="margin-top:-1.2em"></div></html> * ręczna konfiguracja * użycie protokołów routingu Protokoły trasowania można podzielić ze względu na obszar działania, w odniesieniu do [[https://en.wikipedia.org/wiki/Autonomous_system_(Internet)|obszarów autonomicznych (AS)]]: <html><div style="margin-top:-1.2em"></div></html> * [[https://en.wikipedia.org/wiki/Interior_gateway_protocol|wewnętrzne]], IGP - Interior Gateway Protocol, (mniej więcej: wyznaczające trasy wewnątrz jednej firmy / organizacji) – np. RIP, EIGRP, OSPF, IS-IS * [[https://en.wikipedia.org/wiki/Exterior_gateway_protocol|zewnętrzne]], EGP - Exterior Gateway Protocol, (mniej więcej: wyznaczające trasy w "całym internecie") – obecnie (jedynym) używanym jest BGP <html><div style="margin-top:-1.2em"></div></html> albo ze względu na sposób działania: <html><div style="margin-top:-1.2em"></div></html> * [[https://en.wikipedia.org/wiki/Distance-vector_routing_protocol|wektora odległości]] (distance vector), np. RIP, IGRP; urządzenia wymieniają się z sąsiadami tylko informacjami do jakich sieci i z jakim kosztem same potrafią się dostać; liczą tylko koszty dotarcia do sieci * [[https://en.wikipedia.org/wiki/Link-state_routing_protocol|stanu łącza]] (link state), np. OSPF, IS-IS; urządzenia wymieniają się z sąsiadami informacjami o całej topologii sieci; budują pełną mapę sieci i używając [[https://en.wikipedia.org/wiki/Shortest_path_problem#Algorithms|algorytmu znajdowania najkrótszej ścieżki w grafie]] wyznaczają trasy * [[https://en.wikipedia.org/wiki/Path-vector_routing_protocol|wektora ścieżki]] (path-vector), np. BGP; urządzenia wymieniają się z sąsiadami informacjami do jakich sieci i jaką trasą potrafią się dostać; z tego wybierają najkorzystniejszą trasę; to podejście eliminuje część wad protokołów wektora odległości i lepiej radzi sobie z dużymi sieciami niż protokoły stanu łącza <html><div style="margin-top:-1.2em"></div></html> https://en.wikipedia.org/wiki/Routing#Topology_distribution ===== OSPF (Open Shortest Path First) ===== ==== Wstęp ==== OSPF to protokół trasowania (czyli tworzenia tablicy tras), do użycia wewnątrz obszaru autonomicznego (IGP), używający podejścia stanu łącza. Każdy router konstruuje mapę sieci i używa algorytmu Dijkstry dla znajdowania najkrótszych ścieżek. OSPFv2 działa tylko dla IPv4, OSPFv3 działa też dla IPv6. ==== [extra] Działanie OSPF ==== === LSA === Pojedyncza jednostka informacji o sieci używana przez OSPF nazywa się //[[http://en.wikipedia.org/wiki/Link-state_advertisement|Link-State Advertisement]]// (LSA). Przykładowo LSA może nieść informację o: <html><div style="margin-top:-1.2em"></div></html> * połączeniach wybranego routera OSPF z innymi routerami OSPF * sieciach IP do których należy router * trasach spoza OSPF * <small>o trasach z innego obszaru</small> <html><div style="margin-top:-1.2em"></div></html> Protokół OSPF będzie dążył do przesłania do każdego urządzenia (<small>w obszarze</small>) wszystkich LSA, tak by każde urządzenie miało ten sam zbiór (bazę) informacji o sieci. === Kolejne kroki protokołu === Routery, wymieniając wiadomości //Hello//, nawiązują relację z sąsiadami. Następnie przesyłają wzajemnie w wiadomościach //database descriptions// (//DD//) informacje jakie znają połączenia, routery etc.. Komunikaty DD zawierają tylko identyfikatory wszystkich znanych LSA. Po transferze żądają nieznanych sobie wiadomości (LSA) wysyłając komunikat //Link-State Request// i otrzymują odpowiedź we wiadomościach //Link-State Update//. Po każdej wykrytej zmianie router wysyła komunikat LSU z opisem zmian (LSA). Komunikat LSU jest rozgłaszana epidemicznie do wszystkich sąsiadów. <small> Żeby zapobiec zalewaniu sieci pakietami protokołu OSPF, w jednej domenie rozgłoszeniowej wybiera się //router desygnowany// i zapasowy router desygnowany (DR i DRother w Cisco) i dopuszcza się tylko komunikację do / z routera desygnowanego. OSPF do odróżniania routerów wykorzystuje //identyfikator routera// - w Cisco to domyślnie najwyższy przypisany do urządzenia adres IP. Na router desygnowany wybierany jest router z najniższym priorytetem, jeśli priorytety są równe (a domyślnie są) - z najmniejszym identyfikatorem. </small> === Adresy IP używane przez OSPF === OSPF w miarę możliwości (technicznych sieci) używa //IP-multicast//, wykorzystując dwa adresy: <html><div style="margin-top:-1.2em"></div></html> * 224.0.0.5 - wszystkie routery - All OSPF Routers * 224.0.0.6 - desygnowane routery - All DRouters === Obszary === <small> Przy konfiguracji OSPF pozwala podzielić sieć na obszary (areas). Routing w każdym obszarze jest wykonywany osobno, wykorzystując algorytm Dijkstry, między obszarami wymieniane są gotowe trasy. \\ Obszar 0 (//area 0//) stanowi szkielet (backbone), wszystkie inne obszary muszą mieć z nim łączność. Router łączący dwa obszary nazywa się //area border router// (ABR). </small> === Więcej … === {{:sk1:ospf.pcap.gz|Przykładowa wymiana pakietów protokołu OSPF}} Więcej o OSPF doczytasz tutaj: [[http://en.wikipedia.org/wiki/Open_Shortest_Path_First|[wikipedia]]], [[http://technet.microsoft.com/en-us/library/cc940481.aspx|microsoft]] (nawiguj się w menu z lewej strony między podstronami), [[http://www.cs.put.poznan.pl/mlibuda/OSPF_Linux.pdf|stare materiały z PP]], [[https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_ospf/configuration/15-mt/iro-15-mt-book/iro-cfg.html|Cisco]]. ===== OSPF na routerach Cisco ===== === Konfiguracja === Z trybu konfiguracji (znak zachęty: ''(config)#''): * ''router ospf <processId>'' wejście do konfiguracji procesu OSPF o podanym numerze. \\ Numer procesu jest lokalny - stąd można wybrać dowolny, np: \\ ''router ospf 1'' \\ Prompt zmieni się na ''(config-router)#'' * ''network <adres_ip> <odwrócona_maska> area <obszar>'' \\ dodaje sieci pasujące do wzorca do rozgłaszanych sieci oraz aktywuje na nich wymianę komunikatów OSPF. \\ Dodanie pierwszej sieci włącza proces OSPF. \\ Przykład: do dodania sieci 192.168.0.0/24 do obszaru 0 należy wpisać: \\ ''network 192.168.0.0 0.0.0.255 area 0'' \\ Można też podać "cały świat", który dopasuje się do każdej bezpośrednio podłączonej sieci: \\ ''network 0.0.0.0 255.255.255.255 area 0'' \\ <html> <div style="margin-left:-1em;font-size: 75%">Dodatkowe komendy:</div> </html> * ''auto-cost reference-bandwidth <prędkość_w_Mbps>'' ustawia referencyjną prędkość używaną do automatycznego obliczania kosztów połączenia, np:\\ ''auto-cost reference-bandwidth 10000'' * ''default-information originate'' włącza redystrybucję trasy domyślnej * ''redistribute <co rozgłaszać>'' włącza rozgłaszanie tras podanego typu – połączonych, statycznych lub z innego procesu/protokołu routingu. Uwaga: nie włącza OSPF na pasujących sieciach – tylko dodaje je do rozgłaszanych. Np: \\ ''redistribute connected subnets'' wszystkie bezpośrednio podłączone sieci \\ ''redistribute static subnets'' wszystkie trasy statyczne \\ ''redistribute eigrp subnets'' wszystkie trasy dostarczone przez protokół eigrp * ''passive-interface <interfejs>|default'' wyłącza nawiązywanie połączeń OSPF na wybranym interfejsie, lub domyślnie na wszystkich interfejsach. \\ Przykład 1 – wyłącza wysyłanie i odbiór OSPF Hello na interfejsie 'GigabitEthernet 5': \\ ''passive-interface GigabitEthernet 5'' \\ Przykład 2 - pozwala na połączenia OSPF tylko na 'GigabitEthernet 4' i 'GigabitEthernet 5' \\ ''passive-interface default'' \\ ''no passive-interface GigabitEthernet 4'' \\ ''no passive-interface GigabitEthernet 5'' * ''intreface …'' / ''interface range …'' wchodzi do konfiguracji interfejsu * ''bandwidth <prędkość>'' zmiana postrzeganej przez protokoły routingu prędkości * ''ip ospf cost <koszt>'' sztuczna zmiana kosztu danego łącza dla OSPF === Diagnostyka === W trybie uprzywilejowanym: * ''show ip protocols'' pokazuje działające protokoły, w tym OSPF * ''show ip ospf'' informacje o działających procesach ospf * ''show ip ospf interface'' informacje o stanie OSPF na interfejsach - koszt, sąsiedzi, lokalny identyfikator etc. * ''show ip ospf neighbor'' informacje o sąsiadach * ''show ip ospf database'' podsumowane dane o połączeniach * ''show ip ospf database network'' podsumowane dane o sieciach łączących routery OSPF * ''show ip ospf database router'' pełne dane o routerach i ich połączeniach * ''show ip ospf rib'' trasy wyliczone przez OSPF i ich koszty (w tym trasy które nie były najkrótsze) <small> Każdemu protokołowi routingu Cisco przypisuje wartość AD ([[http://en.wikipedia.org/wiki/Administrative_distance|administrative distance]]). Cisco wybiera trasy biorąc pod uwagę wpierw trasy z najmniejszą AD, potem porównuje dopiero koszt. Zapis w tablicy routingu: [AD/koszt], np: |''O 10.1.3.0/24 [110/65] via 10.3.4.3, 00:49:11, FastEthernet0/0'' |AD:110, koszt:65 | |''D 10.0.2.0/24 [90/2297856] via 10.2.4.2, 00:09:38, Serial0/0'' |AD:90, koszt:2297856| |''C 10.4.5.0/24 is directly connected, FastEthernet0/1'' |AD:1 | </small> ++++ Przykładowe wyniki poleceń diagnostycznych | ++ schemat sieci: | {{ :sk1:ospf-example-net.png?700 |}}++ <html><pre> <b>R2#show ip route</b> Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set O <span title="Cel" style="background-color:rgba(255,255,0,0.4)">192.168.4.0/24</span> [110/4] via <span title="Następny skok" style="background-color:rgba(255,255,0,0.4)">192.168.5.1</span>, 00:03:34, GigabitEthernet0/0 C 192.168.5.0/24 is directly connected, GigabitEthernet0/0 <span title="Trasa do sieci do której router jest bezpośrednio połączony" style="background-color:rgba(255,0,0,0.4)">C</span> 192.168.6.0/24 is directly connected, GigabitEthernet1/0 <span title="Trasa do sieci poznanej za pośrednictwem OSPF" style="background-color:rgba(0,255,0,0.4)">O</span> 192.168.0.0/24 [110/66] via 192.168.5.1, 02:40:04, GigabitEthernet0/0 O 192.168.1.0/24 [110/65] via 192.168.5.1, 02:45:19, GigabitEthernet0/0 O 192.168.2.0/24 [<span title="AD" style="background-color:rgba(0,0,0,0.4)">110</span>/<span title="Metryka" style="background-color:rgba(0,255,255,0.4)">2</span>] via 192.168.5.1, 02:45:19, GigabitEthernet0/0 O 192.168.3.0/24 [110/3] via 192.168.5.1, 02:45:19, GigabitEthernet0/0 <b>R2#show ip protocols</b> Routing Protocol is "<span title="Użyty numer procesu"><b>ospf 1</b></span>" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID <span title="Identyfikator tego routera"><b>192.168.6.2</b></span> Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: <span title="Skonfigurowane zakresy adresów IP mające brać udział w OSPF">192.168.5.0 255.255.255.0 area 0</b></span> <span title="Skonfigurowane zakresy adresów IP mające brać udział w OSPF">192.168.6.0 255.255.255.0 area 0</b></span> Reference bandwidth unit is <span title="Referencyjna prędkość na podstawie której liczone są koszty łącz (=referencyjna prędkość / prędkość łącza)"><b>1000 mbps</b></span> Routing Information Sources: Gateway Distance Last Update <span title="Inne poznane routery wymieniające się wiadomościami OSPF"> 192.168.1.3 110 02:37:21 192.168.5.1 110 02:42:36 192.168.4.1 110 00:00:51 192.168.3.4 110 02:42:36</span> Distance: (default is 110) R2#show ip ospf interface GigabitEthernet0/0</b> GigabitEthernet0/0 is up, line protocol is up Internet Address 192.168.5.2/24, Area 0 Process ID 1, Router ID 192.168.6.2, Network Type BROADCAST, Cost: <span title="Rozgłaszany koszt tego łącza" style="background-color:rgba(255,0,0,0.2)">1</span> Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 192.168.5.1, Interface address 192.168.5.1 Backup Designated router (ID) 192.168.6.2, Interface address 192.168.5.2 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:01 Supports Link-local Signaling (LLS) Cisco NSF helper support enabled IETF NSF helper support enabled Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 4 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor <span title="Sąsiad znaleziony na tym łączu" style="background-color:rgba(255,0,0,0.2)">192.168.5.1</span> (Designated Router) Suppress hello for 0 neighbor(s) <b>R2#show ip ospf neighbor</b> Neighbor ID Pri State Dead Time Address Interface <span title="Identyfikator sąsiada" style="background-color:rgba(0,255,0,0.2)">192.168.5.1</span> 1 FULL/DR 00:00:37 <span title="Adres IP po którym ten router komunikuje się z sąsiadem" style="background-color:rgba(0,0,255,0.15)">192.168.5.1</span> GigabitEthernet0/0 <b>R2#show ip ospf database router</b> OSPF Router with ID (192.168.6.2) (Process ID 1) Router Link States (Area 0) LS age: 1473 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.1.3 Advertising Router: <b>192.168.1.3</b> LS Seq Number: 80000009 Checksum: 0x1AE5 Length: 60 Number of Links: 3 Link connected to: <b>another Router</b> (point-to-point) (Link ID) Neighboring Router ID: <b>192.168.5.1</b> (Link Data) Router Interface address: 192.168.1.3 Number of TOS metrics: 0 TOS 0 Metrics: <b>64</b> Link connected to: a <b>Stub Network</b> (Link ID) Network/subnet number: <b>192.168.1.0</b> (Link Data) Network Mask: <b>255.255.255.0</b> Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.0.0 (Link Data) Network Mask: 255.255.255.0 Number of TOS metrics: 0 TOS 0 Metrics: <b>1</b> LS age: 39 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.3.4 Advertising Router: 192.168.3.4 LS Seq Number: 80000008 Checksum: 0x3348 Length: 48 Number of Links: 2 Link connected to: a <b>Transit Network</b> (Link ID) Designated Router address: 192.168.3.4 (Link Data) Router Interface address: 192.168.3.4 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.2.4 (Link Data) Router Interface address: 192.168.2.4 Number of TOS metrics: 0 TOS 0 Metrics: 1 LS age: 114 Options: (No TOS-capability, No DC) LS Type: Router Links Link State ID: 192.168.4.1 Advertising Router: 192.168.4.1 LS Seq Number: 80000011 Checksum: 0x78FF Length: 60 Number of Links: 3 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.3.4 (Link Data) Router Interface address: 192.168.3.1 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.4.0 (Link Data) Network Mask: 255.255.255.0 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 127.0.0.1 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 LS age: 1856 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.5.1 Advertising Router: 192.168.5.1 LS Seq Number: 80000007 Checksum: 0x435E Length: 72 Number of Links: 4 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 192.168.1.3 (Link Data) Router Interface address: 192.168.1.1 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.1.0 (Link Data) Network Mask: 255.255.255.0 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.2.4 (Link Data) Router Interface address: 192.168.2.1 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.5.1 (Link Data) Router Interface address: 192.168.5.1 Number of TOS metrics: 0 TOS 0 Metrics: 1 LS age: 1749 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 192.168.6.2 Advertising Router: 192.168.6.2 LS Seq Number: 80000007 Checksum: 0xA544 Length: 48 Number of Links: 2 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.6.0 (Link Data) Network Mask: 255.255.255.0 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.5.1 (Link Data) Router Interface address: 192.168.5.2 Number of TOS metrics: 0 TOS 0 Metrics: 1 </pre></html> ++++ [[bio-sk:ospf-przykladowa-konfiguracja|(Długa) przykładowa konfiguracja i pełne wyniki poleceń diagnostycznych.]] ===== [Ekstra] OSPF na Linuksie ===== Implementacje wielu protokołów routingu dla systemu Linux (w tym OSPFv2), oferują: * FRRouting https://frrouting.org/ (kiedyś [[http://www.nongnu.org/quagga/|Quaqqa]], jeszcze wcześniej [[https://www.gnu.org/software/zebra/|Zebra]]) - składnia (prawie) identyczna z Cisco * Bird http://bird.network.cz/ Przykładowa konfiguracja FRRouting jest zawarta w powyższej przykładowej konfiguracji
bio-sk/ospf.txt
· ostatnio zmienione: 2024/11/28 13:20 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry