artykuły
Powrót do listy artykułów

Temat artykułu: 05. Router CISCO w sieci wielosegmentowej
Tekst napisał pitt2k dnia 14-01-2005

Jednym z podstawowych zadań routera jako elementu łączącego segmenty w sieci korporacyjnej jest poznanie i wyznaczanie tras do transmisji pakietów pomiędzy dwoma końcowymi urządzeniami. Procedury wymiany informacji pomiędzy routerami, sposoby ich przechowywania i redystrybucji mogą być różne, ważne jest jednak, aby droga przesyłania danych była najbezpieczniejsza i najszybsza.

Metody wyznaczania tras pozwalają routerowi na ocenę wszystkich dostępnych informacji i na tej podstawie podjęcie decyzji, którą ścieżką będą przesyłane pakiety. Router może wykorzystać informacje podane przez administratora w trakcie konfiguracji, jak również te pochodzące z procesów uruchomionych na innych routerach. Tablica utworzona na podstawie znanych lokalizacji jest podstawą do przetwarzania i przełączania pakietów, a stan i wiarygodność pozycji umieszczonych w tablicy routingu będą miały kluczowe znaczenie dla poprawnej pracy routera.

Stacja końcowa - protokół ARP, Proxy ARP

Protokół ARP - zapytanie o fizyczny adres odbiorcy

Procedura przesyłania danych wymaga podania adresu źródłowego i docelowego zarówno w warstwie sieci, jak i w warstwie łącza danych. Protokół ARP jest odpowiedzialny za tworzenie tablicy odniesień pomiędzy logicznym adresem IP a fizycznym adresem MAC, pod który należy wysłać dane. Protokół ten działa metodą rozgłoszeniową, ma więc znaczenie lokalne. Zanim w sieci wysłany zostanie pakiet, protokół ARP musi wykonać zapytanie dotyczące fizycznego adresu odbiorcy związanego z podanym adresem IP, na który należy zaadresować ramkę (patrz rysunek).

W momencie, gdy adresat znajduje się w sieci odległej, zgodnie z tablicą routingu, którą ma każde urządzenie pracujące w sieci wielosegmentowej, pakiet wysyłany jest na adres określany jako domyślna bramka. W efekcie protokół ARP dokona powiązania odległego adresu IP z fizycznym adresem interfejsu, określonym w danym segmencie sieci jako domyślna bramka, a nie z adresem fizycznym urządzenia docelowego - protokół ARP ma tylko zasięg lokalny. Informacje uzyskane podczas działania protokołu ARP są przechowywane w pamięci podręcznej, a po pewnym czasie zostają wygaszone i usunięte. Na routerze Cisco poleceniem show interfaces nazwa interfejsu można sprawdzić aktualną konfigurację protokołu ARP dla wybranego interfejsu. Podana informacja opisana jako ARP type zawiera sposób wiązania adresu IP z adresem fizycznym w sieci Ethernet, FDDI lub Token Ring i jest zależna od typu interfejsu. W poniższym przykładzie jest to opcja ARPA opisująca hermetyzację Ethernet II. Parametr ARP Timeout podaje czas przechowywania wszelkich wpisów dynamicznych związanych z tablicą ARP, po upływie którego dana pozycja zostanie usunięta. Domyślnie są to cztery godziny. Czas ten można jednak zmodyfikować. W tym celu w ramach konfiguracji interfejsu wykonujemy polecenie:

C2600(config-if)#arp timeout wartość_wyrażona_w_sekundach

Aktualny stan tablicy ARP sprawdzić można poleceniem show arp, wyświetlone zostaną wówczas wpisy dla wszystkich protokołów pracujących na routerze, natomiast poleceniem show ip arp - tylko te związane z pracą protokołu IP:

c2600#show ip arp

Protocol  Address      Age (min)  Hardware Addr   Type  Interface

Internet  131.108.1.200  -        0003.470f.9fc6  ARPA

Internet  131.108.1.10   7        0010.4bc2.c01a  ARPA  Eth0/0

Internet  131.109.1.1    -        00b0.640f.10c1  ARPA  Eth0/1

Internet  131.108.1.1    -        00b0.640f.10c0  ARPA  Eth0/0

Pozycje w tablicy, które nie mają podanego czasu przechowywania informacji w kolumnie Age (min), mogą oznaczać lokalne adresy IP routera bądź pozycje wprowadzone statycznie przez administratora. Tak jest w przypadku pozycji związanej z adresem 131.108.1.200, która nie zawiera wskazania czasu przechowywania w tablicy. Wpisy statyczne wprowadzamy poleceniem:

C2600(config)#arp adres_ip adres_MAC [typ] [alias]

Parametr typ oznacza obsługiwany przez router typ hermetyzacji dla danej pozycji (np. ARPA, SNAP, SAP, SMDS), gdzie domyślnie przyjęty jest typ ARPA (Ethernet II), natomiast opcja alias oznacza, iż na zapytanie protokołu ARP dotyczące podanego adresu IP router jest zobowiązany odpowiedzieć podanym adresem fizycznym MAC. Usunięcie wszelkich dynamicznych wpisów w tablicy ARP realizuje polecenie clear arp-cache, a wpisy statyczne odwołuje polecenie no arp adres_ip adres_MAC.

Przykład ukrywania podsieci

Sieć lokalna złożona z dwóch segmentów rozdzielonych routerem stanowi dla rozgłoszeń protokołu ARP naturalną barierę w poszukiwaniu adresu fizycznego urządzenia pracującego w sąsiednim segmencie. Jeśli urządzenie docelowe ma adres z innej podsieci IP, nadawca będzie poszukiwał protokołem ARP adresu fizycznego domyślnej bramy. Jednak jeśli nadawca uzna, że docelowy adres IP jest z tej samej podsieci, będzie próbował znaleźć go samodzielnie w lokalnym segmencie, co może zakończyć się niepowodzeniem. Rozważmy sytuację określaną jako ukrywanie podsieci przed komputerami klienckimi - patrz rysunek.

Chociaż w segmencie górnym i dolnym stosowane są różne podsieci IP, odpowiednio 192.168.10.64 i 192.168.10.16, stacje klienckie nie są tego świadome, gdyż stosują krótsze maski podsieci (klasy C). Dzięki temu, że interfejsy routera skonfigurowano z 28-bitowymi maskami podsieci, może on obsługiwać poprawnie obie podsieci. Zakładając powyższą konfigurację, jeśli komputer górny będzie chciał skomunikować się z dolnym (np.:ping 192.168.10.22), będzie próbował znaleźć komputer docelowy za pomocą protokołu ARP w segmencie lokalnym. Dla komputera górnego adres 192.168.10.22 jest adresem lokalnym z tej samej podsieci IP (maska 24 bity), a wówczas nie korzysta się z domyślnej bramki. Komputer górny nie może samodzielnie odnaleźć adresu docelowego, gdyż jego rozgłoszenie protokołu ARP zostanie zatrzymane przez router. Nie stanowi to problemu dla samego routera, który odbierając ramki rozgłoszeniowe protokołu ARP, mimo że nie są one związane bezpośrednio z jego adresami, dokona ich analizy na podstawie znanych mu sieci i przekieruje zapytanie do innego segmentu sieci bądź routera.

Cała procedura odbywa się dzięki protokołowi Proxy ARP, który domyślnie jest włączony dla wszystkich interfejsów routera. Lokalny host wysyła zapytanie dotyczące adresu fizycznego związanego z adresem IP, który nie jest osiągalny w jego segmencie sieci. Ramka dociera do routera, który sprawdza, czy podany w zapytaniu adres IP jest mu znany przez lokalne interfejsy lub rozgłoszenia o sieciach odległych wysyłane przez inne routery. Jeżeli tak, to router przesyła zapytanie pod wskazane miejsce wynikające z jego tablicy routingu, w odpowiedzi wysyłając do hosta swój adres fizyczny MAC z interfejsu, przez który odebrane zostało zapytanie. W ten sposób host nawiązuje komunikację z odległym urządzeniem, mając w tablicy ARP dynamiczny wpis odległego adresu IP związany z fizycznym adresem routera jako odbiorcą ramek. Sprawdzenie statusu protokołu Proxy ARP dla wybranego interfejsu realizuje polecenie show ip interface nazwa_interfejsu.

Korzystanie z protokołu Proxy ARP niesie ze sobą obowiązek właściwego zaprojektowania adresowania w sieciach wielosegmentowych, szczególnie gdy mamy do czynienia z problemem sieci nieciągłych i korzystamy z mechanizmu VLSM. Może się bowiem okazać, że pakiet skierowany zostanie w zupełnie inne miejsce sieci niż to, które jest jego przeznaczeniem. Wykonanie polecenia no ip proxy-arp w trybie konfiguracji interfejsu blokuje działanie protokołu Proxy ARP.

Wskazanie domyślnej bramki - IRDP, HSRP

Podstawowym elementem konfiguracji w sieciach wielosegmentowych jest określenie na komputerach klienckich domyślnej bramki, do której będą kierowane wszystkie pakiety adresowane do sieci odległych. Przy projektowaniu sieci należy również uwzględnić awaryjność routera pracującego jako domyślna bramka i ewentualne sposoby przełączania wychodzącej komunikacji na inne routery. Tego rodzaju możliwości zapewniają protokoły IRDP i HSRP zaimplementowane na routerach Cisco.

W większości systemów operacyjnych obsługa protokołu IRDP jest domyślnie wyłączona, tak więc jego uruchomienie będzie wymagało od administratora bezpośredniej ingerencji na komputerach klienckich.

Protokół IRDP (ICMP Router Discovery Protocol) korzysta z trzech typów pakietów protokołu ICMP: typ 5 (Redirect), typ 9 (Router Advertisement) oraz typ 10 (Router Selection). Wymaga to zarówno od routerów, jak i komputerów w sieci lokalnej odpowiedniej konfiguracji związanej z obsługą protokołu IRDP, która w routerach Cisco domyślnie jest wyłączona.

