IPAddress-Lookup.com

Subnetting og CIDR-notation forklaret (med eksempler)

IPAddress-Lookup.com ·

Hvis du nogensinde har stirret på en adresse som 192.168.1.0/24 og undret dig over, hvad den skråstreg og det tal egentlig betyder, er du kommet til det helt rigtige sted. Subnetting og CIDR-notation udgør kernen i, hvordan moderne netværk designes, sikres og dirigeres, men emnet har ry for at være skræmmende. Det behøver det ikke at være. Når du først har forstået, at en IP-adresse egentlig bare er en række bits, og at en subnetmaske blot fortæller dig, hvor »netværksdelen« slutter, og »værtsdelen« begynder, falder alt andet på plads. I denne guide vil vi opbygge begrebet fra de grundlæggende principper, gennemgå flere konkrete eksempler i detaljer og give dig et oversigtsark, du kan have liggende ved siden af dit tastatur. Undervejs kan du selv tjekke alle beregninger med vores værktøj til subnetberegning.

Hvad er et undernet, og hvorfor opdeler vi overhovedet i undernet?

Et subnet, en forkortelse for subnetværk, er en logisk underinddeling af et større IP-netværk. I stedet for at placere alle enheder på ét enormt, fladt netværk opdeler ingeniører dette adresseområde i mindre, selvstændige blokke. Hver blok er et subnet med sit eget adresseområde, sin egen netværksadresse og sin egen broadcast-adresse. Routere flytter trafik mellem subnets, mens enheder inden for et enkelt subnet kan kommunikere direkte med hinanden uden at en router er involveret.

Undernet er ikke bare noget, man gør for at holde sig beskæftiget. Der er flere konkrete grunde til, at netværk opdeles på denne måde:

  • Effektivitet og bevarelse af adresser. At tildele en organisation én kæmpe blok er spild af adresser. Undernet giver mulighed for at tildele præcis så mange adresser, som en afdeling, et etage eller en filial faktisk har brug for, i stedet for at runde op til den nærmeste enorme klasse.
  • Mindre broadcast-domæner. Visse typer trafik, såsom ARP-forespørgsler, udsendes til alle værter på et undernet. I et fladt netværk med tusindvis af enheder bliver denne trafik lammende. Opdeling i undernet holder hvert broadcast-domæne lille og netværket hurtigt.
  • Sikkerhedssegmentering. Ved at placere servere, gæste-Wi-Fi og interne arbejdsstationer på separate undernet kan du anvende firewall-regler og adgangskontrol-lister mellem dem. En kompromitteret gæsteenhed kan ikke nå en databaseserver, hvis de to befinder sig på isolerede undernet.
  • Enklere og hurtigere routing. Routere træffer beslutninger baseret på netværkspræfikser. Veludformede undernet kan sammenfattes til en enkelt rute, hvilket reducerer routingtabellerne og fremskynder videresendelsesbeslutninger på tværs af internettet.

En hurtig opfriskning af binær viden: bits, oktetter og masker

En IPv4-adresse er 32 bit lang. Vi skriver den som fire decimaltal adskilt af prikker, f.eks. 192.168.1.10, men hvert af disse tal er i virkeligheden en 8-bit binær gruppe, der kaldes en oktet. Otte bits pr. oktet, fire oktetter, svarer til i alt 32 bits. Hver oktet kan indeholde en værdi fra 0 til 255, fordi otte bits kan repræsentere 2^8 = 256 forskellige værdier.

Bitpositionerne i en oktet har værdierne 128, 64, 32, 16, 8, 4, 2 og 1. For at konvertere skal man lægge de positioner sammen, der indeholder et 1. For eksempel er oktetten 11000000 er 128 + 64 = 192, og 10101000 er 128 + 32 + 8 = 168. Så 192.168.1.10 i binær form:

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

Undernetmasken er endnu en 32-bit værdi, men den er speciel: den består altid af en række 1'er efterfulgt af en række 0'er. 1'erne markerer netværksdelen af adressen, og 0'erne markerer værtsdelen. En maske på 255.255.255.0 er 11111111.11111111.11111111.00000000 i binær form, hvilket svarer til 24 enere efterfulgt af 8 nuller. For at finde det netværk, som en adresse tilhører, udfører man en bitvis AND-operation mellem adressen og masken: hvor masken har en 1, bevares adressebiten; hvor masken har en 0, bliver biten 0. Denne AND-operation er den absolut vigtigste beregning inden for subnetting.

Klassebaseret adressering: en kort historielektion

I internettets barndom blev adresser tildelt i faste »klasser« baseret på værdien af den første oktet. Dette kaldes klassebaseret adressering, og selvom det er forældet, forklarer forståelsen af det, hvorfor CIDR var en så stor forbedring.

  • Klasse A dækkede de første oktetter fra 1 til 126 og anvendte en 8-bit netværksdel (maske 255.0.0.0, en /8) og gav hvert netværk ca. 16,7 millioner værter.
  • Klasse B dækkede 128 til 191, anvendte en 16-bit netværksdel (maske 255.255.0.0, a /16) og tilbød ca. 65.000 værter pr. netværk.
  • Klasse C dækkede 192 til 223, anvendte en 24-bit netværksdel (maske 255.255.255.0, a /24) og gav kun 254 brugbare værter.

Problemet var manglende fleksibilitet. En organisation, der havde brug for 2.000 adresser, var for stor til en klasse C (254 værter), men måtte tildeles en klasse B (65.000 værter), hvilket medførte spild af over 60.000 adresser. Da internettet voksede eksponentielt, truede dette spild med at udtømme IPv4-adresserne fuldstændigt. Der var brug for noget mere fleksibelt.

Så kom CIDR: notationen forklaret bit for bit

CIDR, eller Classless Inter-Domain Routing, blev indført i 1993 for at erstatte det stive klassesystem. I stedet for at knytte netværksstørrelsen til den første oktet lader CIDR grænsen mellem netværk og vært ligge hvor som helst i de 32 bits. Dette udtrykkes med den nu velkendte skråstregsnotation, kaldet CIDR-præfikset.

Tallet efter skråstregen er ganske enkelt antallet af 1-bits i undernetmasken, med andre ord hvor mange bits der tilhører netværket. Så:

  • /8 betyder 8 netværksbits, maske 255.0.0.0 (den gamle klasse A-størrelse).
  • /16 betyder 16 netværksbits, maske 255.255.0.0 (den gamle klasse B-størrelse).
  • /24 betyder 24 netværksbits, maske 255.255.255.0 (den gamle klasse C-størrelse).
  • /26 betyder 26 netværksbits, maske 255.255.255.192, hvilket efterlader kun 6 værtsbits.

Den magiske formel for, hvor mange adresser et præfiks indeholder, er 2^(32 − n), hvor n er præfikslængden. Da hele IPv4-adressrummet er 32 bits, giver subtraktionen af netværksbitsene værdi for værtsbitsene, og 2 opløftet til denne potens giver det samlede antal adresser i blokken. For et /24 er det 2^(32−24) = 2^8 = 256 adresser i alt. For et /26 er det 2^(32−26) = 2^6 = 64 adresser. Jo større præfikset er, desto mindre er undernetværket.

Beregning af nøgleværdierne for et undernet

Hvert undernet har en håndfuld specielle adresser, som du skal identificere. Her er, hvad hver enkelt betyder, og hvordan du finder den.

  1. Netværksadresse. Den allerførste adresse i blokken. Alle værtsbits er 0. Denne identificerer selve undernetværket og kan ikke tildeles en enhed.
  2. Broadcast-adresse. Den allerførste adresse i blokken. Alle værtsbits er 1. Trafik, der sendes hertil, når ud til alle værter i undernetværket, så den kan heller ikke bruges som værtsadresse.
  3. Første brugbare værtsadresse. En adresse over netværksadressen (netværk + 1).
  4. Sidste brugbare vært. Én adresse under broadcast-adressen (broadcast − 1).
  5. Samlet antal adresser. 2^(32 − n).
  6. Brugbare værter. Det samlede antal minus 2, da netværks- og broadcast-adresserne er reserveret. Formlen er 2^(32 − n) − 2.

Der er endnu en værdi, der er værd at kende: jokermasken. Den er det omvendte af undernetmasken og fås ved at vende hver bit (træk hver oktet fra 255). Hvor en undernetmaske på 255.255.255.0 vælger netværket, vælger dens wildcard-maske 0.0.0.255 vælger værtsområdet. Wildcard-masker dukker konstant op i Ciscos adgangskontrol-lister og OSPF-konfiguration, så det kan betale sig at kende dem.

Eksempel 1: 192.168.1.0/24

Lad os starte med det mest overskuelige eksempel. En /24 slutter pænt på en oktetgrænse, så der er ikke behov for binære krumspring. Med 24 netværksbits udgør værtsdelen hele den sidste oktet.

EgenskabVærdi
CIDR-notation192.168.1.0/24
Undernetmaske255.255.255.0
Jokertegnmaske0.0.0.255
Netværksadresse192.168.1.0
Broadcast-adresse192.168.1.255
Første brugbare vært192.168.1.1
Sidste brugbare vært192.168.1.254
Samlet antal adresser256 (2^8)
Brugbare værter254

Dette er det klassiske netværk til hjemmet og det lille kontor. Alt fra .1 til .254 er tilgængeligt for enheder, .0 navngiver netværket, og .255 er broadcast-adressen.

Eksempel 2: 10.0.0.0/26

Nu til et præfiks, der ikke falder på en oktetgrænse. Et /26 betyder 26 netværksbits, så den sidste oktet deles op: de to første bits tilhører netværket, og de resterende seks bits er værtsbits. Seks værtsbits giver 2^6 = 64 adresser i alt pr. undernet. Det betyder, at /26 undernet stiger i trin på 64 i den sidste oktet: 0, 64, 128, 192.

Hvis vi ser på den første blok 10.0.0.0/26, er netværksmasken 255.255.255.192 fordi 11000000 i den sidste oktet er lig med 192.

EgenskabVærdi
CIDR-notation10.0.0.0/26
Undernetmaske255.255.255.192
Jokertegnmaske0.0.0.63
Netværksadresse10.0.0.0
Broadcast-adresse10.0.0.63
Første brugbare vært10.0.0.1
Sidste brugbare vært10.0.0.62
Samlet antal adresser64 (2^6)
Brugbare værter62

Det næste undernet i rækkefølgen ville være 10.0.0.64/26 (værter .65 til .126, broadcast .127), derefter 10.0.0.128/26, og til sidst 10.0.0.192/26. Læg mærke til, hvordan blokstørrelsen, 64, er præcis det "magiske tal", der bestemmer, hvor hvert undernet starter.

Eksempel 3: 172.16.5.0/28

I vores sidste eksempel komprimeres undernetværket endnu mere. Et /28 har 28 netværksbits og kun 4 værtsbits, hvilket giver 2^4 = 16 adresser i alt og kun 14 brugbare værter. Den sidste oktet bruges 11110000 til netværksdelen, hvilket svarer til 240, så masken er 255.255.255.240. Undernet stiger i trin på 16.

EgenskabVærdi
CIDR-notation172.16.5.0/28
Undernetmaske255.255.255.240
Wildcard-maske0.0.0.15
Netværksadresse172.16.5.0
Broadcast-adresse172.16.5.15
Første brugbare vært172.16.5.1
Sidste brugbare vært172.16.5.14
Samlet antal adresser16 (2^4)
Brugbare værter14

A /28 er en populær størrelse til små punkt-til-punkt-netværk og til strengt kontrollerede serversegmenter, hvor man kun har brug for en håndfuld adresser. Hvis man kun havde brug for to værter, f.eks. til en forbindelse mellem to routere, ville man gå helt ned til en /30, som tilbyder præcis 2 brugbare adresser.

Oversigten over subnetting

I stedet for at genberegne to-potenserne hver gang, kan du huske eller bogmærke tabellen nedenfor. Den dækker de mest almindelige præfikser fra /24 ned til /30, og viser masken, jokertegnet, blokstørrelsen (samlet antal adresser) og antallet af brugbare værter.

CIDRSubnetmaskeJokertegnSamlet antal adresserAntal anvendelige værter
/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

Bemærk det elegante mønster: hvert trin på én bit i præfikset halverer antallet af værter, og hver maskeværdi i den sidste oktet er én af 128, 192, 224, 240, 248 eller 252. Det er de eneste gyldige værdier, som en afsluttende maskeoktett kan antage.

VLSM: undernet af forskellige størrelser

Traditionel subnetting opdeler et netværk i stykker af samme størrelse, hvilket er spild, når dine afdelinger har meget forskellige behov. Variable Length Subnet Masking (VLSM) løser dette ved at give dig mulighed for at anvende forskellige præfikslængder inden for det samme overordnede netværk. I praksis opdeler du et subnet i yderligere subnet.

Antag, at du ejer 192.168.10.0/24 og skal betjene en afdeling med 100 værter, en med 50 værter og to routerforbindelser med 2 værter hver. Med VLSM vil du tildele:

  • A /25 (126 værter) til den store afdeling: 192.168.10.0/25.
  • A /26 (62 værter) til den mellemstore afdeling: 192.168.10.128/26.
  • To /30 blokke (2 værter hver) til routerforbindelserne, udskåret af den resterende plads.

Den gyldne regel for VLSM er at tildele de største undernet først og arbejde nedad, så blokkene passer pænt sammen uden at overlappe hinanden. På denne måde undgår man spild i virkelighedens adresseringsplaner, samtidig med at der stadig er plads til vækst.

En bemærkning om IPv6-præfikser

Alt ovenstående vedrører IPv4, men CIDR-notationen kan overføres direkte til IPv6, blot med meget større tal. En IPv6-adresse er 128 bit i stedet for 32, så præfikserne går helt op til /128. Det vigtigste at kende er /64: ifølge en langvarig konvention er et enkelt IPv6-undernet et /64, hvilket afsætter de første 64 bits til netværkspræfikset og de sidste 64 bits til værten eller »grænsefladeidentifikatoren«. Det efterlader 2^64 adresser pr. undernet – et næsten ufatteligt tal – hvilket er grunden til, at IPv6 sjældent gider at beskæftige sig med de adressebesparende kunststykker, der dominerer IPv4-undernetopdelingen. Hvis du ønsker en mere dybdegående sammenligning af de to protokoller, kan du læse vores guide om IPv4 vs. IPv6.

Alt i alt

Undernetinddeling kan koges ned til tre grundlæggende principper: en IP-adresse består af 32 bits, masken bestemmer, hvor netværket slutter, og formlen 2^(32 − n) angiver, hvor stor hver blok er. Når du har styr på disse, er resten ren regning. Start med at identificere præfikset, konverter det til en blokstørrelse, find netværks- og broadcast-adresserne, og det anvendelige interval vises mellem dem. Øv dig på et par eksempler, så bliver processen en naturlig del af din arbejdsgang. Når du vil kontrollere dit arbejde med det samme, kan du indtaste en vilkårlig adresse og et præfiks i vores subnet-beregner og sammenligne resultaterne med dine egne.

Ofte stillede spørgsmål

Hvorfor trækker vi 2 fra det samlede antal adresser for at få antallet af brugbare værter?

To adresser i hvert IPv4-undernet er reserveret og kan ikke tildeles enheder: netværksadressen (alle værtsbits sat til 0), som navngiver undernettet, og broadcast-adressen (alle værtsbits sat til 1), som bruges til at nå alle værter på én gang. Trækker man disse to fra, får man antallet af adresser, du rent faktisk kan tildele værter, altså 2^(32 − n) − 2.

Hvad er forskellen mellem en undernetmaske og et CIDR-præfiks?

De udtrykker nøjagtig den samme information i to formater. En undernetmaske som f.eks. 255.255.255.0 er en 32-bit værdi i punktsepareret decimalform, mens CIDR-præfikset /24 blot er antallet af 1-bits i den pågældende maske. Enhver maske kan skrives som et præfiks og omvendt; CIDR-notation er blot kortere og mindre fejlbehæftet.

Hvad betyder /24 i en IP-adresse egentlig?

Tallet efter skråstregen er præfikslængden, hvilket betyder, hvor mange af adressens 32 bits der definerer netværket. Et /24 reserverer de første 24 bits til netværket og efterlader 8 bits til værter, hvilket giver i alt 256 adresser (2^8) og 254 brugbare adresser. Det svarer til undernetmasken 255.255.255.0.

Hvorfor erstattede CIDR klassebaseret adressering?

Klassebaseret adressering tvang netværksstørrelserne til at springe i store trin: 254 værter, derefter 65.000, derefter 16 millioner, uden noget imellem. Organisationer fik rutinemæssigt tildelt langt flere adresser, end de havde brug for, hvilket spildte det begrænsede IPv4-adresserum. CIDR lader netværksgrænsen falde på en vilkårlig bit, så blokke kan tilpasses efter behov, og det gør det også muligt at sammenfatte ruter, hvilket reducerer routingtabellerne.

Hvad bruges en wildcard-maske til?

En wildcard-maske er den bitvise inverse af en subnetmaske, som findes ved at trække hver oktet fra 255. Mens en subnetmaske matcher netværksdelen, angiver en wildcard-maske, hvilke bits der må variere. Den forekommer hovedsageligt i Cisco-adgangskontrol-lister og routingprotokoller som OSPF for at beskrive adresseintervaller kortfattet.

Gælder de samme regler for subnetting for IPv6?

CIDR-konceptet er identisk: en præfikslængde efter en skråstreg markerer netværksgrænsen. Forskellen ligger i skalaen. IPv6-adresser er 128 bit i stedet for 32, og standardstørrelsen for et undernet er /64, hvilket giver 2^64 værtsadresser pr. undernet. Da pladsen er så enorm, fokuserer IPv6-undernetopdeling på struktur og hierarki frem for at udnytte hver eneste adresse til det yderste.