Jak umieścić obok siebie dwie podsieci?

10

Korzystam z tego kalkulatora http://www.subnet-calculator.com/cidr.php i próbuję wymyślić, jak umieścić obok siebie dwie różne podsieci.

Na przykład chcę mieć podsieć / 27 zaczynającą się od 1.0.0.1, obok a / 25, więc pomyślałem, że podsieć / 25 zacznie się od 1.0.0.32, ponieważ jest to jedna poza podsiecią / 27. Jednak gdy próbuję to zrobić, kalkulator mówi, że zakres dla / 25 wynosiłby 1.0.0.1-1.0.0.127, nie rozpoczynając od .32.

Czy jest to ograniczenie kalkulatora lub jak umieszczać podsieci obok siebie?

EDYCJA : Myślę, że moje pytanie brzmi, które podsieci mogą iść obok siebie? Co to determinuje?

instipod
źródło
Nie możesz mieć / 25 od 1.0.0.32, jeśli o to pytasz. Pamiętaj, że podsieci nie są dowolnymi zakresami, są jedynie sposobem na odróżnienie numeru hosta od numeru sieci.
BatchyX 18.04.13
Wydaje mi się, że moje pytanie brzmi, które podsieci mogą iść obok siebie? Czy istnieje dokument lub odniesienie, na które można się udać?
instipod 18.04.13
2
Sugeruję przeczytanie o maskach bitowych, wtedy zrozumiesz, co to jest maska ​​podsieci.
BatchyX 18.04.13

Odpowiedzi:

7

Musisz rozróżnić adres początkowy podsieci i rozmiar podsieci . Liczba za ukośnikiem to rozmiar (32-x bity). Możesz mieć dwie takie / 27 podsieci

10.0.0.1/27  == 10.0.0.1  -> 10.0.0.30
10.0.0.33/27 == 10.0.0.33 -> 10.0.0.62

ale podsieć a / 27 i a / 25 w ten sam sposób oznaczałyby uruchomienie / 25 pod późniejszym adresem

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

ponieważ podsieć / 25 „potrzebuje” więcej miejsca. Nie można uruchomić podsieci / 25 pod dowolnym adresem, tylko na właściwych granicach:

10.0.0.1/25   == 10.0.0.1   -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

ale zauważ to

10.0.0.33/25   == 10.0.0.1   -> 10.0.0.126

ponieważ 10.0.0.33/25to tylko inny sposób powiedzenia 10.0.0.1/25lub 10.0.0.0/25.

Możesz także zdecydować o „wypełnieniu” przestrzeni między tobą / 27 a swoją / 25 podsieci większą liczbą / 27 podsieci:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/27  == 10.0.0.65  -> 10.0.0.94
10.0.0.97/27  == 10.0.0.97  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

lub z innym / 27 i a / 26:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/26  == 10.0.0.65  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254
Stefan Seidel
źródło
1
Podsieci obejmują adres sieciowy i adres rozgłoszeniowy ... nie masz nieużywanych adresów IP między sąsiadującymi podsieciami. Próba wyjaśnienia, dlaczego niektóre podsieci można połączyć w krótszą maskę bez matematyki binarnej, jest całkowicie myląca.
cpt_fink,
4

Prefiksy / podsieci używają logiki binarnej. Podsieci są określone przez ustalone bity i bity, które można wykorzystać do adresów. Liczba ustalonych bitów to długość prefiksu lub maska ​​podsieci. Kilka przykładów IPv4:

Prefix:           10.0.0.0/8
Prefix length:    8
Subnet mask:      255.0.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 00000000 00000000 00000000 = 255.0.0.0

A 1w bitach maski podsieci wskazuje, że odpowiedni bit jest stały, a symbol 0oznacza, że ​​możesz użyć tego bitu. Długość prefiksu to liczba bitów ustawiona na 1, a maska ​​podsieci to liczba binarna zapisana jako adres IPv4.

W tym przykładzie możesz użyć:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 11111111 11111111 11111111 = 10.255.255.255

Kolejny przykład z inną długością prefiksu:

Prefix:           10.0.0.0/10
Prefix length:    10
Subnet mask:      255.192.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 11000000 00000000 00000000 = 255.192.0.0

W tym przykładzie możesz użyć mniej adresów:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 00111111 11111111 11111111 = 10.63.255.255

Jak widać, podsieć jest określona przez wartość i liczbę ustalonych bitów. Korzystając z przykładu 1.0.0.32/25otrzymujesz:

Prefix:           1.0.0.32/25
Prefix length:    25
Subnet mask:      255.255.255.128
Prefix bits:      00000001 00000000 00000000 00100000 = 10.0.0.32
Subnet mask bits: 11111111 11111111 11111111 10000000 = 255.255.255.128

First address in the prefix: 00000001 00000000 00000000 00000000 = 1.0.0.0
Last address in the prefix:  00000001 00000000 00000000 01111111 = 1.0.0.127

Wartość 32 znajduje się w środku elastycznych bitów. Patrząc na /25prefiksy, otrzymujesz:

Prefix length:      25
Subnet mask bits:   11111111 11111111 11111111 10000000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/25
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/25
3rd /25 in 1.0.0.0: 00000001 00000000 00000001 00000000 = 1.0.1.0/25
4th /25 in 1.0.0.0: 00000001 00000000 00000001 10000000 = 1.0.1.128/25
5th /25 in 1.0.0.0: 00000001 00000000 00000010 00000000 = 1.0.2.0/25
Etc.

Patrząc na /27prefiksy, otrzymujesz:

Prefix length:      27
Subnet mask bits:   11111111 11111111 11111111 11100000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/27
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 00100000 = 1.0.0.32/27
3rd /25 in 1.0.0.0: 00000001 00000000 00000000 01000000 = 1.0.0.64/27
4th /25 in 1.0.0.0: 00000001 00000000 00000000 01100000 = 1.0.0.96/27
5th /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/27
Etc.

W podsieci IPv4 pierwszy adres (wszystkie elastyczne bity 0) jest zarezerwowany i nazywany adresem sieciowym. Ostatni adres (wszystkie elastyczne bity 1) to adres rozgłoszeniowy podsieci. Nie można ich używać do interfejsów sieciowych na urządzeniach.

Jeśli chcesz umieścić wiele podsieci obok siebie, musisz upewnić się, że się nie pokrywają. Gdy nie masz dużo przestrzeni adresowej, jak w przypadku IPv4, dopasowanie wszystkich podsieci może być bardzo trudnym procesem, a utrzymanie zarządzania przy zmianie planu adresowania jest jeszcze trudniejsze. Właśnie dlatego praca z IPv6 jest tak przyjemna: dużo przestrzeni adresowej, a podsieć jest zwykle /64(możliwe jest użycie różnych długości prefiksów, ale to psuje niektóre rzeczy, takie jak autokonfiguracja).

Jeśli interesują Cię plany adresowania IPv6, zapoznaj się z dokumentem „Przygotowanie planu adresowania IPv6”, który napisałem kilka lat temu dla SURFnet (holenderskiej krajowej sieci badawczo-edukacyjnej). Sposób działania podsieci w IPv6 jest dokładnie taki sam, jak w przypadku IPv4, z tym wyjątkiem, że liczby są znacznie większe i zapisywane w systemie szesnastkowym (co odpowiada znacznie lepszym bitom niż notacja dziesiętna używana w IPv4!). Przedrostki o stałych i elastycznych bitach działają jednak dokładnie w ten sam sposób. Krótki przykład:

Prefix:           2001:0db8:0000:0000:0000:0000:0000:0000/64
Prefix length:    64
Subnet mask:      not really used anymore in IPv6, but it would have been:
                  ffff:ffff:ffff:ffff:0000:0000:0000:0000
Prefix bits:      0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Subnet mask bits: 1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000

First address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Last address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff

So from 2001:0db8:0000:0000:0000:0000:0000:0000
     to 2001:0db8:0000:0000:ffff:ffff:ffff:ffff

PS: Celowo nie użyłem zalecanego / kanonicznego zapisu. Zwykle kompresujesz zera w adresie i zapisujesz 2001:0db8:0000:0000:0000:0000:0000:0000jako 2001:db8::, 2001:0db8:0000:0000:0000:0000:0000:0001jest zapisywany jako 2001:db8::1itp.

Sander Steffann
źródło
1
  • Dla a / 24 ostatnim oktetem (zwykle zarezerwowanym) dla sieci jest 0,0 i tylko 0,0. 1 subnet

  • Dla a / 25 może to być 0,0 lub 0,128. 2 subnets

  • Dla a / 26 może to być 0,0, 0,64, 0,128 lub 0,192. 4 subnets

  • Dla a / 27 może to być .0, .32, .64, .96, .128, .160, .192 lub .224. 8 subnets

  • dla a / 28, .0, .16, .32, .48, .64, .80, .96, .112, .128, .144, .160, .176, .192, .208, .224, lub .240. 16 subnets

  • dla a / 29, .0, .8, .16, .24, .32, .40, .48, .56, .64, .72, .80, .88, .96, .104, .112, .120, .128, .136, .144, .152, .160, .168, .176, .184, .192, .200, .208, .216,. 224, .232, .240 lub. 248 32 subnets

  • Prefiks / 30 zwykle znajduje się w interfejsach punkt-punkt. 64 subnets

  • Prefiks / 31 nie jest często spotykany na wolności, ponieważ nie ma hostów, które można adresować, ponieważ obejmuje tylko 2 numery sieci, „sieć” i „transmisję” bez miejsca na adres IP hosta. 128 subnets(wszystkie liczby parzyste od 0 do 254)

  • Prefiks / 32 służy do określenia trasy dla jednego hosta. Jest to najbardziej specyficzna trasa i jeśli jest obecna, powinna mieć pierwszeństwo przed wszystkimi innymi pozycjami tablicy tras, które nie są również / 32s. A / 32 nie ma „sieci” ani adresu „rozgłoszeniowego”. 256 subnets (0 i 255 mogą nie działać w niektórych implementacjach)

