A / 22 zu delegieren ist einfach, es ist Delegation der 4 / 24s. A / 14 ist eine Delegation der 4 / 16er usw.
RFC2317 deckt die Sonderfälle mit einer Netzmaske ab, die länger als / 24 ist. Grundsätzlich gibt es keine sehr saubere Möglichkeit, die Delegierung von inaddr.arpa-Zonen auf etwas anderes als Oktettgrenzen vorzunehmen, aber Sie können dies umgehen. Angenommen, ich möchte 172.16.23.16/29 delegieren, das wären die IP-Adressen 172.16.23.16 -> 172.16.23.23.
Als Eigentümer der Zone 23.16.172.in-addr.arpa würde ich dies möglicherweise in meine Zonendatei 23.16.172.rev aufnehmen, um diesen Bereich an meinen Kunden zu delegieren:
16-29 IN NS ns1.customer.com
16-29 IN NS ns2.customer.com
16 IN CNAME 16.16-29.23.16.172.in-addr.arpa.
17 IN CNAME 17.16-29.23.16.172.in-addr.arpa.
18 IN CNAME 18.16-29.23.16.172.in-addr.arpa.
19 IN CNAME 19.16-29.23.16.172.in-addr.arpa.
20 IN CNAME 20.16-29.23.16.172.in-addr.arpa.
21 IN CNAME 21.16-29.23.16.172.in-addr.arpa.
22 IN CNAME 22.16-29.23.16.172.in-addr.arpa.
23 IN CNAME 23.16-29.23.16.172.in-addr.arpa.
Sie sehen also, dass ich eine neue Zone definiere (16-29.23.16.172.in-addr.arpa.) Und sie an die Nameserver meines Kunden delegiere. Dann erstelle ich CNAMEs aus den IPs, die an die entsprechende Nummer in der neu delegierten Zone delegiert werden sollen.
Als Kunde, an den diese delegiert wurden, würde ich in named.conf Folgendes tun:
zone "16-29.23.16.172.in-addr.arpa" {
type master;
file "masters/16-29.23.16.172.rev";
};
Und dann würde ich in der .rev-Datei PTRs wie in jeder normalen inaddr.arpa-Zone erstellen:
17 IN PTR office.customer.com.
18 IN PTR www.customer.com.
(etc)
Das ist eine saubere Art und Weise und macht versierte Kunden glücklich, weil sie eine Inaddr.arpa-Zone haben, in die sie die PTRs einfügen können. Wenn Sie eine ganze Zone einrichten möchten, müssen Sie nur einzelne Datensätze mit ähnlichen Namen in ihrer Hauptzone benennen.
In diesem Fall hätten wir als Delegatoren in unserer Datei 23.16.172.rev Folgendes:
16 IN CNAME 16.customer.com.
17 IN CNAME 17.customer.com.
18 IN CNAME 18.customer.com.
19 IN CNAME 19.customer.com.
20 IN CNAME 20.customer.com.
21 IN CNAME 21.customer.com.
22 IN CNAME 22.customer.com.
23 IN CNAME 23.customer.com.
Das Konzept ähnelt dem der anderen Idee, aber anstatt eine neue Zone zu erstellen und diese an den Kunden zu delegieren, benennen Sie die Datensätze in Namen in der bereits vorhandenen Hauptzone des Kunden.
Der Kunde würde so etwas in seiner Zonendatei customer.com haben:
office IN A 172.16.23.17
17 IN PTR office.customer.com.
www IN A 172.16.23.18
18 IN PTR www.customer.com.
(etc)
Es kommt nur auf die Art des Kunden an. Wie gesagt, es kommt nur auf den Kundentyp an. Ein versierter Kunde wird es vorziehen, seine eigene inaddr.arpa-Zone einzurichten, und wird es für sehr seltsam halten, PTRs in einer Domain-Name-Zone zu haben. Ein nicht versierter Kunde möchte, dass es "einfach funktioniert", ohne dass eine Menge zusätzlicher Konfigurationsschritte erforderlich sind.
Es gibt wahrscheinlich andere Methoden, die nur die beiden beschreiben, mit denen ich vertraut bin.
Ich habe nur über meine Aussage nachgedacht, wie einfach / 22 und / 14 sind, und darüber, warum das stimmt, aber alles zwischen 25 und 32 ist schwierig. Ich habe das noch nicht getestet, aber ich frage mich, ob Sie die gesamte / 32 so an den Kunden delegieren könnten:
16 IN NS ns1.customer.com.
17 IN NS ns1.customer.com.
(etc)
Dann fangen Sie auf Kundenseite die gesamte / 32:
zone "16.23.16.172.in-addr.arpa" { type master; file "masters/16.23.16.172.rev"; };
zone "17.23.16.172.in-addr.arpa" { type master; file "masters/17.23.16.172.rev"; };
(etc)
Und dann würden Sie in der einzelnen Datei so etwas haben:
@ IN PTR office.customer.com.
Der offensichtliche Nachteil ist, dass eine Datei pro 32 eine Art Brutto ist. Aber ich wette, es würde funktionieren.
Alles, was ich erwähnt habe, ist reines DNS. Wenn ein DNS-Server dies nicht zulässt, liegt dies daran, dass die volle Funktionalität von DNS eingeschränkt wird. Meine Beispiele verwenden offensichtlich BIND, aber wir haben dies kundenseitig mithilfe von Windows-DNS und BIND durchgeführt. Ich sehe keinen Grund, warum es mit keinem Server funktioniert.
Ja, RFC 2317 , eine sehr gute Lektüre, ist der richtige Weg.
Auch mein Artikel (auf Französisch).
quelle
BIND verfügt über das proprietäre $ GENERATE-Makro zum Erstellen von Sequenzen von PTR-Datensätzen, geht jedoch auch von einer klassischen Welt aus und ist für Sie nicht sehr nützlich. Ich kenne keine anderen Server, die spezielle Unterstützung für CIDR-Reverse-Zonen bieten, obwohl ich vermute, dass eine Nachfrage danach besteht!
PowerDNS hat eine nette Backend-Oberfläche, mit der Sie Ihre eigenen schreiben können, wenn das Problem groß genug ist, um die Mühe wert zu sein. Sie können Prototypen auch mit dem "PipeBackend" erstellen. Über die MySQL / PostgreSQL-Schnittstellen können Sie sogar einige magische SQL-Aufgaben ausführen - zumal Postgres einen "cidr" -Datentyp hat.
quelle
http://aa.net.uk/kb-domains-reversedns.html (ungefähr auf halber Strecke) erklärt, wie mein ISP sein Reverse-DNS ausführt. Ich vermute, wie auch immer Sie es tun, es wird höllisch hässlich.
quelle