IPAddress-Lookup.com

Subnät och CIDR-notation förklarat (med exempel)

IPAddress-Lookup.com ·

Om du någonsin har stirrat på en adress som 192.168.1.0/24 och undrat vad snedstrecket och siffran egentligen betyder, har du kommit till helt rätt ställe. Subnät och CIDR-notation är centrala begrepp när det gäller hur moderna nätverk utformas, säkras och dirigeras, men ämnet har rykte om sig att vara skrämmande. Så behöver det inte vara. När du väl förstår att en IP-adress egentligen bara är en sträng av bitar, och att en subnätmask helt enkelt anger var ”nätverksdelen” slutar och ”värddelen” börjar, faller allt annat på plats. I den här guiden bygger vi upp begreppet från grunden, går igenom flera konkreta exempel i detalj och ger dig ett hjälpblad som du kan ha bredvid tangentbordet. Under tiden kan du själv kontrollera varje beräkning med vårt verktyg Subnet Calculator.

Vad är ett subnät, och varför delar vi upp nätverk i subnät överhuvudtaget?

Ett subnät, en förkortning av subnetwork, är en logisk indelning av ett större IP-nätverk. Istället för att placera varje enhet i ett enda enormt, platt nätverk delar nätverksingenjörer upp adressutrymmet i mindre, fristående block. Varje block är ett subnät med sitt eget adressintervall, sin egen nätverksadress och sin egen sändningsadress. Routrar förmedlar trafik mellan subnät, medan enheter inom ett och samma subnät kan kommunicera direkt med varandra utan att en router behöver kopplas in.

Subnätindelning är inte bara onödigt arbete. Det finns flera konkreta skäl till att nätverk delas upp på detta sätt:

  • Effektivitet och adresshushållning. Att tilldela en organisation ett enda gigantiskt block innebär slöseri med adresser. Subnätindelning gör det möjligt att tilldela exakt så många adresser som en avdelning, våning eller filial faktiskt behöver, istället för att runda upp till närmaste enorma klass.
  • Mindre sändningsdomäner. Viss trafik, till exempel ARP-förfrågningar, sänds ut till varje värd i ett subnät. I ett platt nätverk med tusentals enheter blir den här trafiken förlamande. Genom att dela upp nätverket i subnät hålls varje sändningsdomän liten och nätverket snabbt.
  • Säkerhetssegmentering. Genom att placera servrar, gäst-Wi-Fi och interna arbetsstationer i separata subnät kan du tillämpa brandväggsregler och åtkomstkontrollistor mellan dem. En komprometterad gäst-enhet kan inte nå en databasserver om de två finns i isolerade subnät.
  • Enklare och snabbare routning. Routrar fattar beslut baserat på nätverksprefix. Väl utformade subnät kan sammanfattas till en enda rutt, vilket minskar routningstabellerna och påskyndar vidarebefordringsbesluten över internet.

En snabb repetition av binär teori: bitar, oktetter och masker

En IPv4-adress är 32 bitar lång. Vi skriver den som fyra decimaltal åtskilda av punkter, till exempel 192.168.1.10, men vart och ett av dessa tal är egentligen en 8-bitars binär grupp som kallas en oktett. Åtta bitar per oktett, fyra oktetter, motsvarar totalt 32 bitar. Varje oktett kan innehålla ett värde mellan 0 och 255, eftersom åtta bitar kan representera 2^8 = 256 olika värden.

Bitpositionerna i en oktett har platsvärdena 128, 64, 32, 16, 8, 4, 2 och 1. För att omvandla, lägg ihop positionerna som innehåller en 1. Till exempel är oktetten 11000000 är 128 + 64 = 192, och 10101000 är 128 + 32 + 8 = 168. Så 192.168.1.10 i binär form:

  • 192 = 11000000
  • 168 = 10101000
  • 1 = 00000001
  • 10 = 00001010

Subnätmasken är ett annat 32-bitarsvärde, men den är speciell: den består alltid av en rad med 1:or följd av en rad med 0:or. 1:orna markerar nätverksdelen av adressen och 0:orna markerar värddelen. En mask på 255.255.255.0 är 11111111.11111111.11111111.00000000 i binär form, vilket är 24 ettor följda av 8 nollor. För att ta reda på vilket nätverk en adress tillhör utför man en bitvis AND-operation mellan adressen och masken: där masken har en 1 behålls adressbiten; där masken har en 0 blir biten 0. Denna AND-operation är den absolut viktigaste beräkningen inom hela subnätindelningen.

Klassbaserad adressering: en kort historielektion

I internets barndom delades adresser ut i fasta ”klasser” baserat på värdet på den första oktetten. Detta kallas klassbaserad adressering, och även om det numera är föråldrat förklarar förståelsen för detta varför CIDR var en sådan förbättring.

  • Klass A omfattade de första oktetterna 1 till 126 och använde en 8-bitars nätverksdel (mask 255.0.0.0, en /8) och gav varje nätverk ungefär 16,7 miljoner värdar.
  • Klass B omfattade 128 till 191, använde en 16-bitars nätverksdel (mask 255.255.0.0, a /16) och erbjöd cirka 65 000 värddatorer per nätverk.
  • Klass C omfattade 192 till 223, använde en 24-bitars nätverksdel (mask 255.255.255.0, en /24) och tillhandahöll endast 254 användbara värddatorer.

Problemet var bristen på flexibilitet. En organisation som behövde 2 000 adresser var för stor för en klass C (254 värdar) men var tvungen att tilldelas en klass B (65 000 värdar), vilket innebar att över 60 000 adresser gick till spillo. I takt med att internet växte exponentiellt hotade detta slöseri att helt tömma IPv4-adressutrymmet. Något mer flexibelt behövdes.

Här kommer CIDR: notationen förklarad bit för bit

CIDR, eller Classless Inter-Domain Routing, infördes 1993 för att ersätta det rigida klasssystemet. Istället för att knyta nätverksstorleken till den första oktetten låter CIDR gränsen mellan nätverk och värd ligga var som helst inom de 32 bitarna. Vi uttrycker detta med den numera välbekanta snedstrecksnotationen, som kallas CIDR-prefix.

Siffran efter snedstrecket är helt enkelt antalet 1-bitar i subnätmasken, med andra ord hur många bitar som tillhör nätverket. Så:

  • /8 betyder 8 nätverksbitar, mask 255.0.0.0 (den gamla klass A-storleken).
  • /16 betyder 16 nätverksbitar, mask 255.255.0.0 (den gamla storleken för klass B).
  • /24 betyder 24 nätverksbitar, mask 255.255.255.0 (den gamla storleken för klass C).
  • /26 betyder 26 nätverksbitar, mask 255.255.255.192, vilket lämnar endast 6 värdbitar.

Den magiska formeln för hur många adresser ett prefix innehåller är 2^(32 − n), där n är prefixlängden. Eftersom hela IPv4-utrymmet är 32 bitar, ger subtraheringen av nätverksbitarna värdet av värdbitarna, och 2 upphöjt till den potensen ger det totala antalet adresser i blocket. För ett /24 är det 2^(32−24) = 2^8 = 256 adresser totalt. För ett /26 är det 2^(32−26) = 2^6 = 64 adresser. Ju större prefixnummer, desto mindre subnät.

Beräkning av nyckelvärdena för ett subnät

Varje subnät har ett antal speciella adresser som du måste identifiera. Här förklaras vad var och en betyder och hur du hittar den.

  1. Nätverksadress. Den allra första adressen i blocket. Alla värdbit är 0. Denna identifierar själva subnätet och kan inte tilldelas en enhet.
  2. Broadcast-adress. Den allra sista adressen i blocket. Alla värdbit är 1. Trafik som skickas hit når alla värdar i subnätet, så den kan inte heller användas som värdadress.
  3. Första användbara värdadressen. En adress ovanför nätverksadressen (nätverk + 1).
  4. Sista användbara värden. En adress under sändningsadressen (sändningsadress − 1).
  5. Totalt antal adresser. 2^(32 − n).
  6. Användbara värdar. Totalt minus 2, eftersom nätverks- och sändningsadresserna är reserverade. Formeln är 2^(32 − n) − 2.

Det finns ytterligare ett värde som är värt att känna till: jokertecknemasken. Den är den omvända subnätmasken och erhålls genom att vända på varje bit (subtrahera varje oktett från 255). Om en subnätmask på 255.255.255.0 väljer nätverket, väljer dess jokerteckenmask 0.0.0.255 väljer värdintervallet. Jokertecknemasker förekommer ständigt i Ciscos åtkomstkontrollistor och OSPF-konfiguration, så det lönar sig att känna igen dem.

Exempel 1: 192.168.1.0/24

Låt oss börja med det enklaste möjliga fallet. En /24 slutar snyggt på en oktetgräns, så inga binära krumbukter krävs. Med 24 nätverksbitar utgör värddelsdelen hela den sista oktetten.

EgenskapVärde
CIDR-notation192.168.1.0/24
Subnätmask255.255.255.0
Jokerteckenmask0.0.0.255
Nätverksadress192.168.1.0
Broadcast-adress192.168.1.255
Första användbara värden192.168.1.1
Sista användbara värd192.168.1.254
Totalt antal adresser256 (2^8)
Användbara värdar254

Detta är det klassiska nätverket för hemmet och det lilla kontoret. Allt från .1 till .254 är tillgängligt för enheter, .0 namnger nätverket, och .255 är sändningsadressen.

Exempel 2: 10.0.0.0/26

Nu till ett prefix som inte hamnar på en oktettgräns. Ett /26 betyder 26 nätverksbitar, så den sista oktetten delas upp: de två första bitarna tillhör nätverket och de återstående sex bitarna är värdbitar. Sex värdbitar ger 2^6 = 64 adresser totalt per subnät. Det innebär att /26 undernät stegvis med 64 i den sista oktetten: 0, 64, 128, 192.

Om vi fokuserar på det första blocket 10.0.0.0/26är nätverksmasken 255.255.255.192 eftersom 11000000 i den sista oktetten är lika med 192.

EgenskapVärde
CIDR-notation10.0.0.0/26
Subnätmask255.255.255.192
Jokerteckenmask0.0.0.63
Nätverksadress10.0.0.0
Broadcast-adress10.0.0.63
Första användbara värden10.0.0.1
Sista användbara värd10.0.0.62
Totalt antal adresser64 (2^6)
Användbara värdar62

Nästa subnät i sekvensen skulle vara 10.0.0.64/26 (värdar .65 till .126, sändningsadress .127), sedan 10.0.0.128/26, och slutligen 10.0.0.192/26. Lägg märke till hur blockstorleken, 64, är exakt det ”magiska talet” som avgör var varje subnät börjar.

Exempel 3: 172.16.5.0/28

I vårt sista exempel komprimeras subnätet ännu mer. Ett /28 har 28 nätverksbitar och endast 4 värdbitar, vilket ger 2^4 = 16 adresser totalt och endast 14 användbara värdar. Den sista oktetten används 11110000 för nätverksdelen, vilket motsvarar 240, så masken blir 255.255.255.240. Undernät delas upp i steg om 16.

EgenskapVärde
CIDR-notation172.16.5.0/28
Subnätmask255.255.255.240
Jokerteckenmask0.0.0.15
Nätverksadress172.16.5.0
Broadcast-adress172.16.5.15
Första användbara värden172.16.5.1
Sista användbara värd172.16.5.14
Totalt antal adresser16 (2^4)
Användbara värdar14

A /28 är en populär storlek för små punkt-till-punkt-nätverk och för strikt kontrollerade serversegment där man bara behöver ett fåtal adresser. Om man endast behövde två värdar, till exempel för en länk mellan två routrar, skulle man gå ända ner till en /30, som erbjuder exakt 2 användbara adresser.

Snabbguide till subnät

Istället för att räkna ut tvåpotenserna varje gång, lär dig tabellen nedan utantill eller spara den som bokmärke. Den täcker de vanligaste prefixen från /24 ned till /30, och visar masken, jokertecknet, blockstorleken (totalt antal adresser) och antalet användbara värdar.

CIDRSubnätmaskJokerteckenTotalt antal adresserAntal användbara värdar
/24255.255.255.00.0.0.255256254
/25255.255.255.1280.0.0.127128126
/26255.255.255.1920.0.0.636462
/27255.255.255.2240.0.0.313230
/28255.255.255.2400.0.0.151614
/29255.255.255.2480.0.0.786
/30255.255.255.2520.0.0.342

Lägg märke till det eleganta mönstret: varje steg på en bit i prefixet halverar antalet värdar, och varje maskvärde i den sista oktetten är ett av 128, 192, 224, 240, 248 eller 252. Dessa är de enda giltiga värden som en sista maskoktett kan anta.

VLSM: subnät av olika storlek

Traditionell subnätindelning delar upp ett nätverk i lika stora delar, vilket är slösaktigt när dina avdelningar har mycket olika behov. Variable Length Subnet Masking (VLSM) löser detta genom att låta dig använda olika prefixlängder inom samma övergripande nätverk. I praktiken delar du upp ett subnät i ytterligare subnät.

Anta att du äger 192.168.10.0/24 och behöver betjäna en avdelning med 100 värdar, en med 50 värdar och två routerlänkar med 2 värdar vardera. Med VLSM skulle du tilldela:

  • Ett /25 (126 värdar) till den stora avdelningen: 192.168.10.0/25.
  • A /26 (62 värdar) till den medelstora avdelningen: 192.168.10.128/26.
  • Två /30 block (2 värdar vardera) för routerlänkarna, avskilda från det återstående utrymmet.

Den gyllene regeln för VLSM är att först tilldela de största subnäten och sedan arbeta sig nedåt, så att blocken passar ihop snyggt utan att överlappa varandra. På detta sätt undviker man slöseri i verkliga adressplaner samtidigt som man lämnar utrymme för tillväxt.

En anmärkning om IPv6-prefix

Allt ovanstående gäller IPv4, men CIDR-notationen gäller även för IPv6, bara med mycket större siffror. En IPv6-adress består av 128 bitar istället för 32, så prefixen sträcker sig ända upp till /128. Det viktigaste att känna till är /64: enligt en långvarig konvention är ett enskilt IPv6-subnät ett /64, vilket innebär att de första 64 bitarna avsätts för nätverksprefixet och de sista 64 bitarna för värden, eller ”gränssnittsidentifieraren”. Det ger 2^64 adresser per subnät, ett nästan ofattbart antal, vilket är anledningen till att man inom IPv6 sällan behöver ägna sig åt de krångliga adresshushållningsknep som dominerar subnätindelningen i IPv4. Om du vill ha en mer ingående jämförelse mellan de två protokollen kan du läsa vår guide om IPv4 vs IPv6.

Att sammanfatta

Subnätindelning handlar i grunden om tre saker: en IP-adress består av 32 bitar, masken avgör var nätverket slutar och formeln 2^(32 − n) anger hur stort varje block är. Behärskar du dessa är resten bara enkel aritmetik. Börja med att identifiera prefixet, omvandla det till en blockstorlek, hitta nätverks- och sändningsadresserna, och det användbara intervallet ligger mellan dem. Öva på några exempel så blir processen en självklarhet. När du vill verifiera ditt arbete direkt kan du mata in valfri adress och prefix i vårt verktyg Subnet Calculator och jämföra resultaten med dina egna.

Vanliga frågor

Varför drar vi bort 2 från det totala antalet adresser för att få fram antalet användbara värdar?

Två adresser i varje IPv4-subnät är reserverade och kan inte tilldelas enheter: nätverksadressen (alla värdbitarna är satta till 0), som namnger subnätet, och sändningsadressen (alla värdbitarna är satta till 1), som används för att nå alla värdar samtidigt. Genom att dra bort dessa två återstår antalet adresser som du faktiskt kan tilldela värdar, alltså 2^(32 − n) − 2.

Vad är skillnaden mellan en subnätmask och ett CIDR-prefix?

De uttrycker exakt samma information i två olika format. En subnätmask, till exempel 255.255.255.0 är ett 32-bitars värde i punktseparerad decimalform, medan CIDR-prefixet /24 helt enkelt är antalet 1-bitar i den masken. Varje mask kan skrivas som ett prefix och vice versa; CIDR-notationen är bara kortare och mindre felbenägen.

Vad betyder egentligen /24 i en IP-adress?

Siffran efter snedstrecket är prefixlängden, det vill säga hur många av adressens 32 bitar som definierar nätverket. En /24 reserverar de första 24 bitarna för nätverket och lämnar 8 bitar för värdar, vilket ger totalt 256 adresser (2^8) och 254 användbara. Det motsvarar subnätmasken 255.255.255.0.

Varför ersatte CIDR klassbaserad adressering?

Klassbaserad adressering tvingade nätverksstorlekarna att hoppa i stora steg: 254 värdar, sedan 65 000, sedan 16 miljoner, utan något däremellan. Organisationer tilldelades rutinmässigt betydligt fler adresser än de behövde, vilket ledde till slöseri med det begränsade IPv4-utrymmet. CIDR låter nätverksgränsen falla på valfri bit, vilket gör att block kan anpassas efter behov, och det möjliggör även sammanfattning av rutter, vilket minskar routingtabellernas storlek.

Vad används en jokerteckenmask till?

En jokerteckenmask är den bitvisa inversen av en subnätmask, vilket man får fram genom att subtrahera varje oktett från 255. Medan en subnätmask matchar nätverksdelen, anger en jokerteckenmask vilka bitar som får variera. Den förekommer främst i Ciscos åtkomstkontrollistor och routningsprotokoll som OSPF för att beskriva adressintervall på ett koncist sätt.

Gäller samma regler för subnätindelning för IPv6?

CIDR-konceptet är identiskt: en prefixlängd efter ett snedstreck markerar nätverksgränsen. Skillnaden ligger i skalan. IPv6-adresser är 128 bitar istället för 32, och standardstorleken på ett subnät är /64, vilket ger 2^64 värdadresser per subnät. Eftersom utrymmet är så enormt fokuserar IPv6-subnätindelning på struktur och hierarki snarare än att pressa ut varenda sista adress.