Na routerach Cisco konfiguracja protokołu IRDP realizowana jest poleceniem:

C2600(config-if)#ip irdp [multicast | holdtime sekundy |

  minadvertinterval sekundy | maxadvertinterval sekundy |

  preference numer address adres_IP [numer]]

Opcja multicast oznacza, iż router, zamiast metody rozgłoszeniowej, korzystać będzie z grupy multicastowej 224.0.0.1 jako sposobu dystrybucji pakietów IRDP. Parametr holdtime określa, przez jaki czas (wyrażony w sekundach) informacja podana przez router będzie przechowywana na stacjach odbiorczych. Domyślnie wynosi on 1800 s, a maksymalnie może być ustawiony na 9000 s, lecz nie może być mniejszy niż wartość parametru maxadvertinterval. Opcje maxadvertinterval i minadvertinterval wskazują przedział czasu, w jakim odbywają się cykliczne ogłoszenia IRDP generowane przez router, a ich domyślne wartości to odpowiednio 600 s i 3/4 czasu maxadvertinterval, czyli 450 s.

Komputer, który nie ma w konfiguracji protokołu TCP/IP wskazania domyślnej bramki, na podstawie ogłoszeń, jakie docierają od routerów, dokonuje wyboru tego, który ma najwyższy numer preferencyjny. W przypadku konfiguracji domyślnej dla routerów Cisco numer ten jest równy 0 - nie on więc będzie decydował o wyborze przez klienta routera, lecz czas, po którym ogłoszenie IRDP dotarło do klienta. Wskazanie preferencji może być wykonane dla konkretnego adresu IP, którym posługuje się router poprzez opcję address oraz dołączenie do niej wybranej wartości liczbowej wskazującej preferencje.

Konfigurację protokołu IRDP można sprawdzić, korzystając z polecenia show ip irdp, które wyświetla aktualne wartości wyżej opisywanych parametrów, natomiast poleceniem debug ip icmp prześledzić można pracę routerów z protokołem IRDP.

C2600#debug ip icmp

05:18:53: ICMP: src=131.108.1.1, dst=255.255.255.255, irdp advertisement sent

05:18:53: IRDP: entries=1, size=2, lifetime=1800, bytes=36

05:18:53: IRDP: address=131.108.1.1 preference=0

05:18:57: ICMP: rdp advert rcvd type 9, code 0, from 131.108.1.2

05:19:01: ICMP: src=131.108.1.1, dst=255.255.255.255, irdp advertisement sent

05:19:01: IRDP: entries=1, size=2, lifetime=1800, bytes=36

05:19:01: IRDP: address=131.108.1.1 preference=0
Protokół HSRP - adres routera wirtualnego związany jest
z grupą routerów fizycznych

Routery pracujące z protokołem IRDP mogą na podstawie tablicy routingu przekierowywać klientów sieciowych do innych routerów dostępnych w sieci lokalnej, jeżeli okaże się, iż droga przez sąsiedni router jest korzystniejsza. Router wysyła w tym momencie ogłoszenie redirect wskazujące adres IP routera sąsiedniego jako preferowaną drogę do sieci odległej, z której przy kolejnych odwołaniach powinien skorzystać klient.

c2600#

05:44:54: ICMP: redirect

  sent to 131.108.1.10

  for dest 10.1.1.50,

  use gw 131.108.1.2

05:44:54: ICMP: redirect

  sent to 131.108.1.10

  for dest 10.1.1.50,

  use gw 131.108.1.2

Drugim rozwiązaniem, zapewniającym dostęp do sieci zdalnej poprzez domyślną bramkę w przypadku awarii routera, jest protokół HSRP (Hot Standby Router Protocol), który bazuje wyłącznie na pracy routerów. Działanie protokołu HSRP polega na utworzeniu wirtualnego routera (domyślnej bramki) opisanego adresem IP, którym posługują się komputery klientów w sieci lokalnej. Adres ten związany jest z grupą routerów, na których włączony został protokół HSRP - patrz rysunek.

Protokół HSRP związany jest z konkretnym segmentem sieci, tak więc jego włączenie i określenie grupy HSRP, w której pracuje dany router, będzie dotyczyło konkretnego interfejsu LAN.

Dokumentacja Cisco podaje, że dla interfejsów Token Ring można zdefiniować do trzech grup HSRP, natomiast dla interfejsu Ethernet istnieje możliwość zdefiniowania do 256 grup HSRP.

Routery posługują się pakietami Hello typu multicast do określenia tzw. aktywnego routera, który będzie obsługiwał żądania stacji klienckich kierowane pod wybranym wcześniej wirtualnym adresem IP danej grupy. Na tej podstawie zostanie wybrany również drugi router, tzw. oczekujący (standby). Protokół HSRP celowo wybiera dwa routery, przy czym tylko router aktywny odpowiada na żądania klientów kierowane pod wirtualnym adresem IP grupy, natomiast router oczekujący stanie się aktywny dopiero podczas wykrycia awarii tego pierwszego. W momencie gdy liczba routerów w sieci lokalnej jest większa niż dwa, po zmianie routera oczekującego na aktywny wybierany jest nowy router oczekujący, tak aby ewentualna awaria domyślnej bramki była dla klientów sieciowych nieodczuwalna. Konfiguracji protokołu HSRP dokonujemy za pomocą komendy:

