Rozdział 7 Trasowanie (routing) w TCP/IP firmy Microsoft Protokół internetowy IP może służyć do budowania sieci o dowolnym stopniu złożoności. Jeśli sieć IP jest oparta głównie na Windows NT, wówczas jako routerów można użyć komputerów Windows NT. Rozdział ten omawia wady i zalety wykorzystania komputerów Windows NT w charakterze routerów. Windows NT może służyć do budowania sieci złożonych, składających się z podsieci i pokrywających duże obszary. Sieci takie łączone są ze sobą przy pomocy routerów. Routery IP rozumieją format nagłówka IP i mogą przekazywać datagramy IP na podstawie zawartych w nich informacji. Przekazywanie datagramów do ich miejsca przeznaczenia nazywane jest trasowaniem. Routery działają jak urządzenia komutujące pakiety, wybierające ich trasę poprzez sieć na podstawie zdefiniowanych kryteriów. Niniejszy rozdział omawia pojęcia związane z trasowaniem IP, których zrozumienie jest konieczne do projektowania rozległych sieci IP. Następnie opisana zostanie konfiguracja usług trasowania w Windows NT. Na końcu znajduje się omówienie zaawansowanych zagadnień związanych z projektowaniem podsieci, maskami podsieci o zmiennej długości oraz łączeniem klas sieci. Pojęcia związane z trasowaniem IP Jak wyjaśniono w rozdziale 1, "Architektura TCP/IP w Windows", route- ry są urządzeniami pracującymi w warstwie trzeciej modelu OSI, która odpowiada za funkcje trasowania. Rysunek 7.1 przedstawia uproszczony model routera. Rozdział 7 210 Rysunek 7.1 Uproszczony model routera Router może posiadać wiele portów, przy czym musi posiadać co najmniej dwa. Oprogramowanie trasujące IP sprawdza nagłówki datagramów przychodzących do portu, aby ustalić, gdzie należy przekazać datagram. Najważniejszą informacją sprawdzaną przez oprogramowanie trasujące jest adres przeznaczenia datagramu IP. Oprogramowanie trasujące korzysta z tablicy trasowania i przekazuje datagram IP do odpowiedniego portu routera. Trasowanie statyczne i dynamiczne Tablica trasowania zawiera listę sieci i komputerów przeznaczenia oraz informację o najlepszych wiodących do nich trasach. Tablica trasowania w routerze może zostać wypełniona za pomocą dwóch metod:
metody statycznej
metody dynamicznej W metodzie statycznej informacje muszą zostać ręcznie wprowadzone do tablicy trasowania (routing table). W metodzie dynamicznej router może sam zdobyć informacje o sposobie trasowania pakietów do innych sieci i komputerów. Router zdobywa te dane przy pomocy protokołów trasujących. Wyjątki System, który posiada tylko jeden port, ale dwa lub więcej adresów w różnych podsieciach, może być przykładem routera mającego tylko jeden fizyczny port - jest to jednak sytuacja wyjątkowa. Opisany wyżej uproszczony model służy głównie do ilustracji podstawowych pojęć. Trasowanie (routing) w TCP/IP firmy Microsoft 211 Protokoły trasujące Protokoły trasujące opisują sposób, w jaki routery wymieniają między sobą informacje, aby znalezć najlepszą trasę do różnych miejsc przezna- czenia w Internecie. Protokoły trasujące muszą wymieniać komunikaty w sieci opartej na IP, dlatego przenoszone są w datagramach IP. Protoko- ły trasujące mogą pracować bezpośrednio ponad IP, jak np. protokół OSPF (Open Shortest Path First); mogą pracować ponad UDP - protokołem warstwy transportu, jak np. RIP (Routing Information Protocol). Mogą tak- że pracować ponad protokołem warstwy transportu TCP, jak np. BGP (Border Gateway Protocol). Ponieważ protokoły trasujące wykorzystują protokoły IP, TCP lub UDP, można je traktować jako klasę specjalnych protokołów warstwy aplikacji. Zagadnienia związane z konfiguracją routerów Niezależnie od używanego protokołu trasującego, istnieje potrzeba ręcznej konfiguracji routera, zanim będzie on mógł funkcjonować w sieci. Wynika to z faktu, że router jest urządzeniem pracującym w trzeciej warstwie modelu OSI, którego karty sieciowe są identyfikowane przez adresy IP. Konieczna jest więc konfiguracja adresów IP i związanych z nimi parametrów, czego nie da się zrobić automatycznie. W niektórych komercyjnych routerach parametry konfiguracyjne można umieścić w pliku, a następnie wczytać go z lokalnego lub sieciowego dysku. Pomaga to zautomatyzować proces konfiguracji routerów, ale wciąż konieczne jest ręczne zmodyfikowanie zawartości pliku. Niegdyś wiele routerów spełniało również funkcje serwera aplikacji, jak np. komputery UNIX wykonujące zarazem funkcje trasujące. W rzeczy- wistości wiele systemów UNIX domyślnie działa jako router, jeśli posiadają więcej niż jedną kartę sieciową. Obecnie można zbudować router na bazie Windows NT Server. Możliwe jest także stworzenie routera przy użyciu Windows NT Workstation lub Windows 9x, ale potrzebne jest do tego dodatkowe oprogramowanie innych producentów. W Windows NT Server do skonfigurowania serwera jako routera IP można użyć standardowego oprogramowania. Jeśli serwer aplikacji pracuje również jako router, wówczas spełnia po- dwójną funkcję: zapewnia usługi trasowania i usługi aplikacyjne. Ponie- waż każdy datagram IP musi być trasowany oddzielnie, algorytm trasu- jący może pochłonąć znaczną ilość czasu procesora w serwerze znajdują- cym się w mocno obciążonej sieci. Ma to znaczny wpływ na wydajność komputera jako serwera aplikacji. Z tego powodu producenci tacy jak Cisco, Bay Networks, 3Com i inni sprzedają dedykowane urządzenia Rozdział 7 212 sprzętowe, które wykonują wyłącznie funkcje trasujące. Użycie dedyko- wanych urządzeń sprzętowych, zawierających wyspecjalizowane układy przyspieszające funkcje trasowania, pomaga odseparować funkcje serwe- ra aplikacji od funkcji komunikacyjnych. Dzięki temu zarządzanie komu- nikacją i usługami aplikacyjnymi staje się łatwiejsze i znika konflikt inte- resów. Jeśli jednak sieć jest mała, a ze względu na niewielki ruch w sieci wydajność i przepustowość nie stanowią kluczowych problemów, wtedy routerem może być komputer Windows NT. Nie ma wówczas potrzeby kupowania dodatkowych routerów sprzętowych, a konfigurację routera może przeprowadzić administrator sieci, a nie specjalista od routerów sprzętowych. Dostarczanie datagramów przez hosty i routery Tradycyjne opisy routerów IP używają pojęć router i host. Hosty są zwy- kłymi komputerami, jak np. stacje robocze Windows NT lub komputery Windows 95. Routery są to specjalne urządzenia, aktywnie wykonujące funkcje trasowania. Jak wspomniano w poprzedniej części rozdziału, serwer Windows NT może zostać skonfigurowany jako router. W procesie trasowania datagramu IP biorą udział zarówno hosty, jak i routery. Datagramy IP wysyłane są przez hosta, który chce skorzystać z usług oferowanych przez innego hosta. Rysunek 7.2 przedstawia sieć zawierającą hosty i routery. Routery umożliwiają łączenie się z zewnętrz- nymi sieciami. Kiedy host wysyła datagram IP, wówczas musi podjąć decyzję, czy wysłać go bezpośrednio do hosta w sieci, czy też przekazać go do jednego z routerów. W tym zakresie trasowania dokonują wszystkie komputery w sieci. Chociaż porty routera są podłączone do sieci, router przekazuje dalej tylko datagramy przesłane bezpośrednio do swojego portu. Odpowiedzialność za skierowanie datagramu bezpośrednio do portu routera ponosi nadający host. W przykładzie z rysunku 7.2 nadający host wykrywa sprzętowy adres podłączonego do sieci portu routera, po czym używa tego adresu w polu adresu przeznaczenia ramki warstwy łącza danych. W sieciach obsługujących tryb broadcast do wykrywania sprzętowego adresu portu routera używa się protokołów takich jak ARP. Trasowanie (routing) w TCP/IP firmy Microsoft 213 Rysunek 7.2 Hosty i routery Tablice trasowania w hostach i routerach Zarówno hosty, jak i routery posiadają tablice trasowania IP. Tablica tra- sowania zawiera informacje o miejscach przeznaczenia i sposobach do- tarcia do nich. Hosty i routery sprawdzają tablice trasowania, aby ustalić, jak należy trasować dany datagram. W przypadku hostów, moduł IP sprawdza tablice trasowania dla wysyłanych datagramów, których miejsce przeznaczenia znajduje się poza lokalną siecią. Routery sprawdzają tablice trasowania dla odbieranych datagramów, po czym przekazują je dalej w sposób opisany w tablicy. Jaki rodzaj informacji jest przechowywany w tablicach trasowania? Jeśli tablica wymieniałaby każdy możliwy host przeznaczenia, wówczas stałaby się zbyt duża, aby można było nią zarządzać. Musiałaby bowiem wówczas zawierać wpis dla każdego możliwego adresu przeznaczenia IP. W wersji 4 protokołu IP może istnieć około czterech bilionów adresów, a więc przy całkowicie wykorzystanej przestrzeni adresowej Internetu tablice trasowania musiałyby zawierać cztery biliony wpisów. Pamięć komputerów przeznaczana na tablice trasowania wyczerpałaby się równie szybko, jak cierpliwość administratorów zmuszonych do zarządzania tablicami tej wielkości. Potrzebne jest więc inne rozwiązanie. Tablica trasowania IP jest zaprojektowana w ten sposób, aby zawierała tylko niezbędne minimum informacji. Zamiast przechowywania adresów Rozdział 7 214 każdego możliwego hosta przeznaczenia, przechowuje się numer sieci przeznaczenia. Jak wiemy, adres IP składa się z identyfikatora sieci i identyfikatora hosta. Identyfikator sieci (netid) jest numerem sieci i jest taki sam dla wszystkich komputerów w danej sieci. Innymi słowy, wszystkie hosty w danej sieci dzielą taki sam przedrostek adresu IP na- zywany identyfikatorem sieci. Przechowywanie informacji o trasowaniu do sieci jest dużo wydajniejsze od przechowywania informacji o trasowaniu do poszczególnych komputerów; zmniejsza to znacznie liczbę wpisów w tablicach trasowania, redukując ich rozmiary. Jeśli w adresie IP dla danej sieci adres hosta zajmuje H bitów, wówczas użycie numeru sieci zamiast adresów poszczególnych hostów zmniejsza liczbę wpisów w tablicy trasowania o czynnik 2H. Wpis w tablicy trasowania zawiera miejsce przeznaczenia oraz router następnego skoku, który ma przekazać datagram do miejsca przeznacze- nia. Router następnego skoku jest routerem połączonym z segmentem sieci, do którego bezpośrednio podłączony jest router zródłowy. Skokiem natomiast nazywamy przejście datagramu przez router. Rysunek 7.3 pokazuje, że routerami następnego skoku dla routera R0 są routery R1, R2 i R3, ponieważ podłączone są do tego samego segmentu sieci. Routery R0 i R1 komunikują się poprzez łącze międzypunktowe (point-to-point); takie samo łącze istnieje pomiędzy R0 i R2 oraz R0 i R3. Rysunek 7.3 Routery następnego skoku Trasowanie (routing) w TCP/IP firmy Microsoft 215 Należy zauważyć, że tablica trasowania wskazuje tylko na następny ro- uter w tej samej fizycznej sieci; tablica nie zawiera całej trasy do miejsca przeznaczenia. Innymi słowy, wpis w tablicy trasowania nie zawiera listy wszystkich routerów, przez które musi przejść datagram. W przykładzie z rysunku 7.3 tablica trasowania routera R0 zawiera wpisy tylko dla routerów R1, R2 i R3; nie wymienia routerów R4, R5, R6, R7, R8 i R9, ponieważ w stosunku do R0 nie są one routerami następnego skoku. Router następnego skoku wybierany jest tak, aby zminimalizować koszt dotarcia do miejsca przeznaczenia. Minimalny koszt można zdefiniować w kategoriach opóznień, kosztu pieniężnego lub ilości skoków. Sposób określania minimalnego kosztu jest zdeterminowany przez protokół używany przez routery do wymiany informacji o trasowaniu. Koszt związany z przesłaniem datagramu reprezentuje globalną wiedzę o topologii sieci; jednakże koncepcja routera następnego skoku reprezentuje wiedzę tylko o lokalnej topologii sieci. Tablica trasowania jest prosta, ponieważ zawiera tylko informacje o sąsiednich routerach. Tablica musi na bieżąco uaktualniać informacje o sąsiednich routerach. Za obliczenie kosztu związanego z przesłaniem datagramu przez któryś z sąsiednich routerów odpowiedzialny jest protokół trasujący. Użycie w tablicy trasowania przedrostka sieci zamiast adresów IP poszczególnych hostów zmniejsza rozmiar tablicy, ale prowadzi również do innych konsekwencji. Wszystkie hosty znajdujące się w konkretnej sieci posiadają tylko jeden wpis w tablicy trasowania, a więc tylko jedną wiodącą do nich trasę. Jeśli nawet istnieją różne trasy do konkretnego hosta, nie mogą być używane jednocześnie. W prostym modelu tablicy trasowania nie ma możliwości uwzględnienia opóznień, pierwszeństwa ani przepustowości sieci. Niektóre protokoły trasujące biorą te czynniki pod uwagę, przypisując każdej trasie w tablicy pewien koszt. Host przeznaczenia otrzymuje dane poprzez serię bezpośrednich transmisji od nadawcy do końcowego routera. Dopóki końcowy router nie spróbuje dostarczyć datagramu do hosta przeznaczenia, nie ma żadnego sposobu, aby stwierdzić, czy komputer przeznaczenia istnieje. Jeśli końcowy router w serii bezpośrednich transmisji nie jest w stanie dostarczyć datagramu, wówczas zgłasza nadawcy błąd w postaci komunikatu ICMP. Jeśli końcowy router znajduje się w sieci umożliwiającej pracę w trybie broadcast, jak np. Ethernet, wówczas próbuje przypisać adres przeznaczenia IP do adresu sprzętowego przy użyciu ARP. Jeśli ARP zawiedzie, router zakłada, że host przeznaczenia jest nieosiągalny. Rozdział 7 216 Przykład tablicy trasowania w hoście Windows NT Tablica trasowania w hoście jest podobna do tablicy trasowania w routerze. Hosty trasują jednak tylko datagramy wysyłane przez siebie; nie przekazują datagramów otrzymanych z innych węzłów IP. Routery natomiast przekazują datagramy otrzymane z innych węzłów IP. Na rysunku 7.4 przedstawiono tablicę trasowania dla komputera Windows NT. Przykładowa sieć zawiera trzy routery. Host A może wybrać dowolny z routerów, ale nie czyni tego w sposób arbitralny. Host określa, jak należy przesłać datagram IP, sprawdzając swoją tablicę trasowania. Tablica dla hosta A zawiera następujące wpisy: Rysunek 7.4 Przykład tablicy trasowania w hoście Miejsce przeznaczenia Router następnego skoku 200.1.1.0 połączony bezpośrednio (Directly connected) 201.12.5.0 200.1.1.10 202.10.10.0 200.1.1.11 203.4.5.0 200.1.1.12 Pierwszy wpis w tablicy trasowania określa lokalną sieć 200.1.1.0. Druga kolumna wskazuje, że jest to bezpośrednio połączona sieć. Host może więc wysyłać datagramy bezpośrednio; nie ma potrzeby przekazywania routerom datagramów przeznaczonych dla lokalnej sieci 20.1.1.0. Host używa sprzętowego mechanizmu sieci, aby dostarczyć datagram do do- wolnego hosta znajdującego się w sieci 201.1.10. W sieci umożliwiającej Trasowanie (routing) w TCP/IP firmy Microsoft 217 pracę w trybie broadcast, jak np. Ethernet, może to wymagać użycia pro- tokołu ARP w celu określenia sprzętowego adresu hosta przeznaczenia przed wysłaniem mu datagramu IP. Drugi wpis w tablicy trasowania oznacza, że wszystkie datagramy zmierzające do sieci 201.12.5.0 powinny być przekazywane do portu routera 200.1.1.10. Należy zauważyć, że sieć 201.12.5.0 jest osiągalna również przez inne lokalne routery, ale trasa taka wymagałaby przesłania datagramu przez inne sieci, jak 202.10.10.0 i 203.4.5.0. Protokół trasujący jest w stanie samodzielnie ocenić, że optymalna trasa do sieci 201.12.5.0 prowadzi przez router 201.1.1.10. Jeśli router ten byłby wyłączony, wówczas wpis w tablicy trasowania dla sieci 201.12.5.0 określałby inne routery, przez które można do niej dotrzeć. Trzeci wpis w tablicy trasowania określa, że wszystkie datagramy zmierzające do sieci 201.10.10.0 powinny być przekazywane do portu routera 200.1.1.11. Znów należy zauważyć, że sieć 201.10.10.0 jest osiągalna również przez inne lokalne routery, ale trasa taka wymagałaby przesłania datagramu przez inne sieci, jak 201.12.5.0 i 203.4.5.0. Protokół trasujący jest w stanie samodzielnie ocenić, że optymalna trasa do sieci 201.10.10.0 prowadzi przez router 201.1.1.11. Jeśli router ten byłby wyłączony, wówczas wpis w tablicy trasowania dla sieci 201.10.10.0 określałby inne routery, przez które można do niej dotrzeć. Ostatni wpis w tablicy trasowania określa, że wszystkie datagramy zmierzające do sieci 203.4.5.0 powinny być przekazywane do portu routera 200.1.1.12. Znów należy zauważyć, że sieć 202.4.5.0 jest osiągalna również przez inne lokalne routery, ale trasa taka wymagałaby przesłania datagramu przez inne sieci, jak 201.12.5.0 i 202.10.10.0. Protokół trasujący jest w stanie samodzielnie ocenić, że optymalna trasa do sieci 203.4.5.0 prowadzi przez router 201.1.1.12. Jeśli router ten byłby wyłączony, wówczas wpis w tablicy trasowania dla sieci 203.4.5.0 określałby inne routery, przez które można do niej dotrzeć. Jeśli przyjrzymy się adresom IP routerów następnego skoku, wówczas zauważymy, że ich porty podłączone do sieci lokalnej mają ten sam przedrostek IP: 200.1.1. Co więcej, ten przedrostek jest taki sam dla lokalnej sieci 201.1.1.0 i wszystkich podłączonych do niej hostów. Jest to bardzo istotna informacja: wszystkie routery następnego skoku mają taki sam przedrostek jak sieć, do której podłączone są ich porty. Ponieważ routery muszą mieć więcej niż jeden port, ich pozostałe porty również mają wspólny przedrostek ze swoimi sieciami (patrz rysunek 7.4). Zazwyczaj ostatnim wpisem w tablicy trasowania jest trasa domyślna, reprezentowana przez adres przeznaczenia 0.0.0.0. Trasa domyślna jest Rozdział 7 218 wybierana tylko wtedy, jeśli w tablicy trasowania nie ma żadnego pasu- jącego wpisu. Trasy do pojedynczych hostów Większość wpisów w tablicy trasowania określa miejsce przeznaczenia za pomocą numeru sieci. Wiele implementacji umożliwia jednak określanie miejsc przeznaczenia za pomocą adresu IP. Kiedy w tablicy trasowania używamy adresu IP jako miejsca przeznaczenia, możemy określić router następnego skoku na podstawie adresu IP hosta, a nie numeru sieci, dzięki czemu mamy lepszą kontrolę nad sposobem dotarcia do hosta. Możliwość określenia routera następnego skoku na trasie do konkretnego hosta jest bardzo przydatna podczas testowania i debugowania sieci. Rozważmy sieć z rysunku 7.5, w której tablica trasowania dla hostów wygląda następująco: Rysunek 7.5 Trasa do pojedynczego hosta. Miejsce przeznaczenia Router następnego skoku 200.1.1.0 Directly connected (połączony bezpośrednio) 201.12.5.27 200.1.1.11 (Trasa do pojedynczego hosta) 202.10.10.33 200.1.1.12 (Trasa do pojedynczego hosta) 201.12.5.0 200.1.1.10 202.10.10.0 200.1.1.11 Trasowanie (routing) w TCP/IP firmy Microsoft 219 203.4.5.0 200.1.1.12 Przykład z rysunku 7.5 jest podobny do przykładu z rysunku 7.4, z tym że hosty przeznaczenia 201.12.5.27 i 202.10.10.33 są opisane w tablicy trasowania hosta A jako posiadające własne trasy. Gdyby w tablicy nie umieszczono trasy do pojedynczego hosta, wówczas host 201.12.5.27 byłby osiągalny przez router 200.1.1.10, określony jako router do sieci 201.12.5.0. Podobnie, gdyby nie istniała sprecyzowana trasa do hosta 202.10.10.33, wówczas byłby on osiągalny przez router 200.1.1.11, określony jako router do sieci 202.10.10.0. Podczas testowania i debugowania, możliwość przesłania danych do hosta przeznaczenia przez konkretny router następnego skoku jest bardzo przydatna. Należy w tym celu skorzystać z tras do pojedynczych hostów w sposób zilustrowany na rysunku 7.5. Trasy domyślne Jeśli sieć posiada tylko jeden router następnego skoku, wówczas trasa do wszystkich zdalnych miejsc przeznaczenia prowadzi przez ten router (patrz rysunek 7.6). W takim przypadku nie ma sensu wyszczególnianie wszystkich możliwych miejsc przeznaczenia; wygodniej jest zdefiniować trasę domyślną do wszystkich miejsc przeznaczenia. Router określony przez trasę domyślną nazywany jest routerem domyślnym. Terminy domyślny router i domyślna bramka są synonimami; routery niegdyś nazywano bramkami. Windows NT i Windows 9x używają terminu domyślna bramka. Na rysunku 7.6 tablica trasowania dla hosta składa się z zaledwie dwóch wpisów: jednego dla lokalnej sieci, a drugiego dla trasy domyślnej. Oprogramowanie trasujące musi wykonać tylko dwa testy, aby określić sposób przesłania datagramu IP. Ogólnie rzecz biorąc, trasa domyślna umożliwia utrzymanie niewielkich tablic trasowania w sytuacjach, w których trasa do wielu miejsc przeznaczenia wiedzie przez ten sam router następnego skoku (patrz rysunek 7.5). Oprogramowanie trasujące sprawdza tablicę trasowania w poszukiwaniu dokładnego odpowiednika dla danego miejsca przeznaczenia. Jeśli taki odpowiednik nie istnieje, wówczas używa się trasy domyślnej. Trasa domyślna reprezentowana jest w tablicy trasowania przez specjalny adres przeznaczenia, 0.0.0.0. W przykładzie z rysunku 7.7, bez użycia trasy domyślnej tablica trasowania wyglądałaby następująco: Miejsce przeznaczenia Router następnego skoku Rozdział 7 220 200.1.1.0 połączony bezpośrednio (Directly connected) 201.1.1.0 200.1.1.33 202.1.1.0 200.1.1.34 203.1.1.0 200.1.1.34 204.1.1.0 200.1.1.34 Tablica ta posiada pięć wpisów. Przy pomocy trasy domyślnej możemy scalić trzy ostatnie wpisy w pojedynczą trasę, jak pokazuje poniższa tablica trasowania, równoważna poprzedniej: Miejsce przeznaczenia Router następnego skoku 200.1.1.0 połączony bezpośrednio (Directly connected) 201.1.1.0 200.1.1.33 0.0.0.0 200.1.1.34 W komputerze Windows NT domyślną trasę ustawia się następująco: 1. Uruchomić program Network w Control Panel. 2. Wybrać zakładkę Protocols. 3. Podświetlić protokół TCP/IP. 4. Kliknąć Properties. 5. Wybrać zakładkę IP Address. 6. Wprowadzić adres domyślnego routera w polu Default Gateway. Trasowanie (routing) w TCP/IP firmy Microsoft 221 Rysunek 7.6 Pojedynczy router następnego skoku Rysunek 7.7 Użycie trasy domyślnej w celu zminimalizowa nia rozmiarów tablicy trasowania. Rozdział 7 222 Dzielenie na podsieci i jego zalety Dzielenie na podsieci umożliwia podział pojedynczej sieci na kilka mniej- szych przy użyciu tego samego, przypisanego numeru sieci. Poniżej wy- mieniono zalety dzielenia na podsieci:
Uproszczona administracja
Możliwość restrukturyzacji sieci wewnętrznej bez wpływania na sieci zewnętrzne
Lepsze zabezpieczenie sieci
Izolacja ruchu sieciowego. Uproszczenie administracji wynika z faktu, że możliwe jest rozbicie sieci przy użyciu routerów na logiczne segmenty. Pozwala to na niezależną i wydajniejszą administrację poszczególnych segmentów. Mniejsze sieci mogą być zarządzane przez niezależnych administratorów, dzięki czemu unika się potencjalnych konfliktów pomiędzy wydziałami przedsiębiorstwa, których pracownicy chcą posiadać większą kontrolę nad swoimi sieciami. Użycie podsieci umożliwia stworzenie wewnętrznej struktury, której zmiany są niewidoczne w zewnętrznych sieciach. W przykładzie z rysunku 7.8 wewnętrzną sieć podzielono na dwie podsieci, ale zewnętrzny ruch jest nadal kierowany pod pojedynczy adres 149.108.0.0. Za dokonanie dalszego rozróżnienia pomiędzy adresami IP należącymi do różnych podsieci odpowiedzialny jest wewnętrzny router. "Niewidzialność" sieci wewnętrznej dla sieci zewnętrznych ma bardzo ważny aspekt: umożliwia wewnętrzną restrukturyzację bez potrzeby uzyskiwania kolejnego numeru sieci. Może to stanowić wielką zaletę w obliczu kurczenia się zasobu wolnych adresów w Internecie. Ponieważ wewnętrzna struktura sieci jest niewidoczna dla sieci zewnętrznych, automatycznie wpływa to na lepsze zabezpieczenie sieci. Rysunek 7.9 przedstawia zależność pomiędzy różnymi polami adresu IP i omawianymi do tej pory podsieciami. Podsieci muszą być połączone przy pomocy routerów. Routery muszą wiedzieć, że używane jest dzielenie sieci, oraz ile bitów identyfikatora hosta (hostid) używanych jest jako numer podsieci. Trasowanie (routing) w TCP/IP firmy Microsoft 223 Rysunek 7.8 Sieć klasy B podłączona do Internetu i podzielona na podsieci. Przykładowy router z rysunku 7.8 musi wiedzieć, że pole identyfikatora hosta w adresie IP należy traktować specjalnie - tzn. część pola jest używana do określenia numeru podsieci, a pozostała część używana jest do określenia numeru hosta. Informacja ta jest zazwyczaj reprezentowana za pomocą maski podsieci. Rozdział 7 224 Rysunek 7.9 Podsieci i numery podsieci. Maska podsieci Maska podsieci używana jest przez routery i hosty znajdujące się w podsieci, aby określić, ile bitów pola identyfikatora hosta (hostid) używane jest na numer podsieci. Maska podsieci dzieli pole hostid na numer podsieci i numer hosta. Jest to 32-bitowa liczba, której wartość określa się następująco: o wartości 1 w masce podsieci odpowiadają części adresu IP Bity określającej identyfikator sieci (netid) i numer podsieci. o wartości 0 odpowiadają części adresu IP określającej numer Bity hosta. Rysunek 7.10 przedstawia zastosowanie opisanych zasad. Pokazano na nim numer sieci klasy B dzielonej na podsieci. Osiem bitów pola hostid stanowi numer sieci. Rysunek przedstawia również odpowiednią maskę podsieci, która jest 32-bitowym wzorcem zapisywanym zwyczajowo przy użyciu kropkowanej notacji dziesiętnej. Ponieważ grupa ośmiu bitów o wartości 1 odpowiada dziesiętnej liczbie 255, maskę podsieci z rysunku 7.10 można przedstawić następująco: 255.255.255.0. Trasowanie (routing) w TCP/IP firmy Microsoft 225 Rysunek 7.10 Reprezentacja maski podsieci. Jeśli dla adresu klasy B używana jest maska 255.255.0.0, oznacza to, że nie stosuje się dzielenia sieci. Adres klasy B posiada 16-bitowe pole identyfikatora sieci, któremu odpowiadają dwa bajty o wartości 255 w masce podsieci. Pozostałe dwa bajty o wartości zero muszą więc odpowiadać numerowi hosta. W masce podsieci nie ma żadnych jedynek, które określałyby numer podsieci; nie stosuje się więc dzielenia sieci. Jeśli ta sama wartość maski podsieci (255.255.0.0) zostałaby użyta dla adresu klasy A, wówczas oznaczałoby to, że stosuje się dzielenie sieci. Adres klasy A posiada 8-bitowe pole identyfikatora sieci, któremu odpowiada pierwszy bajt o wartości 255 w masce podsieci. Drugi bajt o wartości 255 odpowiada 8-bitowemu numerowi sieci. Jeśli dla adresu klasy C używana jest maska 255.255.255.0, oznacza to, że nie stosuje się dzielenia sieci. Adres klasy C posiada 24-bitowe pole identyfikatora sieci, któremu odpowiadają trzy bajty o wartości 255 w masce podsieci. Pozostały bajt o wartości zero musi więc odpowiadać numerowi hosta. W masce podsieci nie ma żadnych jedynek, które określałyby numer podsieci; nie stosuje się więc dzielenia sieci. Maska podsieci o wartości 255.255.0.0 jest nielegalna dla adresu klasy C (jak jednak pózniej się przekonamy, podczas tworzenia nadsieci wartość taka byłaby legalna). Adres klasy C posiada 24-bitowe pole identyfikatora sieci, a dwa pierwsze bajty maski o wartości 255 odpowiadają tylko 16 bitom identyfikatora sieci. W masce powinien znalezć się przynajmniej jeszcze jeden bajt o wartości 255, aby pokryć pozostałe 8 bitów identyfikatora sieci. Rozdział 7 226 Nowe możliwości określania numerów podsieci Wielu producentów routerów pozwala obecnie na używanie numerów podsieci, w których wszystkie bity mają wartość 0 lub wszystkie bity mają wartość 1. Staje się to coraz popularniejsze z powodu kurczenia się przestrzeni adresowej. Przykładem może być tu użycie maski 255.255.255.128 w celu rozbicia sieci klasy C na dwie podsieci. Zagadnienie to omówiono w dalszej części rozdziału. Wprowadzenie maski podsieci wymagane jest zazwyczaj w momencie, w którym określa się adres IP dla hosta lub routera. Można posłużyć się kropkowaną notacją dziesiętną znaną z wcześniejszych przykładów. Niedozwolone jest użycie numeru podsieci (części pola identyfikatora hosta używanego do dzielenia sieci), którego wszystkie bity są jedynkami lub zerami. Większość systemów operacyjnych przechowuje maski podsieci w wewnętrznym zbiorze konfiguracyjnym. W Windows NT 5 numer podsieci znajduje się w następującym wpisie Rejestru: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Int erfaces\interfejs_sieciowy W Windows NT numer podsieci znajduje się w następującym wpisie Rejestru: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\interfejs_sieciowy\ Parameters\Tcpip Patrząc wstecz trudno oprzeć się wrażeniu, że projektanci schematu dzielenia sieci zrobiliby lepiej, używając innej reprezentacji liczby używanych w tym celu bitów. Mogli np. zdecydować, że podsieci będą reprezentowane przez pojedynczą liczbę bitów podsieci, która byłaby rozmiarem pola numeru sieci, mierzonym od najstarszego bitu pola identyfikatora hosta. Można by również określać liczbę bitów przeznaczoną na numer sieci i numer podsieci; ten schemat używany jest przez wiele współczesnych routerów i stanowi część techniki CIDR (Classless Internet Domain Routing), która jest używana do łączenia kilku sieci klasy C w pojedynczy wpis w tabeli trasowania. Jeśli oprogramowanie TCP/IP mogłoby określić wartość maski podsieci na podstawie opisanych wyżej reprezentacji, wówczas kilka generacji administratorów uniknęłoby wielu rozterek. Problem polega na tym, że używanie masek podsieci łączy się z operowaniem na wzorcach bitowych (lub szesnastkowych). Dla programistów używających assemblera lub C/C++ jest to łatwe i naturalne, ale dla zwykłych śmiertelników - jak administratorzy sieci - może być męczącym zadaniem. Trasowanie (routing) w TCP/IP firmy Microsoft 227 Reprezentacja masek podsieci w dokumentach RFC Maski podsieci w dokumentach RFC reprezentowane są przy pomocy trzech liczb: {, , } Do przedstawienia liczby składającej się z samych bitów o wartości 1 używa się liczby -1. Np. maska podsieci dla sieci klasy B o wartości 255.255.255.0 jest reprezentowana następująco: { -1, -1, 0} Pierwsza liczba -1 odpowiada samym bitom 1 w , druga liczba -1 odpowiada samym bitom 1 w , a liczba 0 odpowiada samym bitom 0 w . Algorytm trasowania IP Algorytm trasowania IP można przedstawić przy pomocy przedstawionych poniżej kroków. Algorytm bierze pod uwagę użycie masek podsieci opisanych w poprzednim podrozdziale. Pobrać pole adresu przeznaczenia (DestIPAddr) z datagramu IP i na jego podstawie określić przedrostek sieci (NetPrefix). Dla sieci klasy A jest to pierwszy bajt DestIPAddr, dla klasy B są to dwa pierwsze bajty DestIPAddr, a dla sieci klasy C są to trzy pierwsze bajty DestIPAddr. 1. Pobrać pole adresu przeznaczenia (DestIPAddr) z datagramu IP. Wyizolować z niego część opisującą sieć (NetPrefix) przy pomocy bitowego iloczynu logicznego z maską podsieci, określoną przez wpis w tablicy trasowania. 2. Jeśli NetPrefix odpowiada identyfikatorowi którejkolwiek bezpośrednio połączonej sieci, wówczas host przeznaczenia znajduje się w bezpośrednio połączonej sieci. W takim przypadku bezpośrednie przesłanie datagramu IP może wymagać odwzorowania DestIPAddr na adres sprzętowy przy pomocy protokołu typu ARP. Datagram IP obudowywany jest ramką warstwy łącza danych i wysłany do bezpośrednio połączonej sieci. 3. Jeśli nie znaleziono odpowiednika w kroku 2, sprawdzić, czy w tablicy trasowania znajduje się wpis dla miejsca przeznaczenia określonego przez NetPrefix. Jeśli taki wpis zostanie znaleziony, przekazać datagram IP do wymienionego we wpisie routera następnego skoku. Rozdział 7 228 4. Jeśli nie znaleziono odpowiednika w kroku 2, sprawdzić, czy w tablicy trasowania znajduje się wpis domyślny: 0.0.0.0. Jeśli taki wpis zostanie znaleziony, przekazać datagram IP do wymienionego we wpisie routera następnego skoku. 5. Jeśli nie znaleziono wpisu domyślnego, wówczas nie można wykonać trasowania datagramu. Zawiadomić protokoły wyższych warstw o błędzie trasowania. Trasowanie w Windows NT Server Jeśli komputer Windows NT ma pracować jako router, muszą w nim być zainstalowane przynajmniej dwie karty sieciowe. Jeśli karta sieciowa jest instalowana dopiero po zainstalowaniu Windows NT, należy odpowied- nio skonfigurować system, aby był w stanie ją rozpoznać. Po skonfigurowaniu karty sieciowej należy włączyć przekazywanie datagramów IP. Windows NT będzie teraz działać jako router pomiędzy dwoma interfejsami sieciowymi. Jeśli komputer Windows NT oprócz prostego przekazywania datagramów powinien aktywnie uczestniczyć w trasowaniu, wówczas należy zainstalować w systemie protokoły trasujące opisane w dalszych podrozdziałach. Konfigurowanie nowej karty sieciowej w Windows NT 5 Po zainstalowaniu karty sieciowej i ewentualnym zapisaniu jej parametrów, należy skonfigurować ją w następujący sposób: 1. Uruchomić Hardware Wizard w Control Panel. 2. Kiedy pojawi się pytanie, czy chcemy przywrócić sprawność niepracującym urządzeniom, należy wybrać opcję No, I Want to Do Something Else (chcę zrobić coś innego) i kliknąć Next. 3. Wybrać opcję dodawania nowego sprzętu. 4. Wybrać opcję autodetekcji. 5. Jeśli autodetekcja się powiedzie, pojawi się informacja o wykryciu nowego sprzętu. Należy upewnić się, że wykryto właściwy typ karty i postępować dalej zgodnie ze wskazówkami na ekranie, aby zakończyć instalację. Jeśli autodetekcja zawiedzie, będziemy mieli możliwość ręcznej instalacji karty. Należy potwierdzić, że karta będzie instalowana ręcznie. Trasowanie (routing) w TCP/IP firmy Microsoft 229 W trakcie ręcznej instalacji pojawi się lista typów urządzeń. Podświetlić Network Adapters i kliknąć Next. Wybrać producenta i model karty i kliknąć OK. Postępować dalej zgodnie ze wskazówkami na ekranie, aby zakończyć instalację. Włączanie przekazywania IP Po skonfigurowaniu przynajmniej dwóch kart sieciowych w komputerze, możemy w następujący sposób włączyć przekazywanie IP: 1. Uruchomić program Network w Control Panel. 2. Wybrać zakładkę Protocols. 3. Wybrać protokół TCP/IP i kliknąć Properties. 4. Wybrać zakładkę Routing (patrz rysunek 7.11). 5. Zaznaczyć pole opcji Enable IP Forwarding. 6. Kliknąć OK. Zamknąć okno Network i ponownie uruchomić komputer. Rysunek 7.11 Zakładka Routing. Tworzenie wydajnych sieci IP przy użyciu routerów Przed przystąpieniem do tworzenia rozległych, często modyfikowanych sieci należy zaznajomić się ze sposobami przypisywania numerów podsieci i numerów hostów, które gwarantują, że w razie ewentualnych zmian potrzebne jest tylko niezbędne minimum czynności konfiguracyjnych. Rozdział 7 230 Kolejne podrozdziały omawiają efektywne techniki dzielenia sieci, używania masek podsieci o zmiennej długości oraz łączenia sieci. Efektywna metoda przypisywania numerów podsieci Podczas dzielenia sieci, część adresu IP określająca hosta jest dzielona na dwa pola: numer podsieci i numer hosta. Dodaje to do adresu IP trzeci stopień hierarchii. Chociaż zmniejsza to obciążenia związane z trasowa- niem i pozwala na użycie w podsieciach tego samego przedrostka sieci, może również prowadzić do nieefektywnego przypisywania adresów. Wynika to z faktu, że administrator wybiera rozmiary podsieci opierając się na przypuszczeniach, ile podsieci i hostów może być potrzebnych w przyszłości. Istnieje jednak sposób ustalenia wartości numerów podsieci i numerów hosta, który zapewnia maksymalną możliwą elastyczność w razie konieczności zmiany maski podsieci i ma minimalny wpływ na istniejący przydział adresów IP. W intuicyjnym zrozumieniu tej techniki może pomóc rysunek 7.12, na którym kreskowana linia przedstawia granicę pomiędzy numerem podsieci i numerem hosta. Linię tę możemy nazwać granicą maski podsieci, ponieważ na lewo od tej granicy wszystkie bity maski podsieci mają wartość 1, a na prawo mają wartość 0. Jeśli numery podsieci i numery hostów zostaną przypisane tak, że w pobliżu granicy maski podsieci znajdą się bity o wartości 0, wówczas przesunięcie granicy w lewo lub w prawo nie będzie miało wpływu na przypisane numery podsieci i hostów; zmieni się tylko maska podsieci. Granicę maski podsieci można przesuwać w lewo lub w prawo, dopóki nie napotka się bitu o wartości 1 w numerze podsieci lub hosta. Wynika stąd, że numery podsieci należy wybierać tak, żeby ich bity o wartości 1 znajdowały się możliwie blisko lewej strony pola, a numery hostów tak, żeby ich bity o wartości 1 znajdowały się możliwie blisko prawej strony pola. Wypełniony zerami obszar wokół granicy maski podsieci powinien być możliwie najszerszy. Ten sposób przypisywania numerów podsieci i hostów nosi nazwę nu- merowania lustrzanego, ponieważ numery podsieci i numery hostów są swoimi lustrzanymi odbiciami. Rysunek 7.12 Efektywna metoda określania maski podsieci. Trasowanie (routing) w TCP/IP firmy Microsoft 231 Przypisywanie numerów podsieci: 0 zarezerwowany, oznacza "ta podsieć") 10 01 110 001 101 : : 011...11 111...11 (zarezerwowany, oznacza "wszystkie podsieci") Przypisywanie numerów hostów: 0 (zarezerwowany, oznacza "ten host") 01 10 011 100 101 : : 11...110 11...111 (zarezerwowany, oznacza "wszystkie hosty") Technikę elastycznego przypisywania numerów podsieci omawia w szczegółach dokument RFC 1219, "On the Assignment of Subnet Numbers". Maski podsieci o zmiennej długości W omawianych dotąd przykładach dla danej sieci używana była zawsze taka sama maska podsieci (np. wszystkie podsieci w sieci klasy B miały maskę podsieci 255.255.255.0). Dla adresu 134.65.0.0 (adres sieci klasy B), maska podsieci 255.255.255.0 oznacza, że osiem bitów pola identyfikatora hosta służy do określenia numeru podsieci. TCP/IP umożliwia również stosowanie innych masek podsieci dla adresu 134.65.0.0. Jedna z części sieci 134.65.0.0 może używać maski podsieci 255.255.255.192, a inna część maski 255.255.255.0. Używanie różnych masek podsieci nakłada pewne ograniczenia na możliwe kombinacje masek podsieci i adresów IP hostów. Przypuśćmy, że chcemy podzielić sieć klasy C (216.144.108.0) na trzy podsieci, przy czym w jednej może znalezć się maksymalnie 120 hostów, a w pozostałych dwóch maksymalnie po 60 hostów. Jakiej maski podsieci należy użyć? Całkowita liczba hostów w trzech podsieciach wynosi 120 + 60 + 60 = 240. W sieci klasy C może znajdować się do 254 hostów. Liczbę Rozdział 7 232 tę obliczamy następująco: 256 - 2 = 254; odejmujemy od liczby możliwych kombinacji ośmiu bitów (28 = 256) dwa zarezerwowane adresy składają- ce się z samych bitów o wartości 0 i z samych bitów o wartości 1. Umieszczenie 240 hostów w sieci klasy C powinno więc być możliwe. Jeśli jednak użyjemy pojedynczej maski podsieci, wówczas musi ona pokrywać największą podsieć - w tym przykładzie jest to podsieć zawie- rająca 120 hostów. Dla takiej podsieci istnieje tylko jedna możliwa maska: 11111111 11111111 11111111 1 0000000 255.255.255.128 Pole numeru podsieci oznacza pogrubiona jedynka, a pole numeru hosta siedem zer. Przy jednym bicie numeru sieci i siedmiu bitach numeru hosta możliwe jest utworzenie dwóch podsieci, z których każda może zawierać 27- 21 = 128 - 2 = 126 hostów. Taki podział sieci uwzględnia podsieć ze 120 hostami oraz drugą podsieć z 60 hostami, ale nie pozostawia miejsca na trzecią podsieć z 60 hostami - potrzebne są trzy podsieci, ale dostępne są tylko dwie. Należy tu dodać, że maska podsieci 255.255.255.128 jest nielegalna w świetle zasad opisanych w dokumen- tach RFC, chociaż wiele komercyjnych routerów umożliwia jej stosowanie. Maska 255.255.255.128 jest nielegalna w sieciach klasy C, ponieważ numerem podsieci może tu być tylko 0 albo 1, a stosowanie numerów podsieci o wszystkich bitach równych 0 lub 1 jest niedozwolone. W tej sytuacji właściwe wydawałoby się użycie dwóch bitów na numer podsieci, co pozwoliłoby na utworzenie 22 = 4 podsieci. Maska podsieci wówczas wyglądałaby następująco: 11111111 11111111 11111111 11 000000 255.255.255.192 Pole numeru podsieci oznaczają dwie pogrubione jedynki, a pole numeru hosta sześć zer. Przy dwóch bitach numeru sieci i sześciu bitach numeru hosta możliwe jest utworzenie czterech podsieci, z których każda może zawierać 26 - 21 = 64 - 2 = 162 hostów. Taki podział sieci uwzględnia dwie podsieci z 60 hostami, ale nie pozostawia miejsca na trzecią podsieć ze 120 hostami - każda z podsieci może pomieścić najwyżej 62 hosty, czyli dużo mniej, niż wymagane 120 hostów. Powyższy przykład pokazuje, że w niektórych sytuacjach w sieciach kla- sy C nie można używać pojedynczej maski podsieci. Potrzebny jest spo- sób podzielenia sieci klasy C na dwie podsieci zawierające 126 hostów, a następnie dalszy podział jednej z nich na dwie podsieci zawierające po 26-2 = 62 hosty. Technika ta nosi nazwę maski podsieci o zmiennej długo- Trasowanie (routing) w TCP/IP firmy Microsoft 233 ści VSLM (Variable Length Subnet Mask) i opisana jest w dokumencie RFC 1878, "Variable Length Subnet Table for IPv4". Rysunek 7.13 pokazuje przykład zastosowania masek VSLM. W przykładzie tym maska 255.255.255.128 służy do podzielenie sieci klasy C na dwie podsieci po 126 hostów. Następnie jedna z podsieci jest ponownie dzielona na dwie podsieci po 62 hosty za pomocą maski 255.255.255.192. Tabela 7.1 pokazuje kombinacje liczby podsieci i liczby hostów oferowa- nych przez komercyjne routery. W kolumnie "Liczba podsieci" uwzględ- niono także numery podsieci składające się z samych bitów o wartości 0 lub 1, co jest zabronione przez dokumenty RFC, ale dozwolone w wielu komercyjnych routerach. Użycie samych bitów o wartości 0 lub 1 w numerze podsieci Niektóre nowsze dokumenty RFC zakładają możliwość używania samych bitów o wartości 0 lub 1 w numerze podsieci. Jest to nadal - ściśle rzecz biorąc - niedozwolone, ale dokumenty te odzwierciedlają rzeczywistą praktykę. Rysunek 7.13 Przykład użycia masek VSLM Tabela 7.1 Liczba podsieci i hostów w sieciach klasy C dozwolona przez komercyjne routery 0Maska podsieci Liczba podsieci Liczba komputerów 255.255.255.128 2 126 255.255.255.192 4 62 255.255.255.224 8 30 255.255.255.240 16 14 Rozdział 7 234 255.255.255.248 32 6 255.255.255.252 64 2 Nie wszystkie protokoły trasujące mogą obsługiwać maski podsieci o zmiennej długości. Na przykład protokół RIP (Routing Information Pro- tocol) w wersji 1 nie potrafi poradzić sobie z różnymi maskami podsieci dla tego samego adresu sieci. Nie można więc używać RIP w połączeniu z maskami sieci o zmiennej długości, gdyż raportowana przez niego to- pologia sieci różniłaby się od rzeczywiście ustalonej. Natomiast protokoły trasujące takie jak OSPF (Open Shortest Path First), RIP wersja 2, oraz IS-IS (Intermediate System to Intermediate System), umożliwiają routerom wy- mienianie informacji o maskach podsieci w połączonych sieciach i mogą obsługiwać mieszankę różnych masek podsieci. Pomimo tego masek VSLM nie używa się powszechnie z następujących powodów:
Przypisania adresów IP do podsieci muszą zostać zgrupowane w bloki określone przez maskę VSLM. Wymaga to zmiany poprzed- nich przypisań adresów IP, co nie zawsze jest łatwe.
Niektóre starsze sieci używają protokołu RIP w wersji 1, który nie obsługuje VSLM. Nowoczesne protokoły trasujące, jak RIP 2 i OSPF, umożliwiają wymianę informacji o maskach podsieci.
Wielu administratorów sieci nie rozumie techniki VSLM i ma trudno- ści z dzieleniem sieci oraz posługiwaniem się maskami podsieci. Po- móc tu może lepsze szkolenie i książki takie, jak ta. Instalowanie i konfigurowanie protokołów trasujących Przed przystąpieniem do konfiguracji protokołów trasujących należy zainstalować usługę routera. Poniżej opisano procedurę instalacji: 1. Urochomić program Network w Control Panel. 2. Wybrać zakładkę Services. 3. Kliknąć przycisk Add. 4. Z listy usług sieciowych Network Services wybrać Router. 5. Jeśli wymagane pliki zostały już skopiowane, wówczas pojawi się pytanie, czy chcemy użyć istniejących plików. W przeciwnym przy- padku należy zainstalować wymagane pliki z dysku instalacyjnego. Kliknąć OK. Jeśli plików nie ma w podanej lokalizacji , zostaniemy po- proszeni o wskazanie ścieżki do plików instalacyjnych. Trasowanie (routing) w TCP/IP firmy Microsoft 235 6. Pojawi się pytanie, czy ponownie uruchomić komputer w celu uwzględnienia dokonanych zmian. Wybrać opcję ponownego uru- chomienia komputera. Następnie można skonfigurować protokół trasujący, który będzie uży- wany. Poniżej opisano procedurę konfiguracji protokołu trasującego: 1. Wybrać Programs/Administrative Tools/Routing/Remote Access Administrator. Powinno ukazać się główne okno programu Routing and RAS Admin (patrz rysunek 7.14) 2. Kliknąć na IP Routing. Powinny pojawić się opcje Summary oraz Static Routes (patrz rysunek 7.15). 3. Kliknąć prawym klawiszem myszy na opcji Summary i wybrać opcję Add Routing Protocol. Powinno pojawić się okno zawierające listę do- stępnych protokołów trasujących (patrz rysunek 7.16). 4. Jeśli router ma przekazywać żądania BOOTP i DHCP, należy dodać usługę przekaznika DHCP, DHCP Relay Agent. Jeśli nie jest to potrzeb- ne, nie należy dodawać DHCP Relay Agent. Pozostałe dwie opcje służą do zainstalowania protokołów trasujących OSPF i RIP-2. OSPF jest protokołem stanu łącza, preferowanym w wielu sieciach TCP/IP. Starszy protokół RIP-2 jest protokołem wektora odległości; stanowi ulepszenie klasycznego protokołu RIP (wersji 1). Szczegóły konfiguracji tych protokołów omówiono w kolejnych podroz- działach. Rysunek 7.14 Główne okno pro- gramu Routing and RAS Admin. Rozdział 7 236 Rysunek 7.15 Opcje Summary i Static Routes. Konfigurowanie protokołu OSPF Po podwójnym kliknięciu na opcji OSPF protocol ukaże się okno OSPF Configuration (patrz rysunek 7.17). Zakładka General w oknie OSPF Configuration służy do ustawienia identy- fikatora routera (Router identification). Domyślnie umieszczony jest tu adres pierwszej karty sieciowej, w tym przykładzie 199.245.180.20. Iden- tyfikator routera może być dowolną 32-bitową liczbą i jest zazwyczaj zapisywany przy użyciu kropkowanej notacji dziesiętnej. W zakładce General można również określić, że konfigurowany router jest routerem granicznym systemu autonomicznego poprzez zaznaczenie pola wyboru Enable autonomous system boundary router. Duże sieci można dzielić na domeny trasowania, nazywane systemami autonomicznymi (AS, Autonomous System). Różne systemy autonomiczne mogą używać różnych protokołów trasujących; łączy się je ze sobą za pomocą routerów granicznych systemu autonomicznego (ASBR, Autonomous System Boundary Router). Na routerach ASBR mogą oprócz OSPF pracować inne protokoły trasujące, jak np. Protokół Bramki Zewnętrznej EGP (Exterior Gateway Protocol) lub Protokół Bramki Granicznej BGP (Boundary Gateway Protocol). Jak pokazuje rysunek 7.17, zakładka General służy także do ustawienia różnych opcji rejestracji zdarzeń (Event logging). Trasowanie (routing) w TCP/IP firmy Microsoft 237 Po wybraniu zakładki Areas ukażą się opcje konfigurowania obszarów OSPF (patrz rysunek 7.18). OSPF umożliwia podział sieci na obszary, w celu hierarchizacji trasowania w różnych obszarach. Każdy obszar jest identyfikowany przez 32-bitową liczbę, również zapisywaną przy użyciu kropkowanej notacji dziesiętnej. Przyciski Add, Configure i Delete służą odpowiednio do dodawania, kon- figurowania i usuwania definicji obszarów. Rysunek 7.19 przedstawia okno konfiguracji dla przykładowego obszaru. Obszar szkieletowy (backbone area) posiada domyślny identyfikator ob- szaru 0.0.0.0; pozostałe obszary są dołączane do obszaru szkieletowego. Routery łączące obszary OSPF z obszarem szkieletowym nazywane są routerami granicznymi obszaru (ABR, Area Border Router). Aby obszar mógł pracować jako obszar szkieletowy, należy go odpowiednio skonfi- gurować. Jeśli z przyczyn geograficznych obszar szkieletowy zostanie podzielony, wówczas jego części muszą być połączone za pomocą łącz wirtualnych. Można włączyć używanie w obszarze nieszyfrowanych haseł zaznaczając pole wyboru Enable clear text password; można też wyłączyć uwierzytel- nianie pozostawiając to pole niezaznaczone. Rysunek 7.16 Rysunek 7.17 Wybieranie protokołów trasujących. Okno OSPF Configuration. Rozdział 7 238 Rysunek 7.18 Rysunek 7.19 Konfigurowanie obszarów OSPF. Konfigurowanie pojedynczego obszaru OSPF. Obszary OSPF mogą być obszarami normalnymi lub szczątkowymi (stub). Typ obszaru można wybrać zaznaczając lub odznaczając opcję Stub area. W obszarze szczątkowym routery nie przechowują informacji o stanie łącza dla tras wiodących na zewnątrz domeny OSPF, ponieważ ogłoszenia o trasach zewnętrznych nie są w nim rozpowszechniane. W obszarze szczątkowym wszystkie trasy zewnętrzne są streszczane przez trasę domyślną, z którą związany jest metryczny koszt, nazywany metryką obszaru szczątkowego. Metryka obszaru szczątkowego jest kosztem drogi domyślnej ogłaszanej w obszarze szczątkowym. Jeśli w oknie konfiguracyjnym (patrz rysunek 7.19) włączona zostanie opcja Stub area, wówczas można ustawić inną niż 1 wartość metryki obszaru szczątkowego (w polu Stub metric) oraz włączyć opcję importowania ogłoszeń streszczających (Import summary advertisement). Po wybraniu w oknie konfiguracyjnym zakładki Range, ukażą się opcje przedstawione na rysunku 7.20. Wprowadza się tu pary adres-maska, które definiują zakres adresów należących do obszaru. Po wybraniu zakładki Virtual Interfaces w oknie OSPF Configuration (patrz rysunek 7.21) można zdefiniować wirtualne łącze, które służy do łączenia obszarów OSPF, które utraciły połączenie poprzez obszar szkieletowy. Obszarem przejściowym (Transit area) jest obszar OSPF, przez który prze- chodzi wirtualne łącze. Jeśli np. z przyczyn ekonomicznych, geograficz- nych lub politycznych obszar szkieletowy zostanie rozdzielony, wówczas obszarem przejściowym będzie obszar pomiędzy częściami obszaru szkieletowego. Rysunek 7.22 przedstawia okno ukazujące się po kliknię- ciu przycisku Add. Trasowanie (routing) w TCP/IP firmy Microsoft 239 Wirtualne łącze definiuje się przy pomocy następujących parametrów:
Parametr Virtual Neighbor Router ID jest adresem IP routera znajdują- cego się na drugim końcu wirtualnego łącza.
Parametr Transit Delay jest szacowanym w sekundach czasem, którego wymaga przesłanie poprzez dany interfejs informacji aktualizującej stan łącza.
Parametr Re-transmit Interval jest szacowanym w sekundach czasem pomiędzy kolejnymi ogłoszeniami o stanie łącza. Wartość powinna być znacznie większa niż oczekiwany czas drogi powrotnej pomiędzy dowolnymi dwoma routerami w sieci. Trudno jest ocenić ten czas w przypadku łącza wirtualnego; lepiej jest użyć za dużej wartości, niż za małej.
Parametr Hello Interval określa w sekundach czas pomiędzy transmi- sjami pakietów Hello, używanymi do określenia stanu łącz routerów.
Parametr Dead Interval określa w sekundach czas, przez który oczekują sąsiadujące routery po zaprzestaniu wysyłania przez router pakietów Hello, zanim uznają go za wyłączony.
Jeśli w polu Password zostanie wpisane hasło, wówczas musi być ono takie same po obu stronach wirtualnego łącza. Ostatnią czynnością, kończącą konfigurację OSPF, jest określenie interfej- sów routera, na których protokół będzie pracował. Należy kliknąć pra- wym klawiszem myszy na opcji OSPF znajdującej się pod IP Routing w oknie Routing and RAS Admin, po czym wybrać Add Interface. Ukaże się lista interfejsów, na których może pracować OSPF. Podświetlić nazwę odpowiedniego interfejsu i kliknąć OK. Można opcjonalnie skonfigurować parametry OSPF dla pojedynczego interfejsu, klikając prawym klawiszem myszy na dodanej nazwie interfej- su i wybierając opcję Configure Interface. Konfigurowanie protokołu RIP 2 Po podwójnym kliknięciu na opcji RIP Version 2 for Internet Protocol (patrz rysunek 7.16), ukaże się okno RIP for Internet Protocol Configuration (patrz rysunek 7.23). Zakładka General służy do ustalania minimalnej liczby sekund pomiędzy wyzwalanymi uaktualnieniami; domyślną wartością jest 5 sekund. Wy- zwalane uaktualnienia są wysyłane po wykryciu zmian tras, bez czekania do następnego regularnego uaktualnienia. Jak pokazuje rysunek 7.23, Rozdział 7 240 zakładka General służy także do ustawienia różnych opcji rejestracji zda- rzeń (Event logging). Rysunek 7.20 Rysunek 7.21 Określanie par adres-maska dla obszaru OSPF. Konfigurowanie wirtualnych łącz OSPF Rysunek 7.22 Rysunek 7.23 Konfigurowanie parametrów wirtualnego łącza Okno RIP for Internet Protocol Configuration. OSPF. Po wybraniu zakładki Security można określić, od których routerów nale- ży pobierać uaktualnienia trasowania (patrz rysunek 7.24). Domyślnie przetwarzane są ogłoszenia (uaktualnienia tablic trasowania) od wszyst- kich routerów (opcja Process announcements from all routers). Pozostałe dwie opcje umożliwiają odbieranie ogłoszeń tylko od routerów na liście (Process only announcements from the routers listed) oraz odrzucanie wszyst- kich ogłoszeń od routerów na liście (Discard all announcements from the Trasowanie (routing) w TCP/IP firmy Microsoft 241 routers listed). Zawartość listy można zmieniać za pomocą przycisków Add (Dodaj), Replace (Zamień) oraz Delete (Usuń). Ostatnią czynnością, kończącą konfigurację RIP, jest określenie interfej- sów routera, na których protokół będzie pracował. Należy kliknąć pra- wym klawiszem myszy na opcji RIP znajdującej się pod IP Routing w oknie Routing and RAS Admin, po czym wybrać Add Interface. Ukaże się lista interfejsów, na których może pracować OSPF. Podświetlić nazwę odpowiedniego interfejsu i kliknąć OK. Można opcjonalnie skonfigurować parametry RIP dla pojedynczego in- terfejsu, klikając prawym klawiszem myszy na dodanej nazwie interfejsu i wybierając opcję Configure Interface. Konfigurowanie przekaznika DHCP (DHCP Relay Agent) Aby router Windows NT mógł przekazywać wysyłane w trybie broad- cast żądania BOOTP i DHCP, należy skonfigurować usługę przekaznika DHCP. Protokół DHCP omówiono w rozdziale 8, "Konfiguracja i zarzą- dzanie DHCP". Po podwójnym kliknięciu na opcji DHCP Relay Agent (patrz rysunek 7.16), ukaże się okno DHCP Relay Agent Configuration (patrz rysunek 7.25). W oknie tym można dodać lub usunąć znane serwerowi adresy serwe- rów DHCP. Ostatnią czynnością, kończącą konfigurację przekaznika DHCP, jest okre- ślenie interfejsów routera, na których będzie on pracował. Należy kliknąć prawym klawiszem myszy na opcji DHCP Relay Agent znajdującej się pod IP Routing w oknie Routing and RAS Admin, po czym wybrać Add Interface. Ukaże się lista interfejsów, na których może pracować przekaznik DHCP. Podświetlić nazwę odpowiedniego interfejsu i kliknąć OK. Rozdział 7 242 Rysunek 7.24 Rysunek 7.25 Zakładka Security w oknie RIP for Internet Okno DHCP Relay Agent Configuration. Protocol Configuration. Można opcjonalnie skonfigurować parametry DHCP dla pojedynczego interfejsu, klikając prawym klawiszem myszy na dodanej nazwie interfej- su i wybierając opcję Configure Interface. Konfigurowanie statycznych tras W oknie Routing and RAS Admin można określić statyczne trasy. W głównym oknie programu pod IP Routing znajduje się opcja Static Routes. Kliknąć prawym klawiszem myszy na opcji Static Routes i wybrać Add Static Route. Ukaże się okno dialogowe Static Route (patrz rysunek 7.26). Okno przedstawione na rysunku 7.26 służy do definiowania statycznej trasy. Wpis definiujący statyczną trasę składa się z miejsca przeznaczenia (adresu sieci lub hosta) - Destination, maski sieci (takiej samej, jak maska podsieci) - Network Mask, bramki (przekazującego routera) - Gateway oraz metryki (kosztu związanego z przejściem przez ten interfejs) - Metric. Można obejrzeć tablicę trasowania kliknąć prawym klawiszem myszy na opcji Static Routes i wybierając View IP Routing Table. Można również skonfigurować i przeglądać statyczne trasy przy pomocy polecenia route. Aby dodać statyczną trasę do miejsca przeznaczenia 144.19.0.0 poprzez router 199.245.180.10 z kosztem metrycznym 2, należy użyć następujące- go polecenia: Trasowanie (routing) w TCP/IP firmy Microsoft 243 route add 144.19.0.0. mask 255.255.0.0 199.245.180.10 metric 2 Aby usunąć trasę do miejsca przeznaczenia 198.23.4.0, należy użyć na- stępującego polecenia: route delete 198.23.4.0 Aby zmienić wpis dla sieci przeznaczenia 144.19.0.0 i określić inny ro- uter, należy użyć następującego polecenia: route change 144.19.0.0 199.245.180.33 Aby wyświetlić tablicę trasowania, należy użyć następującego polecenia: route print Rysunek 7.26 Okno dialogowe Static Route. Tablicę trasowania można również wyświetlić używając polecenia netstat z opcją -r: netstat -r Przeglądanie informacji o trasowaniu Można przeglądać informacje o trasowaniu oraz informacje o konfi- guracji protokołu trasującego podświetlając odpowiednią opcję pod IP Routing w oknie Routing and RAS Admin. Po wybraniu którejś z opcji, w panelu po prawej stronie okna pojawiają się związane z nią informacje. Jeśli skonfigurowano jakiś protokół sieciowy, można kliknąć prawym klawiszem myszy na jego nazwie w oknie Routing and RAS Admin i wybrać opcję View. W przypadku OSPF można wybrać przeglądanie obszarów, baz danych o stanie łącza, sąsiadujących routerów oraz wirtu- alnych interfejsów. W przypadku RIP 2 można wybrać przeglądanie ad- resów, wersji, błędnych pakietów i błędnych tras sąsiadujących routerów RIP. Po kliknięciu prawym klawiszem myszy na nazwie protokołu w oknie Routing and RAS Admin, można również wybrać opcję skonfigurowania Rozdział 7 244 tego protokołu. Parametry i okna konfiguracyjne protokołów trasujących OSPF i RIP 2 omówiono w poprzednich podrozdziałach. Informacje konfiguracyjne dla pojedynczego interfejsu routera można przeglądać klikając prawym klawiszem myszy na nazwie interfejsu i wybierając opcję Configure Interface. Zmiana poziomów pierwszeństwa protokołów trasujących w Windows NT Spośród wszystkich metod trasowania najwyższy priorytet mają trasy statyczne (Static Routes). Nigdy się nie przedawniają, ponieważ wprowa- dzane są ręcznie; zresztą administrator sieci prawdopodobnie nie defi- niowałby ich, gdyby nie miał po temu ważnego powodu. Trasy statyczne mają poziom pierwszeństwa 1. Następny poziom pierwszeństwa po trasach statycznych mają trasy ustawione przez protokół SNMP (SNMP Set Routes) - 2. Poziom 3 mają trasy odkryte przez OSPF. Najniższy poziom mają trasy odkryte przez protokół RIP - 4. Można zmienić domyślne poziomy pierwszeństwa za pomocą programu Routing and RAS Admin w następujący sposób: 1. Kliknąć prawym klawiszem myszy na opcji Summary pod IP Routing. 2. Wybrać opcję Configure IP Parameters. 3. Wybrać zakładkę Preference Levels. Okno powinno wyglądać tak, jak na rysunku 7.27. 4. Podświetlić protokół, którego poziom pierwszeństwa należy zmienić. 5. Użyć przycisków Raise Level (podnieś poziom) lub Lower Level (obniż poziom), aby podwyższyć lub obniżyć numer poziomu pierwszeń- stwa. Uwaga Niższy numer poziomu pierwszeństwa oznacza wyższy priorytet dla tras odkrytych daną metodą, jeśli inne metody odkryły inne trasy. Aączenie sieci W 1985 wymyślono technikę dzielenia sieci, aby umożliwić efektywny przydział adresów IP w dużych sieciach. Technika ta sprawdza się Trasowanie (routing) w TCP/IP firmy Microsoft 245 w sieciach o dużych przestrzeniach adresowych, takich jak sieci klasy A i B, lecz te klasy adresów są bardzo popularne i szybko zagospodaro- wywane. Dzielenia sieci można używać również w sieciach klasy C, ale sieci takie mogą zawierać najwyżej 254 hosty. W przypadku większości sieci klasy C ich dzielenie jest niepraktyczne, jeśli w pojedynczej podsieci ma się znajdować więcej niż 126 hostów. Adresy klasy A i B są szybko zagospodarowywane. Syndrom ten określa się terminem ROADS (Running Out of Address Space, Kurczenie się prze- strzeni adresowej). Chociaż kończą się wolne adresy sieci klasy A i B, wciąż pozostaje wystarczająca liczba adresów klasy C. Duże organizacje, potrzebujące więcej niż 254 hostów, muszą więc wykorzystywać kilka adresów sieci klasy C. Przypuśćmy, że organizacja potrzebuje adresu klasy B, aby jej sieć mogła pomieścić 65534 hosty. Jeśli InterNIC nie przyzna jej adresu klasy B, wówczas do pomieszczenia 65534 hostów konieczne będzie użycie 256 adresów klasy C. Adresy te mogą zostać przyznane jako blok; np. nastę- pujący zakres adresów klasy C daje tyle samo adresów, co pojedynczy adres klasy B: 202.100.0.0 do 202.100.255.255 Rysunek 7.27 Poziomy pierwszeństwa protokołów trasujących. Liczba bitów, które mogą się zmieniać w tym zakresie adresów klasy C, wynosi 16 - tyle samo, co w adresie klasy B. Podczas łączenia sieci (supernetting) zamiast pojedynczego adresu klasy B przyznawany jest blok adresów klasy C, dzięki czemu uzyskuje się wir- tualną klasę adresów znajdującą się gdzieś pomiędzy klasami B i C. Po- zwala to na lepsze wykorzystanie przestrzeni adresowej. Jeśli np. organi- zacja potrzebuje sieci z 8000 hostów, lepiej jest przyznać jej blok 32 adre- Rozdział 7 246 sów klasy C niż pojedynczy adres klasy B. Adres klasy B może pomieścić 65534 hosty, a w tym przypadku 65534 - 8000 = 57534 adresy pozostają niewykorzystane. Technikę łączenia sieci zaprojektowano z myślą o usługodawcach inter- netowych. Duże bloki adresów klasy C przyznawane są zazwyczaj tylko usługodawcom, którzy z kolei przyznają mniejsze bloki organizacjom chcącym podłączyć dużą liczbę komputerów do Internetu. Technika trasowania CIDR (Clasless Internet Domain Routing) Przyznawanie bloków adresów klasy C zapobiega szybkiemu wyczerpa- niu się wolnych adresów klasy B, ale zarazem wymaga dodatkowych wpisów w tablicach trasujących routerów. Ponieważ blok 256 adresów klasy C zapewnia taką samą przestrzeń adresową, jak pojedynczy adres klasy B, w tablicy trasowania trzeba umieścić 256 wpisów dla poszcze- gólnych adresów klasy C w bloku. Oznacza to 256-krotne zwiększenie liczby wpisów w tablicy trasującej. Jeśli router potrzebuje 2 MB pamięci na przechowanie tablicy trasującej używającej adresów klasy B, wówczas ich zamiana na bloki adresów klasy C wymagałoby pamięci 256 * 2 = 512 MB. Technika trasowania CIDR (Classless Internet Domain Routing) służy do opisania bloku adresów klasy C pojedynczym wpisem w tablicy trasują- cej, dzięki czemu zmniejsza się liczba oddzielnych wpisów. Blok adresów lasy C jest opisany następującym wpisem w tablicy trasującej: (najniższy adres w bloku, maska nadsieci) Najniższym adresem w bloku jest adres początkowy bloku, a maska nad- sieci określa liczbę adresów klasy C w bloku. Maska nadsieci, zwana także maską CIDR, zawiera jedynki dla przedrostka wspólnego dla wszystkich adresów klasy C w bloku oraz zera dla zmiennej części adre- sów klasy C. Rozważmy następujący wpis CIDR w tablicy trasującej: (200.1.100.0, 255.255.224.0) Adres 200.1.160.0 i maska CIDR 255.255.224.0 mają następujące reprezen- tacje bitowe: 11001000 00000001 10100000 00000000 11111111 11111111 11100000 00000000 Jedynki w masce CIDR określają następujący wspólny przedrostek: 11001000 00000001 101 Trasowanie (routing) w TCP/IP firmy Microsoft 247 Zera w masce CIDR określają zmienną część bloku adresów klasy C. Oznacza to, że zakres adresów klasy C rozciąga się pomiędzy następują- cymi adresami: 11001000 00000001 10100000 00000000 = 200.1.160.0 11001000 00000001 10111111 11111111 = 200.1.191.255 Blok ten przedstawiony jest na rysunku 7.28. Liczbę adresów klasy C w danym bloku można określić sprawdzając, ile bitów zmienia się w części adresu odpowiadającej identyfikatorowi sieci. W omawianym przykładzie jest pięć takich bitów, zaznaczonych pogru- bioną czcionką w masce CIDR: 11111111 11111111 11100000 00000000 Tak więc liczba adresów klasy C w bloku wynosi 25 = 32. Trasy do bloku CIDR mogą zostać streszczone w pojedynczym ogłoszeniu routera nazy- wanym agregatem. Tabela 7.2 przedstawia liczbę adresów klasy C, które przy użyciu CIDR przyznawane są dla sieci o danej pojemności. Liczba ta musi być potęgą dwójki. Bloki CIDR opisywane są także przy pomocy innej notacji: najniższy adres w bloku/liczba wspólnych bitów przedrostka Tabela 7.2 Liczba adresów klasy C odpowiadająca danej wielkości sieci 0Wielkość sieci (liczba hostów) Liczba adresów klasy C 254 1 255-508 2 509-1016 4 1017-2032 8 2033-4064 16 4065-8128 32 8129-16256 64 Rozdział 7 248 Rysunek 7.28 Blok CIDR. Liczba wspólnych bitów przedrostka jest to liczba bitów o wartości 1 w masce nadsieci. Dwie następujące reprezentacje bloku CIDR są rów- noważne: (200.1.160.0, 255.255.224.0) 200.1.160.0/19 Standardową maską podsieci dla adresu klasy C jest 255.255.255.0. Ozna- cza to, że hosty w pojedynczym adresie klasy C mają 24 wspólne bity przedrostka. Liczba wspólnych bitów przedrostka w adresie klasy C mniejsza niż 24 oznacza, że używana jest technika łączenia sieci. Sieci będące podzbiorami bloku CIDR określa się jako "bardziej specy- ficzne" niż blok CIDR. Długość wspólnego przedrostka w bardziej specy- ficznym bloku adresów jest większa, niż w przypadku całego bloku CIDR. Poniższy przykład pokazuje blok CIDR i bardziej specyficzną tra- sę: 199.22.0.0/16 Blok CIDR o przedrostku długości 16 bitów 199.22.176.0/20 Bardziej specyficzny przedrostek o długości 20 bitów Routery obsługujące CIDR podczas wybierania trasy używają najdłuż- szego pasującego przedrostka. Maska CIDR służy do określenia liczby bitów przedrostka, które należy przy tym uwzględnić. Jeśli jednak do miejsca przeznaczenia wiedzie więcej niż jedna trasa, wówczas router wybiera trasę z najdłuższym przedrostkiem. Rozważmy przykładową sieć z rysunku 7.29, w której router R1 odbiera dwa uaktualnienia traso- wania: 199.22.0.0/16 z routera R2 199.22.176.0/20 z routera R3 R1 wybiera trasę przez router R3, ponieważ jest to trasa z dłuższym przedrostkiem. Trasowanie (routing) w TCP/IP firmy Microsoft 249 Technika CIDR omówiona jest w dokumencie RFC 1519, "Classless Inter- Domain Routing (CIDR): an Address Assignment and Aggregation Strat- egy". Rysunek 7.29 Najdłuższy pasujący przedrostek