User Tools

Site Tools


sk1:cisco_ospf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sk1:cisco_ospf [2016/04/25 13:34] – utworzono jkonczaksk1:cisco_ospf [2020/05/12 10:50] (current) – [[Ekstra] Inne] jkonczak
Line 3: Line 3:
 === Wstęp === === Wstęp ===
  
-Protokół stanu łącza <html><small></html>(wewnątrz obszaru. Między obszarami - wektora odległości.)<html></small></html>+Protokół stanu łącza <html><small></html>(wewnątrz obszaru)<html></small></html>
  
 OSPF w wersji 2 działa tylko na IPv4, w wersji wersja 3 też na IPv6.  OSPF w wersji 2 działa tylko na IPv4, w wersji wersja 3 też na IPv6. 
  
 Każdy router konstruuje mapę sieci. Używa algorytmu dijkstry dla znajdowania najkrótszych ścieżek. Każdy router konstruuje mapę sieci. Używa algorytmu dijkstry dla znajdowania najkrótszych ścieżek.
 +
 +=== LSA ===
 +
 +//Link-State Advertisement// (LSA) to pojedyncza jednostka informacji o sieci używana przez OSPF http://en.wikipedia.org/wiki/Link-state_advertisement \\
 +Przykładowo LSA może nieść informację o:
 +  * połączeniach wybranego routera OSPF z innymi routerami OSPF
 +  * sieciach IP do których należy router
 +  * <html><small>o trasach z innego obszaru</small></html>
 +  * <html><small>trasach spoza OSPF</small></html>
 +
  
 === Działanie === === Działanie ===
Line 13: Line 23:
 Routery, wymieniając wiadomości //Hello//, nawiązują relację z sąsiadami. 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 (tylko ID).+Następnie przesyłają wzajemnie w wiadomościach //database descriptions// (//DD//) informacje jakie znają połączenia, routery etc. (tylko ID wszystkich znanych LSA).
  
-Po transferze żądają wiadomością //Link-State Request// nieznanych sobie wiadomości LSA i otrzymują je w wiadomościach //Link-State Update//.+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. Komunikat LSU jest rozgłaszana epidemicznie do wszystkich sąsiadów. +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.
- +
-Wszystkie komunikaty poza Hello nazywa się zbiorczo nazwą //Link-State Advertisement//  (LSA; http://en.wikipedia.org/wiki/Link-state_advertisement).+
  
 <html><small></html> <html><small></html>
-Żeby zapobiec zalewaniu sieci pakietami LSA, 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. +Ż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 najniż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.+ 
 +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.
 <html></small></html> <html></small></html>
  
Line 47: Line 56:
  
 Najpierw należy wejść do trybu konfiguracji (znak zachęty: ''(config)#''). Najpierw należy wejść do 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)#'' +  * ''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. Dodanie pierwszej sieci włącza proces. \\ 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''  +    * ''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'' 
-    * ''default-information originate'' - włącza redystrybucję trasy domyślnej  +    * <html><small></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 1000''<html></small></html> 
-    * ''redistribute <co rozgłaszać>'' - domyślne rozgłaszanie tras podanego typu - połączonych, statycznych lub z innego procesu/protokołu routingu. 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 +    * <html><small></html>''default-information originate'' - włącza redystrybucję trasy domyślnej <html></small></html> 
-W trybie konfiguracji interface'u można ręcznie ustalić koszt łącza:+    * <html><small></html>''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<html></small></html> 
 +    * <html><small></html>''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 FastEthernet 0/0: \\ ''passive-interface FastEthernet 0/0'' \\ Przykład 2 - pozwala na połączenia OSPF tylko na Serial 0/2/0-1  \\ ''passive-interface default'' \\ ''no passive-interface Serial/0/2/0'' \\ ''no passive-interface Serial/0/2/1''<html></small></html> 
 + 
 +<html><small></html> 
 +W trybie **konfiguracji interface'u** można ręcznie ustalić koszt łącza:
   * ''bandwidth <prędkość>'' - zmiana postrzeganej przez protokoły routingu prędkości   * ''bandwidth <prędkość>'' - zmiana postrzeganej przez protokoły routingu prędkości
   * ''ip ospf cost <koszt>'' - sztuczna zmiana kosztu danego łącza dla OSPF   * ''ip ospf cost <koszt>'' - sztuczna zmiana kosztu danego łącza dla OSPF
 +<html></small></html>
  
  
Line 61: Line 75:
   * ''show ip protocols''    * ''show ip protocols'' 
   * ''show ip ospf'' - informacje o działających procesach 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 neighbor'' - informacje o sąsiadach
   * ''show ip ospf database'' - podsumowane dane o połączeniach   * ''show ip ospf database'' - podsumowane dane o połączeniach
-  * ''show ip ospf database router'' - pełne 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 
  
 <html><small></html>   <html><small></html>  
Line 74: Line 90:
 <html></small></html> <html></small></html>
  
-http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_ospf/configuration/12-4t/iro-12-4t-book/iro-cfg.html +++++ Przykładowe wyniki poleceń diagnostycznych | 
-===== Inne ===== +++ schemat sieci: | {{ :sk1:ospf-example-net.png?700 |}}++ 
-Quaqqa (http://www.nongnu.org/quagga/) - implementacja wielu protokołów routingu, w tym OSPFv2, dla systemu Linux+<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> 
 +++++ 
 + 
 +{{:sk1:ospf.pcap.gz|Przykładowa wymiana pakietów protokołu OSPF}} 
 + 
 +https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_ospf/configuration/15-mt/iro-15-mt-book/iro-cfg.html 
 +===== [Ekstra] Inne ===== 
 +Implementacje wielu protokołów routingu, w tym OSPFv2, dla systemu Linux: 
 +  * 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/ 
sk1/cisco_ospf.1461591258.txt.gz · Last modified: (external edit)