Einträge verwalten

Zum Verwalten von DNS-Einträgen für die Cloud DNS API müssen Änderungsanfragen an die API gesendet werden. Auf dieser Seite wird gezeigt, wie Sie Änderungen durch Hinzufügen und Löschen in Ihrer Sammlung von Ressourcendatensätzen vornehmen können. Außerdem wird auf dieser Seite erläutert, wie Sie die gewünschten Änderungen mit den Befehlen import, export und transaction an die API senden.

Vorbereitung

Sie müssen bereits eine verwaltete Zone erstellt und die Voraussetzungen für diese Aufgabe geschaffen haben.

Sie können DNS-Einträge in einem Eintrag hinzufügen oder entfernen. Dazu erstellen Sie eine Transaktion, die die gewünschten Vorgänge festlegt, die Sie ausführen möchten. Eine Transaktion besteht aus mindestens einer Änderung oder einer Gruppe von Änderungen, die gemeinsam übernommen werden müssen. Nur die gesamte Transaktion kann erfolgreich sein oder fehlschlagen, sodass sich Ihre Daten niemals in einem Zwischenstadium befinden.

Eintrag hinzufügen

Wenn Sie einen Eintrag hinzufügen, können Sie in den Datensatz für einen DNS-Namen zwei Werte oder Strings einfügen. Beim Hinzufügen von Datensätzen müssen Sie zwischen dem ersten Wert und dem zweiten Wert ein Leerzeichen einfügen.

Console

So erstellen Sie einen Datensatz in der Cloud Console:

  1. Rufen Sie die Cloud DNS-Seite auf.
  2. Klicken Sie auf den Namen der verwalteten Zone, zu der Sie den Eintrag hinzufügen möchten.
  3. Klicken Sie im Bildschirm "Zonendetails" auf Datensatz hinzufügen.
  4. Geben Sie im Bildschirm "Datensatz erstellen" im Feld DNS-Name die Subdomain der DNS-Zone ein. Beispiel: mail. Der abschließende Punkt wird automatisch am Ende hinzugefügt.

    Zum Erstellen eines Platzhalter-DNS-Eintrags geben Sie ein Sternchen ein. Beispiel: *.example.com.

  5. Wählen Sie den Ressourceneintragstyp aus. Beispiel: MX.

  6. Geben Sie im Feld TTL einen numerischen Wert für die Gültigkeitsdauer des Ressourceneintrags ein, also den Zeitraum, den er im Cache gespeichert werden kann. Dieser Wert muss eine positive Ganzzahl sein. Wählen Sie im Dropdown-Menü "TTL-Einheit" die Zeiteinheit aus. Beispiel: 30 minutes.

  7. Je nach ausgewähltem Ressourceneintragstyp füllen Sie die übrigen Felder wie in der Tabelle beschrieben aus.

  8. Sie können zusätzliche Informationen eingeben, indem Sie auf Element hinzufügen klicken.

  9. Klicken Sie auf Erstellen.

gcloud

  1. Zum Starten einer Transaktion geben Sie den Befehl gcloud dns record-sets transaction start ein:
gcloud dns record-sets transaction start --zone="my-zone-name"
  

Wobei:

  • --zone ist der Name der verwalteten Zone, deren Datensätze Sie verwalten möchten.
  1. Zum Hinzufügen eines Datensatzes als Teil einer Transaktion rufen Sie den Befehl gcloud dns record-sets transaction add auf:
gcloud dns record-sets transaction add 10.2.3.4 --name="test.example.com" \
  --ttl="30" \
  --type="A" \
  --zone="my-zone-name"
  

Wobei:

  • --name ist der DNS- oder Domainname des Datensatzes, der hinzugefügt werden soll.
  • --ttl ist die TTL-Zeit (Time To Live) in Sekunden für den Datensatz.
  • --type ist der in der Tabelle beschriebene Eintragstyp.
  • --zone ist der Name der verwalteten Zone, deren Datensätze Sie verwalten möchten.
  1. Zum Ausführen der Transaktion verwenden Sie den Befehl gcloud dns record-sets transaction execute:
gcloud dns record-sets transaction execute --zone="my-zone-name"

So fügen Sie eine Platzhaltertransaktion hinzu:

gcloud dns record-sets transaction add --zone="my-zone-name" \
    --name="*.example.com." \
    --type=CNAME \
    --ttl=300 "sinkhole.example.com"
 

