The Power When You Need It Effect Wstęp do routingu Marek Moskal Zespół doradczy d/s technologii szkieletowych Warszawa, 11/10/2011 1
Zakres szkolenia Droga do sieci pakietowych telekomunikacja w telegraficznym skrócie Zadania urządzeń sieciowych kable, bridge, przełączniki, routery Podstawy routingu teoria wyszukiwania najlepszych tras RIP (Routing Information Protocol) implementacja 2
Droga do sieci pakietowych 3
Rozwój telekomunikacji Telekomunikacja? Dedykowane łącza (kable) Współdzielenie czasowe (TDM) Komutacja połączeń Komutacja pakietów...same fachowe nazwy 4
Współdzielone i dedykowane Niektóre technologie mają dedykowane zasoby kabel lub światłowód punkt-punkt dedykowana częstotliwość radiowa Wiele współdzieli zasoby radio i współdzielona częstotliwość światłowód i wiele długości fali (WDM) 5
Ethernet Oryginalnie technologia współdzielona jeden kabel - szyna - do której podłączeni (elektrycznie) są wszyscy kabel zastąpiony przez urządzenie (ang. hub) Obecnie dedykowana kable punkt-punkt dla każdego hub zastąpiony przez przełącznik, który łączy lecz i separuje ruch... poza odcinkiem dostępowym wciąż współdzielenie łącza 6
Komunikacja? 7
Skąd wiadomo kto do kogo? Sala pełna ludzi jeden mówi, wszyscy słyszą początek wypowiedzi (np. imię) pozwala zidentyfikować odbiorcę wzrok i słuch pozwalają zidentyfikować także nadawcę inni moga jednak podsłuchiwać! W sieciach konieczne jest adresowanie wypowiedzi adres nadawcy adres odbiorcy 8
Adresacja Adresacja warstwy drugiej (L2) na przykład Ethernet komu w tym pokoju przekazać ramkę z danymi Adresacja warstwy trzeciej (L3) na przykład IP lub IPv6 do którego pokoju przekazać pakiet z danymi Ramka (L2) vs pakiet (L3) 9
IPv6 = większa przestrzeń adresowa IPv4 = 32 bity IPv6 = 128 bitów IPv4 32 bity = 4,294,967,296 możliwych hostów IPv6 128 bitów: 4 razy więcej = 3.4 x 10 38 możliwych hostów, albo... = 340,282,366,920,938,463,463,374,607,431,768,211,456 po 5 x 10 28 adresów dla każdej osoby na planecie 10
Adresy IP, sieci Adres to ciąg bitów dla IPv4 tradycyjnie zapisywany z podziałem na cztery bajty po osiem bitów: A.B.C.D Adres IP jest dzielony na dwie części: adres sieci w której znajduje się stacja pierwsze X bitów adres stacji w sieci (ang. host address) ostatnie 32-X bitów dla IPv4 lub 128 X bitów dla IPv6 X to długość adresu sieci dawniej ustalona na 8, 16 lub 24 bity (1, 2 lub 3 bajty) obecnie dowolna (ang. classless routing) 11
Legenda W pakiecie IP (L3) Nagłówek IPv4 Nagłówek IPv6 Version IHL Type of Service Total Length Version Traffic Class Flow Label Identification Flags Fragment Offset Payload Length Next Header Hop Limit Time to Live Protocol Header Checksum Adres źródłowy (SA) 32 bity Adres docelowy (DA) 32 bity Adres źródłowy (128 bitów) Options Padding Nazwa utrzymana pomiędzy IPv4 a IPv6 Pole które znika w IPv6 Nazwa i pozycja zmieniona w IPv6 Nowe pole w IPv6 Adres docelowy (128 bitów) 12
W ramce Ethernet (L2) Nagłówek Ethernet Adres źródłowy MAC (48 bitów) Adres docelowy MAC (48 bitów) Typ ramki (16 bitów) Dane... 13
Hub, bridge, przełącznik Ethernet Hub kabel w pudełku Przełącznik (czyli bridge z więcej niż dwoma portami) pamięta kto na jakim porcie uczy się tego z adresów nadawców wysyła ruch na właściwy port według adresu docelowego jeżeli nie wie rozsyła do wszystkich zmienia przepustowości, np. 10 Mbit/s <> 100Mbit/s Tablica adresów Ethernet tablice to sedno wszelkich urządzeń sieciowych Prosta logika, realizowana sprzętowo 14
MAC: Z Przełączanie ruchu Ethernet Sprawdź adres docelowy Ethernet (MAC) X 10.1.1.1 Zadecyduj do którego portu wysłać ramkę, by dotarła do celu Wyślij ramkę bez modyfikacji Przełącz na podstawie adresu L2 X 10.1.1.1 Zignoruj adresy IP i inne L3 10.1.1.2 MAC: Y 10.1.1.1 MAC: X 15
Sieć Sieć, czyli w dzisiejszym rozumieniu sieć lokalna dawniej (30-40 lat temu) nie było innych każda sieć sobie ruch wykracza jednak poza sieć lokalną Dwie sieci są połączone przez bramkę (ang. gateway) obecnie rolę bramki pełnią zwykle routery Catenet zbiór sieci (lokalnych) połączonych między sobą nazwa pochodzi z 1974 roku, ukuł ją Louis Pouzin 16
MAC: Z Przełączanie pakietów Sprawdź adres docelowy IP (10.1.1.1) Sprawdź do którego portu i której bramki należy wysłać pakiet by dotarł do celu Zmień adres docelowy Ethernet na adres kolejnej bramki, lub celu Z 10.1.1.1 Przełącz na podstawie adresu L3 X 10.1.1.1 10.1.1.2 MAC: Y 10.1.1.1 MAC: X 17
Przełącznik warstwy 3? Funkcjonalnie router Różnica w implementacji i dodatkowych funkcjach 18
Zadania urządzeń sieciowych 19
Zadania urządzeń sieciowych 1. Przesłać otrzymywany ruch do właściwego odbiorcy 2. Utrzymywać tablice danych pozwalające realizować punkt 1. *)...obecnie także setki innych funkcji, zgodnie z ideałem szwajcarskiego scyzoryka 20
A konkretnie te tabele... Przełącznik X.25 port/vc wejściowe -> port/vc wyjściowy Przełącznik Frame Relay port/dlci wejściowe -> port/dlci wyjściowe Przełącznik ATM port/vc wejściowe -> port/vc wyjściowe Przełącznik Ethernet adres MAC docelowy -> port wyjściowy Przełącznik MPLS port/etykieta wejściowa -> port/etykieta wyjściowa X.25/FR/ATM to tabele tworzone ręcznie lub przez system zarządzania Ethernet i MPLS to tabele tworzone dynamicznie przez samo urządzenie 21
...i w routerze Adres docelowy IP -> port i bramka docelowa Port = którym z portów routera wysłać pakiet dalej Bramka = do którego kolejnego urządzenia zaadresować taki pakiet. Tabele tworzone dynamicznie, przy współpracy z innymi routerami w sieci plus duże możliwości ingerencji administratora 22
Tabele, tabele... Topologia sieci zależy od protokołu routingu Baza informacji routingowych (RIB) Routing Information Base Baza informacji do przełączania (FIB) Forwarding Information Base 23
Tablice topologii Jak są budowane? Protokoły wymieniają informacje o dostępności sieci Każdy protokół routingu buduje swoją bazę z odpowiednimi danymi Dostępność sieci 10.1.1.0/24 via x.x.x.x 10.1.2.0/24 via y.y.y.y... Baza topologii 24
Tablice routingu (RIB) Następnie najlepsza ścieżka jest wybierana i umieszczana w tablicy routingu (RIB, Routing Information Base) Silnie zależy to od protokołu i konfiguracji urządzenia RIB zawiera Zestaw sieci docelowych Adres kolejnej bramki (ang. next hop) dla każdej z nich Port którym należy do tej bramki wysłać ruch Dostępność sieci 10.1.1.0/24 via x.x.x.x 10.1.2.0/24 via y.y.y.y... Baza topologii 10.1.1.0/24 via x.x.x.x (RIP) 10.1.2.0/24 via y.y.y.y (EIGRP)... RIB 25
Tablice przełączania (FIB) Tablice przełączania tworzy się na podstawie tablic routingu i innych danych RIB służy ludziom i protokołom routingu FIB służy urządzeniu sieciowemu FIB zawiera Sieć docelową Adres MAC kolejnej bramki (by zastąpić nim poprzedni adres w ramce) Port którym należy wysłać ruch dalej Szereg innych informacji o przetwarzaniu ruchu Dostępność sieci 10.1.1.0/24 via x.x.x.x 10.1.2.0/24 via y.y.y.y... Baza topologii 10.1.1.0/24 via x.x.x.x 10.1.2.0/24 via y.y.y.y... RIB 10.1.1.0/24 via x.x.x.x L2 a:b:c:d 10.1.2.0/24 via y.y.y.y L2 e:f:g:h... FIB 26
Jak wygląda taka tablica? Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP router#show D - EIGRP, EX ip - route EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2... E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set C 208.0.12.0/24 is directly connected, Serial0/2 10.0.0.0/24 is subnetted, 2 subnets S 10.7.7.0 [1/0] via 10.1.12.1 C 10.1.12.0 is directly connected, FastEthernet0/1 172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks S 172.16.1.0/24 [1/0] via 10.1.12.1 S 172.16.2.0/23 [1/0] via 10.1.12.1 C 192.168.0.0/24 is directly connected, Serial0/1 S 192.168.0.0/16 is directly connected, Null0 27
Tablica na routerze Sieć + trasa router#show ip route... Sieć Gateway of last resort is not set Trasa C 208.0.12.0/24 is directly connected, Serial0/2 10.0.0.0/24 is subnetted, 2 subnets S 10.7.7.0 [1/0] via 10.1.12.1 C 10.1.12.0 is directly connected, FastEthernet0/1 172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks S 172.16.1.0/24 [1/0] via 10.1.12.1 S 172.16.2.0/23 [1/0] via 10.1.12.1 C 192.168.0.0/24 is directly connected, Serial0/1 S 192.168.0.0/16 is directly connected, Null0 28
Router w środku Porty (do odbierania i wysyłania pakietów) Pamięć (by przechowywać tabele i pakiety) Moduł zarządzający (buduje tabele) Moduł przełączający (na podstawie tabel) 29
A może pecet? Gigabit Ethernet to 1 488 952 pakietów na sekundę 671 ns na przetworzenie jednego pakietu Czas dostępu do pamięci rzędu 60 ns Wystarczy na 10 operacji (sic!) dla każdego pakietu...sprawdza się, ale nie wszędzie 30
Przykład: router CRS-1 Projektowany przez ponad 4 lata 10 specjalizowanych układów scalonych specjalnie dla tego routera najbardziej złożone układy scalone na świecie może z wyjątkiem kart graficznych ;-) Moose Sea Squirt Sprayer Sponge Metro Sharq Reindeer QLink Bambi 31
Podstawa przełączania (1) Pakiet z portu jest kopiowany do pamięci buforowej Zamiana sygnału elektrycznego, rozpoznanie początku i końca pakietu lub ramki X 10.1.1.1 32
Podstawa przełączania (2) Klasyfikacja pakietu i decyzja co z nim dalej robić X 10.1.1.1 Device driver Packet Type Table 33
Podstawa przełączania (3) Sprawdzenie w tablicy FIB dokąd wysłać pakiet zarówno adres L3 (IP) jak i L2 (Ethernet) Device driver X 10.1.1.1 Packet Type Table Lookup Routing Table Find L3 next hop ARP Cache Find L2 next hop 34
Podstawa przełączania (4) Podmiana adresów MAC Wysłanie pakietu/ramki z bufora do portu Device driver X 10.1.1.1 Packet Type Table Lookup Routing Table Find L3 next hop Rewrite ARP Cache Find L2 next hop Y 10.1.1.1 35
Szukanie najlepszej trasy 36
Inny przykład szukania trasy 37
Skąd wiadomo którą trasę wybrać? Którą trasę umieścić w tablicy, jeśli są dwie? 10.1.1.0/24 Koszt: 100 AD: 90 vs. 10.1.1.0/25 Koszt: 30 AD: 115 Obydwie! sieci mają różną długość? Routing Table 38
Najdłuższa pasująca trasa Którą wykorzystamy do wysłania pakietu do 10.1.1.1? 10.1.1.0/25 Ponieważ 10.1.1.1 leży w zakresie10.1.1.0/25 Zawsze wybiera się najdłuższy pasujący prefiks spośród wielu możliwych 10.1.1.0/24 Cost: 100 AD: 90 Routing Table 10.1.1.0/25 Cost: 30 AD: 115? 10.1.1.1 10.1.1.1 39
192.168.1.0/24 Agregacja Routery nie przechowują tras do każdego komputera, tylko do sieci.1.3.2 Dlatego prefiks 192.168.1.0/24 oznacza każdy adres od 192.168.1.1, 192.168.1.2 aż do 192.168.1.254.5.4.6 40
192.168.1.8/29 192.168.1.0/28 192.168.1.0/29 Agregacja (2) Tak samo jak adresy komputerów łączone są całe sieci.1.3.2 192.168.1.0/29 oraz 192.168.1.8/29 mogą być zagregowane jako 192.168.1.0/28 Z punktu widzenia urządzeń poza punktem agregacji wszystkie komputery są dostępne przez tą samą ścieżkę.1.5.3.4.6.2.4 A.5.6 41
Podstawy routingu 42
Routing, czyli... Proste zadanie znaleźć najlepszą drogę przez sieć Skąd te informacje? Jakie konkretnie informacje? Jaki algorytm do ich przetwarzania? Jakie możliwości manipulacji parametrami? 43
Skąd informacje? Mogą być wskazane przez administratora metoda statyczna, nie pozwala wykorzystać w pełni dynamiki Mogą pochodzić od sąsiednich urządzeń wymiana z sąsiadami 44
Jakie informacje? Te, które pozwalają wytyczyć najlepsze trasy wg pewnych przyjętych kryteriów Typ i rodzaj informacji zależy od algorytmu wektor odległości (ang. Distance Vector) stan łączy (ang. Link State) 45
Przykład informacji dodatkowych Metryka, czyli sieciowa miara odległości A także na przykład liczniki czasu służące algorytmowi do określania co zrobić z trasą Metryka Czas ostatniej zmiany D EX 192.168.254.0/24 [170/3072256] via 208.0.246.10, 00:58:45, Serial3/0 46
Wybór trasy Skąd wiadomo która trasa jest najlepsza? Nie wiadomo! Decyzja jest podejmowana na zasadzie ważności protokołów Parametr administrative distance) RIP 10.1.1.0/24 EIGRP 10.1.1.0/24 10.1.1.0/25 Identyczne trasy EIGRP EIGRP internal = 90 RIP = 110 wybrana trasa EIGRP internal 47
Jaki algorytm? Istnieje wiele algorytmów Niektóre są (wystarczająco) proste nie zużywają zbyt wielu zasobów (pamięć, moc obliczeniowa) działają w większości sytuacji nadają się do niewielkich sieci (kilkanaście bramek) Niektóre mogą być arbitralnie trudne dziesiątki parametrów do sterowania ruchem nadają się do wielkich sieci wymagają dedykowanych zasobów do przeliczania danych 48
Podstawy Sieć składa się (ogólnie) z urządzeń końcowych (komputerów), które się chcą komunikować ze sobą, połączonych w sieci lokalne łączy między bramkami pozwalającymi łączyć wiele sieci lokalnych w większą sieć bramek pośredniczących w przekazywaniu danych między sieciami lokalnymi Odległa analogia ludzie w pomieszczeniach drzwi łączące pomieszczenia pośrednicy przekazujący wiadomości 49
Wektor odległości (1) D rozgłasza sieć 10.1.1.0/24 z odległością 10 A 20 10 B C 10 10 5 D 10 10 10.1.1.0/24 50
Wektor odległości (2) D rozgłasza sieć 10.1.1.0/24 z odległością 10 B i C rozgłaszają sieć 10.1.1.0/24 odległości zsumowane 15 A 20 20 B C 10 10 10 + 5 D + 10 10 10.1.1.0/24 51
Wektor odległości (3) D rozgłasza sieć 10.1.1.0/24 z odległością 10 B i C rozgłaszają sieć 10.1.1.0/24 odległości zsumowane A określa całkowitą odległość jako sumę otrzymanej odległości oraz odległości do rozgłaszającego sąsiada Od B: 20 + 15 == 35 Od V: 10 + 20 == 30 20 10 B C 10 15 20 A + 35 + + 5 D 10 10 10.1.1.0/24 30 + 10 52
Wektor odległości (4) I teraz Sieć 10.1.1.0/24 jest osiągalna Najlepsza odległośc do 10.1.1.0/24 to 30 I co dalej? Wiemy także że najkrótszy dystans nie jest pętlą 20 10 B C 10 15 20 A + 35 30 + + + 5 D 10 10 10 10.1.1.0/24 53
Wektor odległości (5) Czy także trasa alternatywna, przez B, nie tworzy pętli? Algorytmy wektora odległości nie potrafią tego określić 15 20 A + 35 30 + 20 10 B C 10 + + 5 D 10 10 10 10.1.1.0/24 54
Zapobieganie pętlom (1) D ogłasza 10.1.1.0/24 do B i C z odległością10 B ogłasza 10.1.1.0/24 do A z odległością 15 C ogłasza10.1.1.0/24 do A z odległością 20 S0 A S1 20 10 B C 5 D 10 10 10.1.1.0/24 55
Zapobieganie pętlom (2) A ogłasza10.1.1.0/24 do C z odległością 35 C ogłasza10.1.1.0/24 do D z odległością 35 S0 A S1 20 10 B C 5 D 10 10 10.1.1.0/24 56
Zapobieganie pętlom (3) D traci połączenie do 0.1.1.0/24, ale D ma ścieżkę przez C z odległością 35 D ogłasza 10.1.1.0/24 do B z odległością 25 B ogłasza 10.1.1.0/24 do A z odległością 30 A ogłasza10.1.1.0/24 do C z odległością 50 C ogłasza10.1.1.0/24 do D z odległością 60 D ogłasza10.1.1.0/24 do B z odległością 70 S0 5 A 10 S1 20 10 B C D 10 10.1.1.0/24 57
Zapobieganie pętlom (4) Mechanizm Split Horizon Nigdy nie ogłaszaj trasy do tego, od kogo ją otrzymałeś Tak więc C nigdy nie ogłosi 10.1.1.0/24 do D, dzięki czemu nie powstanie pętla Oczywiście są wyjątki ;-) S0 A S1 20 10 B C 5 D 10 10 10.1.1.0/24 58
Zapobieganie pętlom (5) Mechanizm Poison Reverse Podobny do poprzedniego, ale zamiast nie rozgłaszać trasy, jest ona rozgłaszana z metryką równą nieskończoności Dzięki temu trasa jest efektywnie usuwana z tablic S0 A S1 20 10 B C 5 D 10 10 10.1.1.0/24 59
RIP z bliska Routing Information Protocol 60
Protokół RIP (1) Wykorzystuje algorytm wektor odległości Działa w sposób opisany w poprzedniej sekcji Informacje o trasach rozsyłane co 30 sekund...plus minus ułamek...ale także natychmiastowo w razie zmiany topologii Trasy usuwane jeśli nie były otrzymane przez 180 sekund 61
Protokół RIP (2) Prosta metryka liczba łączy zaczyna się od 1, zwiększa o 1 maksymalna wartość to 15 (czyli małe sieci) wartość 16 to nieskończoność Wykorzystuj Split Horizon i Poison Reverse RIP nie posiada informacji o długości prefiksów domyślnie klasy adresowe A/B/C RIPv2 dodaje taką informację 62
Protokół RIP (3) 0 1 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ komenda (1) wersja (1) zawsze zero (2) +---------------+---------------+-------------------------------+ address family identifier (2) zawsze zero (2) +-------------------------------+-------------------------------+ sieć(4) +---------------------------------------------------------------+ zawsze zero (4) +---------------------------------------------------------------+ zawsze zero (4) +---------------------------------------------------------------+ metryka (4) +---------------------------------------------------------------+ 63
Protokół RIPv2 (1) Dodaje informację o długości prefiksu Wprowadza możliwość uwierzytelniania sąsiadów za pomocą hasła 64
Protokół RIPv2 (2) 0 1 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ komenda(1) wersja (1) niewykorzystane +---------------+---------------+-------------------------------+ Address Family Identifier (2) znacznik trasy (2) +-------------------------------+-------------------------------+ sieć (4) +---------------------------------------------------------------+ maska sieci (4) +---------------------------------------------------------------+ następna bramka (4) +---------------------------------------------------------------+ metryka (4) +---------------------------------------------------------------+ 65
Informacje o protokole RIP w IOS router# show ip protocols Routing Protocol is "rip" Sending updates every 30 seconds, next due in 8 seconds Invalid after 180 seconds, hold down 180, flushed after 240 Outgoing update filter list for all interfaces is Incoming update filter list for all interfaces is Redistributing: rip Default version control: send version 2, receive version 2 Interface Send Recv Triggered RIP Key-chain Ethernet2 2 2 Ethernet3 2 2 Ethernet4 2 2 Ethernet5 2 2 Automatic network summarization is not in effect Address Summarization: 10.11.0.0/16 for Ethernet2 66
Informacje o topologii RIP w IOS router# show ip rip database 10.0.0.0/8 auto-summary 10.11.11.0/24 directly connected, Ethernet2 10.1.0.0/8 auto-summary 10.11.0.0/16 int-summary ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 10.11.10.0/24 directly connected, Ethernet3 10.11.11.0/24 directly connected, Ethernet4 10.11.12.0/24 directly connected, Ethernet5 67
Konfiguracja RIP w IOS router rip version 2 timers basic 5 10 15 20 redistribute connected network 5.0.0.0 default-metric 10 no auto-summary interface ethernet1 ip address 10.1.1.1 255.255.255.0 no ip split-horizon 68
Na zakończenie......pierwszej części 69
Podsumowując Podstawy routingu są jednakowe dla szeregu urządzeń i protokołów RIP jest najprostszym przykładem by poznać te podstawy zachęcam do przeczytania RFC 1058 (i 2453) W kolejnych sesjach: inna rodzina algorytmów routingu (Link State) inne protokoły routingu 70
71