Blog (48)
Komentarze (382)
Recenzje (0)
@karol221-10Kurs Packet Tracer 6.2 — od zera do sieci tworzenia cz.2

Kurs Packet Tracer 6.2 — od zera do sieci tworzenia cz.2

07.01.2016 19:11, aktualizacja: 04.09.2016 14:31

Znamy już podstawy komunikacji opisywane przez model OSI oraz zasadnicze normy ruchu pakietów w sieci. W tym czasie kilkanaście razy padało już pojęcie adresu IP czy adresu MAC. Teraz zapoznamy się bliżej z tymi pojęciami.

Adresowanie – co to jest i do czego to służy?

No właśnie … po co właściwie stosujemy adresowanie? Odpowiedź powinna nasuwać się sama. Bez adresów komunikacja po prostu by nie istniała, gdyż nie byłoby wiadome, do kogo dostarczyć dany pakiet. Sieć działałaby wtedy jak miasto bez nazw ulic czy adresów, czyli nie funkcjonowałoby.

W sieciach istnieją dwa rodzaje adresowania – adresowanie fizyczne i adresowanie logiczne. Logicznie rzecz biorąc, do pracy sieci mogłyby wystarczyć adresy IP, czyż nie? Niestety, taka sieć posiadałaby wiele wad. Wróćmy do wspomnianego wcześniej przykładu miasta. Każdy dom stoi przy jakiejś ulicy i posiada jakiś adres. Ten adres jest zwykle niezmienny, przydzielony na stałe. Jest to adres fizyczny. Ty, jako osoba możesz mieszkać w tym domu, ale w dowolnej chwili możesz się przeprowadzić. Twój adres jest więc adresem logicznym. Kiedy listonosz ma dostarczyć tobie jakąś przesyłkę, najpierw posługuje się adresem logicznym, gdyż musi sprawdzić gdzie mieszkasz. Potem musi się dowiedzieć, gdzie fizycznie znajduje się dany dom, a więc poznaje jego adres fizyczny. Dokładnie tak samo jest w sieciach komputerowych.

Adresowanie fizyczne

Adres fizyczny to inaczej adres MAC (z ang. Media Access Control). Wykorzystywany jest w najniższych warstwach modelu OSI, czyli w warstwie łącza danych i fizycznej. Jednoznacznie identyfikuje każde urządzenie w sieci. Jest unikalny, przydzielany przez producenta sprzętu. „Teoretycznie” nie da się go zmienić. Składa się z 48 bitów. Najczęściej zapisujemy go w systemie szesnastkowym, dzieląc go na 6 sekcji po 2 cyfry w każdej (np.: AB:CD:EF:11:22:33). Pierwsze 6 cyfr jest administrowane przez IEEE (ang. Institute of Electrical and Electronics Engineers – Instytut Inżynierów i Elektroników) i oznacza producenta danego sprzętu. Jest to tym samym jego unikatowy identyfikator. Pozostałe 6 cyfr szesnastkowych stanowi numer danego sprzętu i przydzielenie tego numeru leży już w gestii producenta sprzętu.

579189

Zastanówmy się nad najprostszym przykładem zastosowania adresów MAC w praktyce. Mamy sieć, złożoną z kilku komputerów, które są połączone ze sobą za pomocą koncentratora. Kiedy jeden z komputerów wysyła pakiet danych, wszystkie pozostałe też go otrzymują. Skąd komputer wie, czy dany pakiet adresowany jest do niego? Tak jest, decyduje o tym właśnie adres MAC. Każda maszyna, która otrzymała ramkę danych porównuje zapisany w niej adres MAC z własnym. Jeśli się zgadzają, to znaczy że ramka była adresowana właśnie do niego. Jeśli nie, należy ją odrzucić.

Adresowanie logiczne – IP

