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

  1. Eingaben über die Kommandozeile: Das Skript erwartet zwei Argumente:

    • Den Hostnamen.
    • Die IPv6-Adresse.
  2. Umwandlung der IPv6-Adresse: Mithilfe des Moduls ipaddress wird die IPv6-Adresse in ihren rückwärtigen DNS-Namen (reverse pointer) umgewandelt.

  3. 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.