Pomiń nawigację
Materiał edukacyjny · Informatyka

MODUŁ 06

Adresy IPv4 i podział na podsieci

PPrezentacja dla nauczyciela

Najczęstszy temat pisemnego i podstawa praktycznego: z adresu i maski musisz w głowie wyjąć adres sieci, broadcast i liczbę hostów.

Adres IPv4 to 32 bity zapisane czterema oktetami

Adres IPv4 to liczba, która musi zmieścić się w 32 bitach — czyli w czterech komórkach po 8 bitów. Te komórki nazywają się oktetami.

Każdy oktet ma 8 bitów, a 8 bitów daje 256 możliwych wartości, więc w oktecie zapisujemy liczbę od 0 do 255. Stąd zapis 192.168.10.5: cztery liczby rozdzielone kropkami, każda od 0 do 255.

Komputer nie pamięta tych liczb dziesiętnie, tylko bitowo. Liczba 192 to binarnie 11000000. Każdy bit ma własną wagę, od lewej: 128, 64, 32, 16, 8, 4, 2, 1. Gdzie jest jedynka, waga się dodaje — 128 + 64 = 192. Gdzie jest zero, waga się pomija.

Jedynki stoją na wagach 4 i 1, więc czwarty oktet to 4 + 1 = 5, czyli binarnie 00000101. Czytanie idzie od lewej: pięć zer na początku nie jest ozdobnikiem, tylko mówi, że ten oktet nie używa wag 128, 64, 32, 16 i 8.

Wagi bitu1286432168421
Najwięcej, gdy użyto tylko tych bitów128192224240248252254255

Drugi wiersz pokazuje, ile wyniesie liczba, jeśli użyjemy danego bitu i wszystkich leżących na lewo: sam bit 128 daje 128, a 128 + 64 już daje 192. Ostatnia kolumna wychodzi na 255 — stąd górny limit oktetu.

Kolejność jest zawsze taka sama. Maska 255.255.255.0 to binarnie 11111111.11111111.11111111.00000000. Widać od razu, że trzy ostatnie oktety mówią „sieć”, a czwarty mówi „host”. Zero na końcu nie jest brakiem informacji — jest informacją.
1. Jaki jest zapis binarny ostatniego oktetu adresu 192.168.10.5?
1. Jaki jest zapis binarny ostatniego oktetu adresu 192.168.10.5?
2. Ile różnych wartości może przyjąć jeden oktet adresu IPv4?
2. Ile różnych wartości może przyjąć jeden oktet adresu IPv4?
3. Ile wynosi waga trzeciego bitu od lewej w oktecie?
3. Ile wynosi waga trzeciego bitu od lewej w oktecie?

Klasy adresów — jak pierwszy oktet kiedyś wyznaczał rozmiar sieci

Zanim powstał zapis /24, rozmiar sieci ustalano po pierwszym oktecte. Pierwsza litera adresu dawała klasa, a klasa mówiła, ile bitów jest sieciowych.

System nazywał się adresowaniem klasowym i warto go znać, bo pytania o niego nadal padają — choć w praktyce wypiera go zapis z maską.

KlasaPierwszy oktetWzór bitówMaskaHostów w sieciPo co
A1–1260xxxxxxx/816 777 214bardzo duże organizacje
B128–19110xxxxxx/1665 534średnie sieci, szkoły
C192–223110xxxxx/24254małe sieci, domyślne w klasycznym LAN
D224–2391110xxxx——multicast, czyli jeden do wielu
E240–2541111xxxx——zarezerwowane, do eksperymentów

Klasę rozpoznajesz po zaczynających się bitach pierwszego oktetu, bez liczenia do dziesiątki: pierwszy bit 0 oznacza klasę A, dwa pierwsze bity 10 — klasę B, trzy pierwsze 110 — klasę C. Adres 172.16.5.1 zaczyna się od 172, czyli od 10101100 — dwa pierwsze bity to 10, więc to klasa B.

Dlaczego klasy odpadły. Sieć klasy C ma 254 hosty, sieć klasy B ma 65 534, a sieć klasy A — prawie 17 milionów. Nie da się z takiego skokowego wyboru wybrać rozmiaru pomiędzy, a takie sieci jak 500 hostów nie miały żadnego rozsądnego przydziału. Od 1993 roku obowiązuje zapis /n (CIDR), w którym maska może mieć dowolną długość. Dlatego w zadaniach widzisz 192.168.10.0/26, a nie „sieć klasy C podzielona na cztery”.
4. Który zakres pierwszego oktetu odpowiada klasie B?
4. Który zakres pierwszego oktetu odpowiada klasie B?
5. Jaką domyślną maskę ma klasa B w adresowaniu klasowym?
5. Jaką domyślną maskę ma klasa B w adresowaniu klasowym?
6. Który wzorzec bitów pierwszego oktetu oznacza klasę C?
6. Który wzorzec bitów pierwszego oktetu oznacza klasę C?

Trzy adresy, których każda sieć musi mieć

Zanim cokolwiek policzysz, musisz rozróżnić trzy role, jakie pełni adres w obrębie jednej sieci:

  • adres sieciowy — pierwszy adres bloku adresowego; identyfikuje samą sieć i służy do opisania jej w tablicach routingu;
  • adresy hostów — wszystkie pomiędzy; to je przypisujesz komputerom, serwerom, drukarcom i interfejsom routera;
  • adres broadcastowy (rozgłoszeniowy) — ostatni adres w podsieci; oznacza „wszystkie urządzenia tutaj”, służy do rozsyłania ramek bez znajomości odbiorcy.

Zasada jest prosta i bezwzględna: adresu sieciowego i adresu broadcastowego nie przypisujesz żadnemu urządzeniu. Dlatego z 64 adresów robisz się 62 hosty. Dwa adresy „znikają” zawsze, niezależnie od wielkości sieci — poza wyjątkami: /31 (łącze punkt–punkt, RFC 3021: oba adresy są hostami) i /32 (pojedynczy host).

Adres interfejsu routera wewnątrz twojej sieci to zazwyczaj pierwszy adres hosta, czyli przy /26 będzie to 192.168.10.1. W zadaniach często przyjmuje się pierwszy adres hosta — ale zawsze sprawdź, czy treść zadania nie wskazuje innej bramy.

7. Który adres jest zwykle ustawiany jako adres interfejsu routera w podsieci 192.168.10.0/26?
7. Który adres jest zwykle ustawiany jako adres interfejsu routera w podsieci 192.168.10.0/26?
8. Dlaczego z 64 adresów podsieci /26 użytecznych hostów jest tylko 62?
8. Dlaczego z 64 adresów podsieci /26 użytecznych hostów jest tylko 62?
9. Jaki jest adres broadcast podsieci 192.168.10.0/26?
9. Jaki jest adres broadcast podsieci 192.168.10.0/26?

Maska mówi, gdzie kończy się sieć

Maska to również 32 bity, ale o zupełnie innym znaczeniu niż adres. W masce jedynka oznacza bit należący do sieci, a zero — bit należący do hosta.

Liczba jedynek na początku maski to długość zapisu /n: maska 255.255.255.192 to 11111111.11111111.11111111.11000000, czyli /26 — 26 jedynek, potem 6 zer.

Adres sieciowy to operacja AND adresu z maską, czyli mnożenie bit po bicie, gdzie jedynka daje wynik tylko wtedy, gdy jedynki są w obu zapisach. AND zeruje wszystko, co maska oznacza jako „host”, i zostawia bez zmian to, co oznacza jako „sieć”.

Wynik: 192.168.10.128. W czwartym oktecie została tylko jedynka wagi 128. Reszta zer nie jest przypadkiem — to są dokładnie bity, które maska oznaczyła jako host, a one zostały wyzerowane. Adresy z tej samej podsieci różnią się tylko tam, gdzie maska ma zera.

Adres broadcastowy liczysz odwrotnie: bierzesz adres sieciowy i ustawiasz wszystkie bity hosta na jedynki. Dla tej samej maski: 192.168.10.128 + 63 = 192.168.10.191.

Dodajesz zawsze wielkość bloku minus jeden — przy /26 jest to 63, a nie 31, bo blok ma 64 adresy.

10. Ile jedynek ma maska zapisana jako 255.255.255.192?
10. Ile jedynek ma maska zapisana jako 255.255.255.192?
11. Czym różnią się dwa adresy IP należące do tej samej podsieci?
11. Czym różnią się dwa adresy IP należące do tej samej podsieci?
12. Dla maski /26 wielkość bloku to 64 adresy. Ile dodasz do adresu sieciowego, aby otrzymać adres broadcastowy?
12. Dla maski /26 wielkość bloku to 64 adresy. Ile dodasz do adresu sieciowego, aby otrzymać adres broadcastowy?

