Przykład:
IP: 128.42.5.4
Binarnie: 10000000 00101010 00000101 00000100
Podsieć: 255.255.248.0
Jak określić prefiks, numer sieci, podsieci i hosta?
Przykład:
IP: 128.42.5.4
Binarnie: 10000000 00101010 00000101 00000100
Podsieć: 255.255.248.0
Jak określić prefiks, numer sieci, podsieci i hosta?
Odpowiedzi:
Konwertuj reprezentację maski dziesiętnej z kropkami na binarną. Następnie policz liczbę sąsiadujących 1 bitów, zaczynając od najbardziej znaczącego bitu w pierwszym oktecie (tj. Po lewej stronie liczby binarnej).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Prefiks 128.42.5.4 z maską sieciową 255.255.248.0 to / 21.
Adres sieciowy jest logicznym ORAZ odpowiednich bitów w binarnej reprezentacji adresu IP i maski sieci. Wyrównaj bity w obu adresach i wykonaj logiczne ORAZ na każdej parze odpowiednich bitów. Następnie przekonwertuj poszczególne oktety wyniku z powrotem na dziesiętny.
Tabela logiczna i prawda:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Jak widać, adres sieciowy 128.42.5.4/21 to 128.42.0.0
Adres rozgłoszeniowy konwertuje wszystkie bity hosta na 1 s ...
Pamiętaj, że nasz adres IP w systemie dziesiętnym to:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Maska sieci to:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Oznacza to, że nasze bity hosta to ostatnie 11 bitów adresu IP, ponieważ odnajdujemy maskę hosta poprzez odwrócenie maski sieci:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Aby obliczyć adres rozgłoszeniowy, zmuszamy wszystkie bity hosta do 1s:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Nie podano wystarczających informacji do obliczenia podsieci dla tej sieci; zgodnie z ogólną zasadą budujesz podsieci, przenosząc niektóre bity hosta jako bity sieciowe dla każdej podsieci. Wiele razy nie ma jednego właściwego sposobu na podsieć bloku ... w zależności od twoich ograniczeń, może istnieć kilka ważnych sposobów na podsieci blok adresów.
Załóżmy, że podzielimy 128.42.0.0/21 na 4 podsieci, które muszą pomieścić co najmniej 100 hostów w każdym ...
W tym przykładzie wiemy, że potrzebujesz co najmniej prefiksu / 25, aby pomieścić 100 hostów; Wybrałem / 24, ponieważ spada na granicę oktetu. Zauważ, że adres sieciowy dla każdej podsieci pożycza bity hosta z nadrzędnego bloku sieciowego.
Skąd wiedziałem, że potrzebuję co najmniej 25 długości masowych na 100 hostów? Oblicz prefiks, wykonując kopię zapasową liczby bitów hosta wymaganych dla 100 hostów. Potrzebnych jest 7 bitów hosta, aby pomieścić 100 hostów. Oficjalnie oblicza się to z:
Bity hosta = log 2 (liczba hostów) = log 2 (100) = 6,643
Ponieważ adresy IPv4 mają szerokość 32 bitów, a my używamy bitów hosta (tj. Bitów najmniej znaczących), po prostu odejmij 7 od 32, aby obliczyć minimalny prefiks podsieci dla każdej podsieci ... 32 - 7 = 25.
Ponieważ chcemy tylko czterech podsieci z całego bloku 128.42.0.0/21, moglibyśmy użyć / 23 podsieci. Wybrałem / 23, ponieważ potrzebujemy 4 podsieci ... tj. Dodatkowe dwa bity dodane do maski sieci.
Jest to równie poprawna odpowiedź na ograniczenie, przy użyciu / 23 podsieci 128.42.0.0/21 ...
To, co już zrobiliśmy powyżej ... po prostu ponownie użyj maski hosta z pracy, którą wykonaliśmy, gdy obliczyliśmy adres emisji 128.42.5.4/21 ... Tym razem użyję 1s h
, ponieważ potrzebujemy aby ponownie wykonać logiczne AND na adresie sieciowym.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
Aby znaleźć maksymalną liczbę hostów, spójrz na liczbę bitów binarnych w powyższym numerze hosta. Najłatwiej to zrobić, odejmując długość maski sieci od 32 (liczba bitów w adresie IPv4). Daje to liczbę bitów hosta w adresie. W tym momencie...
Maksymalna liczba hostów = 2 ** (32 - długość maski sieci) - 2
Odejmujemy 2 powyżej dlatego, że numery hostów z zerami i zerami są zarezerwowane. Numer hosta z zerami to numer sieci; jedyny numer hosta to adres emisji.
Korzystając z przykładowej podsieci 128.42.0.0/21 powyżej, liczba hostów wynosi ...
Maksymalna liczba hostów = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046
Załóżmy, że ktoś podaje nam dwa adresy IP i oczekuje, że znajdziemy najdłuższą maskę sieci, która zawiera oba z nich; na przykład co gdybyśmy mieli:
Najłatwiej jest przekonwertować oba pliki na binarne i poszukać najdłuższego ciągu bitów sieciowych z lewej strony adresu.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
W takim przypadku maksymalna maska sieci (minimalna maska hosta) to / 25
UWAGA: Jeśli spróbujesz zacząć od prawej strony, nie daj się oszukać tylko dlatego, że znajdziesz jedną pasującą kolumnę bitów; mogą istnieć niepasujące bity poza tymi pasującymi bitami. Szczerze mówiąc, najbezpieczniej jest zacząć od lewej strony.
Powyższa odpowiedź idealnie uderza w gwóźdź na głowie. Jednak kiedy zaczynałem, wziąłem kilka różnych przykładów z kilku źródeł, aby naprawdę trafić do domu. Dlatego, jeśli interesują Cię inne przykłady, napisałem kilka postów na ten temat - http://www.oznetnerd.com/category/subnetting/
Administratorzy, jeśli ten post jest uważany za spam, możesz go usunąć.
Edycja: Zgodnie z sugestią YLearn, spróbuję pobrać odpowiednie części z części 1 mojej serii, nie wklejając tutaj całego wpisu.
Jako przykład weźmy 195.70.16.159/30.
Ponieważ jest to / 30, wiemy, że część hosta będzie w czwartym oktecie. Przekształćmy to w binarne:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Teraz, aby dowiedzieć się, jaki jest adres sieciowy, dodajemy razem bity SN, które mają 1 pod nimi. (128 + 16 + 8 + 4 = 156).
Po dodaniu 156 do pierwszych trzech oktetów adresu pozostaje nam adres sieciowy 195.70.16.156.
Ponieważ wiemy, że pierwszym użytecznym adresem jest zawsze adres sieciowy plus jeden, wystarczy wykonać następujące obliczenia: (156 + 1 = 157).
To daje nam pierwszy użyteczny adres 195.70.16.157.
Teraz pomińmy na chwilę ostatni użyteczny adres i znajdź adres rozgłoszeniowy. Aby dowiedzieć się, co to jest, wystarczy dodać wszystkie bity H razem (niezależnie od tego, czy są to 1 czy 0), a następnie dodać ten numer do adresu sieciowego. (2 + 1 + 156 = 159).
To daje nam adres rozgłoszeniowy 195.70.16.159.
Na koniec ustalmy ostatni użyteczny adres. Ten proces jest podobny do znalezienia pierwszego użytecznego adresu, jednak zamiast dodawać jeden do adresu sieciowego, w rzeczywistości odejmujemy jeden od adresu rozgłoszeniowego. (159-1 = 158).
To daje nam ostatni użyteczny adres 195.70.16.158.
Mamy to! Nasza temaplte jest kompletna. Dla ułatwienia, oto znowu:
Jako skrót możesz także użyć tej formuły. Działa w podsieciach o dowolnym rozmiarze:
Nie chcę niczego odbierać od doskonałej odpowiedzi Mike'a Penningtona , którą nieustannie promowałem, ale wciąż widzę pytania, na które odpowiedź nie odnosi się bezpośrednio, i stworzyłem coś, co pierwotnie opierało się na odpowiedzi Mike'a, ale mam więcej informacji, aby odpowiedzieć na pytania, które pojawiły się z czasem. Niestety jest za duży i musiałem podzielić go na dwie odpowiedzi.
Biorąc pod uwagę adres IPv4 i maskę sieci IPv4 (maskę sieci można również uzyskać na podstawie długości maski sieci lub maski hosta), możesz określić wiele informacji na temat sieci IPv4: Adres sieci, Adres rozgłoszeniowy sieci, Całkowita liczba adresów hosta, Całkowita użyteczna Adresy hosta, pierwszy użyteczny adres hosta i ostatni użyteczny adres hosta.
Nie mogę wystarczająco podkreślić, że musisz wykonać matematykę IPv4 w systemie binarnym. Myślę, że każdy inżynier sieci (lub potencjalny inżynier sieci) próbował znaleźć sposób na zrobienie tego wszystkiego w systemie dziesiętnym, ponieważ jestem pewien, że to zrobisz *. Problem polega na tym, że 10 (dziesiętna) nie jest potęgą 2 (binarna), więc dziesiętna i binarna nie przekształcają się naturalnie między sobą w sposób, w jaki szesnastkowa (podstawa 16) naturalnie konwertuje na i z binarnej, ponieważ 16 jest potęgą 2 .
Wydaje się, że stosowanie notacji dziesiętnej z kropkami w IPv4 było wczesnym błędem, którego nie można teraz naprawić, ale IPv6 od samego początku stosował szesnastkę i łatwo jest konwertować między szesnastkową a binarną.
Jeśli nie masz kalkulatora IP (prawdopodobnie niedozwolonego w egzaminach z edukacji sieciowej lub testach certyfikacyjnych), warto sporządzić wykres wartości bitów w oktecie. Ponieważ jest to wartość binarna, każda wartość bitu jest 2 razy taka sama jak wartość cyfry w następnej mniej znaczącej cyfrze. Każda cyfra jest liczbą podstawową razy tę samą wartość cyfry w następnej mniej znaczącej cyfrze. Dotyczy to również każdej innej podstawy liczbowej, w tym dziesiętnej (podstawa 10), gdzie każda cyfra jest 10-krotnością wartości tej samej cyfry w następnej mniej znaczącej pozycji liczbowej. W przypadku cyfr binarnych (bitów):
---------------------------------------------------------
| Bit # | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
| Value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---------------------------------------------------------
Tam, gdzie dziesiętny dotyczy potęg 10, binarny dotyczy potęg 2. Zwróć uwagę, że dla każdej liczby bitów w powyższej tabeli odpowiadająca jej wartość wynosi 2 do potęgi liczby bitowej.
For our example IPv4 dotted-decimal address of 198.51.100.223:
1st octet: 198 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 11000110
2nd octet: 51 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 00110011
3rd octet: 100 = 0 + 64 + 32 + 0 + 0 + 4 + 0 + 0 = 01100100
4th octet: 223 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 11011111
For our example IPv4 binary address of 11000110001100110110010011011111:
1st octet: 11000110 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 198
2nd octet: 00110011 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 51
3rd octet: 01100100 = 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 100
4th octet: 11011111 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 223
Będziesz także musiał pamiętać swoje tablice prawdy ze szkoły (w matematyce binarnej 0 to False, a 1 to True):
-----------------------------------------
| False AND False = False | 0 AND 0 = 0 |
-----------------------------------------
| False AND True = False | 0 AND 1 = 0 |
-----------------------------------------
| True AND False = False | 1 AND 0 = 0 |
-----------------------------------------
| True AND True = True | 1 AND 1 = 1 |
-----------------------------------------
-----------------------------------------
| False OR False = False | 0 OR 0 = 0 |
-----------------------------------------
| False OR True = True | 0 OR 1 = 1 |
-----------------------------------------
| True OR False = True | 1 OR 0 = 1 |
-----------------------------------------
| True OR True = True | 1 OR 1 = 1 |
-----------------------------------------
* Jeśli wykonujesz matematykę IPv4 przez wiele lat, możesz dojść do punktu, w którym możesz wykonywać binarne / dziesiętne konwersje w swojej głowie, a wtedy możesz sprawiać wrażenie, że możesz wykonywać matematykę IPv4 w systemie dziesiętnym. Mimo że mogę to zrobić w mojej głowie, zawsze sprawdzę dwukrotnie za pomocą kalkulatora IP lub przekonwertuję na binarny, wykonam obliczenia matematyczne i przeliczę z powrotem na dziesiętne, zanim dokonam zmiany w sieci produkcyjnej.
Np. Kropkowo-dziesiętny zapis IPv4 198.51.100.223
ma na celu po prostu ułatwić ludziom odczytanie adresu IPv4. Cztery oddzielne sekcje, zwane oktetami, naprawdę nie mają znaczenia dla IPv4. Nie popełniajcie powszechnego błędu myślenia, że oktety mają specjalne znaczenie. Adres IPv4 jest tak naprawdę 32-bitową liczbą binarną i tak właśnie urządzenia sieciowe widzą i używają adresu IPv4.
Nasz przykładowy adres IPv4 198.51.100.223
jest w rzeczywistości 11000110001100110110010011011111
urządzeniem w sieci, więc możesz zobaczyć, że reprezentacja kropkowo-dziesiętna naprawdę ułatwia ludziom. Każdy oktet to osiem bitów adresu 32-bitowego (stąd powszechnie używany termin „oktet”), więc są cztery oktety ( 32 address bits / 8 bits per octet = 4 octets
). Nasz przykładowy 32-bitowy adres binarny jest podzielony na cztery oktety, a następnie każdy oktet binarny jest konwertowany na liczbę dziesiętną *:
Binary address: 11000110001100110110010011011111
---------------------------------------------
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
Decimal octets: | 198 | 51 | 100 | 223 |
---------------------------------------------
Dotted-decimal: 198.51.100.223
Ponieważ każdy oktet ma osiem bitów długości, każdy oktet będzie miał wartość pomiędzy 0
i 255
(wszelkie wartości większe niż 255
są nieprawidłowe). Powodem jest to, że 2^8 = 256
: 2
(baza liczb binarnych) do potęgi 8
(osiem bitów na oktet) jest równa 256
liczbie różnych wartości, które mogą być wyrażone przez ośmiobitowy oktet. Pamiętaj, że pierwsza wartość to 0
, więc 256
ta wartość będzie o jeden mniejsza od całkowitej liczby wartości, które można wyrazić ( 256 – 1 = 255
).
Aby poprawnie wykonać matematykę IPv4, musisz to zrobić binarnie, w przeciwnym razie popełnisz błędy, które spowodują problemy i frustrację. Oznacza to, że musisz przekonwertować kropkowany zapis dziesiętny na binarny przed próbą manipulacji:
Dotted-decimal: 198.51.100.223
---------------------------------------------
Decimal octets: | 198 | 51 | 100 | 223 |
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
---------------------------------------------
Binary address: 11000110001100110110010011011111
* Zera wiodące w adresie IPv4 z kropkami dziesiętnymi mogą być interpretowane przez niektóre aplikacje i języki programowania jako ósemkowe (podstawa 8) zamiast dziesiętnych (podstawa 10), powodując błędy, i należy unikać zer wiodących w reprezentacji kropkowanej dziesiętnej IPv4, ale zera wiodące są niezbędne dla binarnych oktetów adresu IPv4, ponieważ reprezentują pozycje bitów w pełnym adresie, a pominięcie pozycji bitu skróci adres i zmieni wartość binarną.
Maska sieci IPv4 służy do podziału adresu IPv4 na dwie części: część sieci i część hosta. Podział może mieć dowolną liczbę bitów, więc może mieścić się w oktecie, a nie na granicy oktetu, jak wiele osób błędnie zakłada, że zawsze. Maska sieci IPv4 ma ten sam rozmiar co adres IPv4 (32 bity) i jest wyrażana w notacji dziesiętnej z kropkami w taki sam sposób, jak w przypadku wyrażenia adresu IPv4 w notacji dziesiętnej z kropkami (cztery ośmiobitowe oktety, oddzielone znakiem Kropka). Na przykład 255.255.248.0
.
Maska sieci IPv4 składa się z kilku kolejnych 1
bitów (reprezentujących część sieciową adresu), a następnie z pewnej liczby 0
bitów (reprezentujących część hosta adresu). Całkowita liczba 1
bitów i całkowita liczba 0
bitów sumuje się do 32
liczby bitów w adresie IPv4 lub masce sieci. W naszym przykładzie maska sieciowa:
Dotted-decimal: 255.255.248.0
------------------------------------------------
Decimal octets: | 255 | 255 | 248 | 0 |
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Jak widać, podział między częścią sieciową a hostową adresu IPv4 przy użyciu tej konkretnej maski mieści się w oktecie, a nie na granicy oktetu.
Maska sieci IPv4 jest często reprezentowana przez liczbę kolejnych 1
bitów w masce. Nazywa się to inaczej długością maski sieci lub długością prefiksu, a następnie jest reprezentowana /
przez liczbę kolejnych 1
bitów w masce sieci. W naszym przykładzie liczenie kolejnych 1
bitów jest pobierane 21
, co można przedstawić jako /21
.
Biorąc pod uwagę długość maski, można obliczyć maskę w postaci kropkowo-dziesiętnej. Wystarczy zapisać liczbę 1
bitów dla długości maski i dodać wystarczającą liczbę 0
bitów na końcu do całkowitej liczby 32
bitów. Konwertuj wynikową liczbę binarną na reprezentację dziesiętną z kropkami:
Mask length: /21
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
Decimal octets: | 255 | 255 | 248 | 0 |
------------------------------------------------
Dotted-decimal: 255.255.248.0
Przykład może być tradycyjnie przedstawiony za 198.51.100.223
pomocą maski sieci 255.255.248.0
lub może być reprezentowany jako bardziej nowoczesny CIDR (Classless Inter-Domain Routing) 198.51.100.223/21
.
Adres sieciowy IPv4 to adres IPv4 z ustawionymi wszystkimi bitami hosta 0
. Adres sieciowy IPv4 można obliczyć bitowo AND
z odpowiednich bitów w binarnej reprezentacji adresu IPv4 i maski sieci IPv4. Wyrównaj bity w obu adresach i wykonaj bitowe operacje AND
na każdej parze odpowiednich bitów, a następnie przekonwertuj poszczególne oktety wyniku z powrotem na dziesiętne.
W naszym przykładzie adres IPv4 198.51.100.223
i maska sieci 255.255.248.0
:
Decimal address: 198.51.100.223/21
Binary address octets: 11000110 00110011 01100100 11011111
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Jak widać adres sieciowy 198.51.100.223/21
to 198.51.96.0
. Zauważ, że nie możesz polegać na oktetach, które powiedzą, która część adresu to sieć, a która część adresu jest przeznaczona dla hostów.
Możesz użyć tej metody, aby ustalić, czy dwa adresy znajdują się w tej samej, czy w różnych sieciach *. Jeśli na przykład chcesz sprawdzić, czy Twój 198.51.100.223/21
adres znajduje się w tej samej sieci IPv4, do której przypisany jest host 198.51.102.57
, określ adres sieciowy IPv4 (jak wyżej). Następnie określ adres sieciowy IPv4 danego hosta za pomocą maski sieci IPv4 (hosty w tej samej sieci używają tej samej maski sieci i możesz nie mieć maski, tylko adres hosta docelowego):
Decimal address: 198.51.102.57/21
Binary address octets: 11000110 00110011 01100110 00111001
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Porównaj wynikowy adres sieciowy IPv4 z oryginalnym adresem sieciowym IPv4 i zauważ, że adresy sieciowe są równe, więc adresy hostów znajdują się w tej samej sieci.
Zobaczmy teraz, czy jesteś w tej samej sieci co 74.125.69.100
adres Google:
Decimal address: 74.125.69.100/21
Binary address octets: 01001010 01111101 01000101 01100100
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 01001010 01111101 01000000 00000000
Decimal network octets: 74 125 64 0
Dotted-decimal network: 74.125.64.0
Porównaj wynikowy adres sieciowy IPv4 z oryginalnym adresem sieciowym IPv4 i zauważ, że adresy sieciowe są różne, więc adresy hostów znajdują się w różnych sieciach.
* Jest to metoda stosowana przez host źródłowy w celu ustalenia, czy jest to host docelowy w tej samej sieci co host źródłowy.
Jedną przydatną, często pomijaną wartością, która jest użyteczna w adresowaniu IPv4, jest maska hosta IPv4. Maska hosta IPv4 jest po prostu odwrotnością maski sieci IPv4. Możesz utworzyć binarną maskę hosta z binarnej maski sieci lub binarną maskę sieci z binarnej maski hosta, po prostu odwracając 1
s i 0
s maski początkowej:
Dotted-decimal network mask: 255.255.248.0
Decimal network mask octets: 255 255 248 0
Binary network mask octets: 11111111 11111111 11111000 00000000 invert
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Możliwe jest matematyczne utworzenie maski hosta z maski sieci lub maski sieci z maski hosta poprzez odjęcie maski początkowej od najdłuższej maski ( /32
lub maski wszystkich).
Można to zrobić binarnie:
Binary all-ones mask octets: 11111111 11111111 11111111 11111111
Binary network mask octets: 11111111 11111111 11111000 00000000 -
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Można to również zrobić w systemie dziesiętnym (oktet „jedynki” 255
), ale pamiętaj, aby przekonwertować go na binarny, zanim spróbujesz go użyć do manipulacji adresem:
Decimal all-ones mask octets: 255 255 255 255
Decimal network mask octets: 255 255 248 0 -
---------------
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Adres emisji sieci IPv4 to adres sieci IPv4 z ustawionymi wszystkimi bitami hosta 1
. Istnieje kilka sposobów obliczania adresu emisji w sieci IPv4.
W naszym przykładzie adres IPv4 198.51.100.223
i maska sieci 255.255.248.0
.
Możesz wykonać bitowe OR
z adresem IPv4 lub adresem sieciowym z maską hosta:
Decimal address octets: 198 51 100 223
Binary address octets: 11000110 00110011 01100100 11011111
Binary host mask octets: 00000000 00000000 00000111 11111111 OR
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Możesz po prostu dodać wartość maski hosta IPv4 do wartości adresu sieciowego IPv4:
Binary network octets: 11000110 00110011 01100000 00000000
Binary host mask octets: 00000000 00000000 00000111 11111111 +
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Jest to również coś, co można zrobić w systemie dziesiętnym:
Decimal network octets: 198 51 96 0
Decimal host mask octets: 0 0 7 255 +
---------------
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Całkowita liczba adresów hostów IPv4 dla sieci zależy 2
od liczby bitów hosta, która jest 32
minus liczba bitów sieci. W naszym przykładzie /21
sieci (maski 255.255.248.0
sieci) są 11
bity hosta ( 32 address bits – 21 network bits = 11 host bits
). Oznacza to, że 2048
w /21
sieci IPv4 znajduje się całkowita liczba adresów hostów ( 2^11 = 2048
).
Z wyjątkiem /31
sieci (maska sieci 255.255.255.254
) i /32
(maska 255.255.255.255
sieci) liczba użytecznych adresów hostów w sieci IPv4 to całkowita liczba adresów hostów sieciowych minus 2
(ponieważ adresy IPv4 sieci i adresy rozgłoszeniowe są bezużyteczne dla adresów hostów w sieci, użytkownik należy je odjąć od liczby użytecznych adresów hostów). W naszym przykładzie sieci /21
( 255.255.248.0
) istnieją 2046
użyteczne adresy hostów ( 2^11 - 2 = 2046
).
Z wyjątkiem /31
sieci (maska sieci 255.255.255.254
) i /32
(maska 255.255.255.255
sieci), pierwszym użytecznym adresem hosta sieciowego IPv4 jest adres sieciowy IPv4 plus 1
(adres sieciowy IPv4 nie jest użyteczny dla adresu hosta sieciowego). W naszej przykładowej sieci 198.51.96.0/21
pierwszym użytecznym adresem hosta sieciowego jest 198.51.96.1
( 198.51.96.0 + 1 = 198.51.96.1
). Po prostu ustaw bit niskiego rzędu binarnego adresu sieciowego IPv4 na 1
:
Decimal network octets: 198 51 96 0
Binary network octets: 11000110 00110011 01100000 00000000
-----------------------------------
Binary address octets: 11000110 00110011 01100000 00000001
Decimal address octets: 198 51 96 1
Dotted-decimal address: 198.51.96.1
Z wyjątkiem /31
sieci (maska sieci 255.255.255.254
) i /32
(maska 255.255.255.255
sieci), ostatnim użytecznym adresem hosta sieci IPv4 jest adres emisji sieci IPv4 minus 1
(adres emisji sieci IPv4 nie jest użyteczny dla adresu hosta sieci). W naszej przykładowej sieci 198.61.96.0/21
ostatni użyteczny adres hosta sieciowego to 198.51.103.254
( 198.51.103.255 - 1 = 198.51.103.254
). Wystarczy ustawić bit niskiego rzędu binarnego adresu rozgłoszeniowego sieci IPv4 na 0
:
Decimal broadcast octets: 198 51 103 255
Binary broadcast octets: 11000110 00110011 01100111 11111111
-----------------------------------
Binary address octets: 11000110 00110011 01100111 11111110
Decimal address octets: 198 51 103 254
Dotted-decimal address: 198.51.103.254
W naszym przykładowym adresie IPv4 198.51.100.223
i masce 255.255.248.0
(lub 198.51.100.223/21
) możemy obliczyć wiele informacji o sieci:
Host address: 198.51.100.223
Network mask: 255.255.248.0
Network mask length: 21
Host mask: 0.0.7.255
Host mask length: 11
*Network address: 198.51.96.0
*First usable network host address: 198.51.100.1
*Last usable network host address: 198.51.103.254
*Network Broadcast address: 198.51.103.255
Total network host addresses: 2048
Usable network host addresses: 2046
* Egzaminy klasy edukacyjnej i testy certyfikacyjne sieci będą wymagać szybkiego obliczenia ich dla sieci IPv4, podając adres hosta i maskę (lub długość maski). Możesz skorzystać z poniższych wskazówek, aby szybko sprawdzić swoje odpowiedzi:
Powyższe wskazówki nie dotyczą /31
sieci (maska sieci 255.255.255.254
) lub /32
(maska 255.255.255.255
sieci).
Biorąc pod uwagę wystarczająco dużo czasu na egzamin i problem z wieloma metodami na znalezienie odpowiedzi, należy użyć wielu metod, aby dokładnie sprawdzić odpowiedź.
Ciąg dalszy w następnej odpowiedzi ...
Ciąg dalszy od poprzedniej odpowiedzi ...
Brama to host w sieci, który wie, jak przekazywać pakiety do innych sieci, i można mu przypisać dowolny użyteczny adres hosta sieciowego. Niektóre osoby po prostu losowo przypisują adresy bram do dowolnego użytecznego adresu hosta sieciowego, niektóre osoby zawsze przypisują pierwszy użyteczny adres hosta sieciowego bramie, a niektóre osoby zawsze przypisują ostatni użyteczny adres hosta sieciowego bramie. Właściwie nie ma znaczenia, jaki adres sieci hosta można przypisać do bramy, ale należy starać się zachować spójność.
/31
(maska sieci 255.255.255.254
) SieciPierwotnie /31
sieci (maska 255.255.255.254
sieci) były bezużyteczne, ponieważ istnieje tylko jeden bit hosta, co daje dwa całkowite adresy hosta sieci, ale liczba użytecznych adresów hosta sieci to całkowita liczba adresów hosta sieci minus 2
( 2 total host addresses - 2 = 0 usable host addresses
).
Łącza typu punkt-punkt wymagają tylko dwóch adresów hosta (jednego dla każdego końca łącza). Tradycyjny sposób przypisywania sieci IPv4 wymagał użycia /30
sieci (maski 255.255.255.252
sieci) do połączeń punkt-punkt, ale marnuje połowę adresów hosta sieci, ponieważ /30
sieć ma cztery adresy hostów ogółem, ale tylko dwa są adresami hosta użytecznego ( 2^2 – 2 = 2
).
Przy krytycznym braku adresu IPv4 stworzono standard umożliwiający korzystanie z /31
sieci do połączeń punkt-punkt. Ma to sens, ponieważ nie ma potrzeby emisji w takich sieciach: wszelkie pakiety wysyłane przez hosta w sieci są przeznaczone dla jedynego innego hosta w sieci, skutecznie nadając. W /31
sieci adres sieciowy jest pierwszym użytecznym adresem hosta, a adres rozgłoszeniowy jest ostatnim użytecznym adresem hosta.
Niestety, nie wszyscy dostawcy (w szczególności Microsoft) obsługują standard korzystania z /31
sieci na łączach punkt-punkt, a połączenia typu punkt-punkt najczęściej są wyświetlane za pomocą /30
sieci.
/32
(maska sieci 255.255.255.255
) SieciSieć /32
(maska sieci 255.255.255.255
) to zarówno sieć bez adresów hosta, jak i sam adres hosta. W sieci jest tylko jeden adres i jest to adres sieciowy. Ponieważ w sieci nie ma innych hostów, ruch musi być kierowany do iz adresu sieciowego.
Adresy te są często używane w interfejsach sieci wirtualnej zdefiniowanych w urządzeniu, które może kierować pakiety między jego interfejsami wirtualnymi i fizycznymi. Przykładem tego jest stworzenie wirtualnego interfejsu w urządzeniu sieciowym, który będzie używany jako źródło lub miejsce docelowe samego urządzenia. Interfejs wirtualny nie może upaść z powodu problemu fizycznego, np. Odłączony kabel, a jeśli urządzenie ma wiele ścieżek, inne urządzenia mogą nadal komunikować się z urządzeniem przy użyciu adresu interfejsu wirtualnego, gdy z jakiegoś powodu fizyczny interfejs urządzenia nie działa .
Podsieć sieci tworzy wiele dłuższych sieci z adresu i maski sieci. Podstawową ideą jest to, że pożyczasz bity wysokiego rzędu od części hosta oryginalnej sieci. Załóżmy, że chcesz utworzyć 14 podsieci o równej wielkości z naszej oryginalnej 198.51.96.0/21
sieci. Ponieważ pożyczasz bity wysokiego rzędu z części hosta oryginalnej sieci, otrzymasz liczbę, która jest potęgą 2
, ale 14
nie potęgą 2
, więc musisz uzyskać następną wyższą moc 2
, która przypadkowo 16
( 16 = 2^4
). Mocą 2
w tym przypadku 4
jest liczba bitów hosta wyższego rzędu potrzebnych do pożyczenia w celu utworzenia liczby podsieci. Możesz także użyć wzoru matematycznego, aby określić liczbę wymaganych bitów:Log2(X subnets) = Y borrowed bits
, w zaokrągleniu do następnej liczby całkowitej:
Log2(14 subnets) = 3.807354922, rounded up = 4 borrowed bits
W naszym przykładzie potrzeby 14 równych rozmiarów podsieci oryginalnej 198.51.96.0/21
sieci, zaczynając od wszystkich 0
s * dla pierwszej podsieci, dodaj 1
do części podsieci, aby uzyskać następną podsieć:
----------------------------------------------
Original: | 21 network bits | 11 host bits |
----------------------------------------------
Network: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/21
Subnet 1: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/25
Subnet 2: | 110001100011001101100 | 0001 | 0000000 | = 198.51.96.128/25
Subnet 3: | 110001100011001101100 | 0010 | 0000000 | = 198.51.97.0/25
Subnet 4: | 110001100011001101100 | 0011 | 0000000 | = 198.51.97.128/25
Subnet 5: | 110001100011001101100 | 0100 | 0000000 | = 198.51.97.128/25
Subnet 6: | 110001100011001101100 | 0101 | 0000000 | = 198.51.98.128/25
Subnet 7: | 110001100011001101100 | 0110 | 0000000 | = 198.51.99.0/25
Subnet 8: | 110001100011001101100 | 0111 | 0000000 | = 198.51.99.128/25
Subnet 9: | 110001100011001101100 | 1000 | 0000000 | = 198.51.100.0/25
Subnet 10: | 110001100011001101100 | 1001 | 0000000 | = 198.51.100.128/25
Subnet 11: | 110001100011001101100 | 1010 | 0000000 | = 198.51.101.0/25
Subnet 12: | 110001100011001101100 | 1011 | 0000000 | = 198.51.101.128/25
Subnet 13: | 110001100011001101100 | 1100 | 0000000 | = 198.51.102.0/25
Subnet 14: | 110001100011001101100 | 1101 | 0000000 | = 198.51.102.128/25
----------------------------------------------
Subnetted: | 25 network bits | 7 host bits |
----------------------------------------------
----------------------------------------------
Unused: | 110001100011001101100 | 111 | 00000000 | = 198.51.103.0/24
----------------------------------------------
* Istnieje niezmienny mit, że w przypadku podsieci, podobnie jak w przypadku adresów hostów, podsieci „zero” i „jedynki” nie mogą być używane, ale mit ten został wyraźnie obalony wiele lat temu przez standard. Niestety, mit ten dotyczy niektórych klas edukacji sieciowej, a poprawną odpowiedzią na te (niepoprawne) klasy byłoby użycie podsieci od 2 do 15.
Możliwe jest podsieć sieci do podsieci różnej wielkości (każda sieć IPv4 jest podsiecią 0.0.0.0/0
adresu sieciowego), jak w naszym przykładzie powyżej, w którym nieużywana podsieć jest /24
podsiecią, ale wymaga to starannego planowania, aby powstałe podsieci zaczęły się dalej właściwy bit.
Na przykład, powiedzmy, że potrzebujemy zarówno a, jak /26
i /27
podsieci z naszej 198.51.96.0/21
sieci. Można to zrobić na dwa sposoby: zacznij od /26
podsieci lub zacznij od /27
podsieci.
Począwszy od /26
podsieci:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 00000 | 000000 | /26
Dodaj 1
do części podsieci, aby uzyskać pozycję początkową następnej podsieci:
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
Następnie rozszerz drugą podsieć do /27
:
Subnet 2: | 110001100011001101100 | 000010 | 00000 | /27
Zauważ, że tak naprawdę /26
podsieć drugą podsieć do /27
podsieci, i to działa dobrze, ponieważ 27
jest większa niż 26
.
Począwszy od /27
podsieci:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Dodaj 1
do części podsieci, aby uzyskać pozycję początkową następnej podsieci:
Subnet 2: | 110001100011001101100 | 000001 | 00000 | /27
Zauważ, że w części hosta nie ma wystarczającej liczby bitów (pięć bitów hosta) do obsługi /26
sieci, która wymaga sześciu bitów hosta ( 32 address bits – 26 network bits = 6 host bits
). Jeśli użyjemy tego jako pozycji początkowej dla /26
podsieci, faktycznie nakładamy się na poprzednią i następną /26
sieć. Musimy pozostawić lukę wielkości /27
sieci dla początkowej pozycji /26
sieci:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Unused: | 110001100011001101100 | 000001 | 00000 | /27
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
/26
Podsieci musi zawsze zaczynają się na /26
granicy: co 2 /27
granica podsieci, co 4 /28
granica, każdy 8-cia /29
granica itd Zasada ta jest dla dowolnej wielkości podsieci: podsieci musi zaczynać się na granicy dłuższy podsieci, która jest równa 2
do potęgi dłuższego rozmiaru podsieci minus rozmiar podsieci. Na przykład /23
podsieć musi się uruchamiać w co czwartej /25
sieci ( 2^(25 - 23) = 2^2 = 4
).
Próba skonfigurowania urządzenia z adresem sieci, który zaczyna się na niewłaściwej granicy bitów, spowoduje albo dziwne, trudne do rozwiązania problemy, albo urządzenie wyświetli błąd dotyczący nakładania się sieci. Niektóre osoby starają się to robić z kropkami dziesiętnymi, co może prowadzić do błędów. Na przykład 198.51.96.0/27
adresy hosta sieciowego są 198.51.96.0
przez 198.51.96.31
. Jeśli wiesz o tym i próbujesz korzystać z 198.51.96.32/26
sieci, napotkasz problemy, ponieważ sieć zaczyna się na niewłaściwej granicy bitów i nakłada się na /27
sieć (sprawdź, używając AND
adresów bitowych z adresami i maskami sieci). Jest to oczywiste w systemie binarnym, ale nie jest tak oczywiste w przypadku kropek dziesiętnych. Możesz dowiedzieć się, że /26
sieci muszą zaczynać się od wielokrotności dziesiętnej64
granica, ale widzenie jej w postaci binarnej może z całą pewnością powiedzieć, czy popełniłeś błąd.
Częste pytania egzaminacyjne dają ci sieć i proszą cię o wymyślenie kilku różnej wielkości podsieci w oparciu o liczbę hostów dla każdej podsieci. Jeśli możesz, musisz wyjaśnić, czy liczba hostów zależy od całkowitej liczby adresów hostów w sieci, czy też od liczby hostów możliwych do wykorzystania w sieci. (Na przykład, jeśli pytanie dotyczy podsieci z 256
lub 255
hostami, /24
sieć da ci 256
całkowitą liczbę adresów hosta, ale tylko adresy hostów, które można 254
wykorzystać. Takie pytanie może być podchwytliwym pytaniem, a poprawna odpowiedź zależy od tego, czy pytanie oznacza całkowitą liczbę hostów lub użyteczne adresy hostów).
Przykładowe pytanie:
Given the 198.51.96.0/21 network, subnet it for the following departments:
Department 1: 500 hosts
Department 2: 100 hosts
Department 3: 200 hosts
Department 4: 1000 hosts
Jak widzieliśmy w sekcji Sieci podsieci IPv4, najłatwiejszym sposobem jest posortowanie działów według największej do najmniejszej liczby hostów, ponieważ nie będziemy musieli radzić sobie z lukami w sieci:
Department 4: 1000 hosts
Department 1: 500 hosts
Department 3: 200 hosts
Department 2: 100 hosts
Możesz zaokrąglić każdy z nich do następnej wysokiej potęgi 2, aby uzyskać liczbę wymaganych całkowitych adresów hosta dla każdej podsieci, a następnie wyprowadzić liczbę wymaganych bitów hosta z wykładnika potęgi 2
:
Department 4: 1024 total host addresses = 2^10 = 10 host bits
Department 1: 512 total host addresses = 2^9 = 9 host bits
Department 3: 256 total host addresses = 2^8 = 8 host bits
Department 2: 128 total host addresses = 2^7 = 7 host bits
Możesz również zmodyfikować poprzednią formułę w celu znalezienia liczby bitów wymaganych dla określonej liczby podsieci o jednakowych rozmiarach, aby określić liczbę bitów hosta wymaganych dla każdej podsieci: Log2(X hosts) = Y host bits
zaokrągloną w górę do następnej liczby całkowitej:
Department 4: Log2(1000 hosts) = 9.96578428466209, rounded up = 10 host bits
Department 1: Log2( 500 hosts) = 8.96578428466209, rounded up = 9 host bits
Department 3: Log2( 200 hosts) = 7.64385618977472, rounded up = 8 host bits
Department 2: Log2( 100 hosts) = 6.64385618977473, rounded up = 7 host bits
Po określeniu liczby bitów hosta wymaganych dla każdej podsieci, wykonaj matematykę binarną, aby uzyskać określoną podsieć dla każdego działu. Pamiętaj, aby dodać 1
do podsieci, aby uzyskać adres początkowy następnej podsieci:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Department 4: | 110001100011001101100 | 0 | 0000000000 | = 198.51.96.0/22
Department 1: | 110001100011001101100 | 10 | 000000000 | = 198.51.100.0/23
Department 3: | 110001100011001101100 | 110 | 00000000 | = 198.51.102.0/24
Department 2: | 110001100011001101100 | 1110 | 0000000 | = 198.51.103.0/25
Unused: | 110001100011001101100 | 1111 | 0000000 | = 198.51.103.128/25
Możesz zostać poproszony o podanie informacji o sieci dla określonej podsieci danej sieci. Na przykład możesz zostać poproszony o podanie informacji o sieci dla 23. /26
podsieci 198.51.96.0/21
sieci. Ponieważ potrzebujesz 23. podsieci, możesz przekonwertować 22
(pamiętaj, że 0
jest to pierwsza podsieć, więc 23. podsieć byłaby 22
*) na binarną: dziesiętna 22
= binarna 10110
. Użyj przekonwertowanej liczby binarnej w podsieci adresu:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Subnet 23: | 110001100011001101100 | 10110 | 000000 | = 198.51.101.128/26
Po zidentyfikowaniu 23. adresu sieciowego 198.51.101.128/26
możesz obliczyć inne informacje o sieci (jak opisano w poprzednich sekcjach):
Network address: 198.51.101.128
Network mask length: 26
Network mask: 255.255.255.192
Host mask length: 6
Host mask: 0.0.0.63
First usable network host address: 198.51.101.1
Last usable network host address: 198.51.101.62
Broadcast address: 198.51.101.63
Total network host addresses: 64
Usable network host addresses: 62
* Istnieje niezmienny mit, że w przypadku podsieci, podobnie jak w przypadku adresów hostów, podsieci „zero” i „jedynki” nie mogą być używane, ale mit ten został wyraźnie obalony wiele lat temu przez standard. Niestety, mit ten obejmuje niektóre klasy edukacji sieciowej, a poprawną odpowiedzią dla tych (niepoprawnych) klas byłoby użycie 24-tej ( 23
dziesiętnej, 10111
binarnej) podsieci w naszym przykładzie podsieci o równej wielkości, a nie faktycznej 23-tej ( 22
dziesiętnej, 10110
binarna) podsieć.
Możesz zostać poproszony o znalezienie adresu hosta dla konkretnego hosta w danej sieci. Na przykład możesz zostać poproszony o podanie adresu hosta dla 923 hosta 198.51.96.0/21
sieci. Ponieważ potrzebujesz hosta 923, możesz przekonwertować go 923
na binarny: dziesiętny 923
= binarny 1110011011
. Dodaj przekonwertowany numer binarny do adresu sieciowego:
Binary network: | 110001100011001101100 | 00000000000 |
Binary 923: | 000000000000000000000 | 01110011011 | +
-----------------------------------
Host address: | 110001100011001101100 | 01110011011 | = 198.51.99.155
Możesz otrzymać dwa (lub więcej) różne adresy hostów i poprosić o wymyślenie największej sieci (najmniejszej liczby hostów), która zawiera oba adresy hostów. Na przykład znajdź największą wspólną sieć 198.51.100.223
i 198.51.101.76
.
Najpierw przekonwertuj kropkowane adresy dziesiętne na binarne:
198.51.100.223 = 11000110001100110110010011011111
198.51.101.76 = 11000110001100110110010101001100
Następnie, zaczynając od bitu najwyższego rzędu (skrajnie lewy), porównaj adresy binarne w każdej pozycji bitu, aż bity w tej samej pozycji nie pasują:
198.51.100.223 = | 11000110001100110110010 | 011011111 |
198.51.101.76 = | 11000110001100110110010 | 101001100 |
Policz liczbę pasujących bitów, 23
w tym przypadku, aby uzyskać długość maski. Następnie możesz wziąć dowolny adres i wykonać bitowe użycie AND
maski sieci, aby uzyskać wspólną sieć. Wykonanie tego na obu adresach powinno skutkować powstaniem tej samej sieci, a jeśli nie, oznacza to, że albo przeliczyłeś, albo przegapiłeś niedopasowaną pozycję bitu.
198.51.100.223 = 11000110001100110110010011011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
198.51.101.76 = 11000110001100110110010111011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
Zauważ, że dwa adresy sieciowe są zgodne. Oznacza to, że największą wspólną siecią dla dwóch adresów hostów jest 198.51.100.0/23
(notacja CIDR) lub (tradycyjna) 198.51.100.0
z maską 255.255.254.0
.
* Może się to nazywać najmniejszą wspólną siecią (lub jakimś wariantem, np. Siecią minimalną lub maską). Najmniejsza sieć to tak naprawdę 0.0.0.0/0
( 0
bity sieciowe) i jest to wspólna sieć dla wszystkich adresów IPv4, więc jest to najmniejsza wspólna sieć między dowolnymi adresami IPv4. Zamieszanie powstaje, ponieważ wiele osób patrzy na część hosta adresu i widzi jego rozmiar jako rozmiar sieci, a nie rozmiar części adresu w sieci.
Sam IPv4 nie ma pojęcia ani rozróżnienia między adresowaniem publicznym i prywatnym. Prywatne adresowanie IPv4 zostało wybrane arbitralnie, a dostawcy usług internetowych w drodze umowy nie będą przekazywać pakietów w publicznym Internecie za pomocą adresów w prywatnej przestrzeni adresowej, ale urządzenia sieciowe i hosty nie mają pojęcia, czy adres jest publiczny czy prywatny.
Istnieją trzy zakresy adresów zdefiniowane jako prywatne adresowanie IPv4:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Pierwotnie adresy IPv4 były podzielone na klasy sieciowe. Adresowanie klasowe było przestarzałe dekady temu, a nowoczesne sieci oparte są na CIDR (Classless Inter-Domain Routing), ale niestety wiele klas edukacji sieciowej i egzaminów certyfikacyjnych nalega na sprawdzenie twojej wiedzy na temat adresowania klasowego. Dowiedz się i zachowaj wygodę z całą poprzednią matematyką IPv4 w tym dokumencie, zanim dowiesz się o adresowaniu klasowym.
Klasy adresów IPv4 są oparte na pierwszych bitach adresu:
Class Address Starts With Address Range Default Size*
A First one bit = 0 0.0.0.0 to 127.255.255.255 /8
B First two bits = 10 128.0.0.0 to 191.255.255.255 /16
C First three bits = 110 192.0.0.0 to 223.255.255.255 /24
D First four bits = 1110 224.0.0.0 to 239.255.255.255 N/A
E First four bits = 1111 240.0.0.0 to 255.255.255.255 N/A
255.0.0.0
( /8
) i domyślną maskę hosta 0.255.255.255
, co daje 16,777,216
całkowitą liczbę adresów hosta na sieć.255.255.0.0
( /16
) i domyślną maskę hosta wynoszącą 0.0.255.255
, co daje 65,536
całkowitą liczbę adresów hosta na sieć.255.255.255.0
( /24
) i domyślną maskę hosta 0.0.0.255
, co daje 256
całkowitą liczbę adresów hosta na sieć.255.255.255.255
, który jest indywidualnym adresem, który każdy host w sieci będzie traktował jako swój własny. Oznacza to, że wszystko, co 255.255.255.255
zostanie wysłane, zostanie odebrane i przetworzone przez każdy host w sieci.Ponieważ każda klasa ma domyślny rozmiar sieci, niektóre pytania zakładają domyślną maskę dla danego adresu, więc wszelkie obliczenia muszą być wykonane na podstawie domyślnej maski sieci. Dla naszego przykładowego adresu 198.51.100.223
:
Binary: 11000110 00110011 01100100 11011111
Zauważ, że pierwsze trzy bity adresu to 110
, co oznacza, że jest to adres klasy C i przy braku jakiejkolwiek maski lub długości maski przyjmuje się, że maska sieci to 255.255.255.0
( /24
), co tworzy adres sieciowy 198.51.100.0
.
* Nie popełniaj powszechnego błędu, sądząc, że maska sieci dyktuje klasę sieci, jest na odwrót. Na przykład wiele osób uważa każdą /24
sieć za sieć klasy C, ale nie jest to nawet zdalne. Biorąc pod uwagę na przykład 10.11.12.0/24
sieć, wiele osób błędnie nazywa to siecią klasy C z powodu maski sieci, mimo że pierwszy bit adresu to 0
, co czyni ją siecią klasy A, chociaż z dłuższą maską sieci niż domyślna Maska sieci klasy A, co oznacza, że jest to podsieć sieci klasy A, a nie sieci klasy C.
(Próbując zachować wszystkie odpowiedzi maski sieciowej w jednym miejscu, po innych doskonałych odpowiedziach, dodałem tę o metodzie wizualnej).
Rozmiary podsieci na podstawie liczby hostów
To jest częste pytanie „Jak pociąć podany rozmiar sieci na n kawałków, uwzględniając x 1 hostów w sieci 1, x 2 hostów w sieci 2 itd.?” można całkowicie rozwiązać, stosując metody opisane w innych doskonałych odpowiedziach.
Niektóre osoby mogą jednak chcieć bardziej wizualnej metody i ogólnych wskazówek.
Metoda wizualna „Glasscutter”
Sposób, w jaki często uczę tego wizualnego zrozumienia, polega na zastosowaniu następującej metody:
Najpierw wyobraź sobie gilotynę papierową taką:
( Zdjęcie z Wikipedii: Nathan CC BY-SA 3.0)
Właściwości tego rodzaju noża polegają na tym, że tnie on tylko linie proste, zawsze tnie na całej długości papieru i tnie prostopadle do boku. Nasza szczególna gilotyna jest wybredna: tnie papier tylko na pół i nie możemy wykonać cięcia bliżej niż 1 cm od krawędzi.
Oto ilustracja tego procesu. Widzisz, że istnieje tylko jeden rodzaj cięcia przy cięciu 1 i cięciu 2, ale przy cięciu 3 dokonujemy wyboru: wytnij mały kawałek (czerwony) lub duży kawałek (niebieski), dając dwie różne możliwości.
To, co często nazywa się problemem gilotyny , którego nauczyłem się jako problem „szklanego noża”, ponieważ szkło tekturowe naprawdę musi być przecinane na całej długości, a ten konkretny można nazwać „podwójnym nożem szklanym”, ponieważ zawsze tnie się na połówki.
Kiedy faktycznie robię to w prawdziwym życiu, mentalnie robię przekroje, patrząc na taką siatkę. Pamiętam, że / 26 musi zaczynać się od 0, .64, 128 lub .192; Mogę wiedzieć, że siódma linia dzierżawiona potrzebuje siódmej / 30 w najwyższym kwartale, ale nie będę pamiętać, że to .216.
Siatka może oczywiście służyć również do przedstawienia trzeciego oktetu, a każdy kwadrat reprezentuje a / 24. Teraz mówi, że a / 18 zaczyna się od .0, .64, .128 lub .192.
Ogólne wskazówki dotyczące techniki
Ogólna procedura to:
Przykład:
IP: 128.42.5.4
Binarnie: 10000000 00101010 00000101 00000100
Podsieć: 255.255.248.0
Jak określić prefiks, numer sieci, podsieci i hosta?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......