Za adresowanie logiczne odpowiada protokół IP, pracujący w warstwie sieciowej modelu OSI. To właśnie nimi najczęściej się posługujemy, np.: łącząc się z naszym serwerem czy zarządzając konfiguracją routera. Obecnie w Internecie najczęściej wykorzystywana jest starsza wersja protokołu IP – IPv4 i właśnie nią zajmiemy się w tym wpisie.

IPv4 – podstawy

Adres IPv4 składa się z 32 bitów. Przy zapisie najczęściej używamy systemu dziesiętnego, zapisując adres w postaci 4 liczb oddzielonych kropkami, np.: 192.168.1.1

Adres IP z reguły dzieli się na dwie części – pierwsza opisuje „numer” sieci, a druga „numer” hosta. Podział ten zależy od klasy adresu, czym zajmiemy się za chwilę, a także maski podsieci, czym zajmiemy się trochę później :).

Pierwsze wersje standardu opisane m.in. w dokumentach RFC 791, RFC 760 i RFC 1918 dzieliły adresy udostępniane przez protokół IP na 5 klas. Trzy z nich (A,B,C) są przeznaczone do normalnego użytku. Klasa D jest używana do multiemisji, natomiast E do zastosowań eksperymentalnych. Zakresy tych klas są następujące:

  • Klasa A: 1.0.0.0 do 127.255.255.255 (128 podsieci, w każdej z nich 16777214 hostów).
  • Klasa B: 128.0.0.0 do 191.255.255.255 (16384 podsieci, w każdej z nich 65534 hostów).
  • Klasa C: 192.0.0.0 do 223.255.255.255 (2097152 podsieci, w każdej z nich 254 hosty).
  • Klasa D: 224.0.0.0 do 239.255.255.255
  • Klasa E: 240.0.0.0 do 255.255.255.255
klasa A
klasa A
klasa B
klasa B
klasa C
klasa C

Niektórych adresów IP nie możemy przydzielić urządzeniom. Są to adresy zabronione, do których zaliczamy:

  • Adresy pętli zwrotnej (127.0.0.0-127.255.255.255), najczęściej używany jako adres interfejsu loopback. Umożliwia to wymianę informacji wewnątrz jednego hosta. Za pomocą tych adresów możemy np.: testować działanie aplikacji klient-serwer, gdyż zarówno klient jak i serwer może być w tym wypadku uruchomiony na tym samym komputerze.
  • Adresy sieci, które w części hosta zawierają same zera, służą, jak sama nazwa wskazuje, do identyfikacji całej sieci. Przykładem takiego adresu jest np.: 192.168.1.0 lub 10.0.0.0
  • Adresy rozgłoszeniowe, które w części hosta zawierają same jedynki, są używane do rozsyłania rozgłoszeń (mówiliśmy o nich w poprzedniej części). Przykładami takich adresów są np.: 192.168.1.255 lub 10.255.255.255.

Wspomniany wcześniej dokument RFC1918, oprócz powyższych, wprowadza jeszcze jeden podział adresów IP, mający zoptymalizować ich wykorzystanie. Otóż, z każdej klasy wydzielono grupę adresów, które nazwano adresami prywatnymi. Natomiast pozostałe są zwane adresami publicznymi. Adresy publiczne muszą być unikalne w skali światowej, natomiast prywatne niekoniecznie. Dlaczego tak się dzieje? Wszystko to dzięki technologii NAT.

Poświęćmy teraz trochę czasu zasadzie działania Network Address Translation. Otóż, sieć, składająca się nawet z kilku komputerów, posiada najczęściej tylko jeden adres publiczny. Komputery posiadają adresy prywatne. Kiedy komputer wysyła jakiś segment danych do sieci Internet, router „zapamiętuje” kto te dane wysłał, a w segmencie zamienia adres IP tego komputera na swój. W przypadku odbioru pakietów sytuacja jest odwrotna.

W tym wypadku, każdy z komputerów sieci lokalnej jest widziany w sieci Internet pod tym samym adresem IP, który jest jednocześnie adresem publicznym całej sieci.

Wydzielono następujące pule adresów prywatnych:

  • Z klasy A: 10.0.0.0 do 10.255.255.255
  • Z klasy B: 172.16.0.0 do 172.31.255.255
  • Z klasy C: 192.168.0.0 do 192.168.255.255
579208

Klasowy podział adresów okazał się bardzo nieefektywny. Mało jest przecież firm na świecie, w ramach których będzie pracowało około 16,7 mln komputerów :). Tudzież klasa C jest znowu za mała dla większości organizacji (tylko 254 komputery). W związku z tym najszybciej wyczerpującą się pulą adresów była klasa B. Problemy te zostały spowodowane głównie przez gwałtowny rozwój sieci zwanej Internetem, którego tempa rozwoju nawet sami twórcy standardów i protokołów nie przewidzieli :). W związku z tym szybko rozpoczęto pracę nad następcą protokołu IPv4. Jednocześnie opracowano liczne rozszerzenia do IPv4, które miały umożliwić bardziej optymalne wykorzystanie puli adresów oraz zwiększyć wydajność samego protokołu. Takimi rozwiązaniami są maski podsieci oraz VLSM (Variable Length Subnet Mask)

Maska podsieci

Informacje ogólne

Z maską podsieci spotkałeś się na pewno, jeśli kiedykolwiek próbowałeś statycznie przydzielić adres IP karcie sieciowej. Zwykle, po wprowadzeniu adresu IP maska podsieci uzupełniana jest automatycznie. Jeśli uważnie przeczytałeś poprzednie rozdziały, pewnie domyśliłeś się, dlaczego tak się dzieje. Otóż system rozpoznaje po prostu klasę adresu i na jej podstawie ustala maskę.

Ale tak właściwie, to co to jest ta maska podsieci? Składa się z 32 bitów, podobnie jak adres IP. Aby było łatwiej to zrozumieć, spójrzmy na przykład poniżej:

579214

Powyżej widzimy przykładowy adres IP i odpowiadającą mu maskę podsieci zapisaną zarówno w formie dziesiętnej jak i binarnej. Jak wiemy z poprzedniego rozdziału, adres ten należy do klasy B, a więc 16 pierwszych bitów przeznaczonych jest na adres sieci. Pozostałe są przeznaczone na adres hosta. Z tego przykładu możemy już się domyśleć, za co odpowiada maska podsieci. Tam gdzie w masce są jedynki, komputer „widzi” adres sieci, a tam gdzie są zera: „adres hosta”.

Istnieje także drugi rodzaj maski podsieci: tzw. wildcard mask. Jest ona używana o wiele rzadziej niż tradycyjna maska podsieci. Znalazła ona zastosowanie m.in. przy ustalaniu rozmiaru sieci/podsieci dla niektórych protokołów routingu (np.: OSPF). Używana jest także przy tworzeniu list dostępu. Zasada jej tworzenia jest prosta. Jest to odwrotność zwykłej maski. W wildcard mask część odpowiadająca za adres sieci oznaczana jest za pomocą zer, a część odpowiadająca za adres hosta za pomocą jedynek. Aby nie było wątpliwości, spójrzmy na poniższy przykład:

579217

Warto jeszcze zwrócić uwagę na sposoby zapisu maski podsieci. Ogólnie, możemy ją zapisać na dwa sposoby. Jeden z nich już poznałeś, gdyż był zastosowany w powyższych przykładach. Zapisywaliśmy ją w postaci czterech liczb. Maskę możemy także zapisać w adresie IP. Jak to robimy? Po zapisaniu adresu, dopisujemy znak /, a po nim liczbę bitów, które przeznaczyliśmy na część sieci. Spójrzmy na kilka przykładów zapisywania maski podsieci.

172.16.42.30/16 lub 255.255.0.0 10.0.3.2/8 lub 255.0.0.0 192.168.123.43/24 lub 255.255.255.0

Dzielenie na podsieci