Czy dwa adresy są w tej samej sieci?

To pytanie pada w zadaniach niemal zawsze, więc procedura musi być wyćwiczona do automatyzmu. Liczy się adres sieciowy obu adresów i porównuje. Jeśli wyszły takie same — są w tej samej sieci.

Zmiana maski zmienia odpowiedź, więc porównujemy zawsze tę samą maską.

KrokAdres pierwszyAdres drugi
Adresy192.168.10.5/26192.168.10.60/26
Czwarty oktet binarnie5 = 0000010160 = 00111100
Maska /261100000011000000
AND = adres sieciowy192.168.10.0192.168.10.0
WniosekTak, ta sama sieć — komputery widzą się bezpośrednio, bez routera
KrokAdres pierwszyAdres drugi
Adresy192.168.10.5/26192.168.10.70/26
Czwarty oktet binarnie5 = 0000010170 = 01000110
Maska /261100000011000000
AND = adres sieciowy192.168.10.0192.168.10.64
WniosekNie, różne sieci — 70 leży już w kolejnej podsieci, ruch pójdzie przez router

Podpowiedź praktyczna: jeśli oba adresy mają identyczne bity w części sieciowej, wystarczy porównać je na oku. W pierwszym przykładzie piątka i 60 mają wspólne pierwsze dwa bity 00, więc sąsiadują. Szóstka i siedemdziesiąt mają 00 i 01 — to już inna podsieć.

13. Dlaczego przy porównywaniu dwóch adresów IP trzeba użyć tej samej maski?
13. Dlaczego przy porównywaniu dwóch adresów IP trzeba użyć tej samej maski?
14. Adresy 192.168.10.5/26 i 192.168.10.60/26 — jaka jest ich relacja?
14. Adresy 192.168.10.5/26 i 192.168.10.60/26 — jaka jest ich relacja?
15. Adresy 192.168.10.5/26 i 192.168.10.70/26 — jaka jest ich relacja?
15. Adresy 192.168.10.5/26 i 192.168.10.70/26 — jaka jest ich relacja?

Adresy specjalne — których nie przypisujesz urządzeniu

ZakresNazwaDo czego służy
10.0.0.0/8prywatnyduże sieci wewnętrzne
172.16.0.0/12prywatny172.16.0.0 do 172.31.255.255, typowy wybór w szkołach
192.168.0.0/16prywatnynajczęściej widziany w domach i małych biurach
127.0.0.0/8pętla zwrotnakomputer łączy się sam z sobą; 127.0.0.1 to „localhost”
169.254.0.0/16APIPAWindows przydziela taki adres, gdy nie znajdzie serwera DHCP — sygnał, że DHCP nie działa
0.0.0.0nieokreślony„brak konkretnego adresu”, np. przed zdobyciem konfiguracji z DHCP
255.255.255.255rozgłoszenie ograniczone„wszystkie urządzenia w tej sieci”

Adresy prywatne (10/8, 172.16/12, 192.168/16) nie są routowalne w internecie — routery ich nie przepuszczają. Dzięki temu jedna sieć szkolna może mieć ten sam adres co milion innych sieci szkolnych.

Na wyjściu do internetu tłumaczy je mechanizm NAT, opisany w module 9. Klasy A i B z poprzedniej sekcji były właśnie po to, żeby wydzielić ten zakres.

16. Jaki adres przydziela Windows, gdy nie znajdzie serwera DHCP?
16. Jaki adres przydziela Windows, gdy nie znajdzie serwera DHCP?
17. Do czego służy adres 0.0.0.0?
17. Do czego służy adres 0.0.0.0?
18. Dlaczego jedna sieć szkolna może mieć ten sam adres co milion innych sieci szkolnych?
18. Dlaczego jedna sieć szkolna może mieć ten sam adres co milion innych sieci szkolnych?

Podział sieci na podsieci

Podział to operacja, która polega na pożyczeniu bitów z części hosta i przeniesieniu ich do części sieciowej. Zamiast jednej dużej sieci dostajesz kilka małych, oddzielonych routerem — dzięki temu ruch między nimi można kontrolować.

