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 bitu | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Najwięcej, gdy użyto tylko tych bitów | 128 | 192 | 224 | 240 | 248 | 252 | 254 | 255 |
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.
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ą.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ą.
| Klasa | Pierwszy oktet | Wzór bitów | Maska | Hostów w sieci | Po co |
|---|---|---|---|---|---|
| A | 1–126 | 0xxxxxxx | /8 | 16 777 214 | bardzo duże organizacje |
| B | 128–191 | 10xxxxxx | /16 | 65 534 | średnie sieci, szkoły |
| C | 192–223 | 110xxxxx | /24 | 254 | małe sieci, domyślne w klasycznym LAN |
| D | 224–239 | 1110xxxx | — | — | multicast, czyli jeden do wielu |
| E | 240–254 | 1111xxxx | — | — | 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.
/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”.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.
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.
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ą.
| Krok | Adres pierwszy | Adres drugi |
|---|---|---|
| Adresy | 192.168.10.5/26 | 192.168.10.60/26 |
| Czwarty oktet binarnie | 5 = 00000101 | 60 = 00111100 |
| Maska /26 | 11000000 | 11000000 |
| AND = adres sieciowy | 192.168.10.0 | 192.168.10.0 |
| Wniosek | Tak, ta sama sieć — komputery widzą się bezpośrednio, bez routera | |
| Krok | Adres pierwszy | Adres drugi |
|---|---|---|
| Adresy | 192.168.10.5/26 | 192.168.10.70/26 |
| Czwarty oktet binarnie | 5 = 00000101 | 70 = 01000110 |
| Maska /26 | 11000000 | 11000000 |
| AND = adres sieciowy | 192.168.10.0 | 192.168.10.64 |
| Wniosek | Nie, 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ć.
Adresy specjalne — których nie przypisujesz urządzeniu
| Zakres | Nazwa | Do czego służy |
|---|---|---|
| 10.0.0.0/8 | prywatny | duże sieci wewnętrzne |
| 172.16.0.0/12 | prywatny | 172.16.0.0 do 172.31.255.255, typowy wybór w szkołach |
| 192.168.0.0/16 | prywatny | najczęściej widziany w domach i małych biurach |
| 127.0.0.0/8 | pętla zwrotna | komputer łączy się sam z sobą; 127.0.0.1 to „localhost” |
| 169.254.0.0/16 | APIPA | Windows przydziela taki adres, gdy nie znajdzie serwera DHCP — sygnał, że DHCP nie działa |
| 0.0.0.0 | nieokreślony | „brak konkretnego adresu”, np. przed zdobyciem konfiguracji z DHCP |
| 255.255.255.255 | rozgł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.
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ć:
- Ile podsieci potrzebujesz? Wybierz liczbę bitów, żeby 2^n dawało co najmniej tyle podsieci. Cztery podsieci → 2 bitów.
- 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.
- Nowa maska to stara maska plus pożyczone bity: /24 + 2 = /26, czyli 255.255.255.192.
- Granice podsieci liczysz, wielokrotnie odliczając wielkość bloku. Przy /26 blok ma 64 adresy, więc granice to .0, .64, .128 i .192.
- 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.
| Zapis | Maska | Blok | Hostów |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 (łącza punkt–punkt) |
/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.
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:
| Zapis | Znaczenie |
|---|---|
2001:0db8:0000:0000:0000:ff00:0042:8329 | zapis pełny — osiem grup |
2001:db8:0:0:0:ff00:42:8329 | po usunięciu zer wiodących w każdej grupie |
2001:db8::ff00:42:8329 | po 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.
| Zakres | Typ | Do czego |
|---|---|---|
| 2000::/3 | globalny jednoadresowy | adresy publiczne, takie jak w IPv4 |
| fe80::/10 | link-local | tworzy się sam na każdym interfejsie; służy do wymiany informacji między routerami na łączu |
| fc00::/7 | unikalny lokalny | odpowiednik adresów prywatnych z IPv4 |
| ff00::/8 | multicast | jeden do wielu |
| ::1 | pętla zwrotna | odpowiednik 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.
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:
| Klasa | Zakres | Zapis CIDR |
|---|---|---|
| A | 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 |
| B | 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 |
| C | 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 |
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.
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.