C2600(config-if)#standby [numer_grupy] ip [adres_ip][secondary]

Jeśli nie określimy w poleceniu standby numeru grupy, router założy, iż dany interfejs pracuje w grupie o numerze 0. Podany dla opcji ip adres będzie głównym adresem, jakim będzie posługiwał się router na wskazanym interfejsie. Oznacza to również określenie nowego wirtualnego adresu MAC związanego z podanym adresem IP, a przede wszystkim ze zdefiniowaną grupą HSRP. Początkowa część adresu jest wspólna dla wszystkich grup, natomiast na jego końcu umieszczany jest numer grupy HSRP, np. zapis 0000.0c07.ac07 oznacza adres związany z grupą o numerze 7. Podczas konfigurowania protokołu HSRP na kolejnych routerach, które mają pracować w już istniejącej grupie, nie ma konieczności określania wirtualnego adresu IP. Raz zdefiniowany obowiązuje dla wszystkich routerów w grupie, czyli konfiguracja kolejnych routerów pracujących w grupie 7 mogłaby zamknąć się poleceniem: standby 7 ip.

Włączenie kolejnych wirtualnych adresów IP dla wybranej grupy HSRP wymaga podania opcji secondary. Domyślny czas hellotime, po którym wysyłane są pakiety Hello dla danej grupy HSRP, wynosi 3 sekundy. Zanim jednak inne routery uznają, że router aktywny lub oczekujący nie funkcjonują, zobowiązane są odczekać holdtime, który domyślnie wynosi 10 sekund. Konfiguracji tych dwóch parametrów dokonujemy poleceniem:

C2600(config-if)#standby [numer_grupy] timers czas_hellotime czas_holdtime

Zakładając, że czas cyklicznego ogłaszania w grupie 7 ma wynosić 10 s, a czas, po którym inne routery uznają, że router aktywny nie działa - 30 s, należy wykonać komendę: standby 7 timers 10 30. Podane parametry czasowe muszą być jednakowe dla wszystkich routerów w danej grupie; definiowanie ich poza routerem aktywnym mija się z celem. Inne routery będą musiały korzystać z parametrów czasowych routera aktywnego, co pokazuje poniższy przykład polecenia show standby:

c2600#sh standby

Ethernet0/0 - Group 7

  Local state is Standby, priority 100

  Hellotime 3 holdtime 10 configured hellotime 10 sec holdtime 30 sec

  Next hello sent in 00:00:00.117

  Hot standby IP address is 131.108.1.100

  Active router is 131.108.1.2 expires in 00:00:09

  Standby router is local

  Standby virtual mac address is 0000.0c07.ac07

Podane dwie nowe wartości są przez router lokalny ignorowane; faktycznymi czasami są te zdefiniowane na routerze aktywnym. Powyższe polecenie jest doskonałym sposobem na sprawdzenie konfiguracji protokołu HSRP. Podany został adres routera aktywnego (131.108.1.2) oraz wskazanie routera oczekującego - standby router is local - co w tym przypadku oznacza wskazanie naszego routera. Istnieje również możliwość ustalenia, który z routerów w określonej grupie HSRP jest preferowany do roli routera aktywnego bądź oczekującego. Procedura ta zakłada określenie w konfiguracji HSRP priorytetu routera. Domyślnie priorytet równy jest 100 (1-255), nie on więc będzie decydował o roli routera, ale kolejność uruchamiania protokołu HSRP na poszczególnych urządzeniach. Zmiany tego parametru dokonujemy za pomocą komendy:

C2600(config-if)#standby [numer_grupy] priority priorytet [preempt [delay czas]]

Przyjęcie priorytetu dla routera nie ma znaczenia w momencie, gdy zostały już ustalone role routera aktywnego i oczekującego. Dopiero nowy proces wyboru może uwzględnić podany przez nas priorytet. Jeżeli chcemy, aby rola routera była zgodna z podanym przez nas priorytetem, należy dodatkowo posłużyć się opcją preempt. Oznacza to, że router natychmiast wymusi pozycję zgodną z przypisanym mu priorytetem. Czas wymuszenia można przesunąć, posługując się parametrem delay, jako uzupełnieniem dla opcji preempt. Przygotowana w ten sposób konfiguracja pozwoli na zachowanie ciągłego dostępu do zdalnej sieci bez konieczności rekonfigurowania komputerów w sieci lokalnej.

Tworzenie tablicy routingu

Źródło informacji
o trasie
Dystans
administratorski
Bezpośrednio podłączone 0
Statyczne 1
Protokół IGRP 100
Protokół OSPF 110
Protokół RIP 120
Nieznane 255

Po wykonaniu wstępnej konfiguracji routera (określenie adresów sieciowych dla poszczególnych interfejsów) jedynymi dostępnymi sieciami są te, do których ma on bezpośredni dostęp. Oznacza to, że na routerach Cisco, segmenty sieci bezpośrednio dostępne dla routera są pierwszym, najbardziej wiarygodnym źródłem informacji o strukturze sieci.

