DNS-Verhalten und Auflösungslogik

Das Domänennamensystem (DNS) ist die Grundlage des Internets und arbeitet transparent im Hintergrund, um von Menschen lesbare Website-Namen in computerlesbare numerische IP-Adressen umzuwandeln. Diese Adressen entsprechen den RFC-1918-Richtlinien für IPv4 und den RFC-4193-Richtlinien für IPv6. Kurz gesagt: DNS-Server ordnen Domainnamen wie beispielsweise ibm.com den entsprechenden IP-Adressen zu, die die meisten Menschen gar nicht kennen müssen.

Um diese Übersetzung durchzuführen, fragt das DNS-System ein Netz von miteinander verbundenen DNS-Servern im Internet ab. Dieser Vorgang ist vergleichbar mit der Verwendung eines Telefonbuchs oder einer Karte, um einen bestimmten Ort zu finden.

Namensserver

Ein Nameserver bietet Dienste, die auf Abfragen eines Verzeichnisses reagieren und sinnvolle, textbasierte Web- oder Hostnamen in IP-Adressen übersetzen.

Nameserver-Delegation liegt vor, wenn der Nameserver einer Domäne eine Anfrage nach den Einträgen einer Subdomäne erhält und daraufhin den Anfragenden an den delegierten Nameserver verweist, der die Subdomäne verwaltet. Dieses Verfahren ermöglicht die dezentrale Verwaltung großer Domänen wie ibm.com.

Mit einem benutzerdefinierten Domain-Name-Server können Sie die Server des DNS-Anbieters mit dem individuell festgelegten Referenznamen Ihrer eigenen Domain nutzen. So können Sie beispielsweise Ihren Nameserver als ns1.cloud.ibm.com definieren, anstatt den Standardwert des Anbieters wie ns1.acme.com.

Proxying-DNS-Datensätze und globale Lastausgleichsfunktionen

CIS Unterstützt Proxying für globale Lastverteiler und DNS-Einträge. Wenn ein Record- oder Load-Balancer über einen Proxy geleitet wird, läuft sein Datenverkehr direkt über CIS.

Derzeit können DNS-Datensätze des Typs A, AAAAoder CNAME proxiiert werden. Weitere Informationen finden Sie unter DNS-Eintragstypen.

Proxy-Modi festlegen

Lastausgleichsfunktionen und DNS-Datensätze unterstützen sowohl DNS-als auch HTTP-Proxy-Modi. Sie können HTTP proxy und DNS-only Domains in der gleichen CIS Instanz haben, aber das Traffic-Routing-Verhalten unterscheidet sich: Traffic für Datensätze, die proxy sind, fließt durch CIS, während Traffic für Datensätze, die nicht proxy sind (DNS-only Modus), direkt vom Client zum Ursprung fließt.

HTTP-Proxy-Modus

Im Proxy-Modus von „ HTTP “ gibt „ CIS “ die IP-Adressen von „ IBM “ nach außen bekannt, schützt (maskiert) jedoch die IP-Adressen Ihrer Ursprungsserver. Die angekündigten IP-Adressdatensätze haben eine automatische TTL. Der Datenverkehr wird über CIS geleitet, wo alle Sicherheits-, Leistungs- und Zuverlässigkeitsfunktionen, wie beispielsweise Firewall-Regeln und Caching, angewendet werden. Das „automatische“ TTL (fünf Minuten) reduziert zudem die Anzahl der autoritativen Abfragen, die an CIS gesendet werden.

Nur DNS-Modus

Im reinen DNS-Modus werden die Einträge zur Ursprungs-IP aufgelöst, und Sie können die TTL für Ihre Einträge individuell anpassen. Bei globalen Load Balancern liefert „ CIS “ direkt die Adressen der funktionsfähigen Ursprungsserver aus, ist jedoch auf DNS-Resolver angewiesen, die die kurze TTL einhalten, um eine aktualisierte Liste der funktionsfähigen Adressen erneut bei „ CIS “ abzufragen.

Im reinen DNS-Modus werden keine der Sicherheits-, Zuverlässigkeits- und Leistungsfunktionen von CIS angewendet.

CNAME-Vereinfachung für Rootdatensätze

Die Funktion "CNAME flattening" in CIS ermöglicht es den Root-Records, die IETF RFC-Beschränkung zu umgehen. Diese Einschränkung besagt, dass eine Domain, deren Root-Eintrag ein CNAME ist, keine weiteren Einträge für diese Domain enthalten darf. Autoritative Server von CIS umgehen diese Einschränkung, indem sie anstelle des CNAME-Eintrags selbst den A records zurückgeben, der dem CNAME-Ziel entspricht, und so den CNAME effektiv verbergen. Mit dieser Technik können andere Einträge, wie beispielsweise MX-Einträge, zur Domain hinzugefügt werden, obwohl der Root-Eintrag ein CNAME ist.

Secure DNS

DNSSEC ist eine Technologie, mit der DNS-Daten digital „signiert“ werden, sodass Sie sicher sein können, dass sie gültig sind. Um Sicherheitslücken im Internet zu beseitigen, muss DNSSEC in jedem Schritt des Lookup-Prozesses eingesetzt werden, von der Root-Zone bis zum endgültigen Domainnamen (zum Beispiel www.icann.org).

Stapelverarbeitung von DNS-Einträgen

CIS unterstützt Batch-Änderungen von DNS-Einträgen, so dass Sie mehrere Zonendatensätze in einer einzigen Aktion aktualisieren können. Dieser Ansatz reduziert den manuellen Aufwand und vereinfacht Aufgaben der Domänenverwaltung, wie z. B. Migrationen, die Einrichtung von Umgebungen oder Automatisierungsworkflows. Die Konsole CIS unterstützt zwar einzelne Änderungen, aber Batch-Operationen lassen sich am besten über die API durchführen.

Der Batch-DNS-Datensätze-API-Endpunkt ermöglicht es Ihnen, mehrere DELETES, PATCHES, PUTS und POSTS in einer einzigen Anfrage durchzuführen.

Vorgänge, die in den Körper der Anfrage /batch aufgenommen werden, werden immer in der folgenden Reihenfolge verarbeitet:

  1. Löschungen
  2. Patches
  3. Einreihungen
  4. Beiträge

Innerhalb jeder Vorgangsart werden die einzelnen Datensatzänderungen in der Reihenfolge ihrer Bearbeitung angewendet. Wenn einer der Vorgänge fehlschlägt, werden keine Änderungen vorgenommen, und die API gibt den ersten Fehler zurück, auf den sie stößt.

Wichtige Überlegungen für Batch-DNS-Einträge

Beachten Sie bei der Angabe der einzelnen Vorgänge im /batch-Anforderungskörper die folgenden Richtlinien für erforderliche Felder und die Behandlung nicht angegebener Felder:

  • Deletes: Nur das Feld id ist für jedes Datensatzobjekt erforderlich. Sie können zusätzliche Felder einfügen, z. B. name, um die Übersichtlichkeit zu erhöhen, aber alle anderen Felder werden ignoriert.

  • Patches: Geben Sie neben den einzelnen Datensätzen id die Felder an, die Sie aktualisieren möchten. Alle nicht näher bezeichneten Felder bleiben unverändert.

  • Puts: Geben Sie die id, content, name und type für jeden Datensatz an. Geben Sie auch alle anderen Felder an, die Sie auf andere Werte als die Standardwerte setzen möchten. Alle nicht spezifizierten Felder nehmen den Standardwert für jeden Datensatztyp an. Dieser Vorgang funktioniert wie ein Überschreiben, so dass immer alle Felder in einem Datensatz betroffen sind.

  • Posts: Dient zur Erstellung neuer Datensätze. Das Feld id ist nicht erforderlich. Felddefinitionen finden Sie unter dem Endpunkt DNS-Eintrag erstellen und wählen Sie den entsprechenden Eintragstyp aus der Spezifikation des Anfragekörpers aus.

Beispielanforderung

In diesem Beispiel nimmt das Proxy-Feld für den ersten Datensatz, der in puts aufgeführt ist, den Standardwert false an.

{
  "deletes": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353"
    }
  ],
  "patches": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ],
  "posts": [
    {
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ],
  "puts": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "comment": "Domain verification record",
      "name": "example.com",
      "proxied": true,
      "settings": {},
      "tags": [],
      "ttl": 3600,
      "content": "198.51.100.4",
      "type": "A"
    }
  ]
}