You are on page 1of 47

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 Każdy pakiet zawiera krótki
adres źródła i przeznaczenia numer VC
Znajomość sieci Niekonieczna Wymagana

Trasowanie Każdy pakiet kierowany Trasa ustalana podczas


niezależnie zestawiania VC

Efekt awarii Praktycznie żaden, utrata Zakończenie wszystkich VC


routera pakietów w trakcie awarii 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 retransmisji
 Zasady buforowania niezgodne z kolejnością
 Zasady potwierdzeń
 Zasady 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) musi być zero (2 oktety)


identyfikator rodziny adresów (2 oktety) musi być zero (2 oktety)
adres IP (4 oktety)
musi być zero (4 oktety)
musi być zero (4 oktety)
metryka (4 oktety)
.....

Format ramki protokołu RIP


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

You might also like