Trasowanie ( Routing)

Transkrypt

Trasowanie ( Routing)
Trasowanie ( Routing)
Protokoły wyznaczania tras (routingu) są
kluczowe dla działania intersieci ( internet)
W sieciach IP ( Internet) routery przekazują
datagramy IP między routerami na ścieżce od
źródła do przeznaczenia
Router powinien mieć wiedzę o topologii
intersieci
Protokoły routingu muszą dostarczać i
przekazywać te informacje
Zasady routingu w Internecie
Routery otrzymują i przekazują datagramy IP
(zazwyczaj w ramkach warstwy liniowej)
Podejmują decyzje o trasach w oparciu o swoją
wiedzę o topologii i warunkach w Sieci
Decyzje powinny opierać się na kryteriach
minimalizacji kosztów
Co może być kosztem ?
Stały Routing
Pojedyncza stała trasa skonfigurowana dla każdej
pary źródło - przeznaczenie
Stałe trasy
Przykład konfiguracji
Tablice routingu
W przykładzie (poprzedni slajd)
5 sieci, 8 routerów
Koszt łącza dla wyjścia dla każdego routera
Każdy router ma tablicę trasowania (routing table )
Routing Table
Wymagana dla każdego routera
Wpis dla każdej sieci
⌧Ale nie dla każdego przeznaczenia
⌧Routing wymaga tylko części sieci
Datagram docierający do routera w sieci przeznaczenia może
przekazać go do hosta
Adres IP address typowo zawiera część sieci i hosta (lub w
kombinacji z maska sieci)
Każdy wpis pokazuje następny węzeł na drodze do
przeznaczenia
⌧Ale nie całą trasę
Tablice routingu w hostach
Mogą też występować w hostach i występują
/sbin/route lub inne komendy pokazujące tablice
routingu jądra
Przy przyłączeniu hosta do pojedynczej sieci z
jednym routerem tablica jest prosta i zawiera tylko
część sieci lokalnej ( ale niekoniecznie) i wskazanie
na router jako bramę ( gateway)
⌧Cały ruch musi przejść przez ten router ( gateway)
Jeśli routerów jest kilka host wymaga tablicy
wskazującej który z routerów powinien być użyty dla
danego datagramu ( adres IP przeznaczenia)
Przykłady tablic routingu
Czyli routing to :
Trasowanie – kierowanie pakietów od źródła do
przeznaczenia
Często wymaga przejścia przez wiele wezłów przeskoki ( hops)
W węzlach ( routerach) kierowanie pakietu w
takie miejsce, które jest bliżej miejsca
przeznaczenia (lub tak uważa dany router na
podstawie swojej tablicy tras)
Sieci datagramowe
Wirtualne obwody – virtual circuits - VCs
Porównanie sieci
datagramowych i obwodów
Zagadnienie
Datagram
Virtual circuit
Połączenie
Nie potrzebne
Wymagane
Adresowanie
Każdy pakiet zawiera pełny
adres źródła i przeznaczenia
Każdy pakiet zawiera krótki
numer VC
Znajomość sieci
Niekonieczna
Wymagana
Trasowanie
Każdy pakiet kierowany
niezależnie
Trasa ustalana podczas
zestawiania VC
Efekt awarii
routera
Praktycznie żaden, utrata
pakietów w trakcie awarii
Zakończenie wszystkich VC
przechodzących przez router
Kontrola zatorów Trudna
Łatwa, ale potrzebne
wcześniejsza alokacja buforów
dla każdego VC
Efekt zatoru
Brak kontroli
Routing powinien radzić
z przeciążeniem sieci
Mechanizmy kontroli zatorów
Zasady zapobiegania przeciążeniom
Transportowa
Zasady retransmisji
Buforowania niezgodnie z kolejnością
Zasady potwierdzeń
Sterowania przesyłem
Ustalania limitów czasowych
Warstwa sieciowa
Wybór obwodów wirtualnych lub sieci datagramowych
Zasady usług i kolejkowania
Zasady odrzucania pakietów ( zrzut obciążenia)
⌧Np. RED – Random Early Detection -
Algorytmy routingu
Zarządzanie czasem życia pakietów
Warstwa liniowa
Zasady
Zasady
Zasady
Zasady
retransmisji
buforowania niezgodne z kolejnością
potwierdzeń
sterowania przepływem
Cechy algorytmu rutującego
Optymalność
Też efektywność vs „sprawiedliwość”
Prostota i małe obciążenie zasobów
Odporność i stabilność
Reakcja na zmiany topologii i ruchu – bez
angażowania wszystkich hostów sieci
Szybka zbieżność – ustalenie właściwych dróg
trasowania
Podstawowy podział rutowania
Rutowanie statyczne ( nieadaptacyjne)
Rutowanie dynamiczne (adaptacyjne)
Rutowanie wg reguł (policy routing)
W IP według adresu źródłowego + warunki dodatkowe
Wewnątrzdomenowe i międzydomenowe
Ponadto:
Routing hierarchiczny – np. AS
Routing dla mobilnych hostów
⌧home & foreign agents
⌧Gratuitous ARP – przełączanie tablic arp na HA / host
Routing broadcastowy i multicastowy – ruchu do wielu hostów
jednocześnie
Rutowanie Statyczne
Trasy ustalane w momencie załadowania
pamięci routerów
Najszybsze
Ze względu na wydajność rutera
Ze względu na obciążenie sieci
Wymaga „ręcznej” konfiguracji
Lub wczytania tablicy tras
Nie jest odporne na awarie
Rutowanie dynamiczne
Zmienne – zależne od stanu sieci (topologia, ruch)
Tablice rutowania budowane są w oparciu o informacje
płynące od sąsiadów
Tylko od sąsiadów ? Zawsze ?
Kto jest sąsiadem ?
W przypadku awarii dokonuje się automatyczna
rekonfiguracja tablic rutowania
Co rozumiemy pod pojęciem awaria ?
W przypadku zmian stopnia obciążenia sieci możliwa jest
Rekonfiguracja sieci
Równoważenie obciążenia
Wady rutowania dynamicznego
Złożone algorytmy wymagające znacznej mocy obliczeniowej
Zwiększenie ruchu w sieci – wymiana informacji
Np. wymiana BGP – tablice ok. 60-80 MB to wymaga pasma ok. 128 kbs
Jeżeli odpowiedź na zmianę metryki (topologii) następuje zbyt wolno –
występują długie okresy niedziałania sieci, zbyt szybko oscylacje
Tworzą się patologie takie jak:
Fluttering - oscylacje
⌧Szybkie oscylacje w rutowaniu
⌧Np. przy próbach równoważenia obciążenia
⌧Jeżeli pojawia się tylko w jednym kierunku, to charakterystyka ruchu w obie strony
się różni, co generuje problemy w niektórych aplikacjach (np. NTP)
⌧Problemy z wykorzystaniem czasów RTT ( duża zmienność) do obliczeń RTO
(czasów retransmisji segmentów)
⌧Dostarczanie datagramów TCP w innym porządku, co z kolei generuje retransmisje
i niepotrzebne „zapychanie” łącz
Zapętlenia
⌧Jeżeli pewien pakiet w podróży do celu powtórnie odwiedzi ten sam ruter,
tzn., że wystąpiła pętla
⌧Pakiet albo nigdy nie dotrze do celu albo dotrze z dużym opóźnieniem
Zasada optymalności
(a) Sieć routerów (b) Odwrócone drzewo dla routera B.
Systemy autonomiczne
System pod wspólnym zarządem, w którym występują takie same zasady
rutowania
Protokoły „wymarłe”
GGP ( Gateway to Gateway Protocol) – wymiana informacji między routerami
podstawoywmi
EGP ( Exterior Gateway Protocol ) – jak w. Routery zewnętrzne
IGP ( Interior Gateway Protocol ) – protokoły dla routerów wewnętrznych
Hello – protokół typu IGP (jak i RIP ) – bazujący na opóźnieniach w sieci
IRP ( Interior Routing Protocol )– algorytmy rutowania wewnątrz systemu
autonomicznego
Algorytmy odległości wektorowej (Distance-Vector)
⌧ RIP ( Routing Information Protocol)
Algorytmy stanu łącza
⌧ OSPF ( Open Short Path First)
Algorytmy hybrydowe
⌧ IGRP, EIGRP , ( Enhanced Interior Gateway Protocol) - Cisco
ERP ( Exterior Routing Protocol )– algorytmy rutowania pomiędzy
systemami autonomicznymi
BGP ( Border Gateway Protocol )
IDRP ( Interdomain Routing Protocol)
Algorytmy routingu
SPF – shortest path routing
Flooding - zalewanie
Flow based routing –
DV – distance vector
Bellman-Ford, Ford-Fulkerson
Algorytm w ARPANET – RIP
Link State Routing – LS
W Arpanet od 1979
OSPF , IS-IS
Distance Vector Routing
(a) Sieć (b) Dane z A, I, H, K, oraz nowa tablica trasowania dla J.
RIP
Algorytm opiera się na adresach klasowych
RIP ver. 2 wspiera maski
Podstawową metryką jest ilość ruterów
pośredniczących w wymianie datagramów
Ale można danemu połączeniu zmienić metrykę
Posługują się rozproszonym algorytmem BF
W zasadzie zakłada równe obciążenie wszystkich
łączy
RIP – zasada działania
Co ok. 30s każdy ruter wysyła do swoich sąsiadów informację o
znanych sobie kosztach połączeń do poszczególnych sieci
Ver 1 UDP
Ver 2 Multicast
Po odebraniu tej informacji,
Jeśli dotychczas dany ruter nie znał trasy do tej sieci to wpisuje ją do
swojej tablicy rutingu z metryką większą o 1
Jeśli taka trasa już była, to jeśli odebrana metryka (+1) jest lepsza od
poprzedniej to zastępuje ją.
Jeśli metryka jest taka sama, to ruter używa wszystkich tras o tej
samej metryce
Ramka RIP
komenda (1 oktet)
wersja (1 oktet)
identyfikator rodziny adresów (2 oktety)
adres IP (4 oktety)
musi być zero (4 oktety)
musi być zero (4 oktety)
metryka (4 oktety)
.....
Format ramki protokołu RIP
musi być zero (2 oktety)
musi być zero (2 oktety)
Format ramki RIP
Reakcja na zmiany topologii
Jak rozległy może być AS stosujący algorytm
RIP?
W przypadku powstania pętli mogłyby powstawać
metryki rzędu milionów
Dlatego przyjęto arbitralnie, że „∞=16”
Jeżeli metryka do danej sieci osiągnie 16, to oznacza
to, że trasa jest niedostępna
Distance Vector Routing (2)
The count-to-infinity problem.
Reakcja na zmiany topologii
Zasada podzielonego horyzontu „Split-Horizon”
Nie wysyłać aktualizacji w tę stronę, z której ją otrzymano
Split Horizon a bardziej złożone topologie ( zamknięte)
Zasada wstecznego zatruwania „Poisoned Reverse”
Wysyłać takie aktualizacje z metryką 16
Szybsza zbieżność, szczególnie w przypadku większych pętli
Holddown timer
Przez 3 * czas aktualizacji nie przyjmowane są „gorsze” trasy
Też split horizon z zatruwaniem :
Zawsze wysyłanie informacji o metryce 16 w kierunku danej
sieci
Flooding
Każdy ruter wysyła informację na każdy swój interfejs
Każdy sąsiad retransmituje tę informację na wszystkie swoje
interfejsy (z wyjątkiem tego, z którego dotarł)
Liczba pakietów rośnie wykładniczo w nieskończoność
Aby tego uniknąć rutery rozpoznają czy dany pakiet jest powtórzony i
jeśli tak to go kasują
Selektywny flooding – tylko w „kierunku” przeznaczenia
Flooding – Cechy
Wszystkie trasy pomiędzy danym ruterem a każdym innym są
wypróbowane
⌧SPF jest bardzo odporny
Ponieważ wszystkie trasy są wypróbowane, przynajmniej jedna jest
najlepsza
Informacja szybko osiągnie wszystkie rutery
Wszystkie węzły były odwiedzone
Wada – bardzo duży ruch w sieci w czasie inicjalizacji
Open Shortest Path First (OSPF)
Ograniczenia RIP w dużych sieciach
OSPF jest preferowanym protokołem w sieciach TCP/IP do
wewnętrznego routingu IRP
Stosuje algorytm stanu łącza LS (Link state)
Link State Routing
W czasie startu, router określa koszt łącza na każdym interfejsie
Router ogłasza te koszty do wszystkich routerów
Router monitoruje te koszty
⌧Jeśli się zmieniają, są ponownie rozgłaszane
Każdy router konstruuje topologię i oblicza najkrótszą ścieżkę do
każdej sieci przeznaczenia
Brak dystrybucji algorytmów
Można używać dowolnego
⌧Algorytm Dijkstry najpopularniejszy
Flooding – jako metoda w LS
Pakiety są wysyłane przez router do każdego sąsiada
Przychodzący pakiet jest przesyłany na każde wyjście z wyjątkiem
źródłowego
Duplikaty są usuwane w celu uniknięcia zbędnego ruchu
Wszystkie możliwe trasy zostaną wypróbowane, pakiet przejdzie
jeśli tylko droga istnieje
Pewne
Co najmniej jeden pakiet przejdzie trasę o minimalnym opóźnieniu
Wszystkie routery zostaną szybko osiągnięte
Wszystkie węzły połączone ze źródłem zostaną odwiedzone
Wszystkie routery dostaną informacje do zbudowania tablic routingu
Duże obciążenie ruchem
Przykład zalewanie (Flooding)
OSPF
Routery zarządzają opisem stanu lokalnych łączy
Przekazują zaktualizowane informacje do wszytkich znanych
sobie routerów
Router otrzymujący aktualizację musi ją potwierdzić
Generuje to dużo ruchu
Każdy router zarządza swoją bazą danych ( tablicą)
OSPF
Protokół bezpośrednio nad IP - nr 89
Może używać też adresów grupowych – TTL w IP =1
⌧Grupa multicast All_SPF_Routers (224.0.0.5)
⌧Grupa multicast All_D_Routers (224.0.0.6)
Bez numerów portów – ale typy pakietów OSPF
•
•
•
•
•
Hello
Opis Bazy
Żądanie informacji o łączy
Odpowiedź – uaktualnienia
Potwierdzenia odbioru uaktualnień
Przykładowy
System
Autonomiczny ( AS)
Wynikowy
Graf
Z kosztami łączy
Czasem niesymetryczne
Koszty łączy
Koszt każdego skoku w każdym kierunku jest
zwany metryką routingu
OSPF stosuje elastyczny system metryk oparty
na typie usług IP ( pole TOS)
Normal (TOS) 0 - normalny
Minimize monetary cost (TOS 2) – koszty pieniężne
Maximize reliability (TOS 4) - pewność
Maximize throughput (TOS 8) -przepustowość
Minimize delay (TOS 16) - opoźnienie
Każdy router generuje 5 spinających drzew (
spanning trees) i 5 tablic routingu
Drzewo SPF
dla
Routera 6
Format pakietu OSPF
Pola pakietu OSPF
Numer wersji – obecnie 2
Typ: od 1 do 5 p. niżej
Długość pakietu: w oktetach łącznie z nagłówkiem
ID Routera: 32 bit – źródło pakietu
Area id: Obszar do którego należy źródłowy router
Authentication type: bez (0) , proste hasło lub szyfrowanie
Authentication data: używana przez procedure autentykacji
Typy pakietów OSPF
Hello: used in neighbor discovery
Database description: Defines set of link state information present in
each router’s database
Link state request
Link state update
Link state acknowledgement
OSPF - obszary
Pojedynczy obszar OSPF dostosowany jest do mniej
więcej 50 ruterów
Jeśli ruterów jest więcej trzeba podzielić dany AS
Operacje obszarów
Każdy uruchamia osobną kopie algorytmu LS
⌧Baza danych topologii tylko danego obszaru
⌧Informacje o stanach łącza rozgłaszane do innych routerów
obszaru
⌧Zmniejszenie ruchu
⌧Routing między obszarowy polega na lokalnych informacjach o
stanie łączy
Rutery które należą do kilku obszarów AS nazywane są
ruterami szkieletowymi (wewnątrz AS)
Czasami mówi się, że nie należą do żadnego obszaru (area 0)
Wiele ruterów w sieci LAN –
Rutery desygnowane
Porównanie algorytmów
W stabilnych warunkach wynik działania algorytmu jest
zawsze taki sam
W algorytmie BF trzeba znać tylko koszt połączenia do
sąsiada i koszty dostępu od sąsiada
W algorytmie Dijkstry (LS) potrzebna jest znajomość całej
topologii sieci
Uaktualnienia gdy zmiana topologii, zawierają koszt scieżki
W przypadku gdy zmienia się koszt połączenia, który zależy
m.in. od obciążenia, ze względu na sprzężenie zwrotne
algorytm może okazać się niestabilny
Na tego typu niestabilność bardziej narażony jest algorytm BF
Algorytm BF wymaga znacząco mniejszych mocy
obliczeniowych, pamięci.
W dużych sieciach związany jest ze zwiększonym ruchem
Informacja wysyłana regularnie
BGP
Najpowszechniej stosowany ruting EGP
BGP Border Gateway Protocol
Tranzyt przez systemy autonomiczne AS
Dlaczego algorytmy DV, LS nie nadają się do EGP
Zarówno algorytmy DV, jak i LS żądają, żeby była używana ta sama
metryka w całej sieci
⌧Jeśli metryka jest różna, to zbudowanie poprawnej sieci jest wyzwaniem
Nie ma możliwości zablokowania ruchu pewnego rodzaju
Rozpiętość sieci jest zbyt duża
⌧Dla LS zbyt wielkie drzewa
⌧Dla DV zbyt duże metryki odległości
Modyfikacja Distance-Vector Path-Vector
Z każdego rutera istnieje pełna ścieżka do każdego AS, który może
osiągnąć
Tablice rutowania są dziś rzędu 70-80MB
Ponieważ znana jest ścieżka, to można wprowadzić reguły rutowania
Format
Wiadomości BGP
Marker:
Zarezerwowany dla
autentykacji
Length:
W oktetach
Typ:
Open
Update
Keepalive
Notification
Reguły rutowania
Policy routing
Nie przepuszczaj pakietów przez niektóre AS
Nie używaj tras w USA jeżeli źródło i cel pakietu znajduje się w
Kanadzie
Przepuszczaj przez Albanię tylko jeśli inaczej nie można
Komunikacja pomiędzy oddziałami Sun nigdy nie przechodzi przez
sieć Microsoft ☺
TPSA blokuje polskie AS-y jeśli wchodzą z zagranicy !!
Oparte najczęściej na adresach źródłowych
Ale też czasem na protokołach czy wręcz usługach (portach)
⌧Nie mylić routingu (wybór trasy – interfejsu), z klasą usług
(kolejkowanie ), czy kształtowaniem ruchu (traffic control, shaping)
Trasowanie – podsumowanie
Współpraca pomiędzy algorytmami i protokołami
Demony gated (RIP, BGP, OSPF) , routed (RIP)
Routing bezklasowy
VLSM – Variable-length subnet masking
Protokoły wspierające VLSM – RIPv2, OSPF, BGP, EIGRP
Obsługa masek sieci (podsieci i nadsieci)
Co robić przy tych samych sieciach a różnych maskach ?
⌧Przeglądać tablice tras zaczynając od najdłuższych masek (najmniejsze
sieci )
Wymiana informacji pomiędzy fragmentami sieci
używającymi różnych protokołów rutowania
Policy routing
Rutowanie po adresach źródłowych
Protokoły OSI
End System-to-Intermediate System (ES-IS)
Raczej odkrywanie jakie rutery sąsiadują z hostem
Pierwowzór protokołów takich jak HSRP czy RDP, ICMP Redirect
Intermediate System-to-Intermediate Systems (IS-IS)
Interdomain Routing Protocol (IDRP)
Następca BGP (Wraz z IPv6)
Zhierarchizowane BGP
AS łączy się w konfederacje
Te konfederacje w konfederacje wyższego rzędu
W danej konfederacji stosowany jest ruting typu Path-Vector
Doskonale dostosowany do MPLS
Mobile IP
Jak zrobić, żeby komputer z tym samym
oprogramowaniem działał w różnych sieciach?
DHCP nie jest tu rozwiązaniem ze względu na
zmianę adresu IP
Zmiana miejsca pobytu ma być przezroczysta
dla oprogramowania hosta
Zmiany tablic rutingu w ruterze są wykuczone
Jeśli host jest „u siebie” nie wiąże się to z
żadnym nadmiarowym ruchem
Mobile IP
Tunelowanie –
Home i Foreign Agent
IP w IP
Bezpieczeństwo – weryfikacja i szyfrowanie
połączenia
Na bazie proxy ARP :
Ruter (Home Agent) „w domu” odpowiada na
zapytania ARP swoim adresem gratuitous ARP
(dobrowolne?).
Przekazuje pakiet w szyfrowanym tunelu do rutera
(foreign agent), który aktualnie „opiekuje się” hostem