Oczywiście, nie jest to obraz całej sieci, tak więc muszą istnieć sposoby na poinformowanie routera o innych segmentach, również tych najbardziej odległych. Można skorzystać z wcześniej podanych przez administratora tras statycznych lub za pomocą protokołów routingu dynamicznego dokonać wymiany informacji przez same urządzenia sieciowe. Informacja ta musi zawierać opis dostępnych tras i pozwolić routerowi na wybór najlepszej z nich, dla pakietów kierowanych w konkretne miejsce.

Ocena składa się z dwóch elementów: metryki oraz dystansu administratorskiego. Metryka jest oceną kosztu dostępu do wybranej sieci, a sposób jej wyznaczania zależy od protokołu routingu, który ją wylicza. Trudno będzie routerowi odnieść się do metryk dotyczących tej samej sieci, a pochodzących od dwóch różnych protokołów routingu. Jednak w sytuacji, gdy protokół jest ten sam, będą one miały kluczowe znaczenie. Natomiast dystans administratorski jest oceną wiarygodności źródła, z którego pochodzi informacja. Im wyższa wartość z przedziału 0 - 255, tym mniej wiarygodne dla routera źródło informacji. Wartość dystansu administratorskiego nie jest wymieniana pomiędzy routerami, a więc ma znaczenie lokalne. Istnieją jednak pewne domyślne założenia pozwalające na wstępne oszacowanie wiarygodności źródła informacji o sieciach zdalnych - patrz tabela.

Spośród wszystkich informacji dostępnych dla routera, w tablicy routingu umieszczone będą tylko te, które są dla niego najbardziej wiarygodne. Oznacza to, że przy włączonych protokołach RIP i IGRP, ogłaszających tę samą sieć, wybrane zostanie ogłoszenie związane z protokołem IGRP. Aktualną zawartość tablicy routingu można sprawdzić poleceniem show ip route:

c2600#show ip route

Gateway of last resort is not set

S  195.116.60.0/24 [1/0] via 131.108.1.254, Ethernet0/0

I  212.1.1.0/24 [100/80135] via 131.107.12.2, 00:01:18, Serial0/0

R  10.0.0.0/8 [120/1] via 131.107.13.2, 00:00:26, Serial0/1

   131.108.0.0/24 is subnetted, 1 subnets

C  131.108.1.0 is directly connected, Ethernet0/0

   131.109.0.0/24 is subnetted, 1 subnets

C  131.109.1.0 is directly connected, Ethernet0/1

   131.107.0.0/24 is subnetted, 3 subnets

I  131.107.11.0 [100/82125] via 131.107.12.2, 00:01:18, Serial0/0

C  131.107.12.0 is directly connected, Serial0/0

C  131.107.13.0 is directly connected, Serial0/1
Dla tras statycznych metryka nie ma zastosowania (tylko dystans administratorski).

Oznaczenia literowe typu S, I, R, C wskazują na pochodzenie informacji w tablicy routingu, zgodnie z zamieszczonym powyżej krótkim opisem, np. R - RIP, S - Static, I - IGRP, C - Connected itd. Następnie podane są: adres sieci w notacji identyfikator sieci/ilość bitów sieci oraz dwa parametry - dystans administratorski i metryka. Zapis [100/80135] oznacza, iż dystans administratorski dla podanego wpisu wynosi 100, natomiast metryka jest równa 80135.

Poleceniem no ip routing wykonanym w trybie konfiguracyjnym możemy wyłączyć proces routingu. Spowoduje to jednak usunięcie całej konfiguracji dotyczącej zarówno protokołów routingu dynamicznego, jak i wpisów statycznych, a polecenie show ip route pokaże pustą zawartość tabeli routingu. Komenda no ip routing nie oznacza utraty komunikacji sieciowej, router nadal będzie mógł wymieniać pakiety z najbliższymi sąsiadami.

Ważnym elementem w budowie tablicy routingu jest podanie informacji, na jaki adres i przez jaki interfejs należy wysłać pakiet, aby dane dotarły do miejsca przeznaczenia, czyli sieci opisanej na początku każdej pozycji. Jako kolejny skok na drodze do sieci docelowej należy podać taki adres, który jest dla routera bezpośrednio osiągalny. Jeżeli router nie wie, dokąd wysłać pakiet dla sieci docelowej, odrzuca go, a do nadawcy wysyła odpowiedni komunikat protokołu ICMP (destination host unreachable). Konfigurując proces routingu, należy zawsze o tej zasadzie pamiętać.

Routing statyczny

Najprostszą formą budowania informacji o topologii sieci są ręcznie podane przez administratora trasy definiujące routing statyczny. Przy tworzeniu takiej trasy wymagane jest jedynie podanie adresu sieci docelowej, interfejsu, przez który pakiet ma zostać wysłany oraz adresu IP następnego routera na trasie.

