CIDR-naar-IP-bereik-converter

Vouw elk CIDR-blok uit naar het eerste en laatste adres, of vouw een willekeurig start–eind-IP-bereik samen tot de kleinste set CIDR-blokken die het dekt. Beide richtingen, direct, op een URL die je kunt delen.

CIDR-notatie en adresbereiken beschrijven hetzelfde op twee manieren, en elk gereedschap wil een andere. Een firewallregel neemt 10.0.0.0/24; een export van een allowlist geeft je 10.0.0.0 tot 10.0.0.255; een cloudconsole vraagt om de ene terwijl je ticket de andere citeert. Deze converter werkt beide kanten op: plak een blok als 10.0.0.0/24 en je krijgt het netwerkadres, de broadcast en de eerste en laatste bruikbare host; plak een start- en eindadres en je krijgt de minimale lijst CIDR-blokken die het bereik precies dekt.

Beide richtingen draaien volledig in je browser en schrijven hun invoer in de paginaURL, dus een resultaat is een link die je zo in een ticket, een runbook of een review plakt. Er wordt niets geüpload en niets opgeslagen.

Netwerkadres
10.0.0.0
Broadcastadres
10.0.0.255
Eerste host
10.0.0.1
Laatste host
10.0.0.254
Totaal aantal adressen
256
Bruikbare hosts
254

Een CIDR-blok uitvouwen naar een adresbereik

Een CIDR-blok is een basisadres met een prefixlengte: de /N telt hoeveel voorste bits vastliggen. Alles in het blok deelt die N bits, en de resterende 32 − N bits tellen de adressen erin af. Het blok bevat dus 2^(32 − N) adressen, aaneengesloten van het netwerkadres (alle hostbits 0) tot het broadcastadres (alle hostbits 1). 10.0.0.0/24 zet de eerste 24 bits vast, laat 8 hostbits over en beslaat daarmee 10.0.0.0 tot en met 10.0.0.255: 256 adressen, waarvan 10.0.0.1 tot en met 10.0.0.254 de 254 bruikbare hosts zijn.

Het netwerk- en het broadcastadres zijn de twee uiteinden van die reeks. Op een gewoon subnet benoemt het netwerkadres (hier de .0) het subnet zelf en bereikt het broadcastadres (de .255) elke host erop, dus geen van beide is aan een interface toe te wijzen. Daarom biedt een /24 256 adressen in totaal maar 254 bruikbare. Laat één bit vallen en de aantallen verdubbelen: een /23 is 512 adressen en 510 bruikbare; voeg er één toe en ze halveren.

Twee prefixen zijn bijzonder, omdat er geen ruimte is voor een apart netwerk- en broadcastadres. Een /32 is één enkel adres: eerste, laatste en het adres zelf vallen samen, en zo schrijf je een hostroute of een firewallregel voor één IP. Een /31 is een blok van twee adressen zonder broadcast: RFC 3021 definieert het voor point-to-pointverbindingen, waar beide adressen bruikbaar zijn als de twee uiteinden van de link. De converter meldt broadcast- en hostaantallen navenant en toont een streepje waar een /31 of /32 geen broadcast heeft.

Een adresbereik samenvouwen tot CIDR-blokken

De andere kant op wordt de rekenkunde interessant, want een willekeurig bereik laat zich meestal niet als één CIDR-blok schrijven. Een CIDR-blok moet uitgelijnd zijn: een blok van 2^k adressen moet beginnen op een adres dat een veelvoud is van 2^k. Een bereik waarvan de start niet uitgelijnd is op zijn lengte (of waarvan de lengte geen macht van twee is) past simpelweg in geen enkele prefix, en moet dus worden opgeknipt in meerdere uitgelijnde blokken die het precies betegelen.

Neem 192.168.1.10 tot 192.168.1.20, elf adressen. Elf is geen macht van twee, en .10 is niet uitgelijnd op een groot blok, dus de dekking valt uiteen in vier stukken: 192.168.1.10/31 (het paar .10–.11), dan 192.168.1.12/30 (.12–.15), dan 192.168.1.16/30 (.16–.19), dan 192.168.1.20/32 (de losse .20). Samen bevatten die vier blokken precies de elf adressen van .10 tot .20 en geen enkel adres meer.

De converter bouwt die lijst gulzig op: bij elke stap plaatst hij het grootste blok dat zowel op het huidige adres begint (met respect voor de uitlijning) als niet voorbij het einde van het bereik loopt, en gaat dan door naar het eerstvolgende niet-gedekte adres. Elke keer het grootste uitgelijnde blok nemen levert aantoonbaar de minimale dekking op: geen kortere lijst CIDR-blokken beschrijft hetzelfde bereik. In de praktijk blijven de lijsten kort: zelfs het lastigste IPv4-bereik heeft hooguit een paar dozijn blokken nodig.

Waar welke vorm nodig is

Welke notatie je nodig hebt, bepaalt degene die hem verwerkt, en die twee zijn het zelden eens. Ertussen converteren is een routinestap in het dagelijkse netwerk- en securitywerk:

  • Firewallregels en ACL's: de meeste nemen CIDR, dus een door een mens geciteerde "alles van .10 tot .20" moet eerst een bloklijst worden voordat je hem kunt plakken.
  • Cloud security groups en VPC-regels: AWS, Azure en GCP nemen alle drie CIDR voor bron- en bestemmingsbereiken, nooit een ruw start–eind-paar.
  • Route-objecten en IRR- / RPKI-records: prefixen worden in CIDR geregistreerd en gefilterd, dus een allocatie die als bereik is beschreven moet als uitgelijnde blokken worden uitgedrukt.
  • Geo-IP-feeds en allow- / denylijsten: die worden vaak als start–eind-bereiken gepubliceerd, en samenvouwen naar CIDR is wat ze laadbaar maakt in routers en firewalls.

Adressen nodig achter deze prefixen?

Dedicated servers van Serverside komen met gerouteerde IP-ruimte en DDoS-bescherming op elke poort, zodat de bereiken die je hier omrekent landen op echte, verdedigbare infrastructuur.

Veelgestelde vragen

Vul het blok in, bijvoorbeeld 10.0.0.0/24, in de CIDR-modus. De prefix zet de voorste bits vast en de rest telt de adressen erin af, dus het bereik loopt van het netwerkadres (10.0.0.0) tot het broadcastadres (10.0.0.255). De converter toont beide uiteinden plus de eerste en laatste bruikbare host, 10.0.0.1 tot 10.0.0.254 voor een /24.

Meer tools