Nevin Williams
źródło
0

Prosty sposób na zrozumienie:

W IPv4:

Wyobraź sobie linię 256 * 256 * 256 * 256 (lub 2 ^ 32) możliwych adresów IP.

[] [] [] [] .................. [] [] []
       256*256*256*256 total IP adresses

Ma to maskę podsieci 0.0.0.0 (lub 0000 0000 0000 0000 0000 0000 0000 0000 w formacie binarnym)
Wszystkie bity, które nie są maskowane, mogą być użyte do podania adresu IP w tej sieci.

Możliwe adresy w tej jednej sieci to:

0000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK, nic tu nie maskuje ...)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) do
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

Cała sieć zaczyna się od adresu IP 0.0.0.0 i trwa do adresu IP 255.255.255.255

Każdy bit w masce podsieci podzieli linię na 2 równe części.

Pierwszy bit w masce podsieci podzieli to na 2 równe części, każda z 128 * 256 * 256 * 256 (lub 2 ^ 31) adresami IP:

[] [] [] .......... [] [] []  |  [] [] ........... [] []
128*256*256*256 IP Adresses       128*256*256*256 IP Adr

Ma to maskę podsieci 128.0.0.0 (lub binarnie 1000 0000 0000 0000 0000 0000 0000 0000)
Wszystkie bity, które nie są maskowane, mogą być użyte do podania adresu IP w tej sieci.

Możesz więc mieć 2 podsieci, a dla każdej podsieci masz 31 bitów dostępnych adresów IP.

Dla pierwszej podsieci (tej, w której za maską sieci znajduje się „0”)

1000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) do
0111 1111 1111 1111 1111 1111 1111 1111 (IP 127.255.255.255)

i dla drugiej podsieci (tej, w której za maską sieci jest „1”)

1000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

1000 0000 0000 0000 0000 0000 0000 0000 (IP 128.0.0.0) do
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

Następny dodatkowy bit w masce podsieci dzieli obie strony na 2 równe części po 2 ^ 30 adresów IP

I tak dalej...

Więc jeśli spróbujesz przypisać, powiedzmy, podsieć z / 3, oznacza to, że spędziłeś 3 iteracje dzieląc, kończąc na 2 ^ 3 = 8 podsieci. Każda podsieć może być tylko jednym z 8 poddziałów całej linii maszyn. Nie mogą się pokrywać. Każdy zaczyna się od poprzedniego.

[] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... []
32*256*256*256 or 2^30 IP Adresses each.

Ma to maskę podsieci 0.0.0.0

Tak więc dla pierwszej podsieci (tej, w której za maską sieci jest „000”)

1110 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) do
0001 1111 1111 1111 1111 1111 1111 1111 (IP 31.255.255.255)

i dla drugiej podsieci (tej, w której za maską sieci znajduje się „001”)

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

0010 0000 0000 0000 0000 0000 0000 0000 (IP 32.0.0.0) do
0011 1111 1111 1111 1111 1111 1111 1111 (IP 63.255.255.255)

...

i dla 7. podsieci (tej, w której za maską sieci jest „110”)

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

1100 0000 0000 0000 0000 0000 0000 0000 (IP 192.0.0.0) do
1101 1111 1111 1111 1111 1111 1111 1111 (IP 223.255.255.255)

i dla 8. podsieci (tej, w której za maską sieci jest „111”)

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

1110 0000 0000 0000 0000 0000 0000 0000 (IP 224.0.0.0) do
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

JEŚLI nadal dodajesz bit do maski sieci, kontynuujesz dzielenie: Podsieć / 32 wyróżnia pojedynczą maszynę.

Pamiętaj jednak, że tak naprawdę nie możesz mieć tylko maszyn:

aby wszystko działało, niektóre zakresy podsieci są zastrzeżone:

dla każdej podsieci „0 bitów o wartości 1” i „wszystkie bity o wartości 1” są zwykle zarezerwowane do rozgłaszania, więc zazwyczaj masz tylko nb_ możliwych adresów w podsieci dla rzeczywistych interfejsów maszynowych. I lepiej jest interfejs bramy, który ma inny interfejs w innych sieciach, pozwalając na użycie go jako bramy do osiągnięcia tych innych sieci (i wszystkiego, za pośrednictwem bram innych sieci)

Olivier Dulac
źródło
trudne do dokładnego przedstawienia ... I mam nadzieję, że zamieszanie między „linią 2 ^ 32 adresów IP” a 32-bitową reprezentacją używaną wszędzie indziej nie jest bardziej mylące niż pomoc…
Olivier Dulac