Hur beräknar du prefix-, nätverks-, subnet- och värdnummer?

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?

Lösning

Beräkning av nätmasklängden (även kallad prefix):

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.

Beräkning av nätverksadressen:

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.

Beräkning av sändningsadressen:

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

Beräkning av delnät:

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.

Hitta den nödvändiga masklängden för delnätet eller nätmask:

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.

Det lata sättet att dela upp 128.42.0.0.0/21 i fyra lika stora delnät:

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...

Beräkning av värdnumret:

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

Beräkning av det högsta möjliga antalet värdar i ett undernät:

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

Hitta den maximala nätmask (minimala värdmask) som innehåller två IP-adresser:

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:

  • 128.42.5.17
  • 128.42.5.67

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.

Kommentarer (0)

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:

  • Nätverksadress: 195.70.16.156
  • Första användbara adress: 195.70.16.157
  • Sista användbara adressen: 195.70.16.158
  • Broadcast Address: 195.70.16.159

Som en genväg kan du också använda den här formeln. Den fungerar för delnät av alla storlekar:

  • Första användbara adress = Nätverksadress + 1
  • Broadcast Address = Nästa nätverksadress - 1
  • Sista användbara adressen = sändningsadress - 1
Kommentarer (1)

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......
Kommentarer (0)