Wiemy już za co odpowiada maska podsieci. Teraz należałoby się dowiedzieć, jak ją zastosować w praktyce. Maska służy do tworzenia tzw. podsieci. Jest to bardzo proste. Spróbujmy na przykład podzielić sieć 192.168.1.0/24 na cztery podsieci: Najpierw zapiszmy adres IP w postaci binarnej: 11000000.10101000.00000001.00000000 Cztery podsieci możemy zapisać na dwóch bitach (bo 2^2=4). Ustalmy więc maskę podsieci, która będzie wyglądała tak: 11111111.11111111.11111111.11000000 co w zapisie dziesiętnym daje postać 255.255.255.192. Maska podsieci mówi nam, że „pożyczyliśmy” dwa bity z części hosta na zaadresowanie podsieci.

Ustalmy teraz adres sieci, rozgłoszeniowy i adresy hostów dla pierwszej podsieci: Adres sieci jest adresem, który zawiera w części hosta same zera. W tym wypadku będzie on miał następującą postać:

579223

Z powyższego wynika, że adresem pierwszej podsieci będzie po prostu 192.168.1.0. Ustalmy teraz adres rozgłoszeniowy naszej podsieci:

579225
579226

Adres rozgłoszeniowy zawiera w części hosta same jedynki. Z tego wynika, że będzie to: 192.168.1.63

Adresami hostów będą wszystkie adresy pomiędzy adresem sieci a rozgłoszeniowym , a więc od 192.168.1.1 do 192.168.1.62.

Spójrzmy jeszcze raz na część hosta. Ile bitów ta część zajmuje? Jak się domyślasz, pewnie 6. Pomyślmy więc nad tym, jak szybko obliczyć ilość hostów, którą możemy zaadresować w danej podsieci. Musimy obliczyć ilość kombinacji zer i jedynek, którą możemy zapisać na sześciu bitach. Nie jest to tak trudne jak pewnie teraz myślisz :) Wystarczy skorzystać ze wzoru:

579230

W tej podsieci możemy więc zaadresować 2^6‑2=64-2=62 hosty. Zgadza się to z adresami, które otrzymaliśmy wcześniej. Dobra, pierwszą podsieć mamy gotową. Zajmijmy się teraz drugą podsiecią:

579232

Zauważ, że w części odpowiadającej za podsieć zmieniliśmy 00 na 01. W trzeciej podsieci wstawilibyśmy tam 10, natomiast w czwartej 11. Z powyższego wynika, że adresem naszej drugiej podsieci będzie ciąg 192.168.1.64. Ustalmy teraz adres rozgłoszeniowy:

579234

W formie dziesiętnej będzie to zapis: 192.168.1.127

Adresy hostów będą zawierać się w przedziale 192.168.1.65-192.168.1.126.

Pewnie zauważyłeś pewną zależność między adresami pierwszej, a drugiej podsieci. Otóż, adres drugiej podsieci jest tylko o jeden większy od adresu rozgłoszeniowego pierwszej podsieci. Dzięki temu możemy wyznaczyć adresy sieci, rozgłoszeniowy i hostów 3 i 4 podsieci bez rozpisywania ich w systemie binarnym.

Najpierw weźmy adres rozgłoszeniowy 2 podsieci, który obliczyliśmy wcześniej: 192.168.1.127

Kiedy dodamy do niego 1, otrzymamy adres 3 podsieci, czyli 192.168.1.128. Dzięki dodaniu kolejnej jedynki otrzymamy adres pierwszego hosta, czyli 192.168.1.129. Teraz musimy otrzymać adres ostatniego hosta. Aby to wykonać, spójrzmy jeszcze na dwie wcześniej obliczone podsieci. Ile komputerów może znajdować się w każdej podsieci? Skorzystajmy ze wzoru, który poznaliśmy wcześniej. z tego wiemy, że w tej podsieci możemy zaadresować 62 hosty (bo 2^6‑2=62). Dodajmy więc liczbę 62 do adresu 192.168.1.128(adres sieci). Otrzymamy adres 192.168.1.190. Po dodaniu 1 otrzymamy adres rozgłoszeniowy o postaci 192.168.1.191.

Podobnie postępujemy przy czwartej podsieci. Podam wyniki: Adres sieci: 192.168.1.192 Adresy hostów: 192.168.1.193-192.168.1.254 Adres rozgłoszeniowy: 192.168.1.255

Jak widzimy, metoda bezklasowego dzielenia sieci na podsieci pozwala znacznie zoptymalizować wykorzystywanie adresów IP. Wyobraźmy sobie na przykład, że musimy stworzyć 8 podsieci, z czego w każdej znajduje się zaledwie po 30 komputerów. W przypadku używania klas adresów, wykorzystalibyśmy pewnie adresy klasy C. Podział wtedy mógłby wyglądać tak: 192.168.1.0 dla pierwszej sieci, 192.168.2.0 dla drugiej itd. Ale zwróćmy uwagę, ile adresów IP wtedy byśmy zmarnowali! Wykorzystalibyśmy zaledwie 240 adresów spośród 2032. Oznacza to, że niewykorzystane pozostałoby aż 88% adresów IP!

579242

Jeśli podzielimy sieć na podsieci za pomocą maski, otrzymamy 8 podsieci (3 bity na podsieć), z czego w każdej możemy zmieścić 30 komputerów (2^5-2). Wykorzystujemy więc blisko 100% dostępnej przestrzeni adresowej!

Ten sposób ma jednak pewną wadę. Wyobraźmy sobie (znowu :)) że musimy utworzyć 4 podsieci, z czego w poszczególnych podsieciach byłoby adresowane kolejno: 20,10,50,3 komputery. Oczywiście, adresowanie bezklasowe pozwoli nam zaoszczędzić część adresów, ale nadal będziemy marnowali 145 adresów, czyli około 67% przestrzeni adresowej. Aby jeszcze bardziej optymalnie wykorzystywać pulę adresów IP, wymyślono coś takiego jak VLSM, czyli podział na podsieci ze zmienną długością maski.

579245

Podzielmy więc wcześniej wspomnianą sieć tak, aby optymalnie wykorzystać adresy IP. Najpierw musimy posegregować liczby hostów w poszczególnych podsieciach od największej do najmniejszej, czyli kolejno: 50,20,10,3. Wykorzystajmy adres 192.168.1.0/24

  1. Adres pierwszej podsieci jest prosty do ustalenia. Wszak, będzie to po prostu 192.168.1.0.
  2. Adres pierwszego hosta również jest prosty do ustalenia, gdyż będzie większy o jeden od adresu sieci, czyli 192.168.1.1.
  3. Ustalmy teraz adres ostatniego hosta. Jaka będzie najmniejsza potęga dwójki, która będzie większa od naszej liczby hostów? Będzie to 6 potęga (gdyż 2^6-2=62). Adresem ostatniego hosta będzie więc 192.168.1.62.
  4. Adres rozgłoszeniowy jest większy o jeden od adresu ostatniego hosta. W takim wypadku będzie miał postać 192.168.1.63.
  5. Maską tej podsieci będzie 255.255.255.192, gdyż wykorzystujemy jedynie dwa bity na adres podsieci. Adres tej podsieci możemy więc inaczej zapisać jako 192.168.1.0/26

Pierwsza podsieć ustalona. Analogicznie zajmijmy się teraz drugą podsiecią:

  1. Ustalamy adres drugiej podsieci, który będzie miał postać 192.168.1.64.
  2. Adres pierwszego hosta będzie jak zwykle o jeden większy, a więc 192.168.1.65.
  3. Aby w podsieci zmieściło się 20 hostów, musimy przeznaczyć 5 bitów na adres hosta, gdyż 2^5-2=32-2=30. Adresem ostatniego hosta będzie więc 192.168.1.94.
  4. Adres rozgłoszeniowy będzie miał postać 192.168.1.95
  5. Na część hosta przeznaczyliśmy 8-5=3 bity, więc maska podsieci będzie miała postać 255.255.255.224, a adres sieci możemy zapisać inaczej jako 192.168.1.65/27

