Moduł 2 Adresowanie sieci IPv4 1. Obliczanie adresu sieci i adresu rozgłoszeniowego 2. Obliczanie przynależności adresów do danej sieci
1. Obliczanie adresu sieci i adresu rozgłoszeniowego W poprzedniej części kursu nauczyliśmy się obliczać adres rozgłoszeniowy oraz adres sieci. Dla przypomnienia, adres rozgłoszeniowy to taki, kiedy w polu hosta zapiszemy binarnie same jedynki. Wniosek z tego, że jest to największa możliwa liczba do zapisania w polu hosta, dlatego adres rozgłoszeniowy będzie ostatnim adresem w naszej sieci. Adres całej sieci, do której należą nasze hosty, to kombinacja składająca się z samych zer w polu hosta. Po zamianie na postać kropkowo-dziesiętną widzimy, że jest to pierwszy adres w naszej sieci. Do czego wykorzystujemy nasze dwa adresy, którymi nie możemy zaadresować hostów? Adres sieci jest niezbędny do komunikacji z naszą siecią z innych sieci. Najlepiej rozważmy to na przykładzie. Dana jest sieć: Rysunek 2.1 Sieć modelowa 1 składająca się z dwóch sieci prywatnych o początkach adresów 192.168.xx.yy i sieci łączącej je o adresie rozpoczynającym się 10.5.zz.tt. Do komunikacji pomiędzy sieciami wykorzystywane są routery A i B. Rolą routera w sieci jest przenoszenie informacji pomiędzy różnymi sieciami, w szczególności sieciami przyłączonymi do routera. Zespół informacji o dostępnych sieciach to tablica routingu. To w tej właśnie tablicy każda sieć jest opisywana, jako adres sieci + maska, co pozwoli jednoznacznie określić, gdzie dana sieć się zaczyna i gdzie się kończy. Przy okazji, mając adres początku i końca możemy zakwalifikować lub nie do danej sieci określone hosty. Wróćmy do naszego przypadku. Po lewej stronie mamy komputer zaadresowany 192.168.100.110 z maską 255.255.255.192. Jaki jest adres sieci, do której należy? Policzmy. 192.168.100.110 oraz maska 255.255.255.255.192 to binarnie: 11000000.10101000.01100100.01101110 11111111.11111111.11111111.11000000 2
Wykonując mnożenie binarne bit po bicie lub po prostu wypełniając pole hosta zerami otrzymujemy: 11000000.10101000.01100100.01000000 Czyli adres sieci 192.168.100.64. A jaki będzie ostatni adres w tej sieci, czyli adres rozgłoszeniowy? W polu hosta wstawiamy jedynki: 11000000.10101000.01100100.01111111 i otrzymujemy 192.168.100.127. Wszystkie hosty zaadresowane od 192.168.100.65 do 192.168.100.126 należą do naszej sieci. Czy prawidłowo zaadresowaliśmy komputery i interfejs routera po stronie naszej sieci? Sprawdźmy.100,.110,.120,.99. Wszystkie adresy mieszczą się w zakresie naszej sieci, czyli adresacja jest prawidłowa. Jak sytuacja wygląda po prawej stronie? Komputer zaadresowany jest 192.168.1.200, maska 255.255.255.128. Policzmy adres sieci i adres rozgłoszeniowy, w celu określenia zakresu przynależnych do niej adresów. Zapiszmy binarnie adres naszego komputera i maskę podsieci: 11000000.10101000.00000001.11001000 11111111.11111111.11111111.10000000 Po wypełnieniu pola hosta zerami otrzymujemy adres sieci: 11000000.10101000.00000001.10000000 192.168.1.128, zamiana pola hosta na jedynki skutkuje wyliczeniem adresu rozgłoszeniowego: 11000000.10101000.00000001.11111111 192.168.1.255. Tak poznaliśmy drugą przestrzeń adresową. Hosty w sieci po prawej stronie powinny posiadać adresy w przedziale od 192.168.1.129 do 192.168.1.254. Router A po zaadresowaniu używanych interfejsów sieciowych potrafi przenosić informację pomiędzy przyłączonymi sieciami. Adresy tych sieci zostaną wyliczone automatycznie, a informacja na temat kierowania do nich ruchu pojawi się w tablicy routingu. Co w przypadku, gdy router dostanie pakiet adresowany do komputera 192.168.1.200? Przeglądając swoją tablicę nie znajdzie sposobu na dotarcie do sieci, w której znajduje się nasz komputer. A jeżeli chcielibyśmy dodać taki wpis ręcznie? Należy w pierwszej kolejności określić adres sieci, do której należy nasz komputer. Adres w ramach ćwiczeń już policzyliśmy i jest to 192.168.1.128. W kolejnym kroku musimy odpowiedzieć na pytanie: co router ma zrobić z pakietem, jeżeli rozpozna, że jest adresowany do tej sieci? Spoglądając na nasz schemat, naturalnym wydaje się przesłanie pakietu do routera B. Ale na który interfejs routera mam przesłać mój pakiet? Tylko na taki, który jest znany dla routera A, czyli 10.5.50.132. Jak taki wpis może wyglądać? network 192.168.1.128 mask 255.255.255.128 next hop 10.5.50.132 co można odczytać: jeżeli pakiet jest kierowany do sieci 192.168.1.128/25, czyli adres docelowy mieści się w przedziale od 192.168.1.128 do 192.168.1.255, wyślij go pod adres 10.5.50.132. Tam kolejny router na podstawie swojej wiedzy skieruje pakiet do sieci docelowej. 3
Widzisz już, do czego przydaje się umiejętność obliczania pierwszego i ostatniego adresu w sieci. Routery przy tworzeniu tablic trasowania posługują się praktycznie tylko adresami sieci. Z punktu widzenia routera nie ma znaczenia czy w sieci docelowej jest 5 czy 150 komputerów. On za każdym razem sprawdza czy adres docelowy mieści się w przedziale określonej sieci i jeżeli ten warunek jest spełniony kieruje informacje na zdefiniowany interfejs. Ważna uwaga: jeżeli chcesz utworzyć narysowaną sieć, musisz pamiętać, że pakiety poruszają się w dwóch kierunkach. Dlatego należy również uzupełnić tablicę routingu w routerze B o informacje, jak pakiety mają wrócić do sieci 192.168.100.64/26. Wpisy w routerach dla prezentowanych sieci muszą zawierać informację: Router A - wyposażamy w wiedzę, jak dotrzeć do sieci 192.168.1.128/25. Przykładowy wpis w urządzeniu firmy Cisco może wyglądać następująco: route 192.168.1.128 255.255.255.128 10.5.50.132 gdzie w pierwszej części podajemy adres sieci i jej maskę (zaznaczone na zielono), a następnie wskazujemy adres, do którego będą kierowane wszystkie pakiety spełniające warunek Router B - wyposażamy w wiedzę, jak dotrzeć do sieci 192.168.100.64/26. Przykładowy wpis w urządzeniu firmy Cisco: route 192.168.100.64 255.255.255.192 10.5.50.1 Tak skonfigurowane urządzenia pozwolą na prawidłowe przesyłanie informacji pomiędzy przyłączonymi sieciami. 2. Obliczanie przynależności adresów do danej sieci Jeżeli jesteśmy w stanie określić początek i koniec danej sieci nic nie stoi na przeszkodzie, żeby odpowiedzieć na pytanie: czy dany host należy do tej sieci czy jest spoza jej zakresu? Najlepiej posłużmy się przykładem. Rysunek 2.2 Sieć modelowa 2 4
Na rysunku 2.2 prezentujemy sieć lokalną składającą się z sześciu komputerów zaadresowanych przy pomocy prywatnych adresów z klasy B. Czy wszystkie komputery będą mogły się ze sobą komunikować? Warunek, który muszą spełnić to przynależność do jednej sieci. Policzmy, do jakiej sieci należą kolejne komputery. Wypełniając pole hosta zerami w zapisie binarnym uzyskujemy adres sieci. Dla przypomnienia przeliczmy pierwszy komputer. Adres 172.16.34.26 z maską 255.255.255.224 po przeliczeniu daje zapis binarny: 10101100.00010000.00100010.00011010 który, po uzupełnieniu pola hosta zerami da nam adres sieci 172.16.34.0. Postępując podobnie z kolejnymi adresami komputerów wyliczamy odpowiednie adresy sieci. Lp adres komputera maska adres sieci 1 172.16.34.26 255.255.255.224 172.16.34.0 2 172.16.34.66 255.255.255.224 172.16.34.64 3 172.16.34.72 255.255.255.224 172.16.34.64 4 172.16.34.83 255.255.255.224 172.16.34.64 5 172.16.34.92 255.255.255.224 172.16.34.64 6 172.16.34.98 255.255.255.224 172.16.34.96 Tabela 1 Adresy sieci dla komputerów z rysunku 2.2 Jak widać z zestawienia komputery 1 i 6 posiadają różny od pozostałych adres sieci. W takim przypadku, mimo podłączenia do jednego switcha, adresacja IP nie pozwala na komunikację tych dwóch komputerów z pozostałymi. Jeżeli sytuacją pożądaną jest możliwość swobodnej wymiany informacji przez wszystkich użytkowników sieci można rozważyć dwa warianty. Pierwszy to zmiana adresacji komputerów 1 i 6 tak, aby mieściła się w zakresie sieci 172.16.34.64, maska 255.255.255.224. Drugi to rozszerzenie zakresu sieci przez zmianę maski. Policzmy, jaka maska pozwoliłaby na wspólny dla wszystkich komputerów adres sieci. W celu ułatwienia obliczeń zamieńmy adresy 1 i 6 na postać binarną: 10101100.00010000.00100010. 00011010 10101100.00010000.00100010.01100010 Wspólny adres sieci to taki, gdy część sieci wyznaczonej przez maskę dla wszystkich adresów będzie taka sama. W naszym przypadku oznaczyliśmy największą wspólną część dla rozpisanych adresów i jest to: 10101100.00010000.00100010.00000000, uzupełniona zerami da nam nowy adres sieci 172.16.34.0, przy masce 255.255.255.128. W tak powstałej przestrzeni adresowej, kończącej się adresem rozgłoszeniowym 172.16.34.127, zawarte będą wszystkie dotychczasowe adresy komputerów od 1 do 6. Inny przykład sprawdzenia przynależności do sieci prezentowany jest w załączonym materiale video maska podsieci. a. Podział sieci na podsieci Przypadek podziału sieci na podsieci omówiliśmy już poznając technikę VLSM. Czy to jedyna metoda podziału sieci? A co, jeżeli po podziale na sieć dużą, mniejszą i najmniejszą pojawi się w firmie zapotrzebowanie na pulę adresów o średniej wielko- 5
ści? Oczywiście taka możliwość istnieje, należy pamiętać tylko o zasadach podziału sieci wynikających z posługiwania się liczbami binarnymi. Rozpatrzmy następujący przypadek: sieć firmy Y składa się z trzech działów. Liczba komputerów to odpowiednio 50, 25 i 12. Wiemy, że do każdej sieci musimy doliczyć 2 adresy (sieci i rozgłoszeniowy), przez co wymagane pule musimy powiększyć odpowiednio do 52, 27 i 14 adresów. Nasze sieci będą mogły się ze sobą komunikować wykorzystując router. Dla zapewnienia funkcjonowania takiej sieci musimy przewidzieć dodatkowy adres z każdej sieci dla interfejsu routera, czyli kolejny raz zwiększamy zapotrzebowanie na adresy dodając jeden. Może narysujmy taką sieć: Rysunek 2.3 Sieć modelowa 3 Znając zasady adresacji VLSM przewidujemy, że będziemy potrzebowali odpowiednio: dla 50 PC + 2 adresy (sieci, rozgłoszeniowy) + adres dla routera = 53, czyli sieć spełniająca ten warunek składać się będzie z 64 adresów; dla 25 PC + 2 adresy (sieci, rozgłoszeniowy) + adres dla routera = 28, czyli sieć 32 adresowa; dla 12 PC + 2 adresy (sieci, rozgłoszeniowy) + adres dla routera = 15, czyli sieć 16 adresowa. Podzielmy przykładową klasę C 192.168.0.0/24, zaznaczając w tabeli zarezerwowane przestrzenie adresowe. 6
ilość potrzebnych adresów ilość adresów wynikających z VLSM adres sieci maska adres rozgłoszeniowy 53 64 192.168.0.0 255.255.255.192 192.168.0.63 28 32 192.168.0.64 255.255.255.224 192.168.0.95 15 16 192.168.0.96 255.255.255.240 192.168.0.111 Tabela 2 Przykładowy przydział adresacji dla sieci z rysunku 2.3 Spełniliśmy początkowe wymagania stawiane naszej sieci. Wykorzystana adresacja kończy się na adresie 192.168.0.111. Zapadła decyzja o otwarciu nowego działu, który będzie potrzebował 20 nowych komputerów w niezależnej sieci. Dla takiej liczby komputerów potrzebujemy ciągłej przestrzeni adresowej o 32 adresach. Czy możemy zaadresować kolejną sieć od adresu 192.168.0.112 z maską 255.255.255.224? Sprawdźmy. Wiemy, że każda sieć musi mieć przed maską niepowtarzalną część adresu. Rozpiszmy binarnie nasze dotychczasowe adresy sieci oznaczając część adresu należącą do sieci kolorem niebieskim: I proponowany adres następnej sieci: 11000000.10101000.00000000.00000000 11000000.10101000.00000000.01000000 11000000.10101000.00000000.01100000 11000000.10101000.00000000.01110000 W takim zapisie widać, że początkowa część czwartego bajtu już pojawiła się w jednej z naszych sieci, a konkretnie w sieci trzeciej, czyli 192.168.0.96. W związku z tym nie ma możliwości ponownego wykorzystania tej sieci. Kolejna uwaga, która dyskwalifikuje ten adres widoczna jest w polu hosta. Pamiętamy, że adres sieci to taki adres, gdzie pole hosta składa się z samych zer. My w polu hosta mamy jedną jedynkę. Przestrzeń od adresu 192.168.0.112 do 192.168.0.127 niestety musi zostać wolna. Kolejny wolny adres sieci to 192.168.0.128. Zapiszmy go binarnie: 11000000.10101000.00000000.10000000 Oznaczając maskę sieci dającą przestrzeń 32 adresową widzimy, że adres sieci jest niepowtarzalny. Pole hosta składa się z zer, czyli drugi warunek też jest spełniony. Mamy adres sieci dla nowego działu. Po uzupełnieniu pola hosta jedynkami wyliczamy koniec nowej sieci na adresie rozgłoszeniowym 192.168.0.159. W ten sposób wyznaczyliśmy zakres adresacji dla nowego działu. Mimo przekroczenia wielkości poprzedniej najmniejszej sieci udało nam się określić ciągłą przestrzeń adresową. W tym celu musieliśmy ominąć pewien zakres adresów, który został niewykorzystany. Jak widać, przestrzegając reguł adresacji sieci i uważnie operując zmienną maską, możemy adresować różne przestrzenie adresowe. Czasami niestety wymaga to pozostawienia niewykorzy- 7
stanych adresów w środku naszej puli. W przyszłości może zostaną zagospodarowane dla kolejnych, tym razem małych podsieci. b. Łączenie sieci w nadsieci Zmiana długości maski może być również wykorzystywana do zwiększania zakresu sieci. Często takie zabiegi stosuje się w routerach do agregacji sieci, w celu ograniczenia wpisów w tablicach routingu. Brzmi to na razie dosyć tajemniczo, ale od czego są przykłady. Dana jest sieć o strukturze jak na rysunku: Rysunek 2.4 Agregacja sieci. Zmiana maski podsieci Chmury symbolizują jakieś sieci, których adres i maska została określona. Użytkownicy przyłączeni do routera B chcieliby mieć możliwość komunikowania się z naszymi trzema sieciami. Administrator bez analizowania struktury adresów dopisuje statycznie do tablicy routingu wszystkie trzy sieci. W routerze A stosowny wpis umożliwia komunikację z klientami routera B. Sprawdźmy, co wpisał administrator do routera B: network 192.168.12.0 mask 255.255.255.128 next hop router A network 192.168.12.128 mask 255.255.255.192 next hop router A network 192.168.12.192 mask 255.255.255.192 next hop router A Wpisy dokonane są prawidłowo, ale czy nie można zapisać tego krócej? Przeanalizujmy, gdzie zaczyna się, a gdzie kończy każda z naszych sieci. pierwsza rozpoczyna się od adresu 192.168.12.0, a kończy 192.168.0.127; druga zaczyna się od 192.168.12.128, a kończy na 192.168.12.191; trzecia sieć to adresy od 192.168.12.192 do 192.168.12.255. 8
Sumując te trzy sieci powstaje nam przestrzeń klasy C od adresu 192.168.12.0 do 192.168.12.255. Spójrzmy jeszcze raz na rysunek. A gdyby w routerze B wcześniejsze trzy wpisy zastąpić następująco: network 192.168.12.0 mask 255.255.255.0 next hop router A Czy dane kierowane do pierwszej sieci zostaną prawidłowo skierowane do routera A? Co z danymi dla drugiej i trzeciej sieci? Wszystkie trzy sieci zostaną obsłużone prawidłowo. Kierowanie ruchu do zagregowanej z punktu widzenia routera B sieci przebiegać będzie prawidłowo. To nasz router A decyduje dopiero, w którym kierunku prześle dalej informacje. Zmieniając maskę na 24 bitową stworzyliśmy jedną nadsieć, która zmniejszyła o dwa wpisy tablicę routingu. Mniejsza tablica routingu to szybciej podejmowane decyzje i efektywniej zarządzany ruch w sieci. Routery na szkielecie sieci posiadają po kilka tysięcy wpisów. Agregacja tras jest jedną z najważniejszych metod ograniczania wielkości tablic i zwiększenia wydajności. Czy w ten sam sposób możemy łączyć adresy klas C w większą sieć? Oczywiście. Jeszcze jeden szybki przykład. Rysunek 5 Agregacja sieci o przestrzeniach adresowych klasy C Zapisujemy binarnie oba adresy z ich dotychczasowymi maskami oznaczonymi kolorem: 11000000.10101000.00001000.00000000 11000000.10101000.00001001.00000000 Szukamy nowej maski, dzięki której stworzona sieć będzie zawierała obie dotychczasowe: 11000000.10101000.00001000.00000000 11000000.10101000.00001001.00000000 Przeliczamy nowy adres sieci 192.168.8.0 i adres rozgłoszeniowy 192.168.9.255. Zmiana maski na 255.255.254.0 przyniosła zakładany efekt. Powstała nowa sieć, która swoim zasięgiem obejmuje obie sieci dotychczasowe. W takiej formie możemy dokonać wpisu w routerze B kierując dane do obu sieci w kierunku routera A. Inną sytuacją, w której posługujemy się maską wykraczającą poza zakres danej klasy jest zapotrzebo- 9
wanie na nietypową pulę adresów hostów. W adresowaniu klasowym mogliśmy otrzymać przestrzeń z klasy C, B lub A. Firma, która potrzebowała zaadresować np. 800 komputerów otrzymywała pulę 65535, co można uznać za straszną niegospodarność. Wprowadzając maski podsieci i możliwość płynnego przesuwania podziału między polem sieci i hosta możemy sklejać np. cztery klasy C, uzyskując wymaganą, optymalną przestrzeń dla żądanej liczby hostów. Spróbujmy przeanalizować nasz przykład: firma XYZ potrzebuje w przestrzeni ciągłej adresy dla 800 hostów. Klasa C pozwala zaadresować tylko 254 hosty. Możemy powiększyć tą przestrzeń pożyczając bity z pola sieci. Ile bitów potrzebujemy? Policzmy: 8 bitów daje możliwość zapisania niepowtarzalnych 256 adresów, 9 bitów daje możliwość zapisania 512 adresów, 10 bitów daje możliwość zapisania 1024 adresów. Z wyliczeń wynika, że pożyczka 2 bitów z pola sieci pozwoli nam stworzyć przestrzeń, w której zmieści się zakładane 800 hostów. Wybierzmy adres z klasy C, dla którego obliczymy przestrzeń 1024 adresową. Niech nasz host ma adres 192.168.12.53. Zapis binarny to odpowiednio: 11000000.10101000.000001100.00110101 Zaznaczając pole hosta składające się z 10 bitów ustalamy maskę podsieci na /22, czyli 255.255.252.0. Wypełnienie pola hosta zerami i jedynkami da nam wyniki: 11000000.10101000.000001100.00000000 11000000.10101000.000001111.11111111 które w zapisie dziesiętnym dadzą nam adres sieci 192.168.12.0 oraz adres rozgłoszeniowy 192.168.15.255. W ten sposób, dokonując połączenia pierwotnych czterech klas C, stworzyliśmy sieć spełniającą nasze oczekiwania, co do ilości hostów, nie przyczyniając się do nadmiernego marnowania przestrzeni adresowej. Możliwość płynnego przemieszczania maski daje możliwość zarówno zmniejszania, jak i powiększania przestrzeni adresowej w stosunku do pierwotnych zakresów klasowych. Nie są to niestety podziały tak precyzyjne, jak byśmy tego chcieli, patrząc na zapotrzebowania w poszczególnych sieciach. Pamiętajmy jednak, że operujemy cały czas na adresach mających swoje korzenie w arytmetyce binarnej. System dwójkowy narzuca nam pewne ograniczenia, które w systemie dziesiętnym nie zawsze są łatwe do dostrzeżenia. Po takim utrwaleniu wiedzy z poprzedniego rozdziału, zachęcam ponownie do ćwiczeń. Tylko wykonanie odpowiedniej liczby przeliczeń w systemie dwójkowym pozwoli inaczej spojrzeć na adresy dziesiętne i już przy pierwszym kontakcie określić ich pewne cechy. No koniec jeszcze jedno ćwiczenie. Spójrz na poniższe adresy hostów i spróbuj obliczyć w pamięci ich adresy sieci. Odpowiedź na końcu rozdziału. a. 192.168.12.130 maska 255.255.255.128 b. 10.50.14.247 maska /28 c. 172.16.13.240 maska /23 d. 192.168.227.128 maska 255.255.224.0 10
Odpowiedzi: a. 192.168.12.128 b. 10.50.14.240 c. 172.16.12.0 d. 192.168.224.0 A teraz dla tych samych adresów hostów oblicz adresy rozgłoszeniowe. a. 192.168.12.130 maska 255.255.255.128 b. 10.50.14.247 maska /28 c. 172.16.13.240 maska /23 d. 192.168.227.128 maska 255.255.224.0 Odpowiedzi: a. 192.168.12.255 b. 10.50.14.255 c. 172.16.13.255 d. 192.168.255.255 Bibliografia: 1. B. Halska, P. Bensel (2013) Kwalifikacja E.13. Projektowanie lokalnych sieci komputerowych i administrowanie sieciami. Podręcznik do nauki zawodu technik informatyk. Część 2. Gliwice: Helion 2. R. Pawlak (2011) Okablowanie strukturalne sieci Teoria i praktyka. Gliwice: Helion 11