1 (Pobrane z slow7.pl) Zacznijmy od podstaw i najpierw pierwsze pojęcie, które należy wytłumaczyć (tak by później było wszystko jasne), więc czym jest routing? A więc routing możemy wytłumaczyć jako proces wyboru najlepszej, aktualnie dostępnej ścieżki dla pakietów tak by trafiły one od źródła do celu. Czyli chodzi o to by dany pakiet wysłany z danego hosta jak najszybciej (co nie jest jednoznaczne z najkrótszą drogą) trafił do hosta docelowego. Routingiem zajmują się routery, to one są odpowiedzialne za wybór drogi jaką pakiety będą podążać. A więc routery są urządzeniami warstwy sieci (mówi się często, że routery pracują w warstwie trzeciej modelu odniesienia ISO/OSI, ponieważ warstwa sieci jest odpowiedzialna za przekazywanie pakietów w oparciu o protokół IP), których zadaniem jest wybór najlepszej ścieżki (trasy) dla pakietu. Wybór tej trasy przebiega w oparciu o: docelowy adres IP pakietu, tablicę routingu. A więc zadaniem routera jest przeszukanie swojej tablicy routingu w której znajdują się informacje o dostępnych dla routera sieciach (adresy sieci) tak aby znaleźć najbliższe dopasowanie pasujące do adresu docelowego hosta. W przypadku znalezienia dopasowania, router wysyła pakiet poprzez skojarzony z adresem sieci interfejs routera a w przypadku braku dopasowania, router pakiet odrzuca (no chyba, że w tablicy routingu znajduje się trasa domyślna ale o tym później). A więc zadaniem routera jest łączenie ze sobą sieci w taki sposób by zachodziła między nimi wzajemna komunikacja. By założenie to okazało się słuszne muszą zostać spełnione następujące warunki: każdy interfejs routera znajduje się w innej sieci IP, oraz każdy funkcjonujący interfejs ma adres i maskę z tej sieci. Przy czym sieci, które są bezpośrednio podłączone do routera (co jest rozwinięciem i dopełnieniem warunków powyżej) by routing przebiegał poprawnie i bez zakłóceń muszą spełnić wymagania: interfejsy routera znajdują się w nienakładających się na siebie sieciach IP, czyli musi być zachowana poprawnie przeprowadzona adresacja IP tak by sieci były spójne, interfejsy pracują w sieci w taki sam sposób, jak zwykłe hosty w tej sieci, interfejsy Ethernet mają: - przypisany adres MAC, - swoją tablice ARP, - uczestniczą w procesie ARP Request i ARP Reply, jak inne hosty w sieci
2 (Pobrane z slow7.pl) (budowanie powiązania adres IP adres MAC). Zostało wspomniane o sieciach podłączonych bezpośrednio (directly connected networks) i dlatego należało by uzupełnić, że sieci te budują (poprzez realizację odpowiednich wpisów) tablicę routingu routera. Oprócz sieci bezpośrednio podłączonych w tablicy routingu mogą się znajdować wpisy o sieciach zdalnych, czyli informacja o dostępnych sieciach (trasach) uzyskana poprzez wpisy wykonane przez administratora lub od innych routerów. Tak więc w tablicy routingu routera znajduje się informacja o: sieciach bezpośrednio przyłączonych, sieciach zdalnych. Router dowiaduje się o sieciach zdalnych poprzez zastosowanie jednego z typów routingu, stosowany jest: routing statyczny trasy są wprowadzane ręcznie przez administratora, to administrator decyduje o trasach zainstalowanych w tablicy routingu routera, routing dynamiczny routery wymieniają się między sobą informacjami o posiadanych trasach i na wskutek użycia różnych algorytmów i po przetworzeniu tych informacji instalują lub odrzucają daną ścieżkę (trasę) do sieci zdalnych. Tak więc zadaniem administratora jest wybranie odpowiedniego protokołu routingu, który będzie odpowiedzialny za budowanie tablic routingu i jego odpowiednie skonfigurowanie tak by informacje te mogłby być swobodnie wymieniane pomiędzy wszystkimi routerami istniejącymi w sieci. Popularne protokoły routingu (routing protocol) to: RIP v1 (rzadko stosowany obecnie) IGRP (rzadko stosowany obecnie) RIP v2 EIGRP OSPF IS-IS BGP Routing statyczny najczęściej stosujemy w niżej wymienionych sytuacjach: Małe sieci składające się z kilku routerów łatwiej nam zastosować trasy statyczne gdyż przy mało rozbudowanych sieciach routing statyczny daje nam większe korzyści niż dynamiczny. Sieć jest zbudowana w topologii koncentratora (hub-and-spoke) czyli jest jeden centralny punkt do którego jest podłączonych wiele punktów zewnętrznych a droga do celu zawsze prowadzi przez punkt centralny. Przy łączności z ISP wykorzystanie trasy domyślnej. Ta więc po tym dość długim i technicznym wstępie dotarliśmy do tematu tego artykułu (czytelniku nie martw się, jeśli z tego co przeczytałeś, część jest dla ciebie niezrozumiała to na przykładach wszystko się wyjaśni) czyli zajmiemy się routingiem statycznym. To co zaś tyczy się routingu dynamicznego to jest to temat na następny artykuł a raczej całą serię artykułów (wszak każdy protokół routingu dynamicznego rządzi się swoimi prawami). Zanim przejdziemy omawiać konfigurację i zalety tego typu routingu musimy sobie jeszcze dopowiedzieć jedną rzecz, a mianowicie w literaturze często jest mowa o routed protocol oraz
3 (Pobrane z slow7.pl) routing protocol a terminy te nie są jednoznaczne. Routing protocols ten termin czytelniku jest Ci już znany (patrz powyżej) natomiast mianem routed protocol określamy protokoły użyte do zapewnienia prawidłowej komunikacji pomiędzy hostami. W protokołach tych zawarte są informacje pozwalające routerowi poprawnie realizować proces przekazywania pakietów (komunikacji). A najbardziej znanym przedstawicielem tego typu protokołów jest protokół IP (choć jest jeszcze protokół IPX opracowany przez firmę Novell na potrzeby środowiska sieciowego NetWare). Tak więc IP to routowany protokół warstwy trzeciej, w nagłówku którego znajdują się informacje adresowe niezbędne do realizacji procesu komunikacji. Na podstawie tych informacji (a w szczególności docelowy adres IP) routery określają interfejs wyjściowy oraz następny router (ew. hosta), któremu pakiet zostanie przekazany. Ok przechodzimy do ćwiczenia na bazie, którego postaram się wytłumaczyć wszystkie powyższe kwestie. Ćwiczenie przeprowadzę od samego początku wraz z konfiguracją interfejsów routera, stanowiącą bazę i będącą umiejętnością niezbędną by opanować konfigurację urządzeń CISCO. Naszym celem jest zbudowanie sieci jak na poniższym rysunku, tak aby była zapewniona komunikacja pomiędzy wszystkimi urządzeniami w sieci. Jak widać sieć jest zbudowana z 3 routerów (router R_1, R_2 oraz R_3) oraz 3 switchy (S_1, S_2 oraz S_3) do których podłączone są hosty (PC1, PC2 oraz PC3). Nasza sieć składa się z pięciu podsieci. sieć pomiędzy routerem R_1 a R_2 192.168.0.0/30 (maska 255.255.255.252) sieć pomiędzy routerem R_2 a R_3 192.168.1.0/30 (maska 255.255.255.252) sieć za ruterem R_1 172.16.0.0/24 (maska 255.255.255.0) sieć za ruterem R_2 10.0.0.0/24 (maska 255.255.255.0) sieć za ruterem R_3 172.16.1.0/24 (maska 255.255.255.0) Adresacja poszczególnych hostów i interfejsów routerów została zebrana w tabeli:
Urządzenie Router R_1 Router R_1 Router R_2 Router R_2 Router R_2 Router R_3 Router R_3 Komputer PC1 Komputer PC2 Komputer PC3 Interfejs Fa0/0 S0/0/0 Fa0/0 S0/0/0 S0/0/1 Fa0/0 S0/0/1 karta sieciowa karta sieciowa karta sieciowa 4 (Pobrane z slow7.pl) Adres IP 172.16.0.1 192.168.0.2 10.0.0.1 192.168.0.1 192.168.1.1 172.16.1.1 192.168.1.2 172.16.0.10 10.0.0.10 172.16.1.10 Domyślna brama 172.16.0.1 10.0.0.1 172.16.1.1 Zabieramy się za konfigurację routera, zacznijmy od zmiany domyślnej nazwy ale zanim to zrobimy jeszcze parę uwag technicznych. Osoby, które będą wykonywać poniższe czynności po raz pierwszy muszą wiedzieć, że całą konfigurację urządzeń CISCO przeprowadzamy w środowisku IOS za pomocą wiersza poleceń (interfejs CLI). Więc by wykonać operacje konfiguracji niezbędna jest znajomość odpowiednich poleceń. Niestety nie jest tak łatwo jak to ma miejsce w przypadku urządzeń SOHO, gdzie wszystko możemy sobie wyklikać w oknie przeglądarki. A więc po uruchomieniu routera powinno pokazać się nam okno podobne do tego poniżej. System pyta się nas czy chcemy skorzystać z kreatora konfiguracji. Kreator będzie zadawał nam pytania na które będziemy musieli odpowiedzieć. Ja prywatnie pomijam ten krok odpowiadając no. Po zrezygnowaniu z uruchomienia kreatora, router przywita nas wierszem poleceń i migającym znakiem zachęty.
5 (Pobrane z slow7.pl) Warto wiedzieć, że podczas wydawania poleceń nie musimy ich kończyć ponieważ gdy istnieje tylko jedyne dopasowanie do określonej komendy system uzna je jako napisane do końca. A dodatkowo komendy możemy dopełniać poprzez używanie klawisza TAB. Po uruchomieniu routera znajdujemy się w tak zwanym trybie użytkownika, tryb ten pozwala nam na zapoznanie się z stanem routera lecz nie możemy tu przeprowadzić żadnej konfiguracji. Naszym pierwszym zadaniem jest zmiana domyślnej nazwy routera, domyślnie ustalona nazwa to Router. By wykonać tą czynność musimy wydać polecenie enable, przejdziemy z trybu użytkownika do tzw. trybu uprzywilejowanego (privileged EXEC mode). W trybie tym znak > zmienia się na #. Tryb ten pozwala na wprowadzenie już zmian konfiguracyjnych. Dla początkujących pewna uwaga - dane polecenie jest dostępne i wykonywane w odpowiadającym mu trybie urządzenia, więc gdy coś Ci nie wychodzi sprawdź czy polecenie, które wydajesz jest wydawane w odpowiednim trybie. Polecenie zmiany nazwy routera hostname jest dostępne w trybie konfiguracji globalnej, by przejść do tego trybu wydajemy polecenie config t. Zmienia się nam wygląd wiersza poleceń z Router# na Router(config)# i dalej polecenie hostname R_1. Następuje zmiana z Router na R_1. Poniżej listening zmiany nazwy routera. Jak widać nie wydałem komendy enable lecz en zgodnie z zasadą powyżej. Wydanie en jest jednoznaczne z enable ponieważ nie ma innego dopasowania pasującego do en. Analogicznie zmieniamy nazwy pozostałych routerów. Przystępujemy do konfiguracji interfejsów routera na początek router R_1. Przechodzimy do trybu konfiguracji globalnej i wybieramy interesujący nas interfejs, na początek interfejs fastethernet 0/0. By to dokonać wydajemy polecenie: interface f0/0. Zmianie ulega wygląd wiersza poleceń z R_1(config)# na R_1(config-if)# informując nas tym samym że jesteśmy w trybie konfiguracji interfejsu. Kolejnym krokiem jest przypisanie adresu IP do interfejsu f0/0. Do tego posłuży nam komenda: ip address <adres ip> <maska sieci> czyli w naszym przypadku przyjmie ona postać:
6 (Pobrane z slow7.pl) ip address 172.16.0.1 255.255.255.0. Ostatnim krokiem jest włączenie interfejsu czyli komenda: no shutdown. Warto przy okazji nadmienić że przeczenie no jest używane do wydanie komendy przeciwstawnej. Komenda shutdown wyłącza dany interfejs dodanie no powoduje wykonanie działania przeciwnego czyli w tym przypadku włączenie interfejsu. Po wykonaniu tych czynności powinniśmy uzyskać informację o podniesieniu interfejsu informacja interface <dany interfejs>, changed state to up. By sprawdzić działanie interfejsu możemy posłużyć się komendą: show interface f0/0 (polecenie show z różnymi przełącznikami dostarcza informacji o konfiguracji routera).
7 (Pobrane z slow7.pl) Dzięki temu poleceniu uzyskujemy informację o danym interfejsie, na razie interesuje nas stan łącza i przypisany adres IP (reszta informacji na razie jest zbędna ale będzie opisana dalej i w następnych artykułach). Bardzo fajnym poleceniem jest show ip interface brief, po wydaniu polecenia uzyskujemy przegląd stanu wszystkich interfejsów routera. No i w końcu przeglądając bieżącą konfiguracje routera również uzyskamy informacje o interfejsach. Do sprawdzenia bieżącej konfiguracji routera służy komenda show running-config.
8 (Pobrane z slow7.pl) Tu ważna uwaga, tak naprawdę router CISCO posiada dwa typy konfiguracji: Konfiguracja startowa (startup-config) zapisana w pamięci NVRAM routera, ładowana podczas startu urządzenia. W pliku konfiguracji startowej znajdują się m.in. takie informacje jak: adresy interfejsów, hasła, informacje o routingu a także inne bardziej szczegółowe ustawienia. Podczas rozruch zawartość pliku zostaje skopiowana tworząc tzw. konfigurację bieżącą (running-config). Wprowadzając jakiekolwiek zmiany wprowadzamy je do konfiguracji bieżącej a ustawienia te
9 (Pobrane z slow7.pl) obowiązują do momentu w którym router jest włączony. Jeśli nastąpi np. zanik napięcia i nastąpi ponowne uruchomienie routera, konfiguracja bieżąca jest kasowana i następuje ponowne załadowanie konfiguracji startowej. Dlatego jeśli wprowadzamy jakiekolwiek zmiany i chcemy by obowiązywały one z każdym uruchomieniem routera nie zapomnijmy zapisać bieżących ustawień. Do utworzenia pliku konfiguracji startowej służy polecenie: copy running-config startup-config Po wydaniu polecenia konfiguracja bieżąca zostaje zapisana jako konfiguracja startowa, która będzie obowiązywać po każdym ponownym uruchomieniu routera. Wracając do sprawdzenia interfejsu fa0/0, jeszcze jedno co możemy zrobić to po prostu spingować ten interfejs celem sprawdzenia uzyskania odpowiedzi. Dlatego spróbujmy wysłać pinga z komputera PC1 (oczywiście komputer musi mieć przypisane prawidłowe adresy sieciowe). Jak widać interfejs f0/0 routera R_1 odpowiedział, dlatego możemy mieć pewność że wszystko jest poprawnie skonfigurowane. Fakt przypisania adresu IP do interfejsu routera ma jeszcze jedno bardzo ważne następstwo a mianowicie w tablicy routingu routera pojawi się wpis sieci do której adres interfejsu należy. By sprawdzić tablicę routingu należy wydać polecenie: show ip route.
10 (Pobrane z slow7.pl) Jak widać takowy wpis istnieje a mówi on nam o tym, że sieć 172.16.0.0/24 (bo do tej sieci należy interfejs fa0/0 routera) jest podłączona bezpośrednio do routera (directly connected) a dostęp do niej jest realizowany poprzez interfejs fa0/0. Czas skonfigurować interfejs s/0/0/0 routera R_1. Proces konfiguracji jest podobny jak to miało w przypadku interfejsu fa0/0 ale będzie potrzebna jeszcze jedna dodatkowa komenda. Jest to spowodowane, tym że interfejs fa0/0 korzysta z standardu FastEthernet natomiast interfejs s/0/0/0 jest interfejsem serialowym (szeregowym) i wymaga ustawienia sygnału zegara. Na początek sprawdźmy stan łącza serialowego wydając komendę: show interface s0/0/0 Jak widać interfejs jest administracyjnie wyłączony (nie została wydana komend no shutdown) i również protokół linii jest wyłączony. Przypiszmy odpowiedni adres i włączmy interfejs.
11 (Pobrane z slow7.pl) Status interfejsu jak widać nie podniósł się jak to miało miejsce w przypadku interfejsu fa0/0, dzieje się tak ponieważ by nastąpiło włączenie musi być włączona druga strona czyli w tym przypadku musi być skonfigurowany interfejs s0/0/0 na routerze R_2. A więc do dzieła. Po wprowadzeniu komend, można zaobserwować, że interfejs s0/0/0 na routerze R_2 przeszedł od razu w stan state to up, ponieważ po drugiej stronie łącze jest włączone (interfejs s0/0/0 na routerze R_1). Sprawdźmy czy to samo zaszło na routerze R_1. Widzimy, że status interfejsu s0/0/0 na routerze R_1 jest up, natomiast protokół linii down. Na razie jeszcze żadna komunikacja pomiędzy routerami nie jest możliwa ponieważ nie został ustawiony sygnał zegara po stronie urządzenia DCE (kto jest urządzeniem DCE zależy od użytego kabla) czyli w naszym przypadku interfejs s0/0/0 routera R_1. By to wykonać należy wydać polecenie: clock rate <prędkość zegara>. Dostępne prędkości zegara
12 (Pobrane z slow7.pl) to: 1200, 2400, 9600, 19200, 38400, 56000, 64000, 72000, 125000, 148000, 500000, 800000, 1000000, 1300000, 2000000 oraz 4000000. Od razu po wydaniu polecenia: clock rate, mamy informację że interfejs i protokół linii są w stanie up. Można to również zweryfikować wydając polecenie show ip interface brief, bądź show interace s0/0/0 Komunikacja jest możliwa możemy wykonać test poprzez puszczenie pinga z routera R_1 do routera R_2. Test przeszedł pozytywnie.
13 (Pobrane z slow7.pl) Dokonaliśmy przypisania kolejnego adresu IP do kolejnego interfejsu routera R_1, sprawdźmy czy zostało to odzwierciedlone w tablicy routingu routera R_1. Jak widać tak, pojawił się wpis kolejnej sieci 192.168.0.0/30, która jest również bezpośrednio podłączona do routera R_1 lecz dostępna przez interfejs serialowy s0/0/0. Uzbrojeni w tą wiedzę przystąpmy do skończenia konfiguracji routera R_2 oraz wykonajmy konfigurację routera R_3. Na początek router R_2. I w końcu router R_3.
Mamy skonfigurowane router więc sprawdźmy czy urządzenia się pingują: PC2 - Router R_2 Router R_2 router R_3 PC3 - Router R_3 14 (Pobrane z slow7.pl)
15 (Pobrane z slow7.pl) Jak zostało pokazane wszystkie urządzenia ze sobą sąsiadujące komunikują się ze sobą a co w przypadku innych urządzeń. No to mały test ping z komputera PC1 do PC2. Jak widać komunikacja jest niemożliwa i tu dochodzimy do setna problemu i tematu artykułu. Spróbujmy sobie odpowiedzieć na pytanie Dlaczego pakiety nie są przekazywane? By odpowiedzieć sobie na powyższe pytanie na początek prześledźmy drogę jaką musi pokonać pakiet. A więc pakiet musi opuścić komputer PC1 i dalej jest przekazywany do interfejsu f0/0 routera R_1 (interfejs ten jest bramą domyślną dla sieci 172.16.0.0/24), następnie router R_1 musi przekazać pakiet do routera R_2 a ten z kolei do komputera PC2 (jak na poniższym rysunku).
16 (Pobrane z slow7.pl) Ale jak wiemy pakiet ten nie dociera do celu, gdzieś po drodze komunikacja zostaje zaburzona. By sprawdzić w którym miejscu występuje problem posłużmy się polecenie tracert, które pokaże nam krok po kroku ruch pakietu do celu. W tym celu na komputerze PC1 wydajemy polecenie: tracert 10.0.0.10 Jak widać na powyższym zrzucie problem występuje na adresie IP 172.16.0.1 a adres ten należy do interfejsu f0/0 routera R_1. Tak więc pakiet poprawnie trafia do routera ale nie zostaje przekazywany dalej, router R_1 nie wie gdzie ma go przekazać dalej. Taki stan rzeczy jest spowodowany brakiem ścieżki w tablicy routingu routera R_1. Pakiet musi przejść z sieci 172.16.0.0/24 do sieci 10.0.0.0/24 a jak widać poniżej router R_1 nic o tej sieci nie wie.
17 (Pobrane z slow7.pl) Naszym zadaniem jest więc pokazanie, wskazanie drogi w taki sposób by komunikacja była możliwa. Wykonanie tego zadania umożliwi nam właśnie routing statyczny. Ale zanim przejdziemy dalej, trzeba Cię czytelniku uświadomić jak myśli router i na jakiej podstawie podejmuje on decyzję o przekazaniu pakietu dalej lub jego odrzuceniu. Proces podejmowania decyzji opisują trzy zasady sformułowane przez Aleksa Zinina: Reguła 1: Każdy router podejmuje swoje decyzje sam, na podstawie informacji zawartych w swojej i tylko swojej tablicy routingu. Czyli o podjęcia decyzji nie są wykorzystywane żadne informacje spoza tablicy routingu co sprowadza się do tego, że router nie sprawdza tablic routingu innych routerów a osobą odpowiedzialną za dostarczenie routerowi kompletu informacji o sieciach zdalnych jest administrator sieci. Reguła 2: Z faktu, że jeden z routerów posiada pewne informacje o trasach/ścieżkach do sieci zdalnych nie wynika, że inne routery też posiadają te informacje. Reguła 3: Z faktu, że routery posiadają w swoich tablicach routingu informacje o trasach z jednej sieci zdalnej do innej nie wynika, że posiadają informacje o trasach powrotnych. Tak naprawdę te trzy zasady determinują sposób działania routera i sukces lub brak powodzenia w komunikacji pomiędzy urządzeniami znajdującymi się w różnych sieciach. Wróćmy do naszego przykładu wiemy już że router podejmuje decyzję na podstawie informacji zawartej w swojej tablicy routingu. W naszym ćwiczeniu router R_1 nie wie co ma zrobić z pakietem, który jest przeznaczony do sieci 10.0.0.0/24 więc go odrzuca. My jako administratorzy musimy mu to powiedzieć. By wykonać tę czynność musimy posłużyć się poleceniem ip route, którego składnia jest następująca: ip route <network-address> <subnet-mask> {<ip-address> <exit-interface>} gdzie: network-address adres sieci zdalnej, subnet-mask maska zdalnej sieci, Jeden lub dwa dodatkowe parametry:
18 (Pobrane z slow7.pl) exit-interface - interfejs wyjściowy (interfejs lokalny routera), ip-address - adres następnego przeskoku (czyli tzw. next hoop - adres interfejsu sąsiedniego routera). Tak więc z tym co powyżej, by uświadomić router o istnieniu sieci 10.0.0.0/24 musimy wydać polecenie: ip route 10.0.0.0 255.255.255.0 192.168.0.1 bądź ip route 10.0.0.0 255.255.255.0 s0/0/0 Bardziej poprawna będzie druga wersja tego polecenia (dlaczego? o tym później), więc wydajmy te polecenie. Polecenie ip route wydajemy w trybie konfiguracji globalnej. By wykasować daną trasę z tablicy routingu przed poleceniem dodaj przedrostek no. W tym momencie trasa do sieci 10.0.0.0/24 została dodana do tablicy routingu routera R_1. Sprawdzić to możemy dwojako: wydając polecenie: show ip route Po wydaniu polecenia, widzimy że trasa została dodana poprawnie, sieć 10.0.0.0/24 jest dostępna poprzez interfejs s0/0/0 routera R_1. Trochę mylący jest wpis directly connected sugerujący, że sieć jest do routera podłączona bezpośrednio ale jest to trasa statyczna a informuje nas o tym litera S przed trasą sieci (tak oznaczane są trasy statyczne). Trasy podłączone bezpośrednio oznaczane są literą C. Wpisy tras statycznych znajdują się również w konfiguracji bieżącej routera, polecenie: show running-config.
19 (Pobrane z slow7.pl) Wydanie polecenia: ip route 10.0.0.0 255.255.255.0 192.168.0.1 również doda ścieżkę do tablicy routingu routera R_1 lecz wpis ten będzie miał troszkę inną postać. Została dodana trasa statyczna (S przed wpisem), sieć 10.0.0.0/24 jest dostępna poprzez adres następnego skoku (next hoop) 192.168.0.1, adres ten jest osiągalny w tym przypadku poprzez interfejs s0/0/0 routera R_2. Ważne do zapamiętana: gdy używamy w poleceniu ip route adresu interfejsu to jest to zawsze adres lokalny routera jeśli zaś adresu następnego skoku to jest to zawsze adres routera sąsiedniego. Na chłopski rozum podając adres interfejsu mówisz routerowi wypchnij ruch poprzez ten interfejs jeśli zaś adres następnego skoku to przekaż ruch na ten adres IP. Skonfigurowaliśmy router R_1, sprawdźmy czy komunikacja pomiędzy komputerem PC1 a PC2 jest już możliwa.
20 (Pobrane z slow7.pl) Jak widać NIE. Co się stało? można zapytać, przecież ścieżka do sieci 10.0.0.0/24 jest dodana a komunikacja pomiędzy komputerami jest dalej niemożliwa. Tutaj trzeba wrócić do zasad Aleksa Zinina a dokładniej do reguły trzeciej - Z faktu, że routery posiadają w swoich tablicach routingu informacje o trasach z jednej sieci zdalnej do innej nie wynika, że posiadają informacje o trasach powrotnych. A mówiąc dokładniej pakiet do komputera PC2 trafia, zostaje wysłana odpowiedź ale niestety zostaje ona odrzucona ponieważ router R_2 nie wie gdzie ten pakiet przekazać. Router R_2 nie ma trasy powrotnej do sieci 172.16.0.0/24 w swojej tablicy routingu. Naprawmy to, dodając odpowiednią trasę na routerze R_2. Trasa do sieci 172.16.0.0/24 na routerze R_2 została dodana. Nie pozostaje nam nic innego jak sprawdzenie czy w końcu komputery mogą się komunikować.
21 (Pobrane z slow7.pl) Udało się, komunikacja pomiędzy komputerem PC1 a PC2 jest możliwa. Routery R_1 i R_2 zostały skonfigurowane i dane teraz mogą swobodnie przepływać pomiędzy siecią 172.16.0.0/24 a siecią 10.0.0.0/24. Więc pozostało nam dodanie kolejnych wpisów tak by komunikacja była możliwa w całej sieci. Zacznijmy od routera R_1.
Router R_2. Router R_3. 22 (Pobrane z slow7.pl)
23 (Pobrane z slow7.pl) Sieć osiągnęła zbieżność, komunikacja jest możliwa pomiędzy wszystkimi urządzeniami sieciowymi. Mógłbyś czytelniku zapytać - Po co było tworzyć ścieżkę na routerze R_1 z sieci 172.16.0.0/24 do sieci 192.168.1.0/30 a także trasę na routerze R_3 z sieci 172.16.1.0/24 do sieci 192.168.0.0/30? A to dlatego by np. administrator sieci mógł z komputera PC1 zdalnie skonfigurować router R_3 lub z komputera PC3 zdalnie skonfigurować router R_1 (choć to oczywiście można by było zrobić poprzez interfejsy sieci z którymi to sieciami jest wymagana łączność) ale też w celach diagnostycznych. Parę słów dopowiedzenia wymaga jeszcze kontekst użycia polecenia ip route a raczej składowych tego polecenia czyli kiedy jest lepiej używać adresu interfejsu wyjściowego a kiedy adresu następnego skoku. Odpowiedź na to pytanie związana jest z pracą samego routera ponieważ zanim router przekaże pakiet musi przeglądnąć swoją tablicę routingu, aby określić, z którego interfejsu wyjściowego ma przekazać pakiet dalej proces ten nazywa się wyszukiwaniem rekursywnym (recursive route lookup). Aby lepiej zrozumieć ten proces zmodyfikowałem tablicę routingu routera R_1 tak by korzystała z wpisów wykorzystujących adres następnego skoku. Tablica routingu routera R_1 wygląda teraz następująco:
24 (Pobrane z slow7.pl) Zostańmy przy przykładzie w którym przesyłamy pakiety pomiędzy komputerami PC1 a PC2. Ramka, trafia do routera R_1, następuje dekapsulacja i router dowiaduje się że ma przesłać informację do sieci 10.0.0.0/24, sprawdza on czy taka sieć występuje w jego tablicy routingu. Następuje pierwsze przeszukanie, kończące się sukcesem zostaje znalezione dopasowanie w postaci wpisu: Router dowiedział się o tym, że by dostać się do sieci 10.0.0.0/24 musi wykorzystać adres następnego skoku 192.168.0.1 lecz jest to tylko połowa potrzebnych mu informacji ponieważ jeszcze nie wie którym interfejsem ma go wysłać. Dlatego następuje drugie przeszukanie tablicy routingu, celem odnalezienia dopasowania do adresu 192.168.0.1. Te przeszukanie również kończy się sukcesem, ponieważ adres ten pasuje do sieci podłączonej bezpośrednio. Ponowne przeszukanie tablicy dostarcza routerowi R_1 informacji o interfejsie, przez który pakiet należy wysłać (w naszym przykładzie jest to interfejs s0/0/0). Aby więc ograniczyć proces ponownego przeszukiwania tablicy routingu stosuje się poniższe zasady. W przypadku połączeń pomiędzy routerami gdzie wykorzystywany jest interfejs szeregowy lepiej jest w trasach statycznych używać interfejsu wyjściowego, dzieje się tak ponieważ router już po jednym przeszukaniu tablicy routingu potrafi określić interfejs przez, który pakiet powinien przejść, odchodzą tu problemy związane z rozgłoszeniami ARP i ustalaniem adresu MAC urządzenia
25 (Pobrane z slow7.pl) docelowego jak to ma w przypadku połączeń ethernetowych. Wykorzystanie adresu interfejsu w wpisie trasy statycznej w zupełności wystarczy by pakiet mógł zostać poprawnie wysłany. Dziej się tak ponieważ złącza szeregowe są typu punkt-punkt a tworzą je tylko dwa połączone ze sobą urządzenia (w naszym przypadku interfejsy pomiędzy routerami). Aby lepiej zrozumieć ideę tego typu łącz wyobraź sobie czytelniku rurę, rura ma dwa końce i siłą rzeczy jeśli wrzucimy z jednej strony piłkę to musi ona wypaść drugą stroną. Tak też się dzieje w przypadku przesyłania pakietów przez łącze punkt-punkt, routerowi wystarczy, że pakiet IP enkapsuluje w ramkę HDLC (protokół używany w tego typu łączach, choć można wykorzystać również protokół PPP) warstwy 2 z rozgłoszeniowym adresem docelowym warstwy 2 (rysunek poniżej). W przypadku łącz ethernetowych sytuacja wygląda trochę inaczej. Różnica jest taka, że o ile w sieci punkt-punkt wykorzystywano dwa urządzenia to w sieci ethernetowej może tych urządzeń być znacznie więcej. Dlatego użycie wpisu interfejsu wyjściowego w trasie statycznej gdzie routery między sobą są połączone łączem ethernetowym to zbyt mało. Router R_1 wszak uzyskał informację o tym przez który interfejs ma przesłać dane lecz nie zna adresu IP następnego skoku a tym samym będzie miał problem by ustalić adres docelowy MAC, urządzenia do którego ta komunikacja ma trafić. Z drugiej strony zamieniając adres wyjściowy na adres następnego skoku w wpisie znajdującym się w tablicy routingu skazujemy się na proces wyszukiwania rekursywnego. I tak źle i tak niedobrze (choć w mniejszym stopniu szkodzimy gdy skorzystamy z adresu następnego skoku). Pytanie więc jest takie Czy ten problem nasz można jakoś rozwiązać? Otóż tak, można. Cały myk polega na tym by do zbudowania wpisu trasy statycznej wykorzystać obie informacje, czyli adres wyjściowy interfejsu jak i adres następnego skoku. Polecenie ip route przybierze wtedy np. postać: ip route 10.0.0.0 255.255.255.0 s0/0/0 192.168.0.1 Istnieje jeszcze jeden wymagający osobnego omówienia typ trasy statycznej a mowa tu o statycznej trasie domyślnej. Cel stosowania oraz własności tego typu trasy są następujące trasa domyśla reprezentuje wszystkie trasy, pasuje do każdego adresu docelowego IP ponieważ żaden bit w masce trasy zerowej nie wymaga dopasowania,
26 (Pobrane z slow7.pl) jest używana wtedy, gdy nie ma żadnego innego bliższego dopasowania, najczęściej konfiguruje się ją na routerach brzegowych czyli routerach łączących naszą sieć z siecią naszego IP (tak aby wyjść poza naszą domenę routingu), w przypadku kiedy router łączy się tylko jednym routerem (router szczątkowy). OK przyszła pora na przykład wszak trzeba wytłumaczyć nowe pojęcia. Aby wytłumaczyć te nowe terminy posłużymy się tym samym przykładem co powyżej nieznacznie go modyfikując a modyfikacja będzie polegać na dodaniu nowego routera, który będzie nam symulował dostawcę Internetu (ISP). Dołączony router symuluje nam łącze internetowe z ISP, komputery w stworzonych sieciach muszą mieć z nim łączność. Korzystając z Internetu wysyłamy pakiety, których adresy docelowe są bardzo różne, nie jesteśmy w stanie umieścić wszystkich tras w tablicy routingu routera brzegowego R_2 tak by komunikacja przebiegała bez problemu. I tu właśnie z pomocą przychodzi nam domyślna trasa statyczna. Składnia polecenia jest taka sama jak w przypadku dodawania zwykłych tras statycznych z tą różnicą, że w wpisie używa się trasy zerowej (quad-zero route). Trasa zerowa ma adres IP i maskę ustawioną jako same zera. Czyli wpis dodający taką trasę będzie miał postać: ip route 0.0.0.0 0.0.0.0{<ip-address> <exit-interface>} Przejdźmy do naszego przykładu i spróbujmy dodać taką trasę do tablicy routingu routera R_2.
27 (Pobrane z slow7.pl) Jak widać trasa została dodana do tablicy routingu routera R_2, domyślna trasa statyczna oznaczona jest jako S*. Od tej pory cały ruch nie pasujący do wcześniejszych wpisów w tablicy routingu będzie kierowany do interfejsu s0/0/1 routera R_2. Sprawdźmy to pingując interfejs routera ISP z komputera PC2 (oczywiście by nasza symulacja zadziałała na routerze ISP ustawiłem trasę domyślną wysyłającą ruch z powrotem). Jak widać mamy łączność z routerem ISP. Przyjrzyjmy się jeszcze routerowi R_1 (zresztą dotyczy to również routera R_3). Router R_1 jest routerem szczątkowym ponieważ łączy się on tylko z jednym routerem (router R_2), router R_1 nie
28 (Pobrane z slow7.pl) przesyła pakietów do innego routera poza R_2. Dlatego tak naprawdę by ograniczyć ilość wpisów w tablicy routingu routera R_1 wszystkie wpisane ścieżki możemy zastąpić jedną domyślną trasą statyczną. Wykonajmy to, najpierw skasujemy bieżące wpisy. Trasy zostały usunięte. Zastępujemy usunięte trasy jedną trasą domyślną.
29 (Pobrane z slow7.pl) Po wykonaniu wszystkich tych operacji zamiast 5 wpisów w tablicy routingu routera R_1 mamy tylko 3 a cała komunikacja została zachowana. A poniżej dowód ping z komputera PC1 do PC3. Oczywiście taki sam zabieg możemy wykonać na routerze R_3, ponieważ on również jest routerem szczątkowym. Jest jeszcze jeden zabieg, który pozwala nam na zmniejszenie tablic routingów a mianowicie nosi on nazwę sumaryzacji tras. Korzysta się z jednej trasy, która podsumowuje kilka innych ścieżek czyli trasa podsumowująca (summary routes) to trasy, która reprezentuje kilka innych tras (jeden wpis zamiast kilku). Sumaryzacji tras podlega najczęściej zestaw przylegających tras (ale niekoniecznie), proces ten pozwala skrócić czas przeglądania tablicy routingu oraz powoduje zmniejszenie tablic routingu (szczególnie ważne w Internecie).
30 (Pobrane z slow7.pl) Podsumowania tras możemy dokonać gdy: sieci docelowe da się przedstawić w postaci jednej podsumowującej sieci, sieci docelowe są dostępne poprzez ten sam interfejs wyjściowy bądź adres następnego skoku. No to tradycyjnie przykład. Zmodyfikujemy naszą sieć, dodając trzy nowe podsieci, które postaramy się podsumować do jednego adresu (rysunek poniżej). A więc dodamy podsieci: 192.168.10.0/24, 192.168.11.0/24 oraz 192.168.12.0/24. Dodanie sieci nastąpi nie poprzez dołożenie kolejnego routera lecz skorzystamy z interfejsu loopback czyli interfejsu tzw. pętli zwrotnej. Interfejs ten jest programową emulacją interfejsu fizycznego i zachowuje się tak samo jak on. Ma to swoje korzyści ponieważ do interfejsu loopback można przypisać adres IP a co za tym idzie pingować ten adres a także utworzona podsieć może być ogłaszana w tablicy routingu (interfejs loopback jest również wykorzystywany przy protokole OSPF, ma tam swoje zadanie). Ale za nim przejdziemy do konfiguracji routera, omówmy jeszcze sam sposób wykonania podsumowania tras. Pierwszym krokiem jest zapisanie podsumowywanych adresów binarnie. Następnie poruszamy się od lewej strony do prawej szukając dopasowania - miejsca do którego wszystkie trzy adresy są ze sobą zgodne. Gdy dotrzemy do miejsca w którym zgodność nie jest zachowana, mówi się że znaleźliśmy granicę podsumowania.
31 (Pobrane z slow7.pl) Liczymy ilość zgodnych bitów w naszym przypadku 21. Liczba ta jest maską podsieci dla sieci sumarycznej. Maska /21 odpowiada adresowi 255.255.248.0. By odnaleźć adres sieci, przepisujemy bity do granicy podsumowania bez zmian natomiast resztę pozostałych bitów dopełniamy zerami. W naszym przykładzie 1100000.10101000.00001000.00000000, co odpowiada adresowi 192.168.8.0. A więc adresem podsumowującym podsieci: 192.168.10.0/24, 192.168.11.0/24 oraz 192.168.12.0/24 jest adres 192.168.8.0 255.255.248.0. Przechodzimy do modyfikacji naszego przykładu i do utworzenia podsieci 192.168.10.0/24, 192.168.11.0/24 oraz 192.168.12.0/24 na ruterze R_2. Aby utworzyć interfejs pętli zwrotnej w linii poleceń konfiguracji globalnej wydajemy polecenie: interface loopback 1 gdzie 1 jest numerem kolejnym tworzonego interfejsu. Następnie przypisujemy adres IP do interfejsu w taki sam sposób jak to robiliśmy w przypadku interfejsów fizycznych czyli w naszym przypadku (tworzymy podsieć 192.168.10.0/24) polecenie przyjmie postać: ip address 192.168.0.1 255.255.255.0. Po wydaniu polecenia: show ip route widzimy, że podsieć została dodana do tablicy routingu routera R_2 a dostępna jest poprzez interfejs loopback 1.
32 (Pobrane z slow7.pl) Został przypisany adres IP 192.168.10.1 do interfejsu pętli zwrotnej, więc spróbujmy go spingować, ping wyślemy z komputera PC2.
33 (Pobrane z slow7.pl) Jak widać interfejs odpowiedział. Analogicznie dodajemy kolejne podsieci. Teraz by był dostęp do utworzonych podsieci na każdym routerze musielibyśmy dokonać trzech wpisów do tablicy routingu ale dzięki temu, że dokonaliśmy podsumowania tras wystarczy, że wydamy tylko jedno polecenie. Spróbujmy to wykonać na routerze R_3 tak by była możliwość spingowania interfejsów loopback z komputera PC3. Po poniższym zrzucie widać, że na routerze R_3 nie ma dodanej trasy domyślnej i komunikacja z wyżej utworzonymi interfejsami loopback jest niemożliwa.
Zmieńmy to dodając trasę sumaryczną 192.168.8.0 255.255.248.0. Trasa została dodana a więc przyszła pora na ping. 34 (Pobrane z slow7.pl)
35 (Pobrane z slow7.pl) Udało się nam poprzez dodanie trasy podsumowującej 3 podsieci zmniejszyć tablicę routingu routera R_3 i jednocześnie zapewnić komunikację z nowo utworzonymi podsieciami. Do podsumowania sieci możemy wykorzystać tę stronę - http://www.asecuritysite.com/ip/routesum Jeśli chodzi o routery SOHO, czyli te używane w domu i małych biurach sprawa jest o wiele prostsza bo najczęściej by dodać sieć do tablicy routingu wystarczy to zrobić na odpowiedniej zakładce bo cała konfiguracja przebiega przez przeglądarkę. Potrzebne opcje znajdziemy najczęściej na zakładce zatytułowanej Routing bądź Static route, choć oczywiście może się zdarzyć sytuacja w której oprogramowanie routera jest pozbawione możliwości dodawania tras statycznych. Poniżej zakładka pozwalająca dodać trasę statyczną na routerze TP-Link TD-W8950ND.
I opcje routingu statycznego na routerze Linksys x2000 I także routing statyczny router Edimax BR-6315SRg 36 (Pobrane z slow7.pl)
37 (Pobrane z slow7.pl) Jak widać przy routerach domowych by utworzyć trasę statyczną podajemy adres sieci docelowej, maskę oraz adres następnego skoku oraz określamy obszar działania dodawanej sieci czyli czy trasa ma obowiązywać po stronie interfejsu LAN czy WAN. Jeśli do tej pory są jakieś wątpliwości to mam nadzieję że poniższy webcast je rozwieje