Warstwa sieci 1
application transport network data link physical Funkcje warstwy sieci Przetransportowanie pakietu od nadawcy do końcowego odbiorcy Protokoły warstwy sieci muszą zatem pracować na każdym hoście i routerze network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Podstawowe funkcje: adresowanie: przydział adresów bezpieczeństwo: zapewnienie prywatności, autentyfikacja, itp. na warstwie sieci fragmentacja: podział pakietów na części akceptowalne przez protokoły warstwy data-link sposoby dostarczania : unicast, multicast, anycast, broadcast, kolejność pakietów quality-of-service: osiąganie wymaganej wydajności routing: wybór trasy i przekazywanie pakietów 2
Adresowanie Schematy: hierarchiczny oraz płaski Wielkość tablic routingu Schematy: globalny oraz lokalny Budowa aplikacji (NAT) Prędkość przetwarzania Stała bądź zmienna długość Elastyczność Wielkość nagłówka pakietu 3
Bezpieczeństwo Poufność Brak możliwości podsłuchiwania Integralność Eliminacja ataków typu człowiek pośrodku (manin-the-middle attack) Autentyfikacja Jednoznaczna identyfikacja źródła 4
Fragmentacja pakietów Różne protokoły warstwy data-link posiadają różne MTU (max. transport unit) Czasami musi nastąpić podział pakietu, aby mógł on być przeniesiony przez konkretną sieć Jak poskładać rozdzielone części? Składanie następuje dopiero na węźle końcowym unika się w ten sposób niepotrzebnej pracy Składanie po drodze mogłoby być niebezpieczne Problem wielkości buforów Trzeba wtedy przyjąć tę samą drogę dla każdego pakietu Być może będzie musiała nastąpić ponowna fragmentacja 5
Sposoby dostarczania: Sposób dostarczania Unicast (jeden nadawca, jeden odbiorca) Anycast (jeden nadawca, dowolny odbiorca z pewnej grupy) Multicast (jeden nadawca, zbiór odbiorców) Broadcast (jeden nadawca, wszyscy odbiorcy) Kolejność pakietów Dostarczanie kolejne lub w dowolnym porządku 6
Quality-of-Service Różne sposoby obsługi kanału komunikacyjnego od nadawcy do odbiorcy? Gwarantowana przepustowość Dostarczanie bez straty pakietów Dostarczanie we właściwej kolejności Obsługa potwierdzeń Najistotniejsza jest odpowiedź na pytanie o to czy obsługiwać: virtual circuit (obwód wirtualny) czy datagramy? 7
Virtual circuit ścieżka od nadawcy do odbiorcy funkcjonująca podobnie do połączenia telefonicznego Wszystkie akcje na drodze nadawca-odbiorca Przed rozpoczęciem nadawania ustanawia się wirtualną ścieżkę Każdy pakiet zawiera identyfikator ścieżki VC, zamiast identyfikatora odbiorcy Do połączenia przypisane zostają ścieżka, zasoby na poszczególnych routerach (bandwidth, buffers) 8
Virtual circuits, protokoły sygnałowania Wykorzystywane do ustanowienia i zarządzania VC Wykorzystywane w ATM, frame-relay, X.25 Nie są wykorzystywane w dzisiejszym Internecie na poziomie komunikacji end-to-end application transport network data link physical 5. Nadawanie danych 6. Odbiór danych 4. Połączenie ustanowione 3. Akceptacja poł. 1. Inicjacja poł. 2. Poł. przychodzące application transport network data link physical 9
Przesyłanie datagramów (model Internetowy) Brak ustanawiania połączenia (brak połączenia end-toend na poziomie warstwy sieci) Routery nie mają potrzeby obsługi całej ścieżki od nadawcy do odbiorcy Pakiety są trasowane na podstawie identyfikatora odbiorcy Pakiety od jednego nadawcy do tego samego odbiorcy mogą wędrować różnymi ścieżkami application transport network data link physical 1.nadawanie danych 2. Odbiór danych application transport network data link physical 10
Przesyłanie datagramów czy tworzenie VC? Internet Dane wymieniane są pomiędzy komputerami Usługi są elastyczne, nie ma ścisłych wymogów czasowych Hosty są inteligentne Mogą adaptować się do nowej sytuacji, przeprowadzać kontrolę, przywracać działanie po awarii Prosta struktura sieci Możliwość łączenia różnych typów sieci ATM Ewoluowała z sieci telefonicznej Wymaga ścisłej kontroli transmisji (czas, niezawodność) Stacje końcowe mogą być głupie skomplikowana sieć pośrednicząca 11
Routing Cel: wyznaczenie dobrej drogi (sekwencji routerów) w sieci od nadawcy do odbiorcy. Metryki kosztów: Ilość routerów Czas Inne koszty przypisane do połączenia (np. opłaty za połączenie) A 1 2 5 B D 2 3 1 3 C E 1 5 2 F 12
Statyczne Klasyfikacja metod routingu Trasy zapisane przez administratora (zmiany tylko ręcznie) Dynamiczne: Zmiany dokonywane są automatycznie Okresowe uaktualnienia Reakcja na zmiany kosztów połączenia Reakcja na zmiany topologii sieci 13
Klasyfikacja metod routingu algorytmy stanu łącza (link state): wszystkie routery znają kompletną topologię i informacje o kosztach połączeń i stanie łączy algorytmy wektora odległości (distance vector): Routery znają tylko swoich sąsiadów i koszty połączeń z nimi Proces wyznaczania drogi opiera się na wymianie tych informacji z sąsiadami 14
Cechy algorytmów trasowania Koszty komunikacji Koszty przetwarzania Optymalizacja trasy Stabilność Czas zbieżności (konwergencja) Odporność na pętle 15
Algorytm link state Korzysta z nich np. OSPF (protokół wewnętrzny) Podstawowe kroki Warunki początkowe Każdy router musi posiadać informacje o swoich sąsiadach krok 1 Każdy router przekazuje sąsiadom informacje o swoim stanie Niezawodny mechanizm rozprzestrzeniania informacji krok 2 Każdy router lokalnie oblicza najlepsze trasy do poszczególnych sieci na podstawie otrzymanych informacji Stosuje się tu algorytm Dijkstry (shortest path tree SPT) 16
Krok 1 Pakiety Link State Packet (LSP) są transmitowane (broadcast) do wszystkich węzłów Okresowo każdy węzeł tworzy pakiet LSP zawierający: Node ID Listę sąsiadów i kosztów połączeń do nich Numer sekwencyjny Time to live (TTL) 17
Krok 1 Niezawodny mechanizm rozprzestrzeniania (flooding ) Kiedy węzeł A otrzymuje LSP od węzła B i jest to najbardziej aktualny pakiet LSP od A do B, B zachowuje informacje w swojej bazie i przekazuje ją swoim sąsiadom (z wyjątkiem A) Skąd B wie, że otrzymany pakiet jest najbardziej aktualny? Korzysta się z numerów sekwencyjnych 18
Krok 2 Algorytm Dijkstry Zakłada się, że wszystkie koszty połączeń w sieci są znane Wszystkie węzły mają te same informacje Algorytm jest iteracyjny po k iteracjach obliczone są koszty najlepszych połączeń do k węzłów Notacja: c(i,j): koszt połączenia węzła i z j (nieskończony jeśli nie są bezpośrednio połączone) D(v): aktualny koszt drogi od źródła do v p(v): węzeł poprzedzający v na drodze ze źródła do v N: zbiór węzłów, do których określono już najlepszą drogę (SPT) 19
Krok 2 (algorytm Dijkstry) N = {A} Dla wszystkich węzłów v jeśli v jest połączone z A wtedy D(v) = c(a,v) jeśli nie to D(v) = Powtarzaj: Znajdź w (nie należący do N) taki, że D(w) jest minimalne Dodaj w do N Zmień D(v) dla wszystkich v połączonych z w i nie należących do N: D(v) = min( D(v), D(w) + c(w,v) ) aż wszystkie węzły znajdą się w N 20
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 F 21
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 AD 2, A 4, D 2, D ~ 1 F 22
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 AD 2, A 4, D 2, D ~ 2 ADE 2, A 3, E 4, E 1 F 23
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 AD 2, A 4, D 2, D ~ 2 ADE 2, A 3, E 4, E 3 ADEB 3, E 4, E 1 F 24
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 AD 2, A 4, D 2, D ~ 2 ADE 2, A 3, E 4, E 3 ADEB 3, E 4, E 4 ADEBC 4, E 1 F 25
Krok 2 (przykład zastosowania) 5 2 B 3 C 5 A 2 3 1 D E 2 1 B C D E F krok SPT D(b), P(b) D(c), P(c) D(d), P(d) D(e), P(e) D(f), P(f) 0 A 2, A 5, A 1, A ~ ~ 1 AD 2, A 4, D 2, D ~ 2 ADE 2, A 3, E 4, E 3 ADEB 3, E 4, E 4 ADEBC 4, E 5 ADEBCF 1 F 26
Złożoność obliczeniowa algorytmu Dijkstry Złożoność obliczeniowa dla n węzłów W każdej iteracji potrzeba sprawdzić wszystkie węzły nie należące do zbioru N n*(n+1)/2 porównań O(n 2) Możliwe są lepsze implementacje O(nlogn) 27
Korzysta z nich Metody wektora odległości Wczesny ARPANET RIP (protokół wewnętrzny intra-domain) BGP (protokół zewnętrzny - inter-domain) Obliczenia rozproszone Duża ilość wymienianych informacji Wektor odległości do poszczególnych węzłów 28
Algorytmy wektora odległości Okresowa wymiana informacji o trasach i metrykach pomiędzy węzłami Przykład (algorytm Bellmana 1957) Rozpoczynamy do tablicy tras, obliczamy odległości poprzez okresową wymianę i aktualizację informacji Struktura tablicy tras sieć, odległości do niej (kosztu drogi) oraz następny skok Osobny wiersz dla każdej sieci Kolumna dla każdego sąsiada przykład: droga do Y w węźle X poprzez sąsiada Z: X D (Y,Z) = = Odległość z X do Y, przez Z jako next hop Z c(x,z) + min {D (Y,w)} w X D (Y,*) X H (Y) = = Najmniejsza znana odległość z X do Y Next hop z X do Y 29
Przykład odległości tras A 1 7 E D (C,D) E D (A,D) E D (A,B) B E 8 1 2 C D D = c(e,d) + min {D (C,w)} w = 2+2 = 4 D = c(e,d) + min {D (A,w)} w = 2+3 = 5 pętla! 2 B c(e,b) + min {D (A,w)} w = = 8+6 = 14 D () cel E A B C D Koszt celu przez A 1 7 6 4 X B 14 8 9 11 pętla! H (Y) = D 5 5 4 2 30
Tablica odległości daje tablice tras X H (Y) Koszt połączenia przez E D () A B D Węzeł, koszt A 1 14 5 A A,1 cel B 7 8 5 cel B D,5 C 6 9 4 C D,4 D 4 11 2 D D,4 Tablica odległości Tablica tras 31
Algorytm Bellmana Dopóki zmienia się D { dla wszystkich k nie będących sąsiadami i } { } dla wszystkich j będących sąsiadami i { D i (k,j) = c(i,j) + D j (k,*) } if D i (k,j) < D i (k,*) { D i (k,*) = D i (k,j) H i (k) = j } D i (k,*) i D j (k,*) c(i,j) k j c(i,j ) j k D j (k,*) 32
Problem odliczania do nieskończoności (count-to-infinity) Pojawia się przy awarii łącza (wzroście metryki) 60 X 4 Y 50 1 Z Itd. 33
Problem odliczania do nieskończoności dest cost B 1 C 2 A 1 X B dest cost A 1 C 1 25 1 C dest cost A 2 B 1 34
Problem odliczania do nieskończoności C wysyła tablicę tras do B dest cost dest cost B 1 C 2 A B A ~ C 1 25 1 C dest cost A 2 B 1 35
Problem odliczania do nieskończoności B uaktualnia trasę do A dest cost dest cost B 1 C 2 A B A 3 C 1 25 1 C dest cost A 2 B 1 36
Problem odliczania do nieskończoności B wysyła swoją tablicę do C dest cost dest cost B 1 C 2 A B A 3 C 1 25 1 C dest cost A 4 B 1 37
Problem odliczania do nieskończoności C wysyła tablicę do B dest cost dest cost B 1 C 2 A B A 5 C 1 25 1 C dest cost A 4 B 1 38
Co stanowi problem? Metryka B wzrasta C wybiera B jako next hop do A - droga taka zawiera pętlę 39
Rozwiązanie problemu Split horizon Nie przekazywanie informacji o drodze do X jeśli droga ta wiedzie przez węzeł X (tj. nie przekazuje się informacji o drodze do routera, od którego otrzymano informację o tej drodze) Jeśli droga z C do A wiedzie przez B to C nie przekazuje tej informacji (drogi z C do A)węzłowi B Poisoned reverse Przekazywanie informacji o drodze do X z metryką nieskończoność do węzła, z którego otrzymano informację o takiej drodze Jeśli droga z C do A wiedzie przez B to C informuje węzeł B, że droga przez niego do A wynosi nieskończoność Metody te rozwiązują tylko problemy pętli z 2 węzłów 40
Poisoned reverse Niech droga z Z do X wiedzie przez Y : Z informuje Y, że jego odległość do X wynosi nieskończoność (nie ma drogi z y do X via Z) To rozwiązuje problem odliczania do nieskończoności 60 X 4 Y 50 1 Z Koniec algorytmu 41
Porównanie Link State z Distance Vector Ruch w sieci DV Wysyła wszystko co wie do swoich sąsiadów Duże komunikaty, przesyłane jedynie do sąsiadów LS Wysyła informacje o sąsiadach do wszystkich routerów Małe komunikaty 42
Porównanie Link State z Distance Vector Czas zbieżności: LS Szybszy nie ma potrzeby przetwarzania LSP przez przekazaniem dalej Proste (szybkie) obliczenia DV Szybkie uaktualnienia Problem odliczania do nieskończoności Zasoby: LS Wymaga zbudowania obrazu całej topologii DV Obsługuje tylko stan sąsiadów 43
Porównanie Link State z Distance Vector Błędy: LS może przekazywać niewłaściwe/zniekształcone LSP Pojedynczy uszkodzony węzeł może zakłócić działanie DV może przekazywać błędne drogi do wszystkich innych węzłów 44
DUAL Distributed Update Algorithm Garcia-Luna-Aceves 1989 Cel: unikanie pętli 2 pomysły Droga krótsza od znanej nie może zawierać pętli Algorytm Dijkstra-Scholten (1980) Odroczenie uaktualnień w drogach w wyniku nowych informacji do momentu zakończenia poprzednich obliczeń 3 rodzaje komunikatów Update, query, reply 2 stany routera Active (przyjmuje uaktualnienia), passive 45
Routing hierarchiczny Płaski routing nie jest skalowalny Każdy router musi przechowywać wiedzę o drodze do każdego potencjalnego adresata (hosta) Adresatów tych jest ok. 80 mil. Wymiana tablic routingu bardzo obciążałaby sieć Powstaje koncepcja hierarchii obszarów (area hierarchy) 46
Obszary Sieć zostaje podzielona na obszary Obszary mogą być dalej dzielone Każda droga pomiędzy podobszarami musi całkowicie zawierać się w tym obszarze Wewnątrz obszaru, każdy router zna drogi do każdego węzła Obszary zewnętrzne Każdy węzeł zna jedynie drogę do wyjścia z obszaru Pakiety skierowane do innego obszary są trasowane do właściwego routera brzegowego Hierarchia adresowania Kolejno ponumerowano obszary główne Podobszary są adresowane względnie Węzły są adresowane względem najbliższego podobszaru 47
Funkcje: Warstwa internetu Warstwa transportowa: TCP, UDP Warstwa sieci Prot. trasowania RIP, OSPF, BGP Tablica routingu Prot. IP adresowanie Format datagramów Obsługa pakietów Prot. ICMP Informacja o błędach Komunikacja routerów Warstwa łącza danych 48
Format datagramu IP (RFC 791) IP version (4) Dł. nagłówka (bytes) typ obsługi max ilość pozostałych routerów (każdym routerze -1) Prot warstwy wyższej ver head. len 16-bit identifier time to live type of service upper layer 32 bits flgs length fragment offset header checksum 32 bit source IP address 32 bit destination IP address Options (jeśli są ) + wypełnienie data (zwykle segment TCP Lub UDP) długość (bytes) fragmentacja/ składanie Np. timestamp, lista routerów 49
Nagłówek IP Wersja (Version) Teraz 4, następna będzie (ma być) 6 Długość nagłówka (Header length) 20 bajtów plus opcje Typ obsługi (Type of Service) Zwykle ignorowane Wartości: 3 bity - pierwszeństwo 1 bit zwłoka 1 bit wydajność 1 bit niezawodność Długość (Length) Długość danych IP 50
Nagłówek IP Identyfikacja (Identification ) Dla łączenia fragmentowanych pakietów w całość Flagi (Flags) Nie fragmentować (Don t fragment) Będą dalsze fragmenty (More fragments) Przesunięcie (Fragment offset) Pozycja fragmentu w oryginalnym datagramie IP Mierzone w oktetach (pole 11 bitowe) 51
Nagłówek IP Czas życia (Time to live) Zapewnia, że pakiet nie krąży po sieci wiecznie (zmniejszane na każdym routerze, jeśli 0 pakiet jest odrzucany) Protokół (Protocol) Dla identyfikacji protokołu warstwy wyższej Suma kontrolna (Header checksum) Zapewnia integralność nagłówka (słaba 16 bit) 32 bitowe adresy IP źródła i przeznaczenia (Source IP, Destination IP) Opcje (Options) Np. Source routing, record route, etc. Mogą wpływać na wydajność (słabo wspierane) 52
Detekcja błędów IP Suma kontrolna IP Datagram IP posiada sumę kontrolną nagłówka, o integralność danych muszą martwić się protokoły transportowe (TCP/UDP) Pozwala to na wykrycie błędów nie wykrytych na poziomie warstwy łącza danych Aktualizowana na routerach (przy zmianach, np. fragmentacji) http://www.rfc-editor.org/rfc/rfc1141.txt 53
Pole protokół Możliwe wartości ( rfc1700): 1 = ICMP 2 = IGMP 3 = GGP 4 = IP in IP 6 = TCP 8 = EGP 9 = IGP 17 = UDP 29 = ISO-TP4 80 = ISO-IP 88 = IGRP 89 = OSPFIGP 94 = IPIP http://www.rfc-editor.org/rfc/rfc2003.txt 54
Komunikacja z protokołami warstw wyższych ICMP: Internet Control Message Protocol Protokół warstwy sieci do wymiany komunikatów kontrolnych Wykorzystywany przez hosty, routery, gatewaye: informowanie o błędach (unreachable host, network, port, protocol) echo request/reply (ping) Komunikaty ICMP przenoszone są w datagramach IP Komunikaty ICMP: typ, kod + 8 pierwszych bajtów datagramu IP powodującego błąd http://www.rfc-editor.org/rfc/rfc792.txt Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header 55
Bezpieczeństwo IP Oryginalnie IP nie zapewnia bezpieczeństwa IPsec Modyfikacja IP z zaimplementowanym kodowaniem i autentyfikacją http://www.rfc-editor.org/rfc/rfc2411.txt 56
Fragmentacja i łączenie datagramów IP Sieci posiadają różnemtu (max.transfer size) daje to możliwości przesyłania większych ramek różne technologie różne MTU Pakiety IP 64KB większy datagram IP może być dzielony przez sieć (router) każdy fragment ma nagłówek IP routery po drodze mogą wielokrotnie dzielić datagram z 1 datagramu może powstać wiele mniejszych Składanie odbywa się tylko po osiągnięciu celu Odpowiednie pola nagłówka pozwalają odtworzyć oryginalny datagram łączenie fragmentacja: przed: 1 duży datagram po: 3 małe datagramy 57
Fragmentacja IP length =4000 ID =x fragflag =0 offset =0 Podział na mniejsze części length =1500 ID =x fragflag =1 offset =0 length =1500 ID =x fragflag =1 offset =1480 length =1040 ID =x fragflag =0 offset =2960 58
Sposoby dostarczania Zawodny sposób dostarczania Możliwa zła kolejność odbieranych pakietów Większość komunikacji Unicast IP broadcast nie jest przekazywany przez routery IP multicast jest wspierany, ale nie jest szeroko wykorzystywany 59
Jakość usług (quality of service) Nagłówek IP posiada pole type-of-service (TOS) aby ewentualnie wspierać zapewnianie jakości Pole to nie jest wykorzystywane, ignorowane przez większość routerów 60
Adres IP: stała długość (32- bity) identyfikująca interface interface: połączenie hosta, routera do medium komunikacyjnego Router zwykle posiada kilka interface-ów Hosty zwykle posiadają 1 interface Adres Ip przypisany jest do interface nie hosta, czy routera Adresowanie IP 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 61
Adresowanie IP Adres IP: Część sieci (starsze bity) Część hosta (młodsze bity) Czym jest sieć? (z perspektywy adresu IP) Zbiór interface-ów o tej samej części sieciowej adresów IP Istniej możliwość przekazywania pakietów w obrębie tego zbioru, bez angażowania routerów 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 LAN 223.1.3.1 223.1.3.2 62
Początkowy schemat adresowania (1981) Klasy adresowe(1981) Class A: 128 sieci, 16M hostów Class B: 16K sieci, 64K hostów Class C: 2M sieci, 256 hostów Najstarsze bity 0 10 110 Format 7 bitów sieć, 24 bity host 14 bit sieć, 16 bit host 21 bity sieć, 8 bit host Class A B C 63
Klasy adresów Class A 0 8 16 24 Network ID Host ID 1.0.0.0 to 127.255.255.255 32 Class B 10 Network ID 128.0.0.0 to 191.255.255.255 Host ID Class C 110 Class D 1110 Class E 1111 Network ID 192.0.0.0 to 223.255.255.255 Multicast Addresses 224.0.0.0 to 239.255.255.255 Reserved for experiments Host ID 64
Adresy specjalne 127.0.0.1: local host (the loopback address) Adresy dla sieci prywatnych Class A: 10.0.0.0-10.255.255.255 (10/8 prefix) Class B: 172.16.0.0-172.31.255.255 (172.16/12 prefix) Class C: 192.168.0.0-192.168.255.255 (192.168/16 prefix) 255.255.255.255 IP broadcast IP broadcast w sieci =NetworkID+(1na bitach dla hosta) 0.0.0.0 Urządzenia bez przyznanego adresu (BOOTP, ARP, DHCP) 65
Podział na podsieci Maski o różnej długości Network Host Network Subnet Host 1111....1111 00000000 Mask 66
Problemy z przestrzenią adresową (1991) Wyczerpywanie się adresów Zbyt mało klas A i B A IANA niechętnie je przyznaje B Subnetting możliwy tylko dla nowych przydziałów Mały stopień wykorzystania adresów w przyznanych klasach Instytucje nie chcą oddawać zbędnych klas C zbyt małe dla dzisiejszych sieci lokalnych 67
Próby rozwiązania problemu Przyznawanie kolejnych klas C (zamiast B) Supernetting http://www.rfc-editor.org/rfc/rfc1338.txt Classless Inter-Domain Routing (CIDR) http://www.rfc-editor.org/rfc/rfc1518.txt http://www.rfc-editor.org/rfc/rfc1519.txt 68
CIDR Początkowo adresowanie klasowe Wykorzystywano strukturę adresu (A, B, C) dla wyznaczenia adresu sieci CIDR: Classless InterDomain Routing Nie wykorzystuje się klas Format adresu : a.b.c.d/x, gdzie x jest ilością bitów dla sieci network part host part 11001000 00010111 00010000 00000000 200.23.16.0/23 69
CIDR Możliwość przyznawania dowolnej (prawie) ilości adresów dla sieci Wspólna część adresów określa sieć Np., adresy od 192.4.16.* do 192.4.31.* maja wspólne pierwsze 20 bitów, tak więc te bity określają sieć Maska (netmask) /20, 192.4.16.0/20 Pozwala na lepsze wykorzystanie przestrzenia adresowej 70
Przyznawanie adresów Host: Przyznawane w ramach organizacji (statycznie lub przez DHCP) Sieć Organizacje dostają je od ISP ISP dostaje je od ICANN (w Polsce NASK) ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23....... Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 71
Przyznawanie adresów ICANN: Internet Corporation for Assigned Names and Numbers Przyznaje adresy Zarządza DNS-em Przyznaje nazwy domenowe, rozstrzyga spory 72
NL: IP addressing and NAT Network Address Translation (NAT) Alternatywne rozwiązanie problemu wyczerpywania się adresów Rezyduje pomiędzy siecią lokalną i Internetem Dokonuje zamiany lokalnych, prywatnych adresów na adresy publiczne (globalne) Posiada pulę publicznych adresów IP (zwykle mniejszą od ilości hostów w sieci lokalnej) 73
NAT Przeznaczenie Pula adresów Źródło Global Internet G P Private Network D g S g Data NAT D g S p Data działanie: źródło (S) chce skomunikować się z przeznaczeniem (D): Tworzone jest mapowanie S g -S p S p w nagłówku pakietu wychodzącego zamieniane jest na S g S g w nagłówku pakietu przychodzącego zamieniane jest na S p 74
Problemy z NAT Co jeżeli mamy mało (albo tylko jeden) adresów IP? NAPT (Network Address Port Translator) NAPT wykorzystuje numery portów TCP/UDP Potencjalnie możliwe tysiące jednoczesnych połączeń przez jeden adres IP 75
Problemy NAT Ukrywa strukturę sieci wewnętrznej Czasami jest to zaleta - bezpieczeństwo Niektóre protokoły umieszczają informacje adresowe wewnątrz pakietów Np. ftp Brak możliwości połączeń przychodzących 76
Kto zapewnia funkcje? Hierarchia obszarów Określanie tras Protokoły routingu Intra-AS Inter-AS IP routing 77
Kto zapewnia funkcje? Źródło (IP source routing) Trasa zawarta w pakiecie Urządzenia brzegowe sieci ATM MPLS lambda switching Routers Przekazywanie od routera do routera (hop-by-hop) oparte o adres przeznaczenia zawarty w pakiecie Routery przechowują informacje o następnym skoku na drodze do przeznaczenia Tablice tras obliczane na routerach 78
Przykład: Source Routing Packet 3,4,3 4,3 2 2 Sender 1 R1 4 3 1 R1 4 3 3 2 1 4 R2 3 Receiver 79
Routery (trasowanie oparte o adresy IP) Każdy pakiet posiada adres IP odbiorcy Każdy router posiada tablicę tras.. destination IP next hop IP address Zaimplementowany jest rozproszony algorytm dla obliczania tablic routingu 80
Przykład Packet R R 2 2 Sender 1 R1 4 3 1 R1 4 3 R 4 R 3 R 2 1 4 R2 3 R Receiver R 3 81
Routing hierarchczny w Internecie Area routing aggregate routers into regions, autonomous systems (AS) administrative autonomy routers in same AS run same routing protocol intra-as routing protocol or interior gateway protocol (IGP) routers in different AS can run different intra-as routing protocol gateway routers special routers in AS run intra-as routing protocol with all other routers in AS also responsible for routing to destinations outside AS run inter-as routing protocol or exterior gateway protocol (EGP) with other gateway routers in other AS s 82
NL: Example #1 1 2 1.1 1.2 IGP EGP IGP 2.1 2.2 2.2.1 EGP EGP 5 IGP EGP 3 3.1 3.2 IGP EGP 4.1 4.2 IGP 4 5.1 5.2 83
NL: Example #2 a C C.b b d A A.a a b A.c c B.a a B c Gateways: perform inter-as routing amongst themselves b perform intra-as routers with other routers in their AS inter-as, intra-as routing in gateway A.c network layer link layer physical layer 84
NL: Path Sub-optimality 1 2 2.1 2.2 1.1 1.2.1 1.2 start end 2.2.1 3 3.2.1 3 hop red path vs. 2 hop green path 3.1 3.2 85
NL: AS Categories Stub: an AS that has only a single connection to one other AS - carries only local traffic. Multi-homed: an AS that has connections to more than one AS, but does not carry transit traffic Transit: an AS that has connections to more than one AS, and carries both transit and local traffic (under certain policy restrictions) 86
NL: AS categories example AS1 AS1 AS3 AS2 AS1 AS3 AS2 Transit Stub AS2 Multi-homed 87
NL: IP route lookups Original IP Route Lookup Address classes A: 0 7 bit network 24 bit host (16M each) B: 10 14 bit network 16 bit host (64K) C: 110 21 bit network 8 bit host (255) Address would specify prefix for forwarding table Simple lookup 88
NL: Original IP Route Lookup Example www.ogi.edu address 129.95.5.30 Class B address class + network is 129.95 Lookup 129.95 in forwarding table Prefix part of address that really matters for routing Forwarding table contains List of prefix entries A few fixed prefix lengths (8/16/24) Large tables 2 Million class C networks Sites with multiple class C networks have multiple route entries at every router 89
NL: Getting a datagram from source to dest. Classful routing example IP datagram: misc fields source IP addr dest IP addr data datagram remains unchanged, as it travels source to destination addr fields of interest here A B 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 routing table in A Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.3.27 223.1.2.2 223.1.3.2 E 90
NL: Getting a datagram from source to dest. misc fields 223.1.1.1 223.1.1.3 data Starting at A, given IP datagram addressed to B: look up net. address of B find B is on same net. as A link layer will send datagram directly to B inside link-layer frame B and A are directly connected A B Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 91 E
NL: Getting a datagram from source to dest. misc fields 223.1.1.1 223.1.2.3 data Starting at A, dest. E: look up network address of E E on different network A, E not directly attached routing table: next hop router to E is 223.1.1.4 link layer sends datagram to router 223.1.1.4 inside linklayer frame datagram arrives at 223.1.1.4 continued.. A B Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 92 E
NL: Getting a datagram from source to dest. Dest. next misc fields 223.1.1.1 223.1.2.3 data network router Nhops interface 223.1.1-1 223.1.1.4 Arriving at 223.1.4, destined for 223.1.2.2 look up network address of E E on same network as router s interface 223.1.2.9 router, E directly attached link layer sends datagram to 223.1.2.2 inside link-layer frame via interface 223.1.2.9 datagram arrives at 223.1.2.2!!! (hooray!) 223.1.2-1 223.1.2.9 223.1.3-1 223.1.3.27 A B 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 223.1.3.2 93 E
NL: CIDR Supernets Classless routing (CIDR) Assign adjacent net addresses to same org Combine routing table entries whenever all nodes with same prefix share same hop 94
NL: CIDR and IP route lookups Network provider is allocated 8 class C chunks, 201.10.0.0 to 201.10.7.255 Allocation uses 3 bits of class C space Remaining 21 bits are network number, written as 201.10.0.0/21 Replaces 8 class C routing entries with 1 combined entry Routing protocols carry prefix with destination network address Longest prefix match for forwarding More on this when we talk about implementations. 95
NL: CIDR example ISP X given 16 class C networks 200.23.16.* to 200.23.31.* (or 200.23.16/20) Adjacent ISP 1 1 Route Interface ISP X router 200.23.16/21 2 200.23.24/22 3 2 5 200.23.28/23 4 Route Interface 3 4 200.23.30/24 5 200.23.16/20 1 Large company 200.23.16.0/21 Medium company 200.23.24.0/22 Small company 200.23.28.0/23 Tiny company 200.23.30.0/24 200.23.16.0/24, 200.200.17.0/24 200.23.18.0/24, 200.200.19.0/24 200.23.20.0/24, 200.200.21.0/24 200.23.22.0/24, 200.200.23.0/24 200.23.24.0/24 200.23.25.0/24 200.23.26.0/24 200.23.27.0/24 200.23.28.0/24 200.23.29.0/24 96
NL: CIDR, hierarchical addressing, route aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0 200.23.16.0/23 Organization 1 200.23.18.0/23 Organization 2 200.23.20.0/23 Organization 7.... Fly-By-Night-ISP Send me anything with addresses beginning 200.23.16.0/20 Internet 200.23.30.0/23 ISPs-R-Us Send me anything with addresses beginning 199.31.0.0/16 97
NL: Another CIDR example Routing to the network Packet to 10.1.1.3 arrives Path is R2 R1 H1 H2 10.1.0.1 10.1.1.1 10.1.2.2 R1 10.1.1.2 10.1.1.4 H1 10.1.1.3 H2 10.1.1/24 10.1.0.2 H3 10.1.0/24 Provider 10.1/16 10.1.8.1 10.1.2.1 10.1.16.1 10.1.2/23 R2 H4 10.1.8/24 10.1.8.4 98
NL: Another CIDR example Subnet Routing Packet to 10.1.1.3 10.1.1.2 10.1.1.4 H1 10.1.1.3 H2 Matches 10.1.0.0/23 Routing table at R2 10.1.0.1 10.1.1.1 10.1.2.2 R1 10.1.1/24 10.1.0.2 H3 10.1.0/24 Destination Next Hop Interface 127.0.0.1 127.0.0.1 lo0 Default or 0/0 provider 10.1.16.1 10.1.8.0/24 10.1.8.1 10.1.8.1 10.1.2.0/23 10.1.2.1 10.1.2.1 10.1/16 10.1.8.1 10.1.2.1 10.1.16.1 10.1.2/23 R2 10.1.8/24 H4 10.1.8.4 10.1.0.0/23 10.1.2.2 10.1.2.1 99
NL: Another CIDR example Subnet Routing Packet to 10.1.1.3 10.1.1.2 10.1.1.4 H1 10.1.1.3 H2 Matches 10.1.1.1/31 Longest prefix match Routing table at R1 Destination Next Hop Interface 127.0.0.1 127.0.0.1 lo0 Default or 0/0 10.1.2.1 10.1.2.2 10.1.0.0/24 10.1.0.1 10.1.0.1 10.1.0.1 10.1.1.1 10.1.2.2 10.1/16 10.1.8.1 10.1.2.1 10.1.16.1 R1 10.1.2/23 R2 10.1.1/24 10.1.0.2 H3 10.1.0/24 10.1.8/24 H4 10.1.8.4 10.1.1.0/24 10.1.1.1 10.1.1.4 10.1.2.0/23 10.1.2.2 10.1.2.2 10.1.1.2/31 10.1.1.2 10.1.1.2 100
NL: Another CIDR example Subnet Routing 10.1.1.2 10.1.1.4 10.1.1.3 Packet to 10.1.1.3 Direct route Longest prefix match 10.1.0.1 10.1.1.1 10.1.2.2 R1 H1 H2 10.1.1/24 10.1.0.2 H3 10.1.0/24 Routing table at H1 Destination Next Hop Interface 127.0.0.1 127.0.0.1 lo0 Default or 0/0 10.1.1.1 10.1.1.2 10.1.1.0/24 10.1.1.2 10.1.1.1 10.1/16 10.1.8.1 10.1.2.1 10.1.16.1 10.1.2/23 R2 10.1.8/24 H4 10.1.8.4 10.1.1.3/31 10.1.1.2 10.1.1.2 101
NL: CIDR Shortcomings Customer selecting a new provider Renumbering required 201.10.0.0/21 199.31.0.0/16 Provider 1 Provider 2 201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23 102
Multi-homing NL: CIDR Shortcomings Organization 0 200.23.16.0/23 ISPs-R-Us has a more specific route to Organization 1 Organization 2 200.23.20.0/23 Organization 7 200.23.30.0/23.... Organization 1 200.23.18.0/23 Fly-By-Night-ISP ISPs-R-Us Send me anything with addresses beginning 200.23.16.0/20 Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23 Internet 103
NL: Specific IP routing protocols Intra-AS routing protocols (interior routing protocols) GGP RIP IGRP OSPF Inter-AS routing protocols (exterior routing protocols) EGP BGP 104
NL: Intra-AS Routing Generate Intra-AS routing tables Also known as Interior Gateway Protocols (IGP) Most common IGPs Distance vector protocols RIP: Routing Information Protocol IGRP: Interior Gateway Routing Protocol (Cisco propr.) Link state protocols OSPF: Open Shortest Path First 105
NL: Intra-AS Distance Vector Protocols GGP: Gateway-to-Gateway Protocol (1970s) RIP: Routing Information Protocol (1982) 30 sec update with triggered updates Split horizon with poisonous reverse RIP-2 in 1993 adds prefix mask for CIDR IGRP: Interior Gateway Routing Protocol (1988) Cisco s successor to RIP 90 sec update with triggered updates Split horizon V1: path holddown V2: route poisoning Composite metric, multiple paths EIGRP adds prefix mask and DUAL for CIDR 106
NL: RIP (Routing Information Protocol) Included in BSD-UNIX Distribution in 1982 Distance metric: # of hops (max = 15 hops) Can you guess why? Distance vectors: exchanged every 30 sec via Response Message (also called advertisement) Each advertisement: route to up to 25 destination nets 107
NL: RIP: Link Failure and Recovery If no advertisement heard after 180 sec --> neighbor/link declared dead routes via neighbor invalidated new advertisements sent to neighbors neighbors in turn send out new advertisements (if tables changed) link failure info quickly propagates to entire net poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) 108
NL: RIP Table processing RIP routing tables managed by application-level process called route-d (daemon) advertisements sent in UDP packets, periodically repeated 109
NL: RIP Table example (continued) Router: giroflee.eurocom.fr Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454 Three attached class C networks (LANs) Router only knows routes to attached LANs Default router used to go up Route multicast address: 224.0.0.0 Loopback interface (for debugging) 110
NL: IGRP (Interior Gateway Routing Protocol) CISCO proprietary; successor of RIP (mid 80s) Distance Vector, like RIP several cost metrics (delay, bandwidth, reliability, load etc) uses TCP to exchange routing updates Loop-free routing via Distributed Updating Alg. (DUAL) based on diffused computation 111
NL: Intra-AS Link State Protocols OSPF Hierarchical OSPF 112
NL: OSPF (Open Shortest Path First) open : publicly available Uses Link State algorithm LS packet dissemination Topology map at each node Route computation using Dijkstra s algorithm OSPF advertisement carries one entry per neighbor router Advertisements disseminated to entire AS (via flooding) 113
NL: OSPF advanced features (not in RIP) Security: all OSPF messages authenticated (to prevent malicious intrusion); TCP connections used Multiple same-cost paths allowed (only one path in RIP) For each link, multiple cost metrics for different TOS (eg, satellite link cost set low for best effort; high for real time) Integrated uni- and multicast support: Multicast OSPF (MOSPF) uses same topology data base as OSPF Hierarchical OSPF in large domains. 114
NL: Hierarchical OSPF 115
NL: Hierarchical OSPF Two-level hierarchy: local area, backbone. Link-state advertisements only in area each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. Area border routers: summarize distances to nets in own area, advertise to other Area Border routers. Backbone routers: run OSPF routing limited to backbone. Boundary routers: connect to other ASs. 116
NL: Inter-AS routing 117
NL: Why different Intra- and Inter-AS routing? Policy: Inter-AS: admin wants control over how its traffic routed, who routes through its net. Intra-AS: single admin, so no policy decisions needed Scale: hierarchical routing saves table size, reduced update traffic Performance: Intra-AS: can focus on performance Inter-AS: policy may dominate over performance 118
NL: History Mid-80s: EGP (Exterior Gateway Protocol) Used in original ARPAnet Reachability protocol (no shortest path) Single bit for reachability information Did not accommodate cycles (topology restricted to a tree) ARPA-managed packet switches at top of tree Unacceptable once Internet grew to multiple independent backbones Result: BGP development 119
NL: BGP Link state or distance vector? Problems with distance-vector: Bellman-Ford algorithm may not converge Problems with link state: Metric used by routers not the same loops No universal routing metric Policy drives routing decisions LS database too large entire Internet May expose policies to other AS s 120
NL: BGP BGP (Border Gateway Protocol): the de facto standard Path Vector protocol: similar to Distance Vector protocol each Border Gateway broadcast to neighbors (peers) entire path (I.e, sequence of ASs) to destination E.g., Gateway X sends its path to dest. Z: Path (X,Z) = X,Y1,Y2,Y3,,Z When AS gets route check if AS already in path If yes, reject route If no, add self and (possibly) advertise route further Allows for policy application (different metrics) Metrics are local - AS chooses path, protocol ensures no loops Supports CIDR aggregation (BGP4) 121
NL: Path Selection Criteria Path attributes + external (policy) information Examples: Hop count Policy considerations Preference for AS Presence or absence of certain AS Path origin Link dynamics Early-exit Hot-potato routing for transit packets 122
NL: Policy with BGP BGP provides capability for enforcing various policies Policies are not part of BGP: they are provided to BGP as configuration information BGP enforces policies by choosing paths from multiple alternatives and controlling advertisement to other AS s 123
NL: Examples of BGP Policies A multi-homed AS refuses to act as transit Limit path advertisement A multi-homed AS can become transit for some AS s Only advertise paths to some AS s An AS can favor or disfavor certain AS s for traffic transit from itself 124
NL: Interconnecting BGP Peers BGP uses TCP to connect peers Advantages: Simplifies BGP No need for periodic refresh - routes are valid until withdrawn, or the connection is lost Incremental updates Disadvantages Congestion control on a routing protocol? Poor interaction during high load 125
NL: Internet inter-as routing: BGP BGP messages exchanged using TCP. BGP messages: OPEN: opens TCP connection to peer and authenticates sender UPDATE: advertises new path (or withdraws old) KEEPALIVE keeps connection alive in absence of UPDATES; also ACKs OPEN request NOTIFICATION: reports errors in previous msg; also used to close connection 126
Security Error detection Delivery semantics Quality-of-service Fragmentation Addressing Routing NL: IP summary 127
NL: IPv6 Redefine functions of IP (version 4) Remove ancillary functionality Add missing, but essential functionality Recall, functions of IPv4 What changes should be made in. IP addressing IP delivery semantics IP quality of service IP security IP routing IP fragmentation IP error detection 128
NL: IPv6 Initial motivation: 32-bit address space completely allocated by 2008. Additional motivation: header format helps speed processing/forwarding header changes to facilitate QoS new anycast address: route to best of several replicated servers IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed 129
NL: IPv6 Header ipv6-1 0 4 12 16 19 24 32 Version Class Flow Label Payload Length Next Header Hop Limit Source Address (128 bits) Destination Address (128 bits) 130
NL: IPv6 Changes Scale addresses are 128bit Header size? Simplification Removes infrequently used parts of header 40 byte fixed size vs. 20+ byte variable IPv6 removes checksum Relies on upper layer protocols to provide integrity Reduces processing time at each hop IPv6 eliminates fragmentation Requires path MTU discovery 131
NL: IPv6 Changes TOS replaced with traffic class octet Flow Help soft state systems Maps well onto TCP connection or stream of UDP packets on host-port pair Easy configuration Provides auto-configuration using hardware MAC address to provide unique base Additional requirements Support for security Support for mobility 132
NL: IPv6 Changes Protocol field replaced by next header field Support for protocol demultiplexing as well as option processing Option processing Options allowed, but only outside of header, indicated by Next Header field Options header does not need to be processed by every router Large performance improvement Makes options practical/useful ICMPv6: new version of ICMP additional message types, e.g. Packet Too Big multicast group management functions 133
NL: Transition From IPv4 To IPv6 Not all routers can be upgraded simultaneous no flag days How will the network operate with mixed IPv4 and IPv6 routers? Two proposed approaches: Dual Stack: some routers with dual stack (v6, v4) can translate between formats Tunneling: IPv6 carried as payload in an IPv4 datagram among IPv4 routers 134
NL: Dual Stack Approach 135
NL: Tunneling IPv6 inside IPv4 where needed 136