bitlvl
DE

CIDR-Aggregator & -Splitter

Ein Bereich pro Zeile, in beliebiger Form. Das Ergebnis ist die kürzeste Liste von CIDR-Blöcken, die genau dieselben Adressen abdeckt, fertig für Firewall, ACL oder Routing-Tabelle.

Die Ergebnisse und Meldungen dieses Tools werden auf Englisch angezeigt.

Aggregation

Zwei Blöcke lassen sich zu einem zusammenfassen, wenn sie gleich groß und benachbart sind und der kombinierte Block an seiner neuen Größe ausgerichtet ist: 10.0.0.0/25 und 10.0.0.128/25 werden zu 10.0.0.0/24, 10.0.0.128/25 und 10.0.1.0/25 aber nicht. Das Tool sortiert die Eingabe, fasst alles zusammen, was sich überlappt oder berührt, und schreibt jeden entstandenen Bereich als die wenigsten ausgerichteten Blöcke. Genau das tun Router beim Zusammenfassen von Routen, und genau das will man vor dem Einfügen einer Liste in eine Firewall: weniger Regeln, schnelleres Matching, keine Duplikate.

Bereiche in CIDR

Ein beliebiger Bereich wie 192.168.1.6 – 192.168.1.9 ist selten ein einzelner Block. Der Algorithmus nimmt den größten ausgerichteten Block, der an der ersten Adresse des Bereichs beginnt und hineinpasst, und wiederholt das ab dem Ende dieses Blocks: hier 192.168.1.6/31 und 192.168.1.8/31. Ein Bereich von 255 Adressen ab .1 braucht acht Blöcke.

Ausnahmen

„Alles in 10.0.0.0/8 außer 10.1.0.0/16“ ist bei Split-Tunneln und Allow-Lists häufig nötig. Ein /16 von einem /8 abzuziehen lässt 8 Blöcke übrig (/9, /10 … /16), weil jeder Schritt der binären Teilung eine Hälfte abschält. Die Ausgabe wächst um etwa einen Block pro Bit Unterschied.

Ausgabeformate

Die nftables-Form erzeugt ein Set, das Sie in nft add element einfügen können; iptables gibt eine Regel pro Block aus; die Cisco-Form verwendet Wildcard-Masken; die HAProxy-Form ist eine Datei für acl src -f. Die Bereichsform eignet sich für Dokumentation und für Systeme, die Start-Ende-Paare erwarten.

Fragen

Warum wurden meine zwei /24 nicht zu einem /23?

Ein /23 muss an einem geraden dritten Oktett beginnen: 10.0.2.0/24 und 10.0.3.0/24 werden zu 10.0.2.0/23, aber 10.0.1.0/24 und 10.0.2.0/24 nicht, weil 10.0.1.0/23 bei 10.0.0.0 beginnen würde.

Wie viele Adressen hat das Ergebnis?

Die Summenzeile unter dem Tool zählt sie getrennt für IPv4 und IPv6. Bei IPv6 sind die Anzahlen Zweierpotenzen und werden so angezeigt.

Kommt es mit überlappender Eingabe zurecht?

Ja. Überlappungen und Duplikate werden zusammengefasst, Sie können also Listen aus mehreren Quellen einfügen und erhalten eine saubere Vereinigung.

Kann ich einen CIDR-Block in einen Start-Ende-Bereich umwandeln?

Stellen Sie das Ausgabeformat auf Bereiche um. Jeder Block zeigt seine erste und letzte Adresse; bei einem einzelnen Eingabeblock ist das die ganze Antwort.