Nameservereinträge bei INWX via API ändern

In meinem letzten Blogpost hatte ich bereits erwähnt, dass meine Domains inzwischen bei INWX registriert sind. Ich bin auf INWX im Uberspace-Wiki gestoßen, hab mich kurz umgesehen und gelesen, dass die eine API anbieten um Nameservereinträge zu verändert – und mein Interesse war geweckt.

Mein BananaPi auf dem mein Seafile-Server und ein paar andere Dienste laufen steht nämlich bei mir zuhause und ist über einen Kabel Deutschland-Anschluss mit dem Internet verbunden. Es kommt zwar nicht häufig vor, aber manchmal bekomme ich von Kabel Deutschland eine neue IP-Adresse (V4 und V6) zugeteilt. Damit Seafile via Domain erreichbar ist, muss diese neue IP-Adresse beim DNS-Server hinterlegt werden. Anfangs hatte ich dafür anydns.info genutzt und bei wechselnder IP-Adresse hat die FritzBox diese Änderung sofort anydns mitgeteilt. Nur leider kommt es immer wieder vor, dass Anydns-Dienste von Firmenfirewalls geblockt werden… Es musste also Abhilfe her.

Nach kurzem suchen bin ich bei GitHub über nsupdate gestolpert – ein Shellscript das genau das macht, was ich will: Für meine eigene Domain die A und AAAA-Records (die ipV4 und ipV6-Adressen auf die die Domain aufgelöst werden soll) im DNS-Server setzen.

Nachdem ich mich ein wenig mit der Konfiguration auseinandergesetzt habe funktioniert das inzwischen einwandfrei. nsupdate wird per cronjob minütlich auf meinem BananaPi ausgeführt (*   *  *   *   *     /***/***/***/nsupdate.sh > /dev/null
), findet zwei Konfigurationsdateien (eine für ipV4 und eine für ipV6), checkt ob sich was verändert hat und meldet diese Änderung gegebenenfalls an INWX weiter. Normale Meldungen werden nach /dev/null geschickt, Fehlermeldungen bekomme ich per E-Mail.

Hier noch meine Konfigurationsdatei für ipV4 auf meinem BananaPi (Bananian Linux basierend auf Debian Jessie):

# from which site should we get your wan ip?
IP_CHECK_SITE="https://XXX.uberspace.de/XXX/ip/" #i set up my own service because i didn't want to depend on someone else here
# use drill instead of nslookup for hostname lookup
USE_DRILL="YES"
# Use IPv6 connection
IPV6="NO"
# Update an MX record
MX="NO"
# Suppress all messages
SILENT="NO"
# Login credentials for the inwx admin interface
INWX_USER="XXX"
INWX_PASS="XXX"
# The hostname that you want to update and it's ID from the inwx interface
# You get the ID when you edit the given nameserver entry and hover the save button.
DOMAIN="XXX"
INWX_DOMAIN_ID="XXX"

Für ipV6 muss der Parameter ipV6 geändert werden – und die INWX_DOMAIN_ID für den AAAA-Record angegeben.

Da ich mich beim der IP_CHECK_SITE nicht auf einen fremden Service verlassen wollte, habe ich hier auf meinem Uberspace ein Unterverzeichnis angelegt in dem mit ein kurzes PHP-Skript die IP-Adresse ausgibt:

<?php
echo $_SERVER["REMOTE_ADDR"];
?>

Läuft und ich bin glücklich 🙂

3 Gedanken zu „Nameservereinträge bei INWX via API ändern“

  1. Interessanter Beitrag. Werde ich umgehend ausprobieren.

    Bei inwx gibt es seit kurzer Zeit auch eine Beta Version für einen DynDns Dienst. Eine Domain ist kostenfrei für Kunden einzurichten und der Eintrag wird alle 60 Sekunden geprüft. Funkioniert problemlos und ersetzte bis jetzt bei mir den Service von http://www.spdyn.de, aber das hier vorgestellte klingt noch besser.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert