DNS API (SOAP)

EPAG betreibt eigene DNS-Server. Diese können für Domains, die über EPAG verwaltet werden, innerhalb bestimmter Maßgaben (siehe EPAG DNS-Richtlinie) kostenlos genutzt werden. Zur Verwaltung der Zonen und Zoneneinträge (Resource Records) stellt EPAG ein Web-Interface sowie eine API als Webservice (SOAP) zur Verfügung.

Introduction

Die API lässt sich durch die Standards W3C SOAP und WSDL auf unterschiedlichen Plattformen verwenden und kann somit leicht in verschiedene Systeme integriert werden. Im Folgenden wird zunächst die Gestaltung und Nutzung der Schnittstelle und ihrer Parameter näher erläutert. Anschließend wird anhand konkreter Codebeispiele die Implementierung der API in verschiedenen gängigen Programmiersprachen veranschaulicht.

URL und Authentifizierung

Webservice URL
https://soap.epnic.net (OT&E: soap.ote.epnic.net)

WSDL URL
https://soap.epnic.net/dns_zone/?wsdl

Authentifizierung
Um Ihre Anfrage an das System zu authentifizieren, verwenden sie bitte den Benutzernamen und das Passwort, das Sie auch zur Anmeldung an Ihrem EPAG-Kundenaccount verwenden.

Abkürzungen und Begriffe

SSL

Die Abkürzung SSL steht für Secure Sockets Layer und ist ein Protokoll zur Verschlüsselung des Datenverkehrs auf TCP/IP-Ebene.

DNS

Das Domain Name System (DNS) ist einer der wichtigsten Dienste im Netzwerk. Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.

Zone

Im Domain Name System (DNS) des Internets bezeichnet die Zone den Teil des Domänenbaums, für die ein Nameserver (im Folgenden auch NS) zuständig ist und deshalb die offiziellen Daten kennt. Eine Zone wird durch einen Primary Nameserver verwaltet. Zur Erhöhung der Verfügbarkeit bei Server-Ausfällen ist es üblich, eine Zone auf einen oder mehrere Secondary Nameserver zu spiegeln.

WSDL

Die Web Services Description Language (WSDL) ist eine plattform-, programmiersprachen- und protokollunabhängige Beschreibungssprache für Netzwerkdienste (Webservices) zum Austausch von Nachrichten auf Basis von XML.

DNS-Zonenverwaltung über SOAP

Introduction

Die hier dokumentierte Schnittstelle (API) dient zur Verwaltung von DNS-Zonen. Die Schnittstelle wird als Webservice auf SOAP-Basis angeboten.

Functions

Die API stellt derzeit die folgenden Funktionen zur Verfügung:

saveZone

DNS-Zone anlegen bzw. ändern.

deleteZone

DNS-Zone löschen.

getZones

Abrufen von Informationen aller „eigenen“ DNS-Zonen.

Error codes

Folgende Fehlercodes werden im Falle eines Fehlers für die Fehlerbeschreibung verwendet.

VAL001

Datenfeld nicht vorhanden.

VAL100

Datenfeld besitzt keinen Inhalt.

VAL101

Ungültiger Datentyp.

VAL102

Ungültiger Dateninhalt.

VAL103

Authentifizierung fehlgeschlagen.

VAL105

Zugriff auf Webservice verweigert (keine SSL-Verbindung).

VAL300

E-Mail Adresse besitzt kein gültiges Format.

VAL305

Datum oder Zeitraum ungültig.

VAL306

Ungültiger Domainname.

VAL307

Ungültige IPv4-Adresse

VAL308

Ungültiger Hostname.

VAL309

Ungültiger Resource Record.

VAL310

Ungültige Zeichenfolge.

VAL311

Kein primärer oder sekundärer Nameserver vorhanden.

VAL312

Doppelte Nameserver-Einträge vorhanden.

VAL313

Eigener Nameserver kann nicht verwendet werden.

VAL314

Nameserver nicht registriert.

VAL315

Ungültige Kombination von Resource Record-Einträgen.

VAL330

Ungültiger Zahlenwert.

VAL331

Ungültiger Wertebereich.

VAL340

Wert beinhaltet unerlaubte Zeichen.

VAL341

Resource Record: Kein „relativer“ Hostname.

VAL342