Trzecią i czwartą podsieć ustalamy analogicznie. Dla wiadomości podam jedynie wyniki:

Trzecia podsieć: Adres sieci: 192.168.1.96 Adresy hostów: 192.168.1.97 – 192.168.1.110 Adres rozgłoszeniowy: 192.168.1.111 Maska podsieci: 255.255.255.240

Czwarta podsieć: Adres sieci: 192.168.1.112 Adresy hostów: 192.168.1.113-192.168.1.118 Adres rozgłoszeniowy: 192.168.1.119 Maska podsieci: 255.255.255.248

Już z samych adresów możemy wywnioskować, że zostało zmarnowanych o wiele mniej adresów. Ale spójrzmy na liczby, dla pewności. Nie wykorzystujemy zaledwie 29 adresów z wyżej wymienionych podsieci, co stanowi zaledwie około 26% dostępnych adresów. Jest to wielki postęp w porównaniu do 67% przy adresowaniu bezklasowym. VLSM jest więc najbardziej optymalnym sposobem wykorzystania przestrzeni adresowej.

579254

Wyznaczanie podsieci na podstawie adresu hosta

Na koniec zastanówmy się nad jeszcze jednym zagadnieniem. Przyjmijmy, że znamy adres IP jednego z urządzeń podsieci, np.: 172.19.96.100. Znamy też maskę, np.: 255.255.192.0. Czy na podstawie tych danych da się ustalić adres tej podsieci, adres rozgłoszeniowy tej podsieci i zakres adresów hostów? Oczywiście że tak i jest to bardzo proste. Rozpiszmy znany adres IP w systemie binarnym a pod spodem zapiszmy maskę:

579257

Aby wyznaczyć adres sieci, musimy wykonać tzw. operację sumy logicznej (AND). Spójrzmy najpierw na tzw. „tablicę prawdy”

579259

Jak widzimy, w wyniku otrzymujemy jedynkę, jeśli zarówno w adresie IP jak i w masce na danej pozycji mamy jedynkę. Spróbujmy więc wykonać operację sumy logicznej:

579261

Pierwsze dwa oktety naszego wyniku są takie same, jak nasz początkowy adres IP. Nic dziwnego. Zwróćmy jednak uwagę na trzeci oktet. Tu już zaczyna się różnica. Zapiszmy więc otrzymany adres sieci w postaci dziesiętnej: 172.19.64.0. To właśnie z tej podsieci pochodzi adres IP 172.19.96.100.

Ustalenie adresu rozgłoszeniowego nie powinno być już dla ciebie żadnym problemem. W adresie sieci, rozpisanym binarnie, w części hosta wstawiamy same jedynki.

579264

Zaznaczyłem na czerwono naszą część hosta w tej podsieci. Zapiszmy otrzymany adres w formie dziesiętnej: 172.19.127.255. Jest to adres rozgłoszeniowy naszej podsieci.

Ustalenie adresów hostów to już banał. Jest to, jak już doskonale wiesz, wszystko pomiędzy adresem sieci a rozgłoszeniowym. Ten zakres w tym wypadku będzie wyglądał następująco: 172.19.64.1 – 172.19.127.254.

To już koniec

Poznaliśmy podstawy adresowania IPv4. Wiemy, jak wyznaczać podsieci metodą bezklasową i VLSM. Wiemy, jak obliczyć adres sieci na podstawie adresu hosta i maski. Niestety, brak było w tym odcinku praktyki, ale w kolejnym będzie jej aż za dużo :), gdyż zajmiemy się routerami i szeroko pojętym routingiem.

Wybrane dla Ciebie
Komentarze (15)