Naar inhoud springen

IP-subnetrekenmachine: CIDR, netmasker en hostbereik

Bereken IPv4-subnetgegevens op basis van een adres en CIDR-prefix: netwerk- en broadcastadres, bruikbaar hostbereik, subnetmasker en wildcardmasker.

IP Subnet Calculator

Results

CIDR Notation
192.168.1.0/24
Network Address
192.168.1.0
First Usable Host
192.168.1.1
Last Usable Host
192.168.1.254
Usable Hosts
254
Total Addresses
256
Broadcast Address
192.168.1.255
Subnet Mask
255.255.255.0
Wildcard Mask
0.0.0.255

Subnet Mask in Binary

Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).

Laadcalculator...
📚

Documentatie

IP-subnetrekenmachine

Een IP-subnetrekenmachine berekent de netwerkdetails achter een IPv4-adres en een prefixlengte. Aan de hand van deze twee invoergegevens vindt de rekenmachine het netwerkadres, het broadcastadres, het bereik van bruikbare hostadressen, het subnetmasker en het wildcardmasker.

Wat de calculator doet

De tool accepteert een IPv4-adres dat is geschreven als vier door punten gescheiden getallen, zoals 192.168.1.10, en een prefixlengte van 0 tot 32. Het samen schrijven van beide in CIDR-notatie, zoals 192.168.1.10/24, werkt ook: het gedeelte /24 wordt automatisch naar het prefixveld verplaatst.

De rekenmachine geeft het volgende:

  • CIDR-notatie: het netwerk in adres/prefixvorm, zoals 192.168.1.0/24.
  • Netwerkadres: het eerste adres in het blok. Dit duidt het netwerk zelf aan.
  • Broadcastadres: het laatste adres in het blok. Een bericht dat hiernaartoe wordt gestuurd, bereikt elke host in het subnet.
  • Bruikbaar hostbereik: het eerste en laatste adres dat een apparaat daadwerkelijk kan gebruiken.
  • Bruikbare hosts en totale adressen: hoeveel adressen het blok bevat en hoeveel daarvan beschikbaar zijn voor apparaten.
  • Subnetmasker en wildcardmasker: het masker in puntnotatie, zoals 255.255.255.0, en de inverse daarvan, 0,0.0,255.
  • Het subnetmasker bit voor bit uitgeschreven, met acht bits per octet.

De resultaten volgen RFC 791 (adressering met IPv4), RFC 4632 (CIDR-notatie), RFC 950 met RFC 919 en RFC 922 (de reserveringen voor netwerk en broadcast), en RFC 3021 (/31-point-to-pointverbindingen).

Hoe subnetting werkt

Een IPv4-adres is een getal van 32 bits. Het wordt geschreven als vier octets, waarbij elk octet 8 bits bevat en een waarde van 0 tot 255 kan bevatten. De prefixlengte splitst deze 32 bits in twee delen. De eerste bits, waarvan het aantal door de prefix wordt aangegeven, duiden het netwerk aan. De resterende bits duiden een host binnen dat netwerk aan.

Een /24-netwerk gebruikt 24 bits voor het netwerkgedeelte en laat 8 bits over voor hosts. Acht hostbits geven 2⁸ = 256 adressen. Een /26-netwerk laat slechts 6 hostbits over en bevat dus 2⁶ = 64 adressen.

Het subnetmasker geeft dezelfde splitsing als adres weer: een 1-bit voor elke netwerkbit en een 0-bit voor elke hostbit. Voor /24 is dat 255,255.255,0. Het wildcardmasker keert elke bit van het subnetmasker om. Toegangscontrolelijsten van routers, met name op Cisco-apparatuur, vergelijken adressen met wildcardmaskers. Daarom toont de tool beide.

De subnetformule

