Adres IPv4 ma 32 bity, ale sam zapis adresu nie określa jeszcze granicy sieci. Adres 192.0.2.173 może należeć do różnych podsieci w zależności od zastosowanego prefiksu. Dopiero maska podsieci, zapisana jako wartość dziesiętna lub długość prefiksu CIDR, określa, które bity identyfikują sieć, a które pozostają częścią hosta.
Dla adresu 192.0.2.173/27 można jednoznacznie wyznaczyć adres sieci, broadcast, zakres hostów i całkowitą liczbę adresów. Nie wymaga to zapamiętywania gotowych zakresów. Wszystkie wartości wynikają bezpośrednio z 32-bitowej struktury adresu IPv4 i maski.
Co dokładnie określa maska podsieci?
Adres IPv4 składa się z czterech oktetów, czyli czterech grup po 8 bitów. Łącznie daje to 32 bity:
192.0.2.173 11000000.00000000.00000010.10101101
Maska podsieci ma tę samą długość. W prawidłowym prefiksie CIDR najpierw występuje ciąg bitów o wartości 1 określających część sieciową, a po nich bity 0 odpowiadające części hosta.
Maska 255.255.255.224 wygląda binarnie następująco:
255 255 255 224 11111111.11111111.11111111.11100000
W masce znajduje się 27 jedynek, dlatego można ją zapisać krócej jako /27. Pierwsze 27 bitów adresu należy do prefiksu sieciowego, natomiast pozostałe 5 bitów może zmieniać się wewnątrz tej podsieci.
Maska nie jest więc dodatkowym adresem ani numerem routera. Jest wzorcem bitowym pozwalającym rozdzielić adres IPv4 na część sieciową i część hosta.
Maska podsieci a zapis CIDR
W zapisie CIDR po adresie umieszcza się ukośnik i liczbę bitów należących do prefiksu. Zamiast zapisywać:
adres IP: 192.0.2.173 maska: 255.255.255.224
można zapisać:
192.0.2.173/27
Oba zapisy przekazują tę samą informację o długości części sieciowej. Nie każdy prefiks kończy się jednak na granicy oktetu. Dla /8, /16 czy /24 konwersja jest oczywista, ponieważ kolejne oktety maski zawierają wyłącznie osiem jedynek albo osiem zer.
| Prefiks | Maska | Bity sieci | Bity hosta |
|---|---|---|---|
| /8 | 255.0.0.0 | 8 | 24 |
| /16 | 255.255.0.0 | 16 | 16 |
| /20 | 255.255.240.0 | 20 | 12 |
| /24 | 255.255.255.0 | 24 | 8 |
| /27 | 255.255.255.224 | 27 | 5 |
| /30 | 255.255.255.252 | 30 | 2 |
Współczesne adresowanie nie wymaga dopasowywania sieci do historycznych klas A, B lub C. CIDR umożliwia użycie prefiksu o długości odpowiadającej rzeczywistej wielkości potrzebnego zakresu, np. /20, /23, /27 lub /29.
Jak obliczyć adres sieci z adresu IP i maski?
Adres sieci jest wynikiem operacji bitowej AND wykonanej pomiędzy adresem IPv4 i maską podsieci. Bit wyniku ma wartość 1 tylko wtedy, gdy odpowiadający mu bit adresu oraz maski również ma wartość 1.
Rozpatrzmy adres:
192.0.2.173/27
Prefiks /27 odpowiada masce:
255.255.255.224
Pierwsze trzy oktety maski mają wartość 255, dlatego pozostają bez zmian. Obliczenia trzeba wykonać dla ostatniego oktetu:
adres IP: 173 = 10101101
maska: 224 = 11100000
--------
AND: 10100000 = 160
Adres sieci wynosi więc:
192.0.2.160/27
Wynik nie zależy od przyjętej metody obliczeń. Metoda oparta na wielkości bloku, często stosowana do szybkiego subnettingu, jest jedynie skrótem prowadzącym do tego samego wyniku, który wynika z operacji AND.
Polecany artykuł: Firma otwiera drugi oddział – jak zaplanować wspólną sieć, telefonię i dostęp do danych?
Jak obliczyć adres broadcast i zakres hostów?
W zwykłej podsieci IPv4 adres sieci ma wszystkie bity części hosta ustawione na 0. Adres broadcast otrzymuje się po ustawieniu wszystkich bitów części hosta na 1.
Dla prefiksu /27 część hosta ma długość 5 bitów. Adres sieci z poprzedniego przykładu kończył się binarnie:
10100000 = 160
Pierwsze trzy bity ostatniego oktetu należą do sieci. Pięć pozostałych można zmieniać. Po ustawieniu ich na 1 otrzymujemy:
10111111 = 191
Pełny zakres wynosi zatem:
- adres sieci: 192.0.2.160,
- pierwszy adres hosta: 192.0.2.161,
- ostatni adres hosta: 192.0.2.190,
- broadcast: 192.0.2.191.
Adresy od 192.0.2.160 do 192.0.2.191 tworzą jeden blok 32 adresów. W klasycznej podsieci wielodostępowej pierwszy z nich identyfikuje sieć, a ostatni jest adresem rozgłoszeniowym. Do zwykłego adresowania interfejsów pozostaje 30 adresów.
Jak obliczyć liczbę hostów w podsieci?
Długość adresu IPv4 jest stała i wynosi 32 bity. Jeżeli prefiks ma długość p, liczba bitów pozostających dla części hosta wynosi:
h = 32 – p
Liczba różnych kombinacji tych bitów wynosi:
2h
Dla zwykłych podsieci IPv4 od /0 do /30 klasyczna liczba adresów dostępnych dla hostów jest obliczana jako:
2h – 2
Odjęcie dwóch adresów wynika z rezerwacji kombinacji z samymi zerami dla adresu sieci oraz kombinacji z samymi jedynkami dla adresu broadcast.
Dla /27 pozostaje 5 bitów hosta:
h = 32 - 27 = 5 2^5 = 32 adresy 32 - 2 = 30 adresów hostów
Dla /24 pozostaje 8 bitów hosta:
2^8 = 256 adresów 256 - 2 = 254 adresy hostów
Dla /20 pozostaje 12 bitów:
2^12 = 4096 adresów 4096 - 2 = 4094 adresy hostów
Wzoru 2h – 2 nie należy jednak bezwarunkowo stosować do /31 i /32. Prefiksy te mają inne zastosowanie i wymagają osobnego potraktowania.
Tabela masek podsieci IPv4
Poniższa tabela pokazuje zależność pomiędzy długością prefiksu, maską dziesiętną i wielkością bloku adresowego. Kolumna z liczbą standardowych hostów odnosi się do typowej podsieci IPv4. Dla /31 i /32 obowiązują zasady opisane dalej.
| CIDR | Maska podsieci | Wszystkie adresy | Standardowe adresy hostów |
|---|---|---|---|
| /16 | 255.255.0.0 | 65 536 | 65 534 |
| /17 | 255.255.128.0 | 32 768 | 32 766 |
| /18 | 255.255.192.0 | 16 384 | 16 382 |
| /19 | 255.255.224.0 | 8192 | 8190 |
| /20 | 255.255.240.0 | 4096 | 4094 |
| /21 | 255.255.248.0 | 2048 | 2046 |
| /22 | 255.255.252.0 | 1024 | 1022 |
| /23 | 255.255.254.0 | 512 | 510 |
| /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 |
| /31 | 255.255.255.254 | 2 | specjalne zastosowanie point-to-point |
| /32 | 255.255.255.255 | 1 | pojedynczy adres |
Jak dobrać maskę do wymaganej liczby urządzeń?
Obliczenie można wykonać również w przeciwnym kierunku. Jeżeli wiadomo, ile interfejsów ma otrzymać adres, trzeba znaleźć najmniejszą liczbę bitów hosta, która zapewnia wystarczająco duży blok.
Załóżmy, że podsieć ma obsłużyć 50 urządzeń. Pięć bitów hosta daje:
2^5 = 32 adresy 30 standardowych adresów hostów
Taki blok jest za mały. Sześć bitów daje:
2^6 = 64 adresy 62 standardowe adresy hostów
Potrzebnych jest więc 6 bitów części hosta. Długość prefiksu wynosi:
32 - 6 = 26
Najmniejszą klasyczną podsiecią mieszczącą 50 hostów jest zatem /26, czyli maska 255.255.255.192.
Przy projektowaniu rzeczywistej sieci liczba aktualnie podłączonych urządzeń nie powinna być jedynym kryterium. Trzeba uwzględnić także adresy infrastruktury, przyszłą rozbudowę, urządzenia zarządzające, interfejsy wirtualne oraz sposób segmentacji sieci. Sama matematyczna możliwość umieszczenia 62 hostów w /26 nie oznacza, że zawsze należy wypełniać taki zakres do granicy pojemności.
Jak szybko liczyć maski /25, /26, /27 i /28?
Po zrozumieniu operacji binarnej można korzystać z szybszej metody opartej na wielkości bloku. Dla oktetu maski, który nie jest równy 0 ani 255, wielkość bloku można obliczyć jako:
256 – wartość oktetu maski
Dla maski /27:
255.255.255.224 256 - 224 = 32
Podsieci w ostatnim oktecie zaczynają się więc co 32 adresy:
0 32 64 96 128 160 192 224
Adres 192.0.2.173 znajduje się pomiędzy 160 a 191, dlatego należy do podsieci 192.0.2.160/27. Kolejna podsieć rozpoczyna się od 192.0.2.192.
Ta sama metoda działa dla innych długości prefiksu:
| Prefiks | Istotny oktet maski | Wielkość bloku |
|---|---|---|
| /25 | 128 | 128 |
| /26 | 192 | 64 |
| /27 | 224 | 32 |
| /28 | 240 | 16 |
| /29 | 248 | 8 |
| /30 | 252 | 4 |
Metoda blokowa jest szybka, ale nie zastępuje definicji maski. Liczby 128, 192, 224 czy 240 wynikają bezpośrednio z kolejnych kombinacji jedynek w binarnym oktecie maski.
Jak obliczyć podsieć, gdy prefiks nie kończy się w ostatnim oktecie?
Subnetting nie zawsze dotyczy ostatniego oktetu. Rozpatrzmy adres prywatny:
10.42.73.190/20
Maska /20 wynosi:
255.255.240.0
Zmiana granicy sieci następuje w trzecim oktecie. Wartość 240 daje blok:
256 - 240 = 16
Możliwe początki bloków trzeciego oktetu to:
0, 16, 32, 48, 64, 80, 96, 112...
Wartość 73 znajduje się w bloku zaczynającym się od 64. Adres sieci wynosi więc:
10.42.64.0/20
Blok kończy się bezpośrednio przed następną podsiecią, która rozpoczyna się od 10.42.80.0. Ostatnim adresem bieżącej podsieci jest zatem 10.42.79.255.
- adres sieci: 10.42.64.0,
- pierwszy host: 10.42.64.1,
- ostatni host: 10.42.79.254,
- broadcast: 10.42.79.255,
- liczba wszystkich adresów: 4096,
- standardowa liczba adresów hostów: 4094.
Ten sam wynik można potwierdzić binarnie. Trzeci oktet adresu 73 ma wartość 01001001, natomiast trzeci oktet maski 240 ma wartość 11110000:
73 = 01001001
240 = 11110000
--------
AND 01000000 = 64
Operacja AND ponownie prowadzi do adresu 10.42.64.0.
Jak sprawdzić, czy dwa adresy IP są w tej samej podsieci?
Dwa adresy należą do tej samej podsieci przy danej masce, jeżeli po wykonaniu operacji AND z tą maską otrzymują ten sam adres sieci.
Rozpatrzmy:
192.0.2.173/27 192.0.2.188/27
Oba adresy znajdują się w zakresie 192.0.2.160-192.0.2.191. Po zastosowaniu maski 255.255.255.224 oba prowadzą do:
192.0.2.160/27
Są więc w tej samej podsieci.
Jeżeli drugi adres zmienimy na:
192.0.2.200/27
jego adres sieci wyniesie 192.0.2.192/27. Host 192.0.2.173/27 i host 192.0.2.200/27 znajdują się zatem w różnych podsieciach, mimo że pierwsze trzy oktety ich adresów są identyczne.
To właśnie dlatego porównywanie wyłącznie początkowych oktetów adresu jest niewystarczające. Przy prefiksach takich jak /20, /23, /26 czy /27 granica podsieci przebiega wewnątrz oktetu.
Maska podsieci a decyzja o wysłaniu pakietu do routera
Maska jest potrzebna hostowi nie tylko do opisania własnej konfiguracji. Pozwala również określić, czy docelowy adres IPv4 znajduje się w lokalnej podsieci.
Host może zastosować swoją maskę do własnego adresu oraz do adresu docelowego. Jeżeli oba wyniki wskazują tę samą sieć, cel jest traktowany jako lokalny. Jeżeli prefiksy są różne, ruch musi zostać skierowany zgodnie z tablicą routingu, najczęściej przez bramę domyślną.
Przykładowy host:
IP: 192.0.2.173 maska: 255.255.255.224 prefiks: /27
Adres 192.0.2.180 należy do tej samej sieci 192.0.2.160/27. Adres 192.0.2.220 należy już do 192.0.2.192/27. W drugim przypadku potrzebny jest routing pomiędzy podsieciami.
Ta zależność ma znaczenie również przy segmentacji VLAN. Sam VLAN rozdziela domeny warstwy drugiej, natomiast komunikacja pomiędzy odpowiadającymi im podsieciami IPv4 wymaga urządzenia wykonującego routing.
VLSM – różne maski w obrębie jednej puli adresowej
CIDR pozwala dzielić większą pulę na podsieci o różnych rozmiarach. Mechanizm ten określa się jako VLSM – Variable Length Subnet Masking. Nie ma technicznej potrzeby, aby każda wydzielona sieć otrzymywała blok tej samej wielkości.
Przykładowy blok 192.168.50.0/24 zawiera 256 adresów. Można go podzielić między kilka segmentów o różnych wymaganiach:
| Podsieć | Zakres | Wszystkie adresy | Standardowe hosty |
|---|---|---|---|
| 192.168.50.0/25 | 192.168.50.0-192.168.50.127 | 128 | 126 |
| 192.168.50.128/26 | 192.168.50.128-192.168.50.191 | 64 | 62 |
| 192.168.50.192/27 | 192.168.50.192-192.168.50.223 | 32 | 30 |
| 192.168.50.224/28 | 192.168.50.224-192.168.50.239 | 16 | 14 |
| 192.168.50.240/28 | 192.168.50.240-192.168.50.255 | 16 | 14 |
Wszystkie te podsieci mieszczą się w pierwotnym bloku /24, ale każda ma własny prefiks. Większy segment może otrzymać /25, a niewielka sieć urządzeń infrastrukturalnych /28. Pozwala to ograniczyć marnowanie adresów i dopasować wielkość poszczególnych podsieci do ich przeznaczenia.
Przy takim podziale trzeba zachować granice bloków wynikające z długości prefiksu. Sieć /26 zajmuje 64 kolejne adresy i musi rozpoczynać się na prawidłowej granicy bloku, np. .0, .64, .128 lub .192 w ostatnim oktecie. Nie można utworzyć poprawnej sieci /26 zaczynającej się od dowolnego adresu, np. 192.168.50.100.
Dlaczego /31 nie ma klasycznego adresu sieci i broadcast?
Prefiks /31 pozostawia tylko jeden bit części hosta. Blok zawiera więc dokładnie dwa adresy. Gdyby zastosować standardowy model z adresem sieci oraz broadcast, żaden adres nie pozostałby dla interfejsów.
RFC 3021 definiuje wykorzystanie prefiksów /31 na łączach IPv4 point-to-point. W takim połączeniu nie ma potrzeby rozgłaszania pakietów do wielu hostów w jednym segmencie. Oba adresy bloku mogą reprezentować dwa końce łącza.
Przykładowy blok:
192.0.2.10/31
obejmuje dwa adresy:
192.0.2.10 192.0.2.11
Na zgodnym z RFC 3021 łączu point-to-point oba mogą zostać wykorzystane jako adresy interfejsów. W porównaniu z /30 zmniejsza to zużycie przestrzeni adresowej z czterech do dwóch adresów na pojedyncze połączenie.
Z tego powodu mechaniczne zastosowanie wzoru 2h – 2 dałoby dla /31 wynik zerowy i nie opisywałoby rzeczywistego zastosowania takiego prefiksu.
Co oznacza prefiks /32?
Maska /32 ma wszystkie 32 bity ustawione na 1:
255.255.255.255
Nie pozostaje ani jeden bit części hosta, dlatego prefiks opisuje dokładnie jeden adres IPv4. W tablicach routingu /32 jest używany jako trasa do pojedynczego hosta. Takie prefiksy występują również przy adresowaniu interfejsów logicznych i loopback oraz w konfiguracjach, w których trzeba wskazać dokładnie jeden adres, a nie cały zakres.
Przykład:
192.0.2.173/32
oznacza wyłącznie adres 192.0.2.173. Nie jest to klasyczna podsieć zawierająca osobny adres sieci, zakres hostów i broadcast.
Prywatne zakresy IPv4 również można dzielić dowolnymi prefiksami CIDR
RFC 1918 przeznacza do użycia w sieciach prywatnych trzy bloki IPv4:
- 10.0.0.0/8,
- 172.16.0.0/12,
- 192.168.0.0/16.
Są to pule, a nie obowiązkowe rozmiary sieci lokalnej. Użycie przestrzeni 10.0.0.0/8 nie oznacza, że wszystkie urządzenia przedsiębiorstwa powinny pracować w jednej podsieci /8. Z takiego bloku można wydzielić mniejsze sieci, np. 10.20.10.0/24, 10.20.20.0/24, 10.20.30.0/26 czy 10.20.40.0/27.
To długość konkretnego prefiksu przypisanego do interfejsu określa lokalną podsieć. Zakres RFC 1918 informuje natomiast, że dany adres pochodzi z przestrzeni przeznaczonej do prywatnego użycia i nie jest zwykłym globalnym adresem IPv4 routowanym w publicznym Internecie.
Źródła
- RFC 4632 – Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan
- RFC 3021 – Using 31-Bit Prefixes on IPv4 Point-to-Point Links
- RFC 1918 – Address Allocation for Private Internets
- RFC 5737 – IPv4 Address Blocks Reserved for Documentation
- Princeton University – COS 461 Computer Networks, Network Layer
- University of Cambridge – Computer Networking 2025-26, course materials