Resource Record: Keine gültige IPv4-Adresse.

VAL343

Resource Record: Keine gültige IPv6-Adresse.

VAL344

Resource Record: Ungültiger Wert für „MX-Priorität“.

VAL345

Resource Record: CNAME nicht erlaubt.

VAL346

Resource Record: NS-Records nur für Sub-Domains zugelassen.

VAL347

Resource Record: Keine Wildcard-Unterstützung für NS-Records.

VAL348

Resource Record: Erwartet gültigen Hostnamen anstelle von IP-Adresse.

VAL349

Resource Record: Kein gültiger Hostname.

VAL350

Resource Record: Ungültige URL.

VAL351

Resource Record: Keine Wildcard-Unterstützung für „redirect“.

VAL352

Resource Record: Validierung fehlgeschlagen.

DNS100

Unbekannter Fehler beim Anlegen der DNS-Zone.

DNS101

Unbekannter Fehler während „Update“ der DNS-Zone.

DNS102

Unbekannter Fehler beim Anlegen des „Resource Record“.

DNS200

Zugriff auf DNS-Zone verweigert.

DNS201

DNS-Zone existiert nicht.

DBA001

Datenbankfehler.

UNK001

Unbekannter oder unbehandelter Fehler.

Webservice Functions

saveZone

Über diese Funktion kann eine DNS-Zone angelegt werden bzw. können Daten einer vorhandenen DNS-Zone überschrieben werden. Die Daten einer Zone müssen dabei immer vollständig in einem Aufruf übergeben werden. Beim erfolgreichen Speichern werden existierende Daten einer Zone immer komplett überschrieben. Beachten Sie, dass für eine DNS-Zone mindestens zwei Namevserver (master + slave) definiert werden müssen (der erste Nameserver der angegeben wird, wird als „primärer“ Nameserver verwendet). Zudem muss bei einem NS-Eintrag das „host“-Feld leer sein.

Eingabeparameter

saveZone Eingabeparameter:

Parameter
Mandatory field
Data type
Definition

auth

yes

auth

Enthält die Daten zur Authentifizierung bei EPAG.

zone

yes

String

Name der Zone bzw. der Domain (z.B. „meineseite.de“).

hiddenPrimaryIP

optional

String

Soll ein verstecker primärer Nameserver verwendet werden, so tragen Sie an dieser Stelle bitte eine gültige IP (v4) ein.

records

yes

dnsRecord[]

Liste/Array mit Resource Record-Einträgen.

Datentyp auth:

Parameter
Mandatory field
Data type
Definition

username

yes

String

Benutzername des EPAG-Accounts.

password

yes

String

Passwort des EPAG-Accounts.

Datentyp dnsRecord:

Parameter
Mandatory field
Data type
Definition

host

yes

String

Relativer Hostname (z.B. „ftp“). Für einen NS-Eintrag muss dieses Feld leer sein!

type

yes

String

Resource Record-Typ. Mögliche Inhalte: NS, MX, A, AAAA, CNAME, TXT, PTR, http_redirect, frame_redirect oder http_redirect_permanent.

mxPriority

optional

String

Zahlenwert für MX-Priorität (0 = höchste Priorität). Nur für Typ „MX“.

value

yes

String

Resource-Data: Daten die den Resource Record näher beschreiben (zum Beispiel eine IP-Adresse für einen A-Eintrag, oder einen Hostnamen für einen NS-Eintrag).

Rückgabeparameter

saveZone Rückgabeparameter:

Parameter
Data type
Definition
Content

resultCode

Integer

Ergebnis-Code der Funktion.

1 = erfolgreich. -1 = gescheitert.

resultCount

Integer

Anzahl der in „result“ zurückgelieferten Ergebnisse.

result

String

Error code.

errorCount

String

Kurze Fehlerbeschreibung.

error

String[]

Liste/Array mit zusätzlichen Informationen (nur bei bestimmten Fehlern vorhanden).

See section "Error codes"

Datentyp error:

Parameter
Data type
Definition
Content

code

String

Error code.

See section "Error codes"

description

String

Kurze Fehlerbeschreibung.

parameters

String[]

Liste/Array mit zusätzlichen Informationen (nur bei bestimmten Fehlern vorhanden).

