Exempel:
IP: 128.42.5.4
Binärt: 10000000 00101010 00000101 00000101 00000100
Undernät: 255.255.255.248.0
Hur kan du bestämma prefix-, nätverks-, undernäts- och värdnummer?
Konvertera den punktdecimala representationen av nätmask till binär. Räkna sedan antalet sammanhängande 1-bitar, med början vid den mest betydelsefulla biten i den första oktetten (dvs. den vänstra sidan av det binära talet).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Prefixet för 128.42.5.4 med en 255.255.248.0 nätmask är /21.
Nätverksadressen är den logiska AND-kombinationen av respektive bitar i den binära representationen av IP-adressen och nätverksmasken. Rikta in bitarna i båda adresserna och gör ett logiskt AND på varje par av respektive bitar. Konvertera sedan de enskilda okteterna i resultatet tillbaka till decimaltal.
Sanningstabell för logisk AND:
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
Som du kan se är nätverksadressen för 128.42.5.4/21 128.42.0.0.
I broadcast-adressen omvandlas alla värdbitar till 1:or...
Kom ihåg att vår IP-adress i decimaltal är:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Nätverksmasken är:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Detta innebär att våra värdbitar är de sista 11 bitarna i IP-adressen, eftersom vi hittar värdmasken genom att vända nätverksmasken:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
För att beräkna sändningsadressen tvingar vi alla värdbitar att vara 1:or:
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
Du har inte gett tillräckligt med information för att beräkna delnät för detta nätverk; som en allmän regel bygger du delnät genom att omfördela några av värdbitarna som nätverksbitar för varje delnät. Många gånger finns det inte ett rätt sätt att skapa ett undernät för ett block... beroende på dina begränsningar kan det finnas flera giltiga sätt att skapa ett undernät för ett block av adresser.
Låt oss anta att vi delar upp 128.42.0.0.0/21 i fyra undernät som måste innehålla minst 100 värddatorer vardera...
I det här exemplet vet vi att du behöver minst ett /25-prefix för att innehålla 100 värdar; jag valde ett /24 eftersom det faller på en oktettgräns. Lägg märke till att nätverksadressen för varje delnät lånar värdbitar från det överordnade nätverksblocket.
Hur visste jag att jag behöver minst en /25 masklängd för 100 värdar? Beräkna prefixet genom att backa in antalet värdbitar som krävs för att innehålla 100 värdar. Man behöver 7 värdbitar för att innehålla 100 värdar. Officiellt beräknas detta med:
Host bits = Log2(Number-of-hosts) = Log2(100) = 6,643
Eftersom IPv4-adresser är 32 bitar breda och vi använder värdbitsen (dvs. de minst signifikanta bitarna), drar vi helt enkelt bort 7 från 32 för att beräkna det minsta subnätsprefixet för varje subnät... 32 - 7 = 25.
Eftersom vi bara vill ha fyra delnät från hela blocket 128.42.0.0.0/21 kan vi använda /23 delnät. Jag valde /23 eftersom vi behöver fyra undernät... dvs. två extra bitar läggs till nätmasken.
Detta är ett lika giltigt svar på begränsningen genom att använda /23 undernät av 128.42.0.0.0/21...
Det här är vad vi redan har gjort ovan... återanvänd bara värdmasken från det arbete vi gjorde när vi beräknade sändningsadressen 128.42.5.4/21... Den här gången använder jag 1s i stället för h
, eftersom vi måste utföra ett logiskt AND på nätverksadressen igen.
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
För att hitta det maximala antalet värdar, titta på antalet binära bitar i värdnumret ovan. Det enklaste sättet att göra detta är att subtrahera nätmaskens längd från 32 (antalet bitar i en IPv4-adress). Detta ger dig antalet värdbitar i adressen. Vid den tidpunkten...
Maximalt antal värdar = 2**(32 - netmask_length) - 2
Anledningen till att vi subtraherar 2 ovan är att värdnumren all-ones och all-zeros är reserverade. All-zeros host number är nätverksnumret, all-ones host number är sändningsadressen.
Med exemplet undernät 128.42.0.0.0/21 ovan är antalet värdar...
Maximalt antal värdar = 2**(32 - 21) - 2 = 2048 - 2 = 2046
Anta att någon ger oss två IP-adresser och förväntar sig att vi ska hitta den längsta nätmask som innehåller båda adresserna:
Det enklaste är att omvandla båda till binär form och leta efter den längsta strängen av nätverksbitar från adressens vänstra sida.
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
I det här fallet skulle den maximala nätmask (minimala värdmask) vara /25.
OBS: Om du försöker börja från höger, låt dig inte luras bara för att du hittar en matchande kolumn med bitar; det kan finnas oöverensstämmande bitar bortom dessa matchande bitar. Ärligt talat är det säkraste att börja från vänster sida.
Svaret ovan träffar spiken på huvudet perfekt. Men när jag började, krävdes det några olika exempel från olika källor för att det verkligen skulle slå in. Om du är intresserad av andra exempel har jag därför skrivit några blogginlägg i ämnet - http://www.oznetnerd.com/category/subnetting/.
Admins, om det här inlägget betraktas som spam får ni gärna radera det.
Edit: Enligt YLearn's förslag ska jag försöka ta med relevanta delar från del 1 av min serie, utan att klistra in hela inlägget här.
Låt oss använda 195.70.16.159/30 som exempel.
Eftersom det är en /30 vet vi att värddelen kommer att finnas i den fjärde oktetten. Låt oss omvandla det till binär:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
För att ta reda på nätverksadressen är allt vi gör nu att lägga ihop de SN-bitar som har en 1 under sig. (128 + 16 + 8 + 4 = 156).
När du lägger till denna 156 till de tre första okteterna i adressen får vi nätverksadress 195.70.16.156.
Eftersom vi vet att den första användbara adressen alltid är nätverksadressen plus ett behöver vi bara göra följande beräkning: (156 + 1 = 157).
Detta ger oss en första användbara adress på 195.70.16.157.
Låt oss nu hoppa över Last Usable Address för ett ögonblick och hitta Broadcast Address. För att ta reda på vad den är behöver vi bara lägga ihop alla H-bitar (oavsett om de är 1 eller 0) och sedan lägga till detta tal till nätverksadressen. (2 + 1 + 156 = 159).
Detta ger oss en Broadcast Address på 195.70.16.159.
Och slutligen, låt oss räkna ut den sista användbara adressen. Den här processen liknar den att hitta den första användbara adressen, men i stället för att lägga till ett till nätverksadressen drar vi faktiskt av ett från Broadcast Address. (159 - 1 = 158).
Detta ger oss en Sista användbara adressen på 195.70.16.158.
Och där har vi den! Vår temaplate är klar. För att underlätta referensen är den här igen:
Som en genväg kan du också använda den här formeln. Den fungerar för delnät av alla storlekar:
Exempel:
IP: 128.42.5.4
Binärt: 10000000 00101010 00000101 00000101 00000100
Undernät: 255.255.255.248.0
Hur kan du bestämma prefix-, nätverks-, undernäts- och värdnummer?
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......