Upload
hadieu
View
220
Download
0
Embed Size (px)
Citation preview
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
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)
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
Łatwa, ale potrzebne wcześniejsza alokacja buforów dla każdego VC
TrudnaKontrola zatorów
Zakończenie wszystkich VC przechodzących przez router
Praktycznie żaden, utrata pakietów w trakcie awarii
Efekt awarii routera
Trasa ustalana podczas zestawiania VC
Każdy pakiet kierowany niezależnie
Trasowanie
WymaganaNiekoniecznaZnajomość sieci
Każdy pakiet zawiera krótki numer VC
Każdy pakiet zawiera pełny adres źródła i przeznaczenia
Adresowanie
WymaganeNie potrzebnePołączenie
Virtual circuitDatagram Zagadnienie
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
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
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
Format ramki protokołu 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)
. . . . .
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
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 jestnajlepsza
�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
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ń
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
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ę wKanadzie
�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