SOAP Beispiele

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:saveZone>
            <body>
                
                <auth>
                   <username>?</username>
                   <password>?</password>
                </auth>

                <zone>?</zone>

                <hiddenPrimaryIP>?</hiddenPrimaryIP> <!-- optional -->
                    
                <records> <!-- one or more elements -->
                    <host>?</host> <!-- empty for ns-records -->
                    <type>?</type>
	              <mxPriority>?</mxPriority> <!-- only for mx/srv-records -->
                    <value>?</value>
                 </records>
		   <records>
                    <host>?</host>
                    <type>?</type>
                    <mxPriority>?</mxPriority>
                    <value>?</value>
                 </records>

            </body>
        </ns1:saveZone>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:saveZoneResponse>
            <body>
        
                <resultCode>?</resultCode>   <-- success-code -->
                <resultCount>?</resultCount> <-- number of result-elements -->
                <result>?</result>           <-- if resultCount greater 0 -->   
          
                <errorCount>?</errorCount>   <-- number of error-elements -->
                <error>                      <-- if errorCount greater 0 -->
                    <code>?</code>
                    <desc>?</desc>
                    <parameters>                 <-- zero, one or more elements -->
                        <name>a</name>       <-- Param-Name -->
                        <value>b</value>     <-- Param-Value -->
                    </parameters>
                </error>

            </body>
        </ns1:saveZoneResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

deleteZone

Diese Funktion bietet die Möglichkeit eine DNS-Zone zu löschen. Da eine DNS-Zone nicht sofort gelöscht werden kann, wird diese vorerst nur als „gelöscht“ markiert. Das eigentliche Löschen erfolgt dann automatisch zu einem späteren Zeitpunkt.
Bitte beachten Sie, dass die Funktion getZones auch gelöscht-markierte Zonen zurückliefert, solange diese noch nicht endgültig gelöscht wurden.

Eingabeparameter

deleteZone Eingabeparameter:

Parameter
Mandatory field
Data type
Definition

auth

yes

auth. See section "saveZone".

Enthält die Daten zur Authentifizierung bei EPAG.

zone

yes

String

Name der Zone die gelöscht werden soll.

Rückgabeparameter

deleteZone Rückgabeparameter:

Parameter
Mandatory field
Data type
Definition

resultCode

Integer

Ergebnis-Code der Funktion.

1 = erfolgreich.
-1 = gescheitert.

resultCount

Integer

Anzahl der in „result“ zurückgelieferten Ergebnisse.

result

String

Kurze Erfolgsmeldung.
Die Rückgabe dieses Parameters erfolgt nur bei erfolgreicher Ausführung.

errorCount

Integer

Anzahl der zurückgelieferten Fehlermeldungen.

error

error. See section "Error codes".

Einzelne Fehlermeldung oder Liste mit Fehlermeldungen
(Die Rückgabe dieses Parameters erfolgt nur wenn
Fehler aufgetreten sind).

SOAP Beispiele

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:deleteZone>
            <body>
                
                <auth>
                   <username>?</username>
                   <password>?</password>
                </auth>

                <zone>?</zone>
 
            </body>
        </ns1:deleteZone>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:deleteZoneResponse>
            <body>
        
                <resultCode>?</resultCode>   <-- success-code -->
                <resultCount>?</resultCount> <-- number of result-elements -->
                <result>?</result>           <-- if resultCount greater 0 -->   
          
                <errorCount>?</errorCount>   <-- number of error-elements -->
                <error>                      <-- if errorCount greater 0 -->
                    <code>?</code>
                    <desc>?</desc>
                    <parameters>             <-- zero, one or more elements -->
                        <name>a</name>       <-- Param-Name -->
                        <value>b</value>     <-- Param-Value -->
                    </parameters>
                </error>

            </body>
        </ns1:deleteZoneResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

getZones

Diese Funktion liefert eine Liste mit den Daten aller DNS-Zonen, die dem eigenen Kunden-Account zugeordnet sind.
Um die Daten einer bestimmten Zone abzufragen, verwenden Sie bitte das Datenfeld „filter“.
Bitte beachten Sie dass die Funktion getZones auch als gelöscht-markierte Zonen zurückliefert, solange diese noch nicht endgültig gelöscht wurden.

Eingabeparameter

getZones Eingabeparameter:

Parameter
Mandatory field
Data type
Definition

auth

