Nätmasker och Subnetting

Här beskrivs vad en nätmask är, vad den används till och hur den skall konfigureras i TCP/IP baserade nätverk.

Nätmasken
Nätmasken är en 32 bitars adress bestående av 4 oktetter som används för att ange vilken del av IP-adressen som är nätverks-ID och vilken del som är värd-ID. Den anges, precis som IP-nummer, i 4 grupper (oktetter) åtskilda med en punkt mellan. Nätmasken behövs egentligen inte för att skilja en klass A adress från en klass B adress, däremot används den av TCP/IP protokollet för att räkna ut om paketen skall skickas till det lokala nätverket eller till ett annat segment/fjärrnätverk.

TCP/IP tar helt enkelt IP-adressen från den sändande datorn och slår ihop den med nätmasken. Sedan tar den IP-adressen från mottagande datorn och gör samma sak. Om summorna stämmer överens så vet protokollet att paketen skall skickas till det lokala nätverket, annars skickas paketen vidare till närmsta router för vidarebefordring till rätt segment. Proceduren som styr denna uträkning kallas för ANDing och är en typ av binär operation där 1+1 blir 1, men alla andra kombinationer resulterar i 0.

Standard nätmask för olika klasser:

  • Klass A = 255.0.0.0
  • Klass B = 255.255.0.0
  • Klass C = 255.255.255.0

Den som är uppmärksam ser att de oktetter som är satta till 255 motsvaras av det antal oktetter som används till nätverks-ID i varje klass. På samma sätt motsvarar nollorna de oktetter som används till värd-ID. Med andra ord används de bitar som sätts till ettor för nätverks-ID och övriga bitar till värd-ID.

Vi tittar i följande exempel på en klass C adress:

IP-adress 192 168 10 100
Nätmask 255 255 255 0

I detta fall är de tre första oktetterna nätverks-ID (192.168.10) medan den sista oktetten används till värd-ID (100).

Subnetting
Ibland stämmer behovet av antalet nätverk och värdar inte överens med hur ditt nätverk ser ut i verkligheten. Låt oss anta att du fått en klass C adress som ger dig 1 nätverks-ID med 254 datorer, men ditt nätverk består istället av 6 segment med 20 datorer i varje. Ett sätt att lösa detta vore att skaffa sig 6 st klass C adresser vilket skulle fylla kravet på 6 segment. Däremot skulle 6 st C klasser klara upp till 1524 (6x254) datorer vilket vore slöseri när ditt nätverk endast har 120 datorer.

Det bästa sättet att lösa detta är helt enkelt att använda oss av nätmasken för att ta bitar från värd-ID och ge till nätverks-ID. Detta kallas för subnetting. Om vi tar 3 av de 8 bitar som används för värd-ID i en klass C adress så får vi 6 st nätverks-ID samtidigt som vi lämnar 5 bitar kvar till värd-ID.

Se följande tabell för exakt uträkning (klass C):

Antal tagna bitar 8 7 6 5 4 3 2 1
Binärt tal 128 64 32 16 8 4 2 1
Antal nätverk 254 126 62 30 14 6 2 1
Antal värdar 0 1 2 6 14 30 62 254
Ogiltiga värden markerade i grått.

Observera att sista ettan i antal nätverk inte räknas (vi har ju redan ett segment utan att använda oss av subnetting). 254 och 126 som antal segment fungerar inte heller med en klass C adress (ett nätverk med ingen eller 1 dator vore ganska meningslöst).

Genom att ta 3 bitar får vi alltså 6 stycken (0+2+4) nätverk/segment, eller subnät som det även kallas.

Hur många värd-ID får vi då i våra 6 nya subnät?
Eftersom vi tog 3 bitar från de 8 som klass C använder till nätverks-ID så får vi 5 bitar kvar till värdarna. Dessa 5 bitar ger oss 30 stycken värdar per segment (0+2+4+8+16). Observera att vi inte heller här räknar med den första ettan i antalet värd-ID. Som ni ser så går siffrorna för antal värdar i motsatt riktning mot antalet nätverk i tabellen. Med andra ord, ju fler segment (subnät) desto färre värdar och tvärtom. I vårat fall så motsvarar 3 tagna bitar att vi får 30 värd-ID kvar vilket gott och väl räcker till de 20 datorer vi hade i på varje segment i exemplet ovan.

Hur räknar vi då ut vilken nätmask vi skall använda?
Eftersom vi tog 3 bitar till nätverks-ID så skall dessa 3 bitar slås på, det vill säga sättas till ettor binärt (kom ihåg att nätverks-ID alltid motsvaras av satta bitar, ettor). I vårt fall skulle vi få nätmasken 11100000 vilket efter omräkning till decimal form ger värdet 224 (128+64+32+0+0+0+0+0) vilket därför blir värdet på sista oktetten i vår nya nätmask. 255.255.255.0 byts alltså ut mot 255.255.255.224 för att dela nätverket i 6 segment med 30 datorer i varje.

Den kompletta listan för klass C blir således:

Antal nätverk 254 126 62 30 14 6 2 1
Antal värdar 1 2 6 14 30 62 254
Nätmask 255 254 252 248 240 224 192 0

Hur får vi då fram start och slut -adresser på våra näverks-ID ?
Enkelt! Ta antalet värdar och lägg till 2. Den siffra du då får anger startvärdet för ditt första nätverks-ID. Det anger också hur stort ”hoppet” är mellan varje nätverks-ID.

I vårt exempel hade vi räknat ut att vi fick 30 värdar vilket betyder att första nätverks-ID blir 32. Då vi vet att ”hoppet” är 32 blir det lätt att räkna ut att nästa nätverks-ID får startvärdet 64. Våra 6 subnät får alltså 32, 64, 96, 128, 160 och 192 som nätverks-ID.

Om vi i vårt exempel låtsas att vi fick klass C adressen 192.155.10 så får vi följande nätverks-ID:

  • 192.155.10.32
  • 192.155.10.64
  • 192.155.10.96
  • 192.155.10.128
  • 192.155.10.160
  • 192.155.10.192

Varför kan vi bara använda 30 värdar när det är 32 hopp mellan varje subnät?
I vårt exempel fick vi 5 bitar kvar till värd-ID. Med dom 5 bitarna kan vi beskriva talen 0 till 31 vilket borde innebära att vi har 32 stycken tillgängliga värd-ID. Men eftersom varken nätverks-ID eller värd-ID får innehålla bara nollor eller ettor så faller talen 0 och 31 bort vilket lämnar oss med 30 stycken värd-ID (0=00000, 31=11111 binärt). Vi kan helt enkelt inte använda det första och sista värdet i varje segments IP-nummer. I det första subnätet kan vi alltså inte använda 192.155.10.32 eller 192.155.10.63 som värd-ID.

Detta innebär att vi får följande lista över användbara värd-ID:

  • 192.155.10.33-62
  • 192.155.10.65-94
  • 192.155.10.97-126
  • 192.155.10.129-158
  • 192.155.10.161-190
  • 192.155.10.193-222
Antalet värd-ID i nätverket
För varje router måste varje port tilldelas ett unikt värd-ID för att värdarna skall kunna hitta vägen till nästa segment. Denna adress ställs på klienterna in som ”Default Gateway”. Vidare måste varje nätverkskort på klienter, servrar och skrivare också ha ett unikt värd-ID.

Övningar:
Ditt företag har fått tilldelat 1 klass C adress med nätverks-ID 192.190.10. Du skulle hellre vilja dela upp nätverket i 10 st subnät med minst 10 datorer i varje segment eftersom ert nätverk består av 10 avdelningar med mellan 5-10 datorer i varje avdelning. Du bestämmer dig för att använda subnetting för att lösa detta problem.
  1. Vilket nätmask skall du använda?
  2. Lämnar detta plats för framtida utbyggnad?
  3. Lista alla nätverks-ID du får.
  4. Lista vilka värd-ID som ingår i alla subnät.
©Copyright: Lars Sjunnevik