Jak Obliczyć Maskę Podsieci (CIDR Wyjaśniony na Praktycznym Przykładzie)
Żeby obliczyć maskę podsieci z prefiksu CIDR, ustaw tyle bitów na 1, licząc od lewej strony liczby 32-bitowej, resztę wypełnij zerami, a potem odczytaj każdą 8-bitową grupę jako liczbę dziesiętną. Prefiks /24 ustawia pierwsze 24 bity na 1, co po konwersji daje 255.255.255.0.
Co właściwie oznacza liczba CIDR
Adres IPv4 to 32 bity, zapisywane jako cztery 8-bitowe grupy (oktety) w postaci dziesiętnej. Zapis CIDR, czyli ukośnik z liczbą po adresie w rodzaju 192.168.1.0/24, mówi, ile z tych 32 bitów jest ustalonych jako część sieciowa. Pozostałe bity należą do hostów w tej sieci.
Prefiks /24 ustala pierwsze 24 bity, zostawiając 8 bitów na hosty. Prefiks /26 ustala 26 bitów, zostawiając tylko 6. Im mniej bitów zostaje na hosty, tym mniej urządzeń zmieści się w danej sieci, a matematyka stojąca za tym to zwykła potęga dwójki: sieć z h bitami hosta ma 2^h adresów łącznie.
Obliczanie maski ręcznie: 192.168.1.0/24
Weź prefiks CIDR, czyli 24, i zapisz liczbę 32-bitową, w której pierwsze 24 bity są ustawione na 1, a ostatnie 8 na 0:
11111111.11111111.11111111.00000000
Zamień każdą 8-bitową grupę na liczbę dziesiętną. Osiem jedynek pod rząd daje 255, a osiem zer daje 0:
255 . 255 . 255 . 0
To jest maska podsieci: 255.255.255.0. Żeby otrzymać adres sieci, ustaw adres IP i maskę jeden pod drugim w postaci binarnej i wykonaj bitową operację AND, bit po bicie, zostawiając 1 tylko tam, gdzie oba wejścia mają 1:
| Oktet 1 | Oktet 2 | Oktet 3 | Oktet 4 | |
|---|---|---|---|---|
| Adres IP | 11000000 | 10101000 | 00000001 | 00000000 |
| Maska podsieci | 11111111 | 11111111 | 11111111 | 00000000 |
| Sieć (AND) | 11000000 | 10101000 | 00000001 | 00000000 |
Wynikiem jest adres sieci 192.168.1.0, w tym przypadku identyczny z adresem wejściowym, bo część hosta w oryginalnym adresie była już samymi zerami. Adres rozgłoszeniowy to operacja odwrotna: bierzesz adres sieci i ustawiasz wszystkie bity hosta na 1, co tutaj daje 192.168.1.255. Wszystko pomiędzy, czyli od 192.168.1.1 do 192.168.1.254, to adresy hostów gotowe do użycia. To 256 adresów łącznie w tym bloku, minus 2 zarezerwowane (adres sieci i adres rozgłoszeniowy), czyli 254 dostępne hosty.
Podział sieci /24 na cztery podsieci /26
Masz sieć 192.168.1.0/24 i chcesz podzielić ją na cztery mniejsze, osobne sieci, na przykład po jednej na piętro biura. Przejście z /24 na /26 pożycza 2 dodatkowe bity dla części sieciowej (26 minus 24 to 2), a 2 pożyczone bity zawsze dają 2^2 = 4 równe podsieci. Każda podsieć /26 ma 32 - 26 = 6 bitów hosta, więc mieści 2^6 = 64 adresy łącznie, z czego 62 są dostępne.
| Podsieć | Adres sieci | Zakres dostępny | Rozgłoszeniowy |
|---|---|---|---|
| 1 | 192.168.1.0/26 | 192.168.1.1 - 192.168.1.62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | 192.168.1.65 - 192.168.1.126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | 192.168.1.129 - 192.168.1.190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | 192.168.1.193 - 192.168.1.254 | 192.168.1.255 |
Każdy adres sieci przeskakuje o 64, czyli o wielkość bloku, a adres rozgłoszeniowy każdej podsieci jest dokładnie o 1 mniejszy od adresu sieci kolejnej podsieci. Ten wzorzec działa niezależnie od tego, na jaki prefiks dzielisz sieć: wielkość bloku to zawsze 2^h, gdzie h to liczba pozostałych bitów hosta, a podsieci wypełniają przestrzeń adresową bez luk i bez nakładania się.
Tabela referencyjna: CIDR i maska podsieci
Ściąga z prefiksami, na które faktycznie trafisz w praktyce, od pojedynczej trasy hosta /32 aż po blok /8:
| CIDR | Maska podsieci | Adresy łącznie | Dostępne hosty |
|---|---|---|---|
| /8 | 255.0.0.0 | 16 777 216 | 16 777 214 |
| /16 | 255.255.0.0 | 65 536 | 65 534 |
| /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 | 2 (łącze punkt-punkt) |
| /32 | 255.255.255.255 | 1 | 1 (trasa hosta) |
Oblicz z własnym adresem
Wpisz dowolny adres IPv4 i prefiks CIDR albo maskę poniżej, a rozbicie na adres sieci, rozgłoszeniowy, zakres dostępny i maskę w zapisie binarnym zaktualizuje się na bieżąco.
Częste błędy i przypadki szczególne
Zapominanie, że adres sieci i rozgłoszeniowy nie są dostępnymi hostami. Sieć /24 ma 256 adresów łącznie, ale tylko 254 z nich można faktycznie przypisać urządzeniu. To częsty błąd o jeden: planowanie pojemności według całkowitej liczby adresów zamiast dostępnej, po czym miejsce kończy się dwa adresy wcześniej, niż się spodziewano.
Traktowanie /31 i /32 jak każdego innego prefiksu. RFC 3021 czyni z /31 przypadek szczególny dla łączy punkt-punkt: oba adresy w tej parze są dostępne, bo w bloku o 2 adresach nie ma miejsca na rezerwowanie jednego pod broadcast. Prefiks /32 to pojedynczy adres sam w sobie, najczęściej spotykany jako trasa hosta albo adres loopback, i w ogóle nie ma adresu sieci ani rozgłoszeniowego do odjęcia.
Mylenie maski podsieci z maską wildcard. Maska podsieci oznacza bity sieci jedynkami, 255.255.255.0 dla /24. Maska wildcard to jej bitowa odwrotność, oznacza bity hosta jedynkami, 0.0.0.255 dla tego samego /24. Maski wildcard pojawiają się na listach kontroli dostępu w sprzęcie Cisco i podobnym, a wpisanie maski podsieci tam, gdzie urządzenie oczekuje maski wildcard (albo odwrotnie), po cichu dopasowuje niewłaściwy zestaw adresów.
Zakładanie, że maska podsieci to zawsze ciągły ciąg jedynek. Maska w rodzaju 255.0.255.0 na pierwszy rzut oka wygląda wiarygodnie, ale nie jest poprawna: bity 1 nie tworzą jednego nieprzerwanego bloku od lewej, więc w ogóle nie da się jej zapisać jako prefiksu CIDR. Prawdziwe maski podsieci to zawsze pewna liczba wiodących bitów 1, po których następują same zera, i nic więcej.
Najczęściej zadawane pytania
Jak przeliczyć maskę podsieci z powrotem na prefiks CIDR?
Policz liczbę bitów 1 w masce, czytając od lewej do prawej w postaci binarnej. 255.255.255.0 to 11111111.11111111.11111111.00000000, co daje 24 jedynki, więc jest to /24. Działa to tylko wtedy, gdy maska jest poprawnym, ciągłym ciągiem jedynek zakończonym zerami; maska w rodzaju 255.0.255.0 nie ma odpowiednika CIDR, bo jej bity nie są ciągłe.
Dlaczego pożyczanie bitów na podsieci zawsze daje potęgę dwójki? Każdy bit pożyczony z części hosta podwaja liczbę możliwych wartości, jakie ten bit może przyjąć, czyli 0 lub 1. Pożyczysz 1 bit, dostajesz 2 podsieci, pożyczysz 2, dostajesz 4, pożyczysz 3, dostajesz 8. To ten sam mechanizm, dzięki któremu bajt (8 bitów) może reprezentować 256 różnych wartości: każdy dodatkowy bit podwaja liczbę możliwości.
Jaka jest różnica między maską podsieci a bramą domyślną? Maska podsieci mówi urządzeniu, która część adresu IP to sieć, a która host, dzięki czemu urządzenie potrafi rozpoznać, czy inny adres znajduje się w jego własnej sieci lokalnej. Brama domyślna to osobne ustawienie, adres IP routera, do którego urządzenie wysyła ruch, gdy cel nie znajduje się w jego sieci lokalnej. Do tego, by urządzenie mogło dotrzeć poza własną podsieć, potrzebne są oba te ustawienia skonfigurowane poprawnie.
Czy mogę podzielić sieć na prefiks, który nie dzieli się równo, na przykład rozbić /24 na 3 sieci? Nie, nie na dokładnie 3 równe części, bo podział na podsieci zawsze dzieli blok na potęgę dwójki. Dzieląc /24, otrzymasz 2, 4, 8, 16 i tak dalej, nigdy 3. W praktyce oznacza to, że podzielisz sieć na 4 (pożyczając 2 bity) i albo zostawisz jedną podsieć /26 nieużywaną, albo podzielisz ją dalej dla mniejszego działu, zamiast próbować wymusić dokładny podział na 3.