Voor een prefixlengte p tussen 0 en 30 past de rekenmachine deze regels toe, die zijn vastgelegd in RFC 950 en RFC 4632:

  • Subnetmasker = de bovenste p bits van het 32-bitswoord ingesteld op 1.
  • Netwerkadres = IP-adres AND subnetmasker (een bitsgewijze AND behoudt een bit alleen wanneer beide invoeren een 1 hebben).
  • Broadcastadres = netwerkadres OR wildcardmasker (elke hostbit ingesteld op 1).
  • Totale adressen = 2⁽³²⁻ᵖ⁾.
  • Bruikbare hosts = 2⁽³²⁻ᵖ⁾ − 2. De aftrekking verwijdert het netwerkadres en het broadcastadres, die door RFC 950 en RFC 919 zijn gereserveerd.
  • Eerste bruikbare host = netwerkadres + 1. Laatste bruikbare host = broadcastadres − 1.

Twee prefixlengtes volgen andere regels. Een /31 bevat precies 2 adressen en RFC 3021 maakt beide bruikbaar als hosts op een point-to-pointverbinding, zonder broadcastadres. Een /32 duidt één adres aan: 1 totaal, 1 bruikbaar, zonder broadcast. In deze twee gevallen noemt de tool het eerste adres "Prefixbasis" in plaats van "Netwerkadres", omdat geen van beide blokken een adres reserveert om het netwerk aan te duiden.

Elk resultaat komt voort uit rekenkundige bewerkingen op één getal van 32 bits. De tool somt de adressen nooit één voor één op, zodat een /0 dat alle 4.294.967.296 IPv4-adressen omvat, even snel wordt berekend als een /32.

Voorbeeldberekening

Voor het adres 10.128.7.33 met prefixlengte /26:

  1. Subnetmasker: 26 enenbits gevolgd door 6 nulbits is 11111111,11111111.11111111,11000000, wat overeenkomt met 255,255.255,192.
  2. Netwerkadres: voer een AND uit op het adres en het masker. De eerste drie octets blijven ongewijzigd. In het laatste octet is 33 in binaire vorm 00100001; een AND met 11000000 geeft 00000000, oftewel 0. Het netwerkadres is 10.128.7.0, dus de CIDR-notatie is 10.128.7.0/26.
  3. Broadcastadres: stel alle 6 hostbits in op 1. Het laatste octet wordt 00111111, oftewel 63. Het broadcastadres is 10,128.7,63.
  4. Aantallen: 2⁶ = 64 totale adressen en 64 − 2 = 62 bruikbare hosts.
  5. Bereik van hosts: 10.128.7.1 tot en met 10,128.7,62.
  6. Wildcardmasker: de inverse van het subnetmasker, 0,0.0,63.

Een tweede voorbeeld met de standaardinvoer van de tool, 192.168.1.10/24: netwerk 192.168.1.0, broadcast 192.168.1.255, hosts 192.168.1.1 tot en met 192.168.1.254, 254 bruikbare hosts van in totaal 256, subnetmasker 255.255.255.0, wildcardmasker 0,0.0,255.

Conventies die de tool volgt

Octets met voorloopnullen worden geweigerd. De tool weigert 010.1.1.1 in plaats van het te lezen als 10,1.1,1. Dit is opzettelijk. De POSIX-functie inet_aton, die achter ping, curl en de meeste resolvers van besturingssystemen zit, behandelt een octet met een voorloopnul als octaal, zodat 010.1.1.1 voor die programma's 8.1.1.1 betekent. Geen enkele interpretatie als decimaal of octaal kan met elke lezer overeenkomen, dus de tool accepteert geen van beide. Een prefix die als /08 is geschreven, wordt om dezelfde reden geweigerd.

Het aantal hosts trekt twee af. Sommige rekenmachines rapporteren de onbewerkte blokgrootte als aantal hosts. Deze tool volgt RFC 950: in elk blok van /0 tot /30 duidt het hostgedeelte met alleen nullen het netwerk aan en is het hostgedeelte met alleen enen de broadcast, dus beide worden uitgesloten en een /24 heeft 254 bruikbare hosts, niet 256.

