Protokoly routingu

Transkrypt

Protokoly routingu
Sieci komputerowe
Protokoły routingu
dr Zbigniew Lipiński
Instytut Matematyki i Informatyki
ul. Oleska 48
50-204 Opole
[email protected]
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
33
012 34567 89 01234 567 89012 3456 78 901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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
33
012 34567 89 01234 5678 9 012345 6789 01
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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
33
01234 567 89 01234 5678 9 012345 67 8901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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
K5
+ K3 * opoznienie] *
256 - obciazenie
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
Struktura pakietu Hello OSPF
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.
•
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