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?
źródło
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?
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.
Część 1 z 2
Matematyka IPv4
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):
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.
Będziesz także musiał pamiętać swoje tablice prawdy ze szkoły (w matematyce binarnej 0 to False, a 1 to True):
* 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.
Adres IPv4
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ści11000110001100110110010011011111
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ą *:Ponieważ każdy oktet ma osiem bitów długości, każdy oktet będzie miał wartość pomiędzy
0
i255
(wszelkie wartości większe niż255
są nieprawidłowe). Powodem jest to, że2^8 = 256
:2
(baza liczb binarnych) do potęgi8
(osiem bitów na oktet) jest równa256
liczbie różnych wartości, które mogą być wyrażone przez ośmiobitowy oktet. Pamiętaj, że pierwsza wartość to0
, więc256
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:
* 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
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 liczby0
bitów (reprezentujących część hosta adresu). Całkowita liczba1
bitów i całkowita liczba0
bitów sumuje się do32
liczby bitów w adresie IPv4 lub masce sieci. W naszym przykładzie maska sieciowa: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ę kolejnych1
bitów w masce sieci. W naszym przykładzie liczenie kolejnych1
bitów jest pobierane21
, 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 liczby32
bitów. Konwertuj wynikową liczbę binarną na reprezentację dziesiętną z kropkami:Przykład może być tradycyjnie przedstawiony za
198.51.100.223
pomocą maski sieci255.255.248.0
lub może być reprezentowany jako bardziej nowoczesny CIDR (Classless Inter-Domain Routing)198.51.100.223/21
.Adres sieciowy IPv4
Adres sieciowy IPv4 to adres IPv4 z ustawionymi wszystkimi bitami hosta
0
. Adres sieciowy IPv4 można obliczyć bitowoAND
z odpowiednich bitów w binarnej reprezentacji adresu IPv4 i maski sieci IPv4. Wyrównaj bity w obu adresach i wykonaj bitowe operacjeAND
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 sieci255.255.248.0
:Jak widać adres sieciowy
198.51.100.223/21
to198.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 host198.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):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: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.
Maska hosta IPv4
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 i0
s maski początkowej: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:
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:Adres rozgłoszeniowy sieci IPv4
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 sieci255.255.248.0
.Możesz wykonać bitowe
OR
z adresem IPv4 lub adresem sieciowym z maską hosta:Możesz po prostu dodać wartość maski hosta IPv4 do wartości adresu sieciowego IPv4:
Jest to również coś, co można zrobić w systemie dziesiętnym:
Łączne adresy hostów sieciowych IPv4
Całkowita liczba adresów hostów IPv4 dla sieci zależy
2
od liczby bitów hosta, która jest32
minus liczba bitów sieci. W naszym przykładzie/21
sieci (maski255.255.248.0
sieci) są11
bity hosta (32 address bits – 21 network bits = 11 host bits
). Oznacza to, że2048
w/21
sieci IPv4 znajduje się całkowita liczba adresów hostów (2^11 = 2048
).Łącznie użyteczne adresy hosta sieciowego IPv4
Z wyjątkiem
/31
sieci (maska sieci255.255.255.254
) i/32
(maska255.255.255.255
sieci) liczba użytecznych adresów hostów w sieci IPv4 to całkowita liczba adresów hostów sieciowych minus2
(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
).Pierwszy przydatny adres hosta sieciowego IPv4
Z wyjątkiem
/31
sieci (maska sieci255.255.255.254
) i/32
(maska255.255.255.255
sieci), pierwszym użytecznym adresem hosta sieciowego IPv4 jest adres sieciowy IPv4 plus1
(adres sieciowy IPv4 nie jest użyteczny dla adresu hosta sieciowego). W naszej przykładowej sieci198.51.96.0/21
pierwszym użytecznym adresem hosta sieciowego jest198.51.96.1
(198.51.96.0 + 1 = 198.51.96.1
). Po prostu ustaw bit niskiego rzędu binarnego adresu sieciowego IPv4 na1
:Ostatni użyteczny adres hosta sieciowego IPv4
Z wyjątkiem
/31
sieci (maska sieci255.255.255.254
) i/32
(maska255.255.255.255
sieci), ostatnim użytecznym adresem hosta sieci IPv4 jest adres emisji sieci IPv4 minus1
(adres emisji sieci IPv4 nie jest użyteczny dla adresu hosta sieci). W naszej przykładowej sieci198.61.96.0/21
ostatni użyteczny adres hosta sieciowego to198.51.103.254
(198.51.103.255 - 1 = 198.51.103.254
). Wystarczy ustawić bit niskiego rzędu binarnego adresu rozgłoszeniowego sieci IPv4 na0
:Łączenie wszystkich adresów sieciowych IPv4
W naszym przykładowym adresie IPv4
198.51.100.223
i masce255.255.248.0
(lub198.51.100.223/21
) możemy obliczyć wiele informacji o sieci:* 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 sieci255.255.255.254
) lub/32
(maska255.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 ...
źródło
Ciąg dalszy od poprzedniej odpowiedzi ...
Część 2 z 2
Wybór adresu bramy sieci (routera) IPv4
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ść.
IPv4
/31
(maska sieci255.255.255.254
) SieciPierwotnie
/31
sieci (maska255.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 minus2
(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 (maski255.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.IPv4
/32
(maska sieci255.255.255.255
) SieciSieć
/32
(maska sieci255.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 .
Podsieci Sieci IPv4
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
, ale14
nie potęgą2
, więc musisz uzyskać następną wyższą moc2
, która przypadkowo16
(16 = 2^4
). Mocą2
w tym przypadku4
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:W naszym przykładzie potrzeby 14 równych rozmiarów podsieci oryginalnej
198.51.96.0/21
sieci, zaczynając od wszystkich0
s * dla pierwszej podsieci, dodaj1
do części podsieci, aby uzyskać następną podsieć:* 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 naszej198.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:Dodaj
1
do części podsieci, aby uzyskać pozycję początkową następnej podsieci:Następnie rozszerz drugą podsieć do
/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:Dodaj
1
do części podsieci, aby uzyskać pozycję początkową następnej podsieci: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:/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ówna2
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
przez198.51.96.31
. Jeśli wiesz o tym i próbujesz korzystać z198.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ącAND
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.Rozmiary podsieci na podstawie liczby hostów
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
lub255
hostami,/24
sieć da ci256
całkowitą liczbę adresów hosta, ale tylko adresy hostów, które można254
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:
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:
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
: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: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:Znajdowanie konkretnej podsieci
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
podsieci198.51.96.0/21
sieci. Ponieważ potrzebujesz 23. podsieci, możesz przekonwertować22
(pamiętaj, że0
jest to pierwsza podsieć, więc 23. podsieć byłaby22
*) na binarną: dziesiętna22
= binarna10110
. Użyj przekonwertowanej liczby binarnej w podsieci adresu:Po zidentyfikowaniu 23. adresu sieciowego
198.51.101.128/26
możesz obliczyć inne informacje o sieci (jak opisano w poprzednich sekcjach):* 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ć.Znajdowanie konkretnego hosta sieciowego
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ć go923
na binarny: dziesiętny923
= binarny1110011011
. Dodaj przekonwertowany numer binarny do adresu sieciowego:Największa wspólna sieć dla dwóch hostów *
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
i198.51.101.76
.Najpierw przekonwertuj kropkowane adresy dziesiętne na binarne:
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ą:
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życieAND
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.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.Adresowanie publiczne a prywatne
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
Klasowe adresowanie sieciowe
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:
255.0.0.0
(/8
) i domyślną maskę hosta0.255.255.255
, co daje16,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 daje65,536
całkowitą liczbę adresów hosta na sieć.255.255.255.0
(/24
) i domyślną maskę hosta0.0.0.255
, co daje256
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, co255.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
: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 to255.255.255.0
(/24
), co tworzy adres sieciowy198.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ład10.11.12.0/24
sieć, wiele osób błędnie nazywa to siecią klasy C z powodu maski sieci, mimo że pierwszy bit adresu to0
, 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.źródło
(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:
źródło
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?
źródło