IPv6 PTR Script
Tags: linux python scripts bind9
Inhaltsverzeichnis
Automatisierung von PTR-Einträgen für IPv6-Adressen mit Python
Das Erstellen von PTR-Einträgen für IPv6-Adressen ist eine wiederkehrende Aufgabe, die oft mit DNS-Management einhergeht. Mit einem Python-Skript lässt sich dieser Prozess deutlich vereinfachen und beschleunigen. In diesem Beitrag stelle ich ein einfaches Python-Skript vor, das die Erstellung eines PTR-Records automatisiert.
Was sind PTR-Records?
PTR-Records (Pointer Records) sind ein wichtiger Bestandteil des DNS-Systems. Sie ermöglichen die rückwärtige Auflösung von IP-Adressen in Hostnamen, was z. B. für Mailserver eine Voraussetzung ist, um nicht auf Blacklists zu landen. Insbesondere bei IPv6-Adressen ist die Erstellung solcher Einträge aufgrund der Länge und Komplexität der Adressen fehleranfällig.
Das Python-Skript
Das folgende Skript nimmt eine IPv6-Adresse und einen Hostnamen entgegen, um daraus einen PTR-Eintrag zu generieren. Es verwendet das Python-Modul ipaddress, das standardmäßig in Python 3 enthalten ist.
#!/usr/bin/python3
import sys
import ipaddress
DOMAIN_NAME="<deine-domain>.<de>."
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Verwendung: addptr6.py <Hostname> <IPv6-Address> ")
sys.exit(1)
hostname = sys.argv[1]
ipv6 = sys.argv[2]
ptr_record = ipaddress.ip_address(ipv6).reverse_pointer
print(f'{ptr_record} PTR {hostname}.{DOMAIN_NAME}')
So funktioniert das Skript
-
Eingaben über die Kommandozeile: Das Skript erwartet zwei Argumente:
- Den Hostnamen.
- Die IPv6-Adresse.
-
Umwandlung der IPv6-Adresse: Mithilfe des Moduls ipaddress wird die IPv6-Adresse in ihren rückwärtigen DNS-Namen (reverse pointer) umgewandelt.
-
PTR-Record ausgeben: Der PTR-Eintrag wird im Format PTR hostname.domain. ausgegeben.
Beispiel
Angenommen, du möchtest einen PTR-Eintrag für die IPv6-Adresse 2001:db8::1 und den Hostnamen webserver erstellen. Du kannst das Skript wie folgt aufrufen:
./addptr6.py webserver 2001:db8::1
Die Ausgabe wäre:
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. PTR webserver.<deine-domain>.<de>.
Die Ausgabe kannst du so wie sie ist kopieren und direkt in dein Zone File einfügen. Jetzt noch die Serial erhöhen und den Dienst neu starten.
Anpassung an deine Umgebung
- Domainname: Passe die Variable DOMAIN_NAME an deinen spezifischen Domainnamen an.
- Integration in DNS-Management: Das Skript kann erweitert werden, um den PTR-Eintrag direkt in dein DNS-System (z. B. Bind) zu übernehmen.