Kolejność jest zawsze taka sama i warto ją zapamiętać:

  1. Ile podsieci potrzebujesz? Wybierz liczbę bitów, żeby 2^n dawało co najmniej tyle podsieci. Cztery podsieci → 2 bitów.
  2. Ile hostów w każdej? Sprawdź, czy 2^(bitów hosta) − 2 wystarczy. Potrzebujesz 50 hostów → 6 bitów, bo 2^5 − 2 = 30 to za mało.
  3. Nowa maska to stara maska plus pożyczone bity: /24 + 2 = /26, czyli 255.255.255.192.
  4. Granice podsieci liczysz, wielokrotnie odliczając wielkość bloku. Przy /26 blok ma 64 adresy, więc granice to .0, .64, .128 i .192.
  5. Adresy w każdej podsieci to: pierwszy — sieciowy, ostatni — broadcastowy, reszta to hosty. Adres routera to zwykle pierwszy z nich.

Zauważ, co stało się z liczbą adresów: było 254 hosty, jest 248. Zniknęło osiem adresów — po dwa na podsieć, bo każda potrzebuje własnego adresu sieciowego i własnego broadcastowego. Dlatego liczba podsieci zawsze kosztuje po dwa adresy.

ZapisMaskaBlokHostów
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/29255.255.255.24886
/30255.255.255.25242 (łącza punkt–punkt)
Wzór na hosty. 2^(liczba zer w masce) − 2. Dla /26: 2^6 − 2 = 62. Odejmujesz adres sieci i adres broadcastowy, bo ich nie przypiszesz urządzeniu. Zapis /n to liczba jedynek maski, czyli liczba bitów sieciowych.

Podział pod VLAN-y wygląda tak samo — różnica jest tylko taka, że podsieci dostają różne numery VLAN, a router przypisuje do każdej podsieci osobny interfejs z własnym adresem. Zadanie „podziel 192.168.10.0/24 na cztery podsieci dla VLAN 10, 20, 30 i 40” to dokładnie ten sam rachunek: maska /26, pierwsze adresy podsieci to .0, .64, .128, .192, a interfejsy routera dostają .1, .65, .129, .193.

Testy sieci logicznej. Po adresacji: ping do bramy (twoja sieć działa), ping do sąsiedniej podsieci (routing działa), ping do nazwy (DNS działa). Kolejność ma znaczenie — testujesz od siebie na zewnątrz.
19. Ile bitów pożyczasz, aby utworzyć cztery podsieci?
19. Ile bitów pożyczasz, aby utworzyć cztery podsieci?
20. Ile użytecznych adresów hostów mieści podsieć /28?
20. Ile użytecznych adresów hostów mieści podsieć /28?
21. Sieć 192.168.10.0/24 dzielisz, pożyczając dwa bity. Jaka będzie nowa maska?
21. Sieć 192.168.10.0/24 dzielisz, pożyczając dwa bity. Jaka będzie nowa maska?

IPv6 w zarysie

IPv4 daje około 4,3 miliarda adresów i kończą się — nie dlatego, że są „za małe”, tylko dlatego, że każdy potrzebuje adresu na każdym interfejsie, w każdym miejscu i czasie. IPv6 ma 128 bitów, czyli 2^128 adresów.

Nie rozwiązuje to problemu liczby, ale jego braku.

Zapis wygląda inaczej. Adres to osiem grup po cztery cyfry szesnastkowe, rozdzielonych dwukropkami. Zawsze osiem grup — brakujące uzupełnia się zerami:

ZapisZnaczenie
2001:0db8:0000:0000:0000:ff00:0042:8329zapis pełny — osiem grup
2001:db8:0:0:0:ff00:42:8329po usunięciu zer wiodących w każdej grupie
2001:db8::ff00:42:8329po zastąpieniu najdłuższego ciągu zer podwójnym dwukropkiem

Dwie zasady skracania i jedno ograniczenie: usuwa się zera wiodące w grupie (0042 → 42), a długą serię całych zer można zastąpić podwójnym dwukropkiem — ale tylko raz w adresie, bo inaczej nie dałoby się odtworzyć, gdzie seria się kończyła. Dwa podwójne dwukropki obok siebie w adresie są zawsze błędem.

