Wyznaczanie tras (routing) 1 Wyznaczanie tras (routing) 2 Wyznaczanie tras VLSM Algorytmy rutingu Tablica rutingu CIDR Ruting statyczny Plan wykładu Wyznaczanie tras (routing) 3 Funkcje warstwy sieciowej Wprowadzenie jednolitej adresacji niezależnej od niższych warstw (IP) Współpraca z niższymi warstwami OSI/ISO Dostarczenie pakietu od nadawcy od odbiorcy (RIP, IGRP, OSPF, EGP, BGP) Wyznaczanie tras (routing) 4 Podsieci liczba urządzeń w klasie C Przykład: adres IP klasy C, 197.197.197.0 bez na podsieci: maska Ile urządzeń można zaadresować? Klasa C: 110xxxxx Sieć Host 8 bitów na host! 2 8 2 = 256 2 = 254
Wyznaczanie tras (routing) 5 Podsieci liczba urządzeń w klasie C Identyczna pula adresów: adres IP klasy C, 197.197.197.0 podział na podsieci: maska /26 (255.255.255.192 ) Ile urządzeń można zaadresować? Sieć Host Klasa C: 110xxxxx 11111111.11111111.11111111.11000000 Mniej niż połowa z 254!!! część podsieci część hosta (2 2-2) * (2 6-2) = (4 2)*(64 2) = 124! /27 (2 3-2) * (2 5-2) = (8 2)*(32 2) = 180 /28 (2 4-2) * (2 4-2) = (16 2)*(16 2) = 196 /29 _ (2 5-2) * (2 3-2) = (32 2)*(8 2) = 180 /30 (2 6-2) * (2 2-2) = (64 2)*(4 2) = 124 Wyznaczanie tras (routing) 6 Podsieci liczba urządzeń w klasie B Klasa B: Sieć Komputer 10xxxxxx Maska Wykorzystanie adresów /16 () 100% /18 (255.255.192.0) 49,99% /20 (255.255.240.0) 87,45% /22 (255.255.252.0) 96,69% /24 () 98,44% Wyznaczanie tras (routing) 7 Podsieci liczba urządzeń: podsumowanie W sieciach należących do klasy A obserwujemy identyczną zależność Najlepsze wykorzystanie dostępnej przestrzeni adresowej osiągamy przy podziale części należącej do hosta na dwie równe części Obserwacje poczynione zostały przy założeniu, że maska dla wszystkich istniejących podsieci jest identyczna Czy to konieczne? Wyznaczanie tras (routing) 8 Variable Length Subnet Mask (VLSM) Zmienna Długość Maski Podsieci (ZDMP???) Dzielenie sieci na podsieci o różnej długości maski w celu uzyskania sieci o różnych rozmiarach Zalety: Lepsze dostosowanie budowy sieci do narzuconych wymagań Lepsze wykorzystanie adresów IP
Wyznaczanie tras (routing) 9 Wyznaczanie tras (routing) 10 VLSM przykład Wymagania: Dysponujemy adresem klasy C: 192.168.1.0 2 sieci zawierające co najmniej 60 hostów (dwa działy w firmie) 4 sieci zawierające co najmniej 10 hostów (podsieci dla serwerów) Jak najwięcej sieci dla dwóch hostów (połączenia punkt-punkt dla pracowników pracujących w domu) Suma: 2*60 + 4*10 = 160 < 254 O.K. VLSM przykład: bez VLSM Co najmniej 60 hostów > co najmniej 6 bitów na podsieć: 2 6 > 60 > 2 5 Co jeśli wszystkie podsieci mają identyczną maskę? (Brak VLSM) 1 2 3 4 192.168.1.00000000 192.168.1.01000000 192.168.1.10000000 192.168.1.11000000 192.168.1.0/26 192.168.1.64/26 192.168.1.128/26 192.168.1.192/26 Nieużyteczna Dział 1 Dział 2 Nieużyteczna Wyznaczanie tras (routing) 11 Wyznaczanie tras (routing) 12 VLSM przykład: c.d. 1 Co najmniej 60 hostów > co najmniej 6 bitów na podsieć: 2 6 > 60 > 2 5 1 2 3 4 192.168.1.00000000 192.168.1.01000000 192.168.1.10000000 192.168.1.11000000 192.168.1.0/26 192.168.1.64/26 192.168.1.128/26 192.168.1.192/26 Dział 1 Dział 2 VLSM przykład: c.d. 2 Dzielimy niewykorzystane podsieci Co najmniej 10 hostów -> co najmniej 4 bity na podsieć: 2 4 > 10 > 2 3 1.1 1.2 1.3 1.4 192.168.1.00000000 192.168.1.00010000 192.168.1.00100000 192.168.1.00110000 192.168.1.0/28 192.168.1.16/28 192.168.1.32/28 192.168.1.48/28 Serwery 1 Serwery 2 Serwery 3
Wyznaczanie tras (routing) 13 Wyznaczanie tras (routing) 14 VLSM przykład: c.d. 3 Dodatkową podsieć dla serwerów uzyskujemy poprzez podział nieużytecznej podsieci 192.168.1.192/26 VLSM przykład: c.d. 4 Po dwa hosty -> 2 bity na podsieć: 2 2-2=2 Wszystkie pozostałe niewykorzystane podsieci dzielimy używając maski 30 bitowej np.: 4.1 192.168.1.11000000 192.168.1.192/28 Serwery 4 1.1.1 192.168.1.00000000 192.168.1.0/30 Nieużyteczna 4.2 192.168.1.11010000 192.168.1.208/28 1.1.2 192.168.1.00000100 192.168.1.4/30 Punkt-punkt 1 4.3 192.168.1.11100000 192.168.1.224/28 1.1.3 192.168.1.00001000 192.168.1.8/30 Punkt-punkt 2 4.4 192.168.1.11110000 192.168.1.240/28 1.1.4 192.168.1.00001100 192.168.1.12/30 Punkt-punkt 3 Wyznaczanie tras (routing) 15 Wyznaczanie tras (routing) 16 192.168.1.0 VLSM przykład: całość 2: 192.168.1.128 Maska: /26 3: 192.168.1.64 Maska: /26 1.2: 192.168.1.16 Maska: /28 1.3: 192.168.1.32 Maska: /28 1.4: 192.168.1.48 Maska: /28 4.1: 192.168.1.192 Maska: /28 1.1.2: 192.168.1.4 Maska: /30 1.1.3: 192.168.1.8 Maska: /30... 4.4.3: 192.168.1.248 Maska: /30 Klasa C VLSM przykład: podsumowanie Podzieliliśmy sieć na odpowiednie hosty zgodnie z założeniami Zostało stworzone 2+4+16 sieci o odpowiednio 26/28/30 bitowej masce. Możliwa liczba urządzeń do zaadresowania: 212 (83%)!!! Więcej niż przy takim podziale na podsieci o identycznej długości, który adresuje największą ilość hostów (przypomnienie: 196)
172.16.40.1 Wyznaczanie tras (routing) 17 VLSM łącza szeregowe B 172.16.1.4 255.255.255.252252.6.9 172.16.1.8 255.255.255.252252.5.10 C A.14.13 172.16.50.1 172.16.1.12 255.255.255.252252 172.16.60.1 Wyznaczanie tras (routing) 18 VLSM łącza szeregowe: realizacja Wybierz jedną podsieć normalnego rozmiaru Podziel ją na podsieci zwiększając długość maski Wszystkie pod-podsieci utrzymuj w jednym obszarze 172.16.0.0 172.16.1.0 255.255.255.252 Klasa B 254 podsieci Wybrano podsieć 1 62 dodatkowe podsieci Wyznaczanie tras (routing) 19 Algorytmy routingu Dokąd wysłać pakiet? Routing proces wyboru ścieżki, po której będą przesyłane pakiety Decyzję podejmują zarówno routery jak i komputery Wyznaczanie tras (routing) 20 Rodzaje routingu: dostarczanie bezpośrednie i pośrednie Dostarczanie bezpośrednie przesyłanie datagramu do hosta znajdującego się w tej samej sieci fizycznej (ten sam numer sieci w adresach IP) enkapsulacja danych w ramkę warstwy łącza danych powiązanie adresu odbiorcy z adresem sprzętowym dostarczenie za pośrednictwem sieci fizycznej Dostarczanie pośrednie przesyłanie datagramu do hosta znajdującego się w innej sieci fizycznej (różne numery sieci w adresach IP) potrzebny jest pośrednik router enkapsulacja danych w ramkę warstwy łącza danych sprzętowym adresem docelowym jest adres routera przekazanie ramki do routera tak jak dostarczaniu bezpośrednim
Wyznaczanie tras (routing) 21 Wyznaczanie tras (routing) 22 Komputer przykład Komputer przykład nadawca odbiorca nadawca odbiorca IP: 23.56.129.34 mask: 255.255.224.0 IP: 23.56.140.2 00010111.00111000.10000001.00100010 11111111.11111111.11100000.00000000 00010111.00111000.10001100.00100010 Części sieciowe są identyczne komputery należą do tej samej sieci nadawca odbiorca IP: 23.56.129.34 mask: 255.255.224.0 IP: 23.56.160.2 00010111.00111000.10000001.00100010 11111111.11111111.11100000.00000000 00010111.00111000.10100000.00100010 Części sieciowe różnią się komputery nie należą do tej samej sieci nadawca odbiorca Wyznaczanie tras (routing) 23 Algorytm routowania komputer Komputer ma do wysłania datagram IP if (IP_celu == mój_ip IP_celu == loopback IP_celu == adres_grupy_do_której_należę IP_celu == ogr_broadcast ) { włóż_do_kolejki_wejściowej_ip(datagram_ip); if (siec(ip_celu) == siec(mój_ip) IP_celu == multicast IP_celu == ogr_broadcast )) { wyślij_bezpośrednio_do_hosta(datagram_ip); else { wybierz_router_i_wyślij_bezpośrednio_do_niego(datagram_ip); Router MUSI znajdować się w tej samej sieci przesyłanie do routera jest dostarczaniem bezpośrednim Wyznaczanie tras (routing) 24 Algorytm postępowania routera Odbiera ramkę warstwy łącza danych Zdejmuje nagłówek i ogonek warstwy łącza danych (jeśli takie są) Analizuje datagram na podstawie informacji zawartych w datagramie podejmuje decyzję gdzie wysłać pakiet Enkapsułuje datagram w odpowiednią ramkę warstwy łącza danych Wysyła datagram przez wybrany interfejs Może łączyć różne sieci fizyczne
Wyznaczanie tras (routing) 25 Algorytm przekazywania datagramów router Router ma do przekazania datagram IP otrzymany na jednym ze swoich interfejsów if (IP_celu == jeden_z_moich_ip) { prześlij_do_warstwy_wyższej_odpowiedniego_interfejsu(dgram_ip); else if (siec(ip_celu) == siec(jeden_z_moich_ip)) { wyślij_bezpośrednio_do_komputera(datagram_ip); else { znalazł = wyszukaj_router_przez_który_trzeba_przesłać_datagram(dgram_ip); if (znalazł) { prześlij_datagram_bezpośrednio_do_routera(datagram_ip); else { odrzuć_datagram(datagram_ip); Pakiety ograniczony broadcast nie są przekazywane przez routery Broadcast skierowany może być przepuszczany przez routery Wyznaczanie tras (routing) 26 Tablica routingu Zawiera skojarzenie pomiędzy adresem przeznaczenia adres hosta adres grupy hostów grupa wszystkich komputerów o tym samym adresie sieci minimalizacja tablicy routingu adresem następnego routera na trasie do hosta(grupy) o podanym wcześniej adresie routowanie odbywa się etapami następny router jest dołączony do tej samej sieci fizycznej co jeden z interfejsów przekazywanie datagramów odbywa się metodą bezpośrednią Jeśli masz do wysłania pakiet skierowany pod adres przeznaczenia to przekaż go routerowi Wyznaczanie tras (routing) 27 Wyznaczanie tras (routing) 28 Tablica routingu 7.2.1.0 3.2.1.0 7.0.0.0 3.0.0.0 2.0.0.0 7.8.7.6 4.0.0.0 3.1.4.1 7.3.4.0 9.0.0.0 1.0.0.0 2.8.7.6 4.1.4.1 9.1.4.1 9.1.1.1 1.1.1.1 2.8.7.9 IP docelowy IP docelowy 9.0.0.0 4.1.4.1 1.0.0.0 9.1.1.1 1.0.0.0 4.1.4.1 2.0.0.0 3.0.0.0 7.2.1.0 7.0.0.0 3.2.1.0 2.8.7.9 SERWER Tablica routingu 7.2.1.0 3.2.1.0 7.0.0.0 3.0.0.0 2.8.7.7 2.0.0.0 7.8.7.6 4.0.0.0 3.1.4.1 9.0.0.0 2.8.7.6 4.1.4.1 9.1.4.1 9.1.1.1 IP docelowy 1.1.1.1 1.0.0.0 1.0.0.0 9.1.1.1 7.0.0.0 3.2.1.0 2.8.7.9 3.2.1.0 2.0.0.0 Minimalizacja dzięki powiązaniu adresacji z położeniem geograficznym (por. switch)
Wyznaczanie tras (routing) 29 Tablica routingu 6.0.0.0 7.2.1.0 7.0.0.0 3.2.1.0 3.0.0.0 5.0.0.0 2.0.0.0 7.8.7.6 5.2.1.0 4.0.0.0 9.0.0.0 1.0.0.0 2.8.7.6 4.1.4.1 9.1.4.1 9.1.1.1 1.1.1.1 2.8.7.9 IP docelowy IP docelowy 3.0.0.0 7.2.1.0 3.0.0.0 7.2.1.0 9.0.0.0 4.1.4.1 0.0.0.0 4.1.4.1 1.0.0.0 4.1.4.1 5.0.0.0 4.1.4.1 trasa domyślna 6.0.0.0 4.1.4.1 Wyznaczanie tras (routing) 30 Algorytm przekazywania datagramów router wyszukaj_router_przez_który_trzeba_przesłać_datagram(datagram_ip) Router ma do przekazania otrzymany na jednym ze swoich { if (tablica_zawiera_wpis_dla_hosta(datagram_ip)) { interfejsów if (IP_celu następny_skok == jeden_z_moich_ip) = ten_wpis; { prześlij_do_warstwy_wyższej_odpowiedniego_interfejsu(dgram_ip); else if (tablica_zawiera_wpis_dla_sieci(siec(datagram_ip)){ else następny_skok if (siec(ip_celu) = ten_wpis; == siec(jeden_z_moich_ip)) { wyślij_bezpośrednio_do_komputera(datagram_ip); else if (tablica_zawiera_trasę_domyślną) { else następny_skok { = trasa_domyślna; znalazł else { = wyszukaj_router_przez_który_trzeba_przesłać_datagram(dgram_ip); if return (znalazł) brak_trasy; { prześlij_datagram_bezpośrednio_do_routera(datagram_ip); return else znalazłem; { odrzuć_datagram(datagram_ip); Wyznaczanie tras (routing) 31 Tablica routingu z uwzględnieniem podsieci 9.2.1.0 3.2.1.0 9.2.0.0/16 3.0.0.0/8 9.3.2.1 9.2.7.6 9.3.0.0/16 3.1.4.1 4.0.0.0/8 1.1.0.0/16 9.3.7.6 4.1.4.1 1.1.4.1 8.5.7.6 9.3.7.9 8.5.0.0/16 IP docelowy Maska 8.5.7.0 Maska określa liczbę znaczących bitów w IP docelowy 9.3.0.0 9.0.0.0 8.0.0.0 255.0.0.0 9.29.1.2 8.5.7.0 3.2.1.0 Wyznaczanie tras (routing) 32 Tablica routingu z uwzględnieniem podsieci 9.2.1.0 3.2.1.0 9.2.0.0/16 3.0.0.0/8 9.5.7.2 9.2.7.6 9.3.0.0/16 3.1.4.1 4.0.0.0/8 1.1.0.0/16 9.3.7.6 4.1.4.1 1.1.4.1 9.5.7.6 9.3.7.9 9.5.0.0/16 IP docelowy Maska 9.5.7.0 SERWER 9.0.0.0 9.2.0.0 9.5.7.0 255.0.0.0 255.255.255.255 9.3.7.9 9.2.1.2 3.2.1.0 3.2.1.0
Wyznaczanie tras (routing) 33 Algorytm przekazywania datagramów router wyszukaj_router_przez_który_trzeba_przesłać_datagram(datagram_ip) Router ma do przekazania otrzymany na jednym ze swoich { znalezione = dopasuj_wpisy_z_tablicy(datagram_ip); interfejsów if if (IP_celu (znalezione) == jeden_z_moich_ip) { { prześlij_do_warstwy_wyższej_odpowiedniego_interfejsu(dgram_ip); wybrany = ten_który_ma_najdłuższą_maskę(znalezione); else return if (siec(ip_celu) wybrany; == siec(jeden_z_moich_ip)) { wyślij_bezpośrednio_do_komputera(datagram_ip); else { else return { brak_trasy; znalazł = wyszukaj_router_przez_który_trzeba_przesłać_datagram(dgram_ip); if (znalazł) { prześlij_datagram_bezpośrednio_do_routera(datagram_ip); else { Por: odrzuć_datagram(datagram_ip); trasa domyślna Wyznaczanie tras (routing) 34 Minimalizacja tablicy routingu 3.0.0.0/8 9.2.1.0 3.2.1.0 9.2.0.0/16 Router zewnętrzny 9.2.7.6 9.3.0.0/16 4.0.0.0/8 1.1.0.0/16 9.3.7.6 4.1.4.1 1.1.4.1 9.5.7.6 9.3.7.9 9.5.0.0/16 IP docelowy Maska Przedsiębiorstwo 9.5.7.0 SERWER Podsieci ukrywają wewnętrzną budowę sieci 9.3.0.0 9.2.0.0 9.5.0.0 9.0.0.0 255.0.0.0 Agregacja zmniejsza rozmiar tablicy routingu Wyznaczanie tras (routing) 35 Wyznaczanie tras (routing) 36 Tworzenie podsieci cele Zbyt dużo komputerów w klasach A (2 24 2) i B (2 16 2) Daje elastyczność administratorowi (+48 12 617 3982) Pozwala ukryć szczegóły budowy sieci przed routerami zewnętrznymi Zmniejszone są domeny rozgłoszeniowe Mogą istnieć różne rodzaje sieci lokalnych, które trzeba jakoś połączyć Liczba hostów w sieci może być ograniczona Lepsze podsieci w klasie B niż wiele sieci klasy C, ponieważ redukuje to rozmiar tablic rutowania Przykład: Adres IP klasy B: 149.156.10.18 Adres sieci 149.156 Adres komputera 10.18 Adres sieci 149.156 Adres podsieci 10 Adres komp. 18 Minimalizacja tablicy routingu 248:11111 000 136:10001 000 144:10010 000 160:10100 000 128:10000 000 9.2.1.0 9.64.0.0/13 9.2.1.0 3.2.1.0 9.136.0.0/13 3.0.0.0 9.2.7.6 9.144.0.0/13 4.0.0.0 3.1.4.1 1.1.0.0 9.3.7.6 4.1.4.1 1.1.4.1 9.5.7.6 9.3.7.9 9.160.0.0/13 IP docelowy Maska 9.5.7.0 SERWER 9.64.0.0 9.136.0.0 9.144.0.0 255.248.0.0 255.248.0.0 255.248.0.0 3.2.1.0 9.160.0.0 255.248.0.0 9.128.0.0 255.192.0.0
Wyznaczanie tras (routing) 37 Classless Inter-Domain Routing (CIDR) Problemy: Brak wolnych adresów sieci Sieć klasy A: zbyt duża (ponad 16mln hostów) Sieć klasy C: zbyt mała (254 hosty) Sieć klasy B: ok., ale jest ich tylko 16384! Wzrost wielkości tablic routingu Ponad 2 mln sieci klasy C Grupy numerów sieci nie są powiązane z geograficznym rozmieszczeniem Wyznaczanie tras (routing) 38 CIDR sugestie Praktyka: Wiele firm ma więcej niż 254 hosty ale nie wiele więcej niż kilka tysięcy można przydzielać kilka adresów sieci klasy C. < 256 1 sieć klasy C < 512 2 sieci klasy C... Duży rozmiar tablic routingu " Rozwiązanie: Numery klas C nie są przyznawane losowo są ciągłe; mają takie same prefiksy. Routery mają świadomość istnienia prefiksów Rezygnujemy z pojęcia Klasy sieci. Wyznaczanie tras (routing) 39 Wyznaczanie tras (routing) 40 Adresacja bezklasowa Adresacja klasowa: Część sieci Część podsieci Część hosta jedynki zera Adresacja bezklasowa: Prefiks Część hosta jedynki zera Minimalizacja tablicy routingu 200.1.1.0 Grupa przedsiębiorstw 1:00000001 2:00000010 3:00000011 200.1.3.0 200.1.2.0 4.0.0.0 IP docelowy 200.1.2.0 200.1.3.0 200.1.1.0 Maska 1.1.0.0 Router zewnętrzny 200.1.0.0 255.255.252.0 Hierarchiczna agregacja tablic routingu w zależności od ISP i położenia geograficznego.
Wyznaczanie tras (routing) 41 Wyznaczanie tras (routing) 42 Tablica routingu wnioski Routing IP jest dokonywany na podstawie kolejnych przejść. IP nie zna pełnej trasy do żadnego z punktów przeznaczenia. Routing jest możliwy dzięki przekazywaniu datagramu do następnego routera. Zakłada się, że kolejny router jest bliżej punktu przeznaczenia niż komputer wysyłający informację oraz że wysyłający komputer jest połączony z jakimś routerem, który odbiera od niego datagramy. Routing statyczny Polega na ręcznym dodawaniu przez administratora wpisów w tablicach routingu wszystkich routerów Przewidywalny trasa po której pakiet jest przesyłany jest dobrze znana i może być kontrolowana Łącza nie są dodatkowo obciążone wiadomościami służącymi do routowania Łatwe do skonfigurowania w małych sieciach Nadaje się do sieci końcowych Zwiększa bezpieczeństwo brak wymiany komunikatów o sieciach sprawia, że nikt ich nie może podsłuchać Brak skalowalności Brak obsługi redundantnych połączeń Nieumiejętność dostosowania się do dynamicznych zmian w konfiguracji sieci