Routing statyczny ma wiele zalet. Router przesyła pakiety przez z góry ustalone interfejsy bez konieczności każdorazowego obliczania tras, co zmniejsza zajętość cykli procesora i pamięci. Informacja statyczna nie jest narażona na deformację spowodowaną zanikiem działania dynamicznego routingu na routerach sąsiednich. Dodatkowo zmniejsza się zajętość pasma transmisji, gdyż nie są rozsyłane pakiety rozgłoszeniowe protokołów routingu dynamicznego. Dla małych sieci jest to doskonałe rozwiązanie, ponieważ nie musimy posiadać zaawansowanych technologicznie i rozbudowanych sprzętowo routerów. Routing statyczny zapewnia również konfigurację tras domyślnych, nazywanych bramkami ostatniej szansy (gateway of the last resort). Jeżeli router uzna, iż żadna pozycja w tablicy routingu nie odpowiada poszukiwanemu adresowi sieci docelowej, korzysta ze statycznego wpisu, który spowoduje odesłanie pakietu w inne miejsce sieci.

Routing statyczny wymaga jednak od administratora sporego nakładu pracy w początkowej fazie konfiguracji sieci, nie jest również w stanie reagować na awarie poszczególnych tras.

Ręcznej konfiguracji tras dokonujemy komendą:

C2600(config)#ip route sieć_docelowa maska_podsieci {adres_IP |

interfejs} [dystans] [permanent]
Połączenie oddziału firmy z centralą - routing statyczny

Najważniejsze jest dokładne określenie odległej sieci lub podsieci, do której będą wysyłane pakiety. Zanim dotrą one do miejsca docelowego, należy podać adres IP lub interfejs, przez który jest osiągalny router kolejnego skoku. Można również podać dystans administratorski dla konkretnej trasy; dla pozycji statycznych domyślnie wynosi on 1. Po wyłączeniu interfejsu, który prowadzi do wskazanej sieci, pozycja statyczna jest natychmiast usuwana, co przy częstych zmianach stanu łącza jest uciążliwe. Opcja permanent spowoduje zachowanie danej trasy nawet po awarii interfejsu. Praktyczną konfigurację routingu statycznego prześledźmy na przykładzie dołączenia oddziału firmy do głównej sieci korporacyjnej - rysunek obok.

Zwróćmy uwagę na różnicę w zapisie polecenia ip route. Na routerze C2600 router w sieci oddziałowej został wskazany przez adres IP, natomiast na routerze C2600bis wskazanie routera w sieci korporacyjnej wykonano, podając nazwę interfejsu, przez który należy wysłać pakiety. Niestety, nie jest to kompletna konfiguracja, ponieważ wszystkie routery w sieci korporacyjnej muszą zawierać informację, że sieć 131.108.1.0 jest osiągalna przez router C2600. Rozważmy bardziej złożony przypadek, w którym sieć odległa osiągalna jest przez dwie niezależne trasy - patrz rysunek poniżej.

Dostęp z sieci 131.108.1.0 do sieci 199.1.1.0 za routerem D jest możliwy zarówno poprzez router B, jak i C. Oznacza to, że przy domyślnie skonfigurowanym routingu statycznym dwie alternatywne trasy będą traktowane równorzędnie. Jeśli chcielibyśmy, aby jedna z tras była podstawowa (np. z racji przepustowości łącza pomiędzy routerami), a druga zapasowa, należy zrezygnować z domyślnej konfiguracji routingu statycznego. Dzięki zdefiniowaniu odpowiedniego dystansu administratorskiego dla poszczególnych tras, router C2600 umieści w tablicy routingu tę najbardziej wiarygodną. Na routerze C2600 podaliśmy dwa polecenia konfiguracyjne:

C2600(config)#ip route 199.1.1.0 255.255.255.0 s0/0 25

C2600(config)#ip route 199.1.1.0 255.255.255.0 s0/1 50
Odległa sieć D dostępna przez dwie różne trasy

Wynika z nich jednoznacznie, że trasa do sieci 199.1.1.0 kierowana przez interfejs Serial 0/0 jest bardziej wiarygodna, ponieważ jej dystans administratorski został opisany wartością 25, w odróżnieniu od trasy przez interfejs Serial 0/1 z dystansem równym 50. Taki zapis spowoduje, iż w tablicy routingu pozostanie tylko jedna pozycja, ta z mniejszym dystansem administratorskim. Nie doprowadzi to jednak do usunięcia z konfiguracji drugiego wpisu, który pojawi się w tablicy routingu w momencie, gdy interfejs Serial 0/0 z jakichkolwiek powodów zostanie wyłączony.

Zjawisko sterowania trasami poprzez zmianę dystansu administratorskiego i pojawiania się tras o gorszym dystansie, w sytuacji, gdy ta pierwsza jest niedostępna, nazywamy routingiem pływającym (floating routing). Tego rodzaju konfiguracja jest bardzo często stosowana przy połączeniu routingu dynamicznego i statycznego. Brak ogłoszeń związanych z protokołami routingu dynamicznego nie musi oznaczać, że router utraci informację na temat odległej sieci. Podając dodatkowo statyczną trasę z większym dystansem administratorskim niż obsługiwane protokoły routingu dynamicznego, sprawiamy, że wpis statyczny jest ukrywany do momentu, gdy zabraknie ogłoszeń routingu dynamicznego.