Wobei:

  • --name ist der DNS- oder Domainname des Datensatzes, der hinzugefügt werden soll.
  • --ttl ist die TTL-Zeit in Sekunden für den Datensatz.
  • --type ist der in der Tabelle beschriebene Eintragstyp.
  • --zone ist der Name der verwalteten Zone, deren Datensätze Sie verwalten möchten.

API

Verwenden Sie die Methode create, um eine Transaktion mit neuen Ressourceneinträgen zu aktualisieren.

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/managedZone/changes
{
  "deletions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "198.51.100.5"
      ]
    }
  ]
  "additions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "203.0.113.1"
      ]
    }
  ]
}

Dabei ist PROJECT_ID Ihre Projekt-ID und managedZone der Name oder die ID Ihrer verwalteten Zone.

Liste der unterstützten DNS-Eintragstypen

Klicken Sie hier, um es im API Explorer auszuführen.

Eintrag entfernen

Console

So entfernen Sie Einträge oder Eintragsgruppen aus der Cloud Console:

  1. Rufen Sie die Cloud DNS-Seite auf.
  2. Klicken Sie auf den Zonennamen, dessen Eintragsgruppe Sie löschen möchten. Einträge für die Zone werden auf der Seite Zonendetails aufgeführt.
  3. Klicken Sie auf das Kästchen neben dem Eintrag, den Sie löschen möchten.
  4. Klicken Sie auf Eintragsgruppe löschen.

gcloud

Zum Entfernen einer Transaktion verwenden Sie den Befehl gcloud dns record-sets transaction remove:

gcloud dns record-sets transaction remove 10.2.3.4 --name="test.example.com" \
    --ttl="number of seconds" \
    --type="record type" \
    --zone="zone name"
  

Wobei:

  • --name ist der DNS- oder Domainname des Datensatzes, der entfernt werden soll.
  • --ttl ist die TTL-Zeit in Sekunden für den Datensatz.
  • --type ist der in der Tabelle beschriebene Eintragstyp.

Zum Ersetzen eines vorhandenen Eintrags geben Sie den Befehl remove gefolgt vom Befehl add ein.

API

Mit der Methode create können Sie eine Transaktion mit gelöschten Ressourceneintragsgruppen aktualisieren.

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/managedZone/changes
{
  "deletions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "198.51.100.5"
      ]
    }
  ]
  "additions": [
    {
      "name": "test.example.com.",
      "type": "A",
      "ttl": "30",
      "rrdatas": [
        "203.0.113.1"
      ]
    }
  ]
}

Dabei ist PROJECT_ID Ihre Projekt-ID und managedZone der Name oder die ID Ihrer verwalteten Zone.

Liste der unterstützten DNS-Eintragstypen

Klicken Sie hier, um es im API Explorer auszuführen.

Details zur Auswahl der Ressourceneintragstypen

Für Eintragstyp Eingeben
A

Die numerische IP-Adresse des Hosts im Dezimalformat mit einem Punkt als Trennzeichen.

AAAA

Die numerische IP-Adresse des Hosts im IPv6-Hexadezimalformat.

CAA

Die Zertifizierungsstellen, die berechtigt sind, Zertifikate für diese Domain auszustellen.

CNAME

Der kanonische Name, für den der DNS-Name ein Alias ist.

DNSKEY

Der DNSSEC-Schlüssel von einem anderen Operator für die sichere Übertragung. Dieser Eintragstyp kann einer Zone, für die DNSSEC aktiviert ist, nur im Übertragungsstatus hinzugefügt werden.

DS

Fingerabdruck für DNSSEC-Schlüssel für eine sichere delegierte Zone. Bei diesem Datensatztyp wird DNSSEC für eine delegierte Zone nur dann aktiviert, wenn Sie DNSSEC für diese Zone freischalten und aktivieren.

IPSECVPNKEY

Der öffentliche IPSec-VPN-Schlüssel. Für diesen Eintragstyp wird DNSSEC empfohlen. DNSSEC ist für diese Zone aber noch nicht aktiviert.

MX

Eine Zahl und der DNS-Name eines Mail-Exchange-Servers zur Angabe der Serverpriorität. Server mit einer niedrigeren Zahl haben eine höhere Priorität. Achten Sie darauf, dass zwischen der Zahl und dem DNS-Namen ein Leerzeichen steht.

NAPTR

Die für die Zuordnung von Uniform Resource Names verwendeten NAP-Regeln (Naming Authority Pointer).

NS

Der DNS-Name des autoritativen Nameservers. Ihre NS-Einträge müssen mit den Nameservern für Ihre Zone übereinstimmen.

PTR

Der kanonische Name der Ressource, der in der Regel für Reverse-Lookups verwendet wird.

SPF

Der SPF-Eintragstyp ist veraltet. Verwenden Sie stattdessen TXT-Einträge, die mit "v=spf1" beginnen. Moderne E-Mail-Anwendungen nutzen keine SPF-Eintragstypen.

SRV

Die Daten, die den Standort, d. h. den Hostnamen und die Portnummer der Server für einen bestimmten Dienst angeben. Weitere Informationen finden Sie unter RFC 2782.

SSHFP

Nummer des SSH-Serveralgorithmus, Typnummer für Fingerabdruck und Fingerabdruck für Schlüssel. Verwenden Sie diesen Eintragstyp, wenn Sie DNSSEC für diese Zone aktiviert haben.

TLSA

Die Daten der TLSA-Zertifikatverknüpfung von "DNS-based Authentication of Named Entities" (DANE).

TXT

Texteintrag, der beliebigen Text enthalten und außerdem für die Definition von maschinenlesbaren Daten verwendet werden kann, wie zum Beispiel Sicherheitsdaten oder Informationen zur Verhinderung von Datenmissbrauch. Ein TXT-Eintrag kann einen oder mehrere Textstrings enthalten. Die maximale Länge jedes Textstrings beträgt 255 Zeichen. Mehrere Strings werden durch Mail-Agents und andere Software-Agents verkettet. Setzen Sie jeden String in Anführungszeichen. Beispiel:


"Hello world" "Bye world"

Datensätze importieren und exportieren

Sie haben die Möglichkeit, Datensätze mit import und export in eine verwaltete Zone und daraus zu kopieren. Als Import- und Exportformate sind das BIND-Zonendateiformat oder das YAML-Eintragsformat verfügbar.

Zum Importieren von Datensätzen verwenden Sie den Befehl dns record-sets import. Das Flag --zone-file-format gibt für import an, dass eine zonenformatierte BIND-Datei verwendet wird. Wenn Sie dieses Flag weglassen, erwartet import eine im YAML-Format formatierte Eintragsdatei:

gcloud dns record-sets import -z=examplezonename \
   --zone-file-format path-to-example-zone-file

Zum Exportieren von Datensätzen verwenden Sie den Befehl dns record-sets export. Mit dem Flag --zone-file-format können Sie export anweisen, die Datensätze in eine zonenformatierte BIND-Datei zu exportieren. Beispiel:

example.com. 21600 IN NS ns-gcp-private.googledomains.com.
example.com. 21600 IN SOA ns-gcp-private.googledomains.com.
cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
host1.example.com. 300 IN A 192.0.2.91

Wenn Sie dieses Flag weglassen, exportiert export den Datensatz in eine Eintragsdatei im YAML-Format:

gcloud dns record-sets export example.zone -z=examplezonename \
   --zone-file-format
   

Beispiel:

---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com.
ttl: 21600
type: NS
---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600
  259200 300
ttl: 21600
type: SOA
---
kind: dns#resourceRecordSet
name: host1.example.com.
rrdatas:
- 192.0.2.91
ttl: 300
type: A

Aktuellen Eintrag anzeigen

So rufen Sie den aktuellen DNS-Eintrag für Ihre Zone auf:

gcloud

gcloud dns record-sets list --zone="myzonename"
Der Befehl gibt die JSON-Antwort für den Ressourcendatensatz der ersten 100 Einträge aus. Sie können außerdem die folgenden Parameter festlegen:
  • limit: Maximale Anzahl der Datensätze, die aufgelistet werden sollen.
  • name: Nur Datensätze mit exakt diesem Domainnamen auflisten.
  • type: Nur Einträge dieses Typs auflisten. Wenn vorhanden, muss auch der Parameter --name angegeben werden.

Python

def list_resource_records(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    records = zone.list_resource_record_sets()

    return [(record.name, record.record_type, record.ttl, record.rrdatas)
            for record in records]

Weitere Informationen