Zurück

DNS-Zone von einem anderen Dienst übertragen

8 Min Lesedauer · Aktualisiert am 29.10.2024

Hast du bei deinem aktuellen Webhosting-Dienst deine DNS-Zone exportiert und möchtest diese nun bei cyon importieren? Damit der Import klappt, gilt es im Voraus die Daten in die von unserem System verlangte Form zu bringen. Im Abschnitt «Format der DNS-Einträge» beschreiben wir im Detail, welche Syntax für die einzelnen DNS-Records verlangt wird.

Vorbereitung für den Import

Nicht jeder Dienst nutzt für den Export dasselbe Datei-Format und dieselbe Syntax. Deshalb gilt es, die exportierte Datei zuerst in das korrekt Format zu bringen. Die Import-Funktion im my.cyon verlangt eine JSON-Datei. Wir beschreiben anhand eines Beispiels, wie du eine einfache Text-Datei in das für den Import notwendige Format bringen kannst.

1
In unserem Beispiel haben wir die Datei zone_oliverorange.txt, welche die DNS-Informationen unserer Domain oliverorange.ch enthält. Öffne deine Datei mit dem Textverarbeitungsprogramm deines Geräts oder dem Text-Editor deiner Wahl. Wir nutzen «TextEdit» von macOS. Unter Windows kannst du «Editor» nutzen.
2

Der Inhalt in unserem Beispiel beginnt mit folgenden Zeilen:

; Zone file for oliverorange.ch
;
$TTL 14400
oliverorange.ch.    14400   IN  SOA ns1.cyon.ch.    server.cyon.ch. 2024062401 14400 1800   1209600     3600
;
; Zone NS Records
;
oliverorange.ch.    86400   IN  NS  ns1.cyon.ch.
oliverorange.ch.    86400   IN  NS  ns2.cyon.ch.
;
; basic services
;
oliverorange.ch.    14400   IN  A   149.126.4.12
www 14400   IN  CNAME   oliverorange.ch.

Die Zeilen, welche mit dem Semikolon beginnen, wie ; Zone file for oliverorange.ch, sind Kommentare. Zur besseren Übersicht entfernen wir alle Kommentare und Zeilen, welche keine DNS-Einträge sind. Die Daten sehen nun schon deutlich übersichtlicher aus:

oliverorange.ch.    14400   IN  SOA ns1.cyon.ch.    server.cyon.ch. 2024062401 14400 1800   1209600     3600
oliverorange.ch.    86400   IN  NS  ns1.cyon.ch.
oliverorange.ch.    86400   IN  NS  ns2.cyon.ch.
oliverorange.ch.    14400   IN  A   149.126.4.12
www 14400   IN  CNAME   oliverorange.ch.
3

Manchmal wird bei DNS-Records die Domain nicht erwähnt oder lediglich als @ dargestellt. So auch in unserem Beispiel, wo Subdomains ohne die eigentliche Domain danach dargestellt werden:

www 14400   IN  CNAME   oliverorange.ch.

Hier ergänzen wir als Vorbereitung die Domain mit einem Punkt getrennt, so dass der Eintrag danach wie folgt aussieht:

www.oliverorange.ch.    14400   IN  CNAME   oliverorange.ch.
4

Nun müssen die verbleibenden DNS-Einträge in das korrekte Format gebracht werden. Wir zeigen hier das Vorgehen anhand des Haupt-A-Records deiner Domain. Dieser sieht in unserer Beispielsdatei wie folgt aus:

oliverorange.ch.    14400   IN  A   149.126.4.12

Dieser Eintrag kann in folgende Teile aufgeteilt werden:

  • Name: oliverorange.ch.
  • TTL: 14400
  • Klasse: IN (Der Wert steht für «Internet» und gilt für alle DNS-Einträge. Weitere Infos dazu findest du auf Wikipedia)
  • Typ: A
  • Wert: 149.126.4.12

Diese Angaben müssen nun in folgendes Format gebracht werden:

{
    "comments": [],
    "name": "oliverorange.ch.",
    "records": [
        {
            "content": "149.126.4.12",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "A"
}

Folgende Felder entsprechen also den oben erwähnten Angaben:

  • comment: kann leer gelassen werden
  • name: entspricht dem Feld «Name»
  • content: entspricht dem Feld «Wert»
  • disabled: schreibe dort jeweils false rein
  • ttl: entspricht dem Feld «TTL»
  • type entspricht dem Feld «Typ»

Ist soweit alles klar, gilt es nun, den Inhalt entsprechend umzuschreiben.

5

Erstelle dazu eine neue Datei in deinem Text-Editor und speichere diese mit der Dateiendung .json. Wir benennen diese in unserem Beispiel zone_oliverorange.ch.json. Damit diese als gültige JSON-Datei erkannt wird, beginne mit [ und ].

[
]
6

Nun kopiere folgende Basisstruktur eines leeren DNS-Eintrags und füge diese zwischen den eckigen Klammern ein:

    {
        "comments": [],
        "name": "",
        "records": [
            {
                "content": "",
                "disabled": false
            }
        ],
        "ttl": 14400,
        "type": ""
    },

Füge diese Zeile so oft nacheinander ein, wie du DNS-Einträge in deiner DNS-Zone hast. Beim letzten Eintrag entferne das Komma nach der geschweiften Klammer. Es sollte nun ungefähr so aussehen:

[
    {
        "comments": [],
        "name": "",
        "records": [
            {
                "content": "",
                "disabled": false
            }
        ],
        "ttl": 14400,
        "type": ""
    },
    {
        "comments": [],
        "name": "",
        "records": [
            {
                "content": "",
                "disabled": false
            }
        ],
        "ttl": 14400,
        "type": ""
    }
]
7

Fülle nun die noch leeren Felder mit den Inhalten aus deiner Datei aus und speichere diese. In unserem Beispiel sieht dies danach wie folgt aus:

[
    {
        "comments": [],
        "name": "oliverorange.ch.",
        "records": [
            {
                "content": "149.126.4.12",
                "disabled": false
            }
        ],
        "ttl": 14400,
        "type": "A"
    },
    
    ... weitere DNS-Einträge ...
    
    {
        "comments": [],
        "name": "www.oliverorange.ch.",
        "records": [
            {
                "content": "oliverorange.ch.",
                "disabled": false
            }
        ],
        "ttl": 14400,
        "type": "CNAME"
    }
]
8
Nun ist die Datei bereit für den Import. Folge dazu unserer Anleitung «DNS-Zone importieren».

Format der DNS-Einträge

Folgend eine Liste aller von cyon unterstützten DNS-Einträge und wie diese in der JSON-Datei dargestellt werden, wobei wir die Daten aus den Beispielen im Artikel «DNS-Records» verwenden.

A-Record

Was ist ein A-Record?

{
    "comments": [],
    "name": "demo.oliverorange.ch.",
    "records": [
        {
            "content": "149.126.4.12",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "A"
},

AAAA-Record

Was ist ein AAAA-Record?

{
    "comments": [],
    "name": "ipv6.oliverorange.ch.",
    "records": [
        {
            "content": "2001:0db8:0000:08d3:0000:8a2e:0070:7344",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "AAAA"
},

CNAME-Record

Was ist ein CNAME-Record?

Die Eingabe der Domain wird stets mit einem Punkt abgeschlossen, wie das im Feld «Name» der Fall ist.

{
    "comments": [],
    "name": "chantal.oliverorange.ch.",
    "records": [
        {
            "content": "chantalcherry.ch.",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "CNAME"
},

MX-Record

Was ist ein MX-Record?

Beim MX-Record wird im Feld content zuerst die Priorität und danach der Wert mit einem Leerzeichen getrennt eingetragen. Die Eingabe der Domain wird stets mit einem Punkt abgeschlossen, wie das im Feld «Name» der Fall ist.

{
    "comments": [],
    "name": "oliverorange.ch.",
    "records": [
        {
            "content": "0 oliverorange.ch.",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "MX"
},

TXT-Record

Was ist ein TXT-Record?

Beachte dass der Wert eines TXT-Records immer in Anführungszeichen steht, welche mit einem Backslash \" escaped werden sollen.

{
    "comments": [],
    "name": "oliverorange.ch.",
    "records": [
        {
            "content": "\"v=spf1 +a +mx +ip4:194.126.200.0/24 +ip4:149.126.0.0/21 -all\"",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "TXT"
},

SRV-Record

Was ist ein SRV-Record?

Bei SRV-Records werden im Feld content die Werte «Priorität», «Gewichtung», «Port» und «Wert» mit einem Leerzeichen getrennt aufgeführt. Die Eingabe der Domain wird stets mit einem Punkt abgeschlossen, wie das im Feld «Name» der Fall ist.

{
    "comments": [],
    "name": "_autodiscover._tcp.oliverorange.ch.",
    "records": [
        {
            "content": "0 0 443 maildiscovery.cyon.ch.",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "SRV"
},

CAA-Record

Was ist ein CAA-Record?

Beim CAA-Record werden im Feld content die Werte «Flag», «Tag» und «Wert» mit einem Leerzeichen getrennt aufgeführt. Beachte dass der Wert in Anführungszeichen steht, welche mit einem Backslash \" escaped werden sollen.

{
    "comments": [],
    "name": "oliverorange.ch.",
    "records": [
        {
            "content": "0 issue \"letsencrypt.org\"",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "CAA"
},

NS-Record

Was ist ein NS-Record?

Die Eingabe der Domain im Feld «Wert» wird mit einem Punkt abgeschlossen, wie das im Feld «Name» der Fall ist.

{
    "comments": [],
    "name": "subdomain.oliverorange.ch.",
    "records": [
        {
            "content": "ns1.extern.tld.",
            "disabled": false
        }
    ],
    "ttl": 86400,
    "type": "NS"
},

SOA-Record

Was ist ein SOA-Record?

Der SOA-Record wird durch unser System erstellt und verwaltet. Befindet sich ein solcher Eintrag im Zonenfile, welches du bei einem anderen Dienst exportiert hast, empfehlen wir, diesen Eintrag vor dem Import zu entfernen. Hast du die DNS-Zone hingegen über dein my.cyon exportiert, ist der SOA-Eintrag korrekt vorhanden und kann auch so belassen werden. 

Bei SOA-Records werden im Feld content die Werte «Mname», «Rname», «Serial», «Refresh», «Retry», «Expire» und «Minimum» mit einem Leerzeichen getrennt aufgeführt.

{
    "comments": [],
    "name": "oliverorange.ch.",
    "records": [
        {
            "content": "ns1.cyon.ch. server.cyon.ch. 2024062401 14400 1800 1209600 3600",
            "disabled": false
        }
    ],
    "ttl": 14400,
    "type": "SOA"
},
Kategorien
DNS
Artikel teilen
E-Mail WhatsApp

Du hast noch Fragen?

Wir beantworten sie dir gerne persönlich.

Kontaktiere uns