Trasy domyślne

Pojęcie trasy domyślnej, nazywanej też bramką ostatniej szansy, odnosi się do trasy wskazującej miejsce, do którego należy przesłać pakiet, gdy router nie wie nic o sieci docelowej pakietu. Przekłada się to najczęściej na jedną statyczną trasę skonfigurowaną przez administratora sieci lub wskazanie, które jest wynikiem dystrybucji poprzez protokoły routingu dynamicznego. Trasę domyślną definiujemy poleceniem:

C2600(config)#ip route 0.0.0.0 0.0.0.0 {adres_IP | interfejs}
W tabeli routingu poszukuje się zawsze sieci o "najdłuższym dopasowaniu" względem sieci docelowej pakietu IP, stąd pozycja domyślna 0.0.0.0 brana będzie pod uwagę zawsze jako ostatnia. Dzięki temu, że maska trasy domyślnej ma postać 0.0.0.0, operacja mnożenia logicznego AND maski przez adres docelowy pakietu zawsze da wynik 0.0.0.0, zgodny z adresem sieci domyślnej (też 0.0.0.0). W praktyce pozycja domyślna w tablicy routingu pasuje do każdego adresu docelowego.

W opcjach podajemy adres routera kolejnego skoku lub nazwę interfejsu, przez który jest on osiągalny. Jest to typowy sposób konfiguracji routera oddziałowego firmy przy połączeniu z siecią korporacyjną, gdzie cała komunikacja nie związana z siecią lokalną oddziału ma być kierowana do routera brzegowego sieci korporacyjnej. Jest to bardzo wygodne rozwiązanie, ponieważ jednym wpisem można objąć wszystkie nieznane sieci IP, do których kierowane są pakiety.

Drugim sposobem na oznaczenie trasy jako bramki ostatniej szansy jest wykonanie polecenia:

C2600(config)#ip default-network adres_sieci

Polecenie to, wykonane na routerze Cisco, zakłada, iż router ma informacje o tym, jak dotrzeć do wskazanej sieci domyślnej. Rozważmy przypadek routera, na którym wykonano polecenie ip default-network 212.1.1.0. Oto przykładowa tablica routingu:

C2600#show ip route

...

Gateway of last resort is 131.107.11.1 to network 212.1.1.0

S* 212.1.1.0/24 [1/0] via 131.107.11.1

   131.107.0.0/24 is subnetted, 2 subnets

C  131.107.11.0 is directly connected, Serial0

C  131.107.15.0 is directly connected, Serial1

   13.0.0.0/24 is subnetted, 1 subnets

C  13.1.1.0 is directly connected, FastEthernet0

Statyczna trasa do sieci 212.1.1.0/24 wskazana została w tablicy routingu jako bramka ostatniej szansy. Oznacza to, iż każdy pakiet z nieznanym adresem sieci docelowej zostanie skierowany do routera 131.107.11.1, ponieważ taki został podany adres kolejnego skoku przy dostępie do sieci 212.1.1.0. Przy definiowaniu domyślnej sieci należy pamiętać, aby router zawierał w tablicy routingu informację, jak do wskazanej sieci dotrzeć. Podana sieć musi również dokładnie odpowiadać długością sieci znajdującej się w tablicy routingu. Jeżeli w poleceniu ip default-network podana została sieć 131.108.0.0, w tablicy routingu musi istnieć pozycja dotycząca sieci 131.108.0.0/16. W innym przypadku polecenie to zapisane zostanie w bieżącej konfiguracji routera i ignorowane przez system operacyjny nie będzie miało żadnego wpływu na tablicę routingu.

Konfigurując adres bramki ostatniej szansy, pamiętać należy o sprawdzaniu, czy w konfiguracji routera jest polecenie ip classless. Komenda ta domyślnie jest włączona, jednak przy wykonaniu polecenia no ip classless mogą pojawić się problemy z wykorzystaniem bramki ostatniej szansy. Dzieje się tak, ponieważ router pracujący w trybie klasowym (no ip classless) nie korzysta z bramki ostatniej szansy dla podsieci należących do znanych mu sieci głównych IP.

Załóżmy, że w tablicy routingu routera C2600 znajdują się następujące podsieci IP: 131.107.12.0/24 oraz 131.107.13.0/24, będące podsieciami z interfejsów lokalnych routera. Dodatkowo zdefiniowano adres domyślnej bramki jako 131.107.12.2. Przy próbie wysłania pakietów na adres docelowy 212.1.1.1 router C2600 wyśle je pod adresem domyślnej bramki. Niestety, dla adresu docelowego 131.107.17.1, chociaż nie ma takiej sieci w tablicy routingu, router nie skorzysta z bramki ostatniej szansy, ponieważ wartość 17 na trzecim bajcie oznacza podsieć lokalnej sieci głównej 131.107.0.0 (router generuje do nadawcy komunikat ICMP Destination Host Unreachable).

Przełączanie pakietów na routerach Cisco

Przy omawianiu routingu statycznego przedstawiliśmy przypadek docelowej sieci, do której prowadzą dwie trasy (albo dwie trasy statyczne z jednakowym dystansem administratorskim, albo dwie trasy z równą metryką dla routingu dynamicznego). Zastanówmy się, w jaki sposób router będzie korzystał z wielu tras prowadzących do tej samej sieci docelowej. Czy zawsze wybierana będzie jedna trasa, czy też możliwe jest równoważenie obciążenia na wszystkich dostępnych trasach. Routery Cisco mogą pracować w dwóch trybach przełączania pakietów:

  • procesowym, w którym stosuje się równoważenie obciążenia, przesyłając pakiet po pakiecie na poszczególne trasy;
  • pamięciowym (przełączanie szybkie), w którym stosuje się wybór jednej trasy dla wszystkich pakietów związanych z konkretnym miejscem przeznaczenia.

W przełączaniu procesowym przeszukiwana jest tablica routingu dla każdego pakietu, co zwiększa obciążenie procesora routera. Przełączanie szybkie wykorzystuje specjalny obszar pamięci podręcznej, w którym przechowuje się informację o wybranej trasie do konkretnego miejsca docelowego (adres docelowy, interfejs routera). Dla pierwszego wysyłanego pakietu stosuje się zawsze przełączanie procesowe, następnie tworzony jest wpis w pamięci podręcznej i na tej podstawie przesyłane są kolejne pakiety. Korzystanie z pamięci podręcznej jest rozwiązaniem szybszym niż przeglądanie tabeli tras stosowane w przełączaniu procesowym. Domyślnie w konfiguracji wszystkich interfejsów włączone jest przełączanie szybkie, co można sprawdzić poleceniem show ip interface nazwa_interfejsu. Aby wyłączyć szybkie przełączanie (i włączyć procesowe), należy w trybie konfiguracji interfejsu wykonać komendę no ip route-cache.

Działanie wybranego trybu przełączania najłatwiej zaobserwować, wykorzystując polecenie debug. Załóżmy sytuację, w której przykładowy router C2600 ma dwie trasy prowadzące do sieci 199.1.1.0. Pierwsza trasa wiedzie przez router 131.107.12.2, druga przez router 131.107.13.2. Zakładając domyślną konfigurację, w której włączone jest szybkie przełączanie, wykonamy polecenie ping 199.1.1.10 z komputera pracującego w sieci lokalnej routera C2600 (131.108.1.250). Aby zaobserwować pracę routera C2600, wykonamy polecenia debug ip packet (śledzenie całej komunikacji IP) i debug ip cache (monitorowanie wpisów związanych z pamięcią podręczną szybkiego przełączania). Warto wcześniej usunąć zawartość pamięci podręcznej poleceniem clear ip cache.

Poniżej przedstawiamy wynik polecenia debug dla trybu szybkiego przełączania. Zwróćmy uwagę na komunikaty informujące o tworzeniu wpisu w pamięci podręcznej oraz na fakt, że tylko pierwszy pakiet związany z poleceniem ping został zauważony w trybie śledzenia. Komenda debug nie pokazuje pakietów przełączanych z wykorzystaniem pamięci podręcznej:

c2600#clear ip cache

c2600#deb ip cache

IP cache debugging is on

c2600#deb ip pack

IP packet debugging is on

c2600#

01:03:44: IP: s=131.108.1.250 (Ethernet0/0), d=199.1.1.10 (Serial0/1),

  g=131.107.13.2, len 60, forward

01:03:44: IP: created cache entry for 199.1.1.10/32

01:03:44: IP: s=199.1.1.10 (Serial0/1), d=131.108.1.250 (Ethernet0/0),

  g=131.108.1.250, len 60, forward

Aktualną zawartość pamięci podręcznej dla szybkiego przełączania wyświetlić można poleceniem show ip cache.

W następnym odcinku cyklu przedstawimy między innymi konfigurowanie routingu dynamicznego oraz zagadnienia związane z redystrybucją tras.

To samo doświadczenie przeprowadzimy teraz dla przełączania procesowego (w konfiguracji interfejsów szeregowych routera C2600 wykonano polecenie no ip route-cache). Wynik działania polecenia deb ip pack wyraźnie wskazuje, że połowa pakietów przełączana jest na interfejs Serial 0/0, połowa na Serial 0/1:

c2600#

01:22:14: IP: s=131.108.1.250 (Ethernet0/0),

  d=199.1.1.10 (Serial0/0), g=131.107.12.2, len 60, forward

01:22:15: IP: s=131.108.1.250 (Ethernet0/0),

  d=199.1.1.10 (Serial0/1), g=131.107.13.2, len 60, forward

01:22:16: IP: s=131.108.1.250 (Ethernet0/0),

  d=199.1.1.10 (Serial0/0), g=131.107.12.2, len 60, forward

01:22:17: IP: s=131.108.1.250 (Ethernet0/0),

  d=199.1.1.10 (Serial0/1), g=131.107.13.2, len 60, forward