Długość zapisuje się tak samo jak w IPv4: /64 znaczy 64 bity sieciowe i 64 bity interfejsu. Podział na podsieci działa tak samo — pożyczasz bity — tylko skalą są miliony zamiast setek.

ZakresTypDo czego
2000::/3globalny jednoadresowyadresy publiczne, takie jak w IPv4
fe80::/10link-localtworzy się sam na każdym interfejsie; służy do wymiany informacji między routerami na łączu
fc00::/7unikalny lokalnyodpowiednik adresów prywatnych z IPv4
ff00::/8multicastjeden do wielu
::1pętla zwrotnaodpowiednik 127.0.0.1

Dwie różnice, które łatwo przeoczyć. Po pierwsze, w IPv6 nie ma adresu broadcastowego — jego rolę przejęło multicast, czyli ff02::1 oznacza „wszystkie węzły tego łącza”.

Nie przenoś na IPv6 reguły „odejmij dwa adresy” z IPv4 — dla /64 adres hosta to dowolny adres w obrębie prefiksu; nie ma tu adresu sieci i broadcastu do odjęcia. Po drugie, adres link-local fe80:: nadaje się sam, bez serwera DHCP — i dlatego działa zanim sieć jest w ogóle skonfigurowana.

Ile tego naprawdę potrzebujesz. Na teoretycznym egzaminie wystarczy rozróżnić: 128 bitów, osiem grup szesnastkowych, dwa znaki `::`, zakresy 2000:: i fe80:: oraz to, że nie ma broadcastu. Na praktycznym IPv6 praktycznie się nie pojawia; tam wciąż liczy się IPv4 i maski.
22. Dlaczego podwójnego dwukropka można użyć tylko raz w adresie IPv6?
22. Dlaczego podwójnego dwukropka można użyć tylko raz w adresie IPv6?
23. Jaki zakres odpowiada adresom link-local w IPv6?
23. Jaki zakres odpowiada adresom link-local w IPv6?
24. Który adres IPv6 jest adresem grupowym wszystkich węzłów tego łącza?
24. Który adres IPv6 jest adresem grupowym wszystkich węzłów tego łącza?

Pule adresów prywatnych — RFC 1918

Dokument RFC 1918 wyznacza trzy bloki adresów, które nie są routowane w internecie i można ich swobodnie używać w sieciach lokalnych:

KlasaZakresZapis CIDR
A10.0.0.0 – 10.255.255.25510.0.0.0/8
B172.16.0.0 – 172.31.255.255172.16.0.0/12
C192.168.0.0 – 192.168.255.255192.168.0.0/16
Uwaga na granice zakresów

Adresy tuż za granicą są już publiczne: 172.15.0.1 i 172.32.0.1 nie należą do puli prywatnej (pula to tylko 172.16–172.31), podobnie 192.169.1.1 i 11.0.0.1. Na egzaminie to najczęstsza pułapka w pytaniach o adresy prywatne.

25. Który z podanych adresów należy do puli prywatnej 172.16.0.0/12?
25. Który z podanych adresów należy do puli prywatnej 172.16.0.0/12?
26. Który zapis CIDR odpowiada puli prywatnej klasy B?
26. Który zapis CIDR odpowiada puli prywatnej klasy B?
27. Adres 11.0.0.1 według RFC 1918 jest adresem:
27. Adres 11.0.0.1 według RFC 1918 jest adresem:

Adresacja w praktyce: stos TCP/IP

Adresacja IP działa w obrębie stosu TCP/IP — zestawu protokołów, który faktycznie napędza internet. Jego warstwa internetowa to IP (adresy i routing), transportowa to TCP (połączeniowy, pilnuje kolejności i potwierdza odbiór) albo UDP (szybki, bez potwierdzeń), a warstwa aplikacji to m.in.

HTTP, DNS, DHCP czy SSH. Adres IP jednoznacznie wskazuje interfejs, a maska dzieli go na część sieciową i część hosta — dopiero razem pozwalają stwierdzić, czy dwa komputery są w tej samej podsieci.

28. Które protokoły należą do warstwy aplikacji stosu TCP/IP?
28. Które protokoły należą do warstwy aplikacji stosu TCP/IP?
29. Czym zajmuje się warstwa internetowa stosu TCP/IP?
29. Czym zajmuje się warstwa internetowa stosu TCP/IP?
30. Czym TCP różni się od UDP?
30. Czym TCP różni się od UDP?