SelfLinux Internet Domain Name System Abschnitt 24 | SelfLinux-0.13.0

| Domain Name System | Autor Formatierung GFDL

#### 31 Classless Routing (CIDR)

Bei der klassischen Struktur des Internet gab es als kleinstes Netzwerk ein "Class C"-Netz mit 8 Bit Hostanteil, also für 254 Maschinen. Da viele kleinere Firmen existieren, wäre das eine große Verschwendung von IP-Adressen, deshalb vergibt man auch Teilnetze davon (z.B. mit 4-7 Bit Hostanteil, also /25 bis /29 Netze mit 6 bis 126 nutzbaren Adressen). Diese Technik nennt man CIDR (Classless Internet Domain Routing - Klassenloses Internetrouting), weil man nicht mehr an Klasse-A/B/C-Netze gebunden ist, und ein klassisches A-Netz z.B. wie 256 B-Netze routen und vergeben kann.

Dabei tut sich dann ein Problem auf: die Auflösung der IP-Adressen in Namen in der in-addr.arpa Zone. Da Delegation ja nur an den "Punkten", also an der Bytegrenze einer IP-Adresse möglich ist, muß das C-Netz, das zu verschiedenen Teilen von verschiedenen Firmen verwendet wird, vom Provider verwaltet werden, da erstmal keine Delegation möglich ist. Das ist dann unpraktisch, da eine Firma jede Veränderung über diesen Umweg durchführen muß.

Mit einem Trick, der auf ein Newsposting von G.A. Herrmannsfeldt zurückgeht (und inzwischen in RFC 2317 beschrieben ist), lassen sich die Adressen eines solchen Teilnetzes dann aber doch delegieren. Die Idee dabei ist, dass in der eigentlichen in-addr.arpa die Adressen CNAME-Records sind (also Aliasnamen), die auf andere Zonen zeigen. Diese anderen Zonen lassen sich dann "delegieren", bzw. werden dort und dafür die entsprechenden Nameserver eingesetzt. Im klassischen Falle sähe die unpraktische Zone beim Provider ja so aus (zu den Netzen 192.168.2.0/30, 192.168.2.4/30 usw.):

2.168.192.zone

    $TTL 1d

    2.168.192.in-addr.arpa. IN SOA pri-ns.selflinux.de. admin.selflinux.de. (
            2000012501 ; Serial (Seriennummer)
            3H         ; Refresh (Aktualisierung)
            1H         ; Retry (neuer Versuch)
            1M         ; Expire (ungültig nach)
            1D )       ; min. TTL (mindeste Gültigkeit)

                    IN  NS          ns1.selflinux.de.
                    IN  NS          ns2.selflinux.de.

    1               IN  PTR         lisa.simpson.net.
    2               IN  PTR         bart.simpson.net.

    5               IN  PTR         ernie.sesam.org.
    6               IN  PTR         bert.sesam.org.

usw. Nun möchte man das also über CNAMES in andere Zonen zeigen lassen. Als Namen für diese Zone könnte man die Netzwerknummer verwenden (also 0.2.168.192.in-addr.arpa und [kurz] "4" - die Telekom macht das z.B. so), oder auch noch die Broadcastaddressen dazunehmen (also "0-3"), oder die Netzmaske ("0-3", oder auch "0/30", was genau genommen nicht verboten ist, da es sich hierbei nicht um einen Hostnamen handelt, wäre der "/" erlaubt), also erhält man z.B. (nur diese Records):

2.168.192.zone

    1               IN  CNAME       1.0-3.2.168.192.in-addr.arpa.
    2               IN  CNAME       2.0-3.2.168.192.in-addr.arpa.

    5               IN  CNAME       5.4-8.2.168.192.in-addr.arpa.
    6               IN  CNAME       6.4-8.2.168.192.in-addr.arpa.

Der Zone 0-3.2.168.192.in-addr.arpa. müssen dann natürlich noch NS-RRs hinzugefügt werden. Diese müssen in der zu "0-3" übergeordneten Zone eingetragen werden - also in der, in der auch die CNAMES stehen. Das ist günstig, man erhält zusätzlich z.B.:

2.168.192.zone

    0-3.2.168.192.in-addr.arpa. IN NS ns1.simpson.net.
    0-3.2.168.192.in-addr.arpa. IN NS ns2.simpson.net.

In diesen delegierten Zonen werden dann vom DNS-Admin von simpson.net die PTR Records untergebracht. Das sieht dann z.B. so aus:

0-3.2.168.192.zone

    $TTL 1d

    0-3.2.168.192.in-addr.arpa. IN SOA pri-ns.simpson.net. admin.simpson.net. (
            2000012501 ; Serial (Seriennummer)
            3H         ; Refresh (Aktualisierung)
            1H         ; Retry (neuer Versuch)
            1M         ; Expire (ungültig nach)
            1D )       ; min. TTL (Mindestgültigkeit)

                    IN NS ns1.simpson.net.
                    IN NS ns2.simpson.net.

    1               IN  PTR         lisa.simpson.net.
    2               IN  PTR         bart.simpson.net.

Es ist auch nicht zwingend notwendig, die "erfundenen" neuen Zones unter die in-addr.arpa.-Zone zu legen, man könnte auch 0-3.simpson.net. verwenden, oder gar arpa.simpson.net. Das muß je nach Fall entschieden werden. Diese Entscheidung liegt beim übergeordneten Provider.

Leider kann man dieses Verfahren nicht mehrfach anwenden, um weiter zu delegieren, da in diesem Fall ein CNAME auf einen CNAME zeigt, was nicht sein soll (und was damit zu Problemen führen kann).