Sieci komputerowe Protokoły routingu dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl
Routing Information Protocol (RIP) Protokół RIP, (ang.) Routing Information Protocol Dokumentacja: standard IAB, RIP v1, RFC 1058, RIP v2, RFC 1721, 1722, 1723, 1724. RIP dla IPv6 RFC 2080. Protokół oparty o protokoły routingu Parc Universal Packet (PUP) Xerox, Xerox Network Systems (XNS). RIP korzysta z portu UDP 520. RIP dla IPv6 korzysta z portu UDP 521. Datagramy RIP mają maks. wielkość 512 bajtów. Protokół RIP, jest protokołem wykorzystującym do trasowania algorytm wektora odległości, metryka liczba skoków. Jeżeli liczba skoków przekroczy 15, RIP nie znajdzie trasy dla transmisji pakietów. 2
Cechy RIP v1 Typy pakietów RIP: RIP request, RIP response. Router wysyła pakiety (RIP response) do sąsiednich routerów: co 30 sek., na żądanie innego routera, gdy zmieni się tablica routingu. Cechy protokołu RIP: obsługa funkcji podzielonego horyzontu, funkcja równoważenia obciążenia tras (do 6 tras), Podzielony horyzont technika blokownia wysyłania danych z danego interfejsów, jeżeli dane te zostały odebrane z tego interfejsu. 3
Struktura pakietu RIP v1 Struktura pakietu RIP v1, pole: Command, 1 bajt, 1 request, 2 - response, version, 1 bajt, address family identifier, 2 bajty, (rodzina protokołów węzła, dla IP AFI=2), IP address, 4 bajty, (adres IP węzła w sieci), Metric, 4 bajty, (metryka trasy do węzła, wartość od 1-15). 0 1 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ command (1) version (1) must be zero (2) +---------------+---------------+-----------------------------------------------------+ address family identifier (2) must be zero (2) +-------------------------------+-----------------------------------------------------+ IP address (4) +--------------------------------------------------------------------------------------+ must be zero (4) +--------------------------------------------------------------------------------------+ must be zero (4) +--------------------------------------------------------------------------------------+ metric (4) +--------------------------------------------------------------------------------------+ 4
Cechy RIP v2 Cechy protokołu RIP v2: obsługa bezklasowego routingu (do tablicy routingu dodano maskę podsieci), posiada mechanizm uwierzytelnienia do zabezpieczenia aktualizacji tablic routingu, obsługa VLSM, zamiast adresów broadcastowych, używane są adresy grupowe (adresy mulitcastowe). obsługa ręcznego podsumowania tras. 5
Struktura pakietu RIP v2 Struktura pakietu RIP v2, RFC 1723, pole: Command, 1 bajt, 1 - request, 2 - response, Version, 1 bajt, wersja RIP, Address Family Identifier, 2 bajty, rodzina protokołów węzła, dla IP AFI=2, Route Tag, 2 bajty, znacznik trasy, służy do rozróżnienia tras wyznaczonych przez RIP w domenie RIP lub importowane przez RIP trasy wyznaczone przez inne protokoły routingu, IP address, 4 bajty, adres IP węzła wejściowego, Subnet Mask, 4 bajty, maska podsieci, (IP_ odbiorcy) & (maska podsieci) = (adres sieci docelowej), Next Hop, 2 bajty, adres IP routera następnego skoku, Metric, 4 bajty, metryka trasy do węzła, wartość od 1-15. 0 1 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Command (1) Version (1) unused +---------------+---------------+-----------------------------------------------------+ Address Family Identifier (2) Route Tag (2) +-------------------------------+------------------------------------------------------+ IP Address (4) +---------------------------------------------------------------------------------------+ Subnet Mask (4) +---------------------------------------------------------------------------------------+ Next Hop (4) +---------------------------------------------------------------------------------------+ Metric (4) +---------------------------------------------------------------------------------------+ 6
Struktura pakietu RIP v2 Struktura nagłówka uwierzytelnienia RIP v2, pole: Command, 1 bajt, (1 request, 2 - response), Version, 1 bajt, Address family identifier, 2 bajty, wartość 0xFFF (dec 4095), Authentication Type, 2 bajty, typ uwierzytelnienia, wartość 2, oznacza uwierzytelnienie hasłem, Authentication, 16 bajtów, hasło. 0 1 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Command (1) Version (1) unused +---------------+---------------+-----------------------------------------------------+ 0xFFFF Authentication Type (2) +-------------------------------+------------------------------------------------------+ ~ Authentication (16) ~ +---------------------------------------------------------------------------------------+ 7
Enchanced Iterior Gateway Routing Protocol Protokół EIGRP, (ang.) Enchanced Iterior Gateway Routing Protocol EIGRP jest bezklasowym protokołem routingu, wyznacza tablice routingu na podstawie wektora odległości. W warstwie transportowej, 4 modelu referencyjnego dla OSI, wykorzystuje protokół RTP, Reliable Transport Potocol. 8
Enchanced Iterior Gateway Routing Protocol Cechy protokołu EIGRP: mechanizm aktualizacji wyzwalanych, (brak mechanizmu aktualizacji okresowych), używa tablicy topologii do przechowywania informacji o wszystkich trasach, nie tylko najlepszych, uzyskanych od innych routerów, obsługa VLSM, obsługa ręcznego sumowania tras, określanie przyległości sąsiadów za pomocą pakietów Hello EIGRP, równoważenie obciążenia tras nierównorzędnych, do wyznaczania trasy wykorzystuje algorytm DUAL, Diffused Update Algorithm, (dual oznacza, że w tablicach routingu są informacje o trasach zapasowych). Aktualizacja wyzwalana, to aktualizacja wysyłana przez router do innych routerów gdy: interfejs zmieni stan (włączony/wyłączony), trasa zmieniła stan na osiągalny/nieosiągalny, pojawiła się nowa trasa w tablicy routingu. 9
Tablica topologii EIGRP Tablica topologii zawiera następujące pola: Opłacalna odległość, FD, najniższa obliczona metryka do sieci docelowej. Miejsce źródłowe trasy, numer identyfikacyjny routera, który ogłosił daną trasę jako pierwszy. Pole jest wypełniane wyłącznie w przypadku tras, o których informacje router uzyskał z zewnątrz, spoza sieci EIGRP. Zgłaszana odległość, Reported Distance, odległość do sieci docelowej podawana przez przylegającego sąsiada. Informacje o interfejsie, interfejs, za pośrednictwem którego można dotrzeć do sieci docelowej. Stan trasy, stan, w jakim znajduje się trasa. 10
Tablica sąsiadów EIGRP Router buduje tablicę sąsiadów za pomocą pakietów Hello EIGRP. Wysyła je co 5 sekund. Struktua tablicy sąsiadów EIGRP: Adres sąsiedniego urządzenia (neighbor address), adres warstwy sieci sąsiedniego routera. Interfejs (interface), interfejs routera, na którym odebrano pakiet Hello, Czas przetrzymania (hold time), czas oczekiwania bez otrzymania jakiegokolwiek sygnału od sąsiedniego urządzenia, zanim łącze zostanie uznane za niedostępne. Czas wpisu, (Up time), czas jaki upłynął od wpisu sąsiada. Zegar SRTT (Smooth Round-Trip Timer), średni czas od wysłania pakietu do sąsiedniego urządzenia do otrzymania pakietu odpowiedzi. Wielkość kolejki (Q Cnt, Queue count), liczba pakietów oczekujących w kolejce na wysłanie. Jeśli wartość ta jest regularnie większa od zera, na routerze może występować przeciążenie. Liczba 0 oznacza brak pakietów protokołu EIGRP w kolejce. Numer sekwencyjny (Seq Num, Sequence Number), numer ostatniego pakietu otrzymanego od danego sąsiedniego urządzenia. Pole służy do identyfikacji pakietów, które mogą dotrzeć do routera w różnej kolejności. 11
Typy pakietów EIGRP Typy pakietów EIGRP: Hello, potwierdzenie (Acknowledgment), aktualizacja (Update), zapytanie (Query), odpowiedź (Reply). 12
Struktura pakietu EIGRP Version, wersja EIGRP, np. wartość 2. Opcode, typ pakietu EIGRP, 1 - update, 3 - Query, 4 - reply, 5 - EIGRP hello. Checksum, suma kontrolna wyliczana tak, jak dla datagramu IP, liczona dla całego pakietu EIGRP, bez nagłówka IP. Flags, flaga wskazuje na nowego sąsiada, lub warunkowe odbieranie EIGRP RTP. Sequence, pole określa numer pakietu EIGRP RTP. Acknowledgment, pole służy do potwierdzania odebranych pakietów. Autonomous System Number, pole zawiera Identyfikator danego procesu routingu. Type/Length/Value (TLV). Pole TLV zawiera dane komunikatu EIGRP. 13
Pole TLV, pakiecie EIGRP Pole TLV zawiera następujące typy danych: parametry EIGRP, wartość pola typ 0x0001 wewnętrzne trasy IP, wartość pola typ 0x0102 zewnętrzne trasy IP, wartość pola typ 0x0103. 14
Parametry TLV w pakiecie EIGRP. Parametry TLV w pakiecie EIGRP Type, wartość 0x0001, Length, K1, pole określa wagę szerokości pasma, domyślna wartość 1, K2, pole określa wagę obciążenia, domyślna wartość 0, K3, pole określa wagę przepustowości, domyślna wartość 1, K4, pole określa wagę niezawodności, domyślna wartość 0, K5, pole określa wagę niezawodności, domyślna wartość 0, Hold time, maks. czas jaki router czeka na kolejną wiadomość Hello IEGRP. Wzór na metrykę EIGRP metryka = [ K1*szerokosc_pasma + K2*szerokosc_pasma 256 - obciazenie + K3*opoznienie]* K5 niezawodnosc + K4 15
Pole TLV, wewnętrzne trasy IP Next hop, adres IP routera następnego skoku. Delay, opóźnienie. Bandwidth, szerokość pasma. MTU, MTU interfejsu Hop count, liczba skoków do sieci docelowej. Reliability, niezawodność interfejsu, wartości od 1 do 255. 255 oznacza 100% niezawodność. Load, obciążenie interfejsu, wartości od 1 do 255. Prefix length, maska sieci docelowej (liczba jedynek w masce). Destination, adres sieci docelowej. 16
Pole TLV, zewnętrzne trasy IP Originating router, identyfikator routera początkowego. Originating autonomous system number, numer początkowego systemu autonomicznego. External protocol metric, metryka protokołu zewnętrznego. External protocol ID, identyfikator protokołu zewnętrznego, np. dla BGP, OSPF, RIP, IGRP. 17
Interior Gateway Routing Protocol Protokół IGRP, (ang.) Iterior Gateway Routing Protocol. Został zastąpiony protokołem Enchanced Iterior Gateway Routing Protocol i wycofany z użycia. 18
Border Gateway Protocol Protokół BGP, (ang.) Border Gateway Protocol BGP v4, RFC 1771, 1772 Protokół BGP korzysta z portu TCP 179. System autonomiczny - grupa sieci będąca pod wspólną administracją. Protokół BGP został zaprojektowany jako protokół routingu między systemami autonomicznymi. Ze względu na wyczerpanie się przestrzeni adresowej w klasie B routery muszą przechowywać informacje adresach sieci klasy C. Protokół BGP powstał aby, budować tablice routing między podsieciami z klasy C. Protokół BGP wykorzystuje mechanizm CIDR, (ang.) Class-Inter Domain Routing w którym nie ma podziału na klasy adresów IP. Protokół BGP buduje tablice routingu na metodą wektora odległości. 19
Exterior Gateway Protocol Protokół EGP, (ang.) Exterior Gateway Protocol RFC 904 Protokół stosowany do wymiany informacji o tablicach routingu między routerami które pełnią funkcje bram sieci (exterior gateways, backbone routers). Protokół EGP został zaprojektowany jako protokól routingu między bramami tego samego lub różnych systemów autonomicznych. 20
Open Shortest Path First Protokół OSPF, (ang.) Open Shortest Path First OSPF v1, RFC 1131. OSPF v2, RFC 1247, RFC 2328, RFC 1245, RFC 1246, RFC 1850. OSPF v3 dla IPv6, RFC 2740. Protokół OSPF przesyła dane w datagramie IP, z wartością pola Protocol ID w nagłówku datagramu IP równą 89. Protokół OSPF wykorzystuje do określenia najkrótszej trasy algorytmu Dijkstry (algorytm z 1956-59, Edsger Dijkstra, Holandia). Algorytm Diskjtry służy do budowy topologii sieci (rozmieszczenia i odległości między routerami w sieci). Najkrótsza trasa (koszt) wyliczana jest na podstawie aktualnej szybkości transmisji między routerami (im większa szybkość tym niższy koszt). Przykład: Dla sieci w standardzie Ethernet (10Mbps) wzór na koszt transmisji ma postać koszt = 10 000 000 / szybkosc_lacza bps Uwaga: 10 Mbps = 10 * 10^6 bps = 10 0000 000 bps 10 MBps = 10* 2^20 Bps = 10 485 760 Bps = 8 * 10 485 760 bps = 83 886 080 bps 21
Cechy protokołu OSPF Cechy protokołu OSPF: posiada możliwość autoryzacji wymienianych pakietów służących do budowy tablic routingu (zabezpieczenie hasłem, wykorzystanie algorytmu message digest (MD5)), posiada mechanizm zarządzania obciążeniem sieci ('load balancing'), posiada mechanizm podziału sieci na obszary, pozwala tworzyć wirtualne połączenia między routerami. Typy pakietów protokołu OSPF: pakiet hello, database dsecrption, link state request, link state update, link state acknowledgement. 22
Struktura pakietu OSPF Pola w pakiecie OSPF: Version Number, wersja protokołu OSPF. Type, typ pakietu. Packet Length, długość pakietu nagłówek +dane. Router ID, identyfikator początkowego routera. Area ID, identyfikator sieci z której wysłano pakiet. Checksum, suma kontrolna pakietu. AuType, typ uwierzytelnienia, wartości: 0 brak uwierzytelnienia, 1 zwykły tekst, 2 MD5. Authentication, dane uwierzytelnienia. 23
Pola w pakiecie Hello OSPF: Network Mask, maska podsieci interfejsu wysyłającego. Hello Interval, liczba sekund między wysłaniem pakietów Hello, 10 sek. dla broadcastów i point-to-point, 30 sek. Dla innych. Options, opcje routera: 0 bit dla LSA (Link State Advertisements ), RFC 2370, DC (Demand Circuit capabilities), RFC 1793, EA (External Attribute), N/P (Not-so-stubby area (NSSA)) option, RFC 1587, MC - Multicast OSPF, E, external LSA, T bit dla ToS capability. Pierwszy bit pola opcje jest zarezerwowany. Rtr Pri, priorytet routera, wartość domyślna 1. Struktura pakietu Hello OSPF Router Dead Interval, liczba sekund po jakim uznaje się router za nieczynny. Designated Router, lista adresów IP routerów desygnowanych. Backup Designated Router, zapasowy router desygnowany. Neighbor, lista sąsiadów. 24
OSPF, etapy budowania tablicy routingu Etapy budowania tablicy routingu: definicja otoczenia routera (rozesłanie pakietów Hello ), nawiązanie połączenia typu PPP z sąsiednimi routerami, wymiana informacji o stanie połączenia, wyliczenie i zapis kosztów w tablicach routingu. 25
Specyfikacje protokołów routingu RFC 6952, Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide M. Jethanandani, K. Patel, L. Zheng [ May 2013 ](Status: INFORMATIONAL) (Stream: IETF, Area: rtg, WG: karp) RFC 6945 Definitions of Managed Objects for the Resource Public Key Infrastructure (RPKI) to Router Protocol R. Bush, B. Wijnen, K. Patel, M. Baer [ May 2013 ] (Status: PROPOSED STANDARD) (Stream: IETF, Area: rtg, WG: sidr) RFC 6527 Definitions of Managed Objects for Virtual Router Redundancy Protocol Version 3 (VRRPv3) K. Tata [ March 2012 ] (Obsoletes RFC2787) (Status: PROPOSED STANDARD) (Stream: IETF, WG: NON WORKING GROUP) RFC 3561 Ad hoc On-Demand Distance Vector (AODV) Routing C. Perkins, E. Belding-Royer, S. Das [ July 2003 ] (Status: EXPERIMENTAL) (Stream: IETF, Area: rtg, WG: manet) RFC 2386 A Framework for QoS-based Routing in the Internet E. Crawley, R. Nair, B. Rajagopalan, H. Sandick [ August 1998 ] (Status: INFORMATIONAL) (Stream: IETF, Area: rtg, WG: qosr) RFC 2281 Cisco Hot Standby Router Protocol (HSRP) T. Li, B. Cole, P. Morton, D. Li [ March 1998 ] (Status: INFORMATIONAL) (Stream: Legacy) 26