yes

auth. See section "saveZone".

Enthält die Daten zur Anmeldung bei EPAG.

filter

optional

getZonesFilter

Enthält die Kriterien, nach denen die Ausgabe gefiltert werden soll.

Datentyp getZonesFilter:

Parameter
Mandatory field
Data type
Definition

zone

optional

String

Es werden nur Daten zu der hier angegebenen Zone zurückgeliefert.

Rückgabeparameter

getZones Rückgabeparameter:

Parameter
Data type
Definition
Content

resultCode

Integer

Ergebnis-Code der Funktion.

1 = erfolgreich.
-1 = gescheitert.

resultCount

Integer

Anzahl der in „result“ zurückgelieferten Ergebnisse.

result

dnsZone[]

Liste /Array mit DNS-Zonen (resultCount = Anzahl der zurückgelieferten Elemente).

errorCount

Integer

Anzahl der zurückgelieferten Fehlermeldungen.

error

error. See section "Error codes".

Einzelne Fehlermeldung oder Liste mit Fehlermeldungen
(Die Rückgabe dieses Parameters erfolgt nur, wenn
Fehler aufgetreten sind).

Datentyp dnsZone:

Parameter
Data type
Definition

zone

String

Beinhaltet Name der jeweiligen Zone.

hiddenPrimaryIP

String

IP des „versteckten“ primären Nameservers (sofern angegeben). Ansonsten leeres Datenfeld.

recordCount

Integer

Anzahl der Resource Records bzw. Elemente in record.

record

dnsZoneRecord[]

Liste /Array mit Resource Record-Einträgen.

Datentyp dnsZoneRecord:

Parameter
Data type
Definition

host

String

Beinhaltet relativen Host-Namen.
Bei einem NS-Eintrag ist dieses Feld leer.

type

String

Beinhaltet Resource Record-Typ.
Mögliche Inhalte (je nach Benutzerberechtigung):
NS, MX, A, AAAA, CNAME, TXT, PTR, SRV, http_redirect, frame_redirect oder http_redirect_permanent.

mxPriority

String

Wert für MX/SRV-Priorität (0 = höchste Priorität).

value

String

Beinhaltet die Daten, die den Resource Record näher beschreiben (zum Beispiel eine IP-Adresse für einen A-Eintrag oder einen Hostnamen für einen NS-Eintrag).

SOAP Beispiele

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:getZones>
            <body>
                
                <auth>
                   <username>?</username>
                   <password>?</password>
                </auth>

                <filter> <!-- optional -->
                    <zone>?</zone>
                </filter>

            </body>
        </ns1:getZones>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="epag.dns_zone">
    <SOAP-ENV:Body>
        <ns1:getZonesResponse>
            <body>
        
                <resultCode>?</resultCode>   <-- success-code -->
                <resultCount>?</resultCount> <-- number of result-elements -->
                <result>                     <-- if resultCount greater 0 -->   

                    <zone>?</zone>
              
                    <hiddenPrimaryIP>?</hiddenPrimaryIP>
              
                    <recordCount>?</recordCount> <!-- number of resource record-elements -->
                    <record> <!-- one or more elements -->
                        <host>?/host>
                        <type>?</type>
                        <mxPriority>?</mxPriority>
                        <value>?</value>
                    </record>
                    <record>
                        <host>?/host>
                        <type>?</type>
                        <mxPriority>?</mxPriority>
                        <value>?</value>
                    </record>

                </result>  
        
                <errorCount>?</errorCount>   <-- number of error-elements -->
                <error>                      <-- if errorCount greater 0 -->
                    <code>?</code>
                    <desc>?</desc>
                    <parameters>             <-- zero, one or more elements -->
                        <name>?</name>       <-- Param-Name -->
                        <value>?</value>     <-- Param-Value -->
                    </parameters>
                </error>

            </body>
        </ns1:getZonesResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

DNS API (SOAP)


EPAG betreibt eigene DNS-Server. Diese können für Domains, die über EPAG verwaltet werden, innerhalb bestimmter Maßgaben (siehe EPAG DNS-Richtlinie) kostenlos genutzt werden. Zur Verwaltung der Zonen und Zoneneinträge (Resource Records) stellt EPAG ein Web-Interface sowie eine API als Webservice (SOAP) zur Verfügung.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.