IP-nummerräkning

Hur ett IP-nummer är uppbyggt

Ett IP-nummer är uppbyggt av 32 bitar. En bit är en etta eller nolla. För att vi människor skall ha lättare att hantera IP-nr brukar man omvandla de 32 bitarna till fyra grupper av decimala tal – men kom ihåg att datorer aldrig ser IP-nr annat än som 32 bitar! Man behöver också känna till att ena delen av ett IP-nr är Nät-id och andra delen är Host-id. ”Host” är engelska och betyder värd, dvs datorer och skrivare e t c (helt enkelt alla de enheter som har egna IP-nr). Jämför med telefonnummer, där en del är riktnummer och en del är abonnentnummer: t ex 031151536 – där vet vi (i alla fall om vi är från Göteborg) att 031 är riktnummer (jfr ”nät”) och 151536 (jfr ”host”) är abonnentnummer.

Så här ser en dator ett visst IP-nr:

11000000000110001100110000001111 <<<<< räkna och du finner 32 bitar!

För att vi människor skall ha lättare att hantera det brukar vi dela upp bitarna i 4 grupper (med 8 bitar i varje grupp) och sätta en punkt emellan (punktnotation).

11000000 . 00011000 . 11001100 . 00001111

Varje grupp av 8 bitar kallar vi för en ”oktett”. IPv4 nummer består av 4 ”oktetter”. Nu blir det lätt att tala om IP-nr även när de är utskrivna som bitar: ”Fjärde biten i andra oktetten” är svårt att missförstå. Observera att man räknar bitarna i ”oktetten” från vänster till höger.

För att göra det ännu enklare i vardagen brukar man dessutom förvandla varje enskild oktett till ett decimalt tal, och det är så vi normalt ser ett IP-nummer. Ovanstående IP-nr på 32 bitar blir då:

192 . 24 . 204 . 15

eller som vi visat grafiskt i ett annat avsnitt med IP-numret 172.16.254.1

Ipv4 address swe

 
 
 
 
 
 
 
 

 

 

 

Omvandling av decimala IP-nr till binära och vice versa.

Om du skall förvandla ett decimalt IP-nr till bitar rekommenderar jag att du använder en tabell med värdena 128   64   32   16   8   4   2   1, och bygger ihop varje decimalt tal. I denna tabell är det också lätt att markera en binär oktett och tvärtom omvandla den till ett decimalt tal.

Oktett: 1   2   3   4
Klass:

A
10.0.0.0 – 10.255.255.255
Nätmask:255.0.0.0

 

B
172.16.0.0 – 172.31.255.255
Nätmask:255.255.0.0

 

C
192.168.0.0 – 192.168.255.255
Nätmask: 255.255.255.0

         Bin. IP-nr: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 1 1 1 1 Position:
8 7 6 5 4 3 2 1   8 7 6 5 4 3 2 1   8 7 6 5 4 3 2 1   8 7 6 5 4 3 2 1 Bitvärde: 128 64 32 16 8 4 2 1   128 64 32 16 8 4 2 1   128 64 32 16 8 4 2 1   128 64 32 16 8 4 2 1 Resultat: 128 64 0 16 8 4 2 1 . 0 0 0 16 8 0 0 0 . 128 64 0 0 8 4 0 0 . 0 0 0 0 8 4 2 1 Dec. IP-nr:  192 .  24 .  201 .  15

Om du har en annan metod för att omvandla tal mellan det decimala och binära talsystemet får du gärna använda den, det viktiga är att du hittar en metod som fungerar för dig!

Nätmask och prefix

En nätmask visar hur många bitar av ett visst IP-nummer som är Nät-id, och man använder nätmasken för att ta reda på adressen till nätverket. Observera att en nätmask inte är ett IP-nummer utan mer att betrakta som ett verktyg man använder på ett IP-nummer!

En nätmask kan se ut såhär: 255.255.255.0

Som du kanske minns räknar datorer inte med decimala tal utan med bitar, och omvandlar vi denna decimala nätmask till en binär sträng ser den istället ut såhär:

IP-nr: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 1 1 1 1
Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

Om vi räknar antalet 1:or i nätmasken får vi det till 24 st. Just denna nätmask visar att det är 24 bitar som används till Nät-id. Resten av bitarna (8 st) är 0:or och tillhör alltså inte Nät-id.

Ett prefix är ett tal som visar samma sak som nätmasken. För att skilja prefix och IP-nr åt skrivs prefixet efter snedsträck, t ex /24. Detta prefix visar samma sak som ovanstående nätmask – d v s att det är 24 bitar som tillhör Nät-id.

Om vi med prefix skall visa att vårt IP-nr har ett Nät-id som består av 24 bitar skriver vi: 192 . 24 . 204 . 15 /24, och detta motsvaras alltså av:

IP-nr: 192 . 24 . 204 . 15
Nätmask: 255 . 255 . 255 . 0

 

 
 
Hur man tar reda på nätadressen med hjälp av ett IP-nr och nätmask/prefix.

Då man skall ta reda på nätadressen med hjälp av IP-nr och nätmask (eller prefix), börjar man med att förvandla både IP-nr och nätmask till binära strängar.

IP-nr:

192 .

24 .

204 .

15

Nätmask:

255 .

255 .

255 .

0

 

 

 

Förvandla från decimala tal till binära, därefter skriver man nätmasken under IP-nr:

IP-nr: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 1 1 1 1
Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

 

 

Nu skall man uppifrån och ner utföra den logiska operationen AND på IP-nr och Nätmask. AND innebär att man bara flyttar ner 1:or då de finns i både IP-nr och nätmask – detta är den regel vi behöver komma ihåg, 1 AND 1 = 1    1 AND 0 = 0    0 AND 1 = 0    0 AND 0 = 0.

IP-nr: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 1 1 1 1
Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0
Nätadress: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 0 0 0 0

 

 

 

Resultatet av denna logiska operation är vår nätadress! Om vi nu omvandlar vår nätadress från binära siffror till decimala tal, finner vi att det blir:

192 . 24 . 204 . 0

Om man istället skall ta reda på nätadressen med hjälp av prefix ”översätter” man prefixet till lämplig nätmask. I vårt fall ovan är det prefixet /24 som förvandlas till 24 st ettor följt av 8 st nollor. Därefter utför man AND-operation precis på samma sätt som ovan.

Observera att adresser till nätverk alltid avslutas med en eller flera nollor. I vårt exempel ovan är Nät-id 24 bitar och resterande 8 bitar är 0:or (host-del). Tillsammans utgör dessa delar adressen till nätverket.

Hur man räknar ut hur många hostar som får plats på ett nät.

Enkelt kan man säga att de bitar av en nätadress som EJ nyttjas till Nät-Id (eller broadcastadress) kan användas och delas ut till hostar på nätet (hostar är alltså datorer, skrivare etc).

Om vi går tillbaka och åskådliggör vår nätadress (192 . 24 . 204 . 0) och nätmask (255 . 255 . 255 . 0) utläser vi att det är ett Klass C nät och binärt ser det ju ut så här:

Nätadress: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 0 0 0 0
Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

Med hjälp av nätmasken kan vi se att det i ovanstående exempel är 8 bitar som ej nyttjas till Nät-id.

 

Motsvarande för ett Klass A nät blir:

Nätmask: 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0

och för ett Klass B nät:

Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0

 

men vi fortsätter med vårat Klass C nät:

Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

Förutom två undantag kan alla dessa 8 bitar nyttjas till att adressera hostar i ett Klass C nät. Anledningen till att alla 8 bitar inte kan nyttjas är att den absolut sista adressen (bara 1:or) är den s k broadcastadressen, och den första adressen (bara 0:or) är ju reserverad för nätverket. De adresser vi kan nyttja till hostar är från och med 00000001 t o m 11111110. Om vi omvandlar dessa siffror och sätter in dem i vårt exempel ovan kan vi alltså adressera hostar mellan:

192 . 24 . 204 . 1 till 192 . 24 . 204 . 254

Om vi räknar antal hostar som får plats på just detta nät finner vi att svaret är 254.

Det finns en mycket lämplig formel att använda för att räkna ut antal möjliga hostar, och den är:

2antal host-bitar – 2 = antal möjliga hostar i ett nät

Formeln läses ”2 upphöjt till antal ’host-bitar’ minus 2” och om vi sätter in våra värden i denna formel får vi:

28 – 2 = (2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2) – 2 = 256 – 2 = 254

Anledningen till att man tar minus 2 i slutet av denna formel är för att ta bort adresserna till nät och broadcast, som alltså inte kan användas till hostar.

Hur man tar reda på broadcastadressen och åskådliggör denna decimalt.

En broadcastadress används när man vill göra sändning till samtliga hostar inom ett och samma nät. För att räkna ut broadcastadressen måste man ha tillgång till nätverksadress och nätmask/prefix. Vi tittar på vår nätadress och vår nätmask binärt:

Nätadress: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 0 0 0 0 0 0 0 0
Nätmask: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

 

 

Som vi ser ovan är alltså de sista 8 bitarna reserverade för host-adresser. Som vi också gått igenom finns det två undantag, nätadressen (där de sista 8 bitarna är 0:or) och broadcastadressen. För att det skall vara en giltig broadcastadress ersätter man samtliga 0:or i hostdelen med 1:or.

Efter denna ersättning får man broadcastadressen, och den blir:

Broadcastadress: 1 1 0 0 0 0 0 0 . 0 0 0 1 1 0 0 0 . 1 1 0 0 1 1 0 0 . 1 1 1 1 1 1 1 1

 

…och omvandlar vi broadcastadressen till decimala tal blir den:

192 . 24 . 204 . 255

Hur man visar första och sista möjliga hostadress.

I princip har vi gått igenom detta i punkt 5, men vi tar en snabb titt igen. Vi utgår från nät- och broadcastadress:

Nätadress: 192 . 24 . 204 . 0             

Broadcastadress: 192 . 24 . 204 . 255

Sedan tidigare vet vi att dessa två adresser ej kan nyttjas till hostar.

Första möjliga hostadress är: IP-nr 192 . 24 . 204 . 1

(adressen näst efter nätadressen).

Sista möjliga hostadress är: IP-nr 192 . 24 . 204 . 254

(adressen näst före broadcastadressen).

Och som vi räknat ut i punkt 5 vet vi alltså att det får plats 254 hostar just på detta nät!

Hur man delar upp ett nät i subnät.

Ibland vill man dela upp sitt nätverk i mindre delar. Dessa mindre delar kallas subnät.

Nät delas upp med hjälp av [[routrar]] och varje port på routern behöver ha en unik nätadress. Internetleverantören brukar tillhandahålla en nätadress, och om vi vill ha fler egna nät än den vi får av vår internetleverantör behöver vi lösa detta på något annat sätt.

Detta löses med hjälp av ”subnetting”.

Om vi tittar på vår nätadress (192 . 24 . 204 . 0) binärt, ser den ut såhär:

11000000 . 00011000 . 11001100 . 00000000

De första 24 bitarna är vårt Nät-id, och det kan vi inte ändra på. Däremot bestämmer vi själva över de sista 8 bitarna (de som normalt brukar användas till hostadresser). Då man delar upp ett nät i subnät lånar man helt enkelt av ”host-bitarna” och ”bygger ut” huvudnätadressen.

Om vi bestämmer oss för att låna 4 bitar till subnät (understrukna nedan) kommer de 28 första bitarna att vara nätadress följt av subnätadress. De sista 4 bitarna är tillgängliga för hostar, på varje enskilt subnät.

11000000 . 00011000 . 11001100 . 00000000    

Ovanstående understrukna fyra bitar lånas till subnät och för de datorer som finns på varje subnät konstrueras en ny nätmask efter dessa förutsättningar – denna nya nätmask kallar man för ”subnätmask”. I vårt fall blir subnätmasken:

255 . 255 . 255 . 240 eller 11111111 . 1111111 . 11111111 . 11110000

Om vi vill veta hur många subnät det får plats i ovanstående exempel räknar vi antalet bitar vi lånat till subnät, i detta fall 4. Formeln som används är snarlik den vi använder för att räkna ut antal hostar per nät (blanda inte ihop dessa!!):

2Antal ’lånade hostbitar’ = Antal möjliga subnät

24 = 2 ∙ 2 ∙ 2 ∙ 2 = 16

Vi har alltså tillgång till 16 olika subnät då vi lånar 4 bitar från host-delen. Subnäten adresseras binärt från 0000 – 1111. Vi kan applicera subnätsadresserna på vår nätadress enligt:

Subnät 1: 11000000 . 00011000 . 11001100 . 00000000

Subnät 2: 11000000 . 00011000 . 11001100 . 00010000

Subnät 3: 11000000 . 00011000 . 11001100 . 00100000

Subnät 4: 11000000 . 00011000 . 11001100 . 00110000

Subnät 5: 11000000 . 00011000 . 11001100 . 01000000

  1. . . . .

(o s v subnät 6 – 13)

  1. . . . .

Subnät 14: 11000000 . 00011000 . 11001100 . 11010000

Subnät 15: 11000000 . 00011000 . 11001100 . 11100000

Subnät 16: 11000000 . 00011000 . 11001100 . 11110000

Då vi har gjort ovanstående uppdelning kan vi använda beräkningarna då det gäller antal hosts, första och sista möjliga host, broadcastadress etc på subnäten precis på samma sätt som vi utför beräkningar på vårt ursprungliga nät – med den viktiga skillnaden att vi räknar med subnätmask och på subnät istället.

Om vi tittar på vårt nät än en gång kan vi t ex besvara frågan ”Vad blir antal hosts, broadcastadress samt adress till första och sista host på vårt 3:e subnät?”.

Det tredje subnätet har adress:

Subnätmask:           11111111 . 11111111 . 11111111 . 11110000      

Adress subnät 3:     11000000 . 00011000 . 11001100 . 00100000

Adress subnät 3 decimalt: 192 . 24 . 204 . 32            

Som vi ser finns det fyra bitar tillgängliga för hosts på varje subnät. Om vi skall räkna hur många hostar det får plats använder vi formeln från punkt 5 ovan. 2antal host-bitar – 2. I vårt fall nu blir det 24 – 2 = (2 ∙ 2 ∙ 2 ∙ 2) – 2 = 16 – 2 = 14. På varje subnät kommer det alltså att få plats 14 hostar!

För att få fram broadcastadressen på subnät 3 ersätter vi tillgängliga hostbitar med 1:or, precis som vi gjort tidigare:

Broadcastadress subnät 3: 11000000 . 00011000 . 11001100 . 00101111

…och omvandlar vi denna decimalt får vi:

Broadcastadress subnät 3 (dec): 192 . 24 . 204 . 47

Det blir nu lätt att avgöra första och sista möjliga host på subnät 3, precis på samma sätt som då det gäller den ursprunliga nätadressen:

Första möjliga hostadress subnät 3: 192 . 24 . 204 . 1

(adressen näst efter subnätadressen).

Sista möjliga hostadress subnät 3: 192 . 24 . 204 . 46

(adressen näst före (sub)broadcastadressen).

IP-nummerräkning

Omvandling av decimala IP-nr till binära och vice versa.
Om du skall förvandla ett decimalt IP-nr till bitar rekommenderar jag att du använder en tabell med värdena 128   64   32   16   8   4   2   1, och bygger ihop varje decimalt tal. I denna tabell är det också lätt att markera en binär oktett och tvärtom omvandla den till ett decimalt tal.
Om du har en annan metod för att omvandla tal mellan det decimala och binära talsystemet får du gärna använda den, det viktiga är att du hittar en metod som fungerar för dig!