Een /31 heeft twee bruikbare hosts. Oudere teksten, geschreven voordat RFC 3021 werd gepubliceerd in 2000, noemen een /31 onbruikbaar omdat het aftrekken van de twee gereserveerde adressen nul overlaat. RFC 3021 verwijderde beide reserveringen voor point-to-pointverbindingen, en routers ondersteunen dit al tientallen jaren. Daarom rapporteert de tool 2 bruikbare hosts en geen broadcastadres.

Elke prefix van /0 tot /32 wordt geaccepteerd. Een /0 is een geldig blok dat de volledige IPv4-adresruimte omvat, overeenkomstig de manier waarop 0.0.0.0/0 in routeringstabellen als de standaardroute voorkomt.

Alleen IPv4. IPv6 (RFC 4291) gebruikt adressen van 128 bits en een andere notatie, en valt buiten het bereik van deze tool. De tool markeert ook geen bereiken voor speciale doeleinden, zoals privé- of loopbackadressen (RFC 6890); hij rapporteert alleen de adresberekeningen.

Veelgestelde vragen

Hoeveel bruikbare hosts heeft een /24? 254. Een /24 laat 8 hostbits over, wat 2⁸ = 256 adressen oplevert. Twee daarvan zijn gereserveerd: het netwerkadres en het broadcastadres. Daardoor blijven 254 adressen over voor apparaten.

Wat is een wildcardmasker? De bit-voor-bit inverse van het subnetmasker. Waar het subnetmasker een 1 heeft, heeft het wildcardmasker een 0, en omgekeerd. Voor het masker 255.255.255.0 is het wildcardmasker 0,0.0,255. Toegangscontrolelijsten op veel routers gebruiken wildcardmaskers om aan te geven met welke adressen een regel overeenkomt.

Waarom toont een /31 geen broadcastadres? Een /31 bevat slechts twee adressen. Als één adres voor het netwerk en één voor broadcast zou worden gereserveerd, bleef er niets over. Daarom definieert RFC 3021 de /31 als een point-to-pointverbinding waarop beide adressen hosts zijn en geen broadcastadres bestaat. De rekenmachine rapporteert 2 bruikbare hosts en markeert het broadcastadres als niet van toepassing.

Waarom wordt 010.1.1.1 geweigerd in plaats van gelezen als 10.1.1.1? Omdat besturingssystemen een gewone decimale interpretatie niet eenduidig toepassen. POSIX inet_aton leest een octet met een voorloopnul als octaal, zodat 010 voor de meeste systemen 8 betekent. Het weigeren van de invoer is de enige oplossing die niet stil kan afwijken van wat de computer van de gebruiker zelf zou doen.

Wat is het verschil tussen totale adressen en bruikbare hosts? Het totale aantal adressen is de volledige grootte van het blok, 2 tot de macht (32 min de prefixlengte). Het aantal bruikbare hosts is dat aantal min de twee gereserveerde adressen, behalve bij een /31 (beide zijn bruikbaar) en een /32 (het ene adres is de host).

Wat betekent het netwerkadres van 192.168.1.10/24? Het is 192.168.1.0, gevonden door de eerste 24 bits van het adres te behouden en de hostbits op nul te zetten. Het identificeert het subnet als geheel en kan niet aan een apparaat worden toegewezen.

Referenties

  1. Postel, J. "RFC 791: Internet Protocol." IETF, 1981.
  2. Mogul, J. en J. Postel. "RFC 950: Internet Standard Subnetting Procedure." IETF, 1985.
  3. Mogul, J. "RFC 919: Internetdatagrammen uitzenden." IETF, 1984.
  4. Fuller, V. en T. Li. "RFC 4632: Classless Inter-domain Routing (CIDR)." IETF, 2006.
  5. Retana, A. e.a. "RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links." IETF, 2000.