Zum Inhalt

DNS Conditional Forwarder (Weiterleitungsregel hinzufügen)

Standardänderung: DNS Conditional Forwarder hinzufügen.

Auswirkung: Die Azure-Umgebung kann Namen einer Domain auflösen, die auf DNS-Servern außerhalb von Azure gehostet wird (zum Beispiel on-premises). Der Private DNS Resolver leitet Anfragen für diese Domain an diese Server weiter. Nur der connectivity-layer ändert sich, und der firewall-layer, wenn die DNS-Server zu einer IP group hinzugefügt werden.

Hintergrund zum Resolver und zur Richtung der Weiterleitung: DNS-Design. Die andere Richtung (von on-premises nach Azure) ist ein Conditional Forwarder auf den DNS-Servern on-premises und nicht Teil dieser Änderung.

Anfragefelder

Feld Verwendung
Domainname(n) Die Domain(s), für die die DNS-Server autoritativ sind, zum Beispiel contoso.example
IP-Adresse(n) der DNS-Server Die Server, die für die Domain antworten sollen, zum Beispiel 10.50.10.10 und 10.50.10.11
Begründung pull request
Umgebung Plattform-Umgebung und Region(en)

Beispiel für eine Anfrage: „Wir möchten Conditional Forwarder von Azure in unser Rechenzentrum für contoso.example. Richtet sie auf 10.50.10.10 und 10.50.10.11 aus.“

Schritte

  1. Erstelle einen branch im Konfigurations-Repository (Änderungen sicher durchführen).
  2. Füge die Weiterleitungsregel hinzu in <env-folder>/<region>/connectivity.auto.tfvars. Suche private_dns_resolver_forwarding_rules. Wenn es noch keine Regeln gibt, ist der Wert null. Füge das Objekt hinzu oder erweitere es mit einem Eintrag pro Domain:

    private_dns_resolver_forwarding_rules = {
      contoso-example = {
        dns_forwarding_ruleset_id = null
        domain_name               = "contoso.example."
        enabled                   = true
        metadata                  = null
        target_dns_servers = {
          server1 = {
            ip_address = "10.50.10.10"
            port       = 53
          }
          server2 = {
            ip_address = "10.50.10.11"
            port       = 53
          }
        }
      }
    }
    

    Der abschließende Punkt ist erforderlich

    domain_name muss mit einem Punkt enden (contoso.example.).

  3. Erlaube den Traffic zu den DNS-Servern. Füge die Adressen der DNS-Server zur IP group für DNS-Server in <env-folder>/<region>/ip_groups/ hinzu (in der Plattform hieß diese Gruppe ipgrp-dns-servers), falls sie noch nicht darin sind, und prüfe, dass eine Firewallregel DNS (Port 53) vom hub zu dieser Gruppe erlaubt (Firewallregeln).

  4. Wiederhole das in jedem Umgebungsordner, der es braucht. Canary und prod bleiben bei dieser Änderung identisch. Wenn eine Plattform keine canary hat, überspringe sie.
  5. Plan mit hub im Modus Plan (oder ApproveModifications). Erwartet wird:
    • connectivity: die neue oder geänderte Weiterleitungsregel(n) im DNS Forwarding Ruleset;
    • firewall: das Update der IP group, wenn du Adressen hinzugefügt hast.
  6. Apply auf canary, prüfen, dann auf prod.
  7. Merge den pull request nach dem Review.

Prüfen

  • Azure-Portal: Private DNS Resolver > DNS Forwarding Rulesets, und prüfe die neue(n) Regel(n). Prüfe die IP group in der Firewall-Policy.
  • Löse von einer VM in einem Test-spoke einen Namen der Domain auf, ohne einen DNS-Server anzugeben, zum Beispiel mit nslookup oder dig. Die Anfrage verwendet den DNS-Server des virtuellen Netzwerks (der Weg über den hub).

Wenn die Auflösung fehlschlägt

Löse den Namen erneut auf und gib dabei einen DNS-Server an, in dieser Reihenfolge, um zu finden, wo es hakt:

  1. die private IP-Adresse der Azure Firewall (DNS proxy);
  2. der Inbound-Endpoint des Private DNS Resolver;
  3. der DNS-Server on-premises aus der Anfrage.

Wenn keiner funktioniert, wird DNS-Traffic auf dem Weg blockiert: durch eine Network Security Group, eine Firewallregel oder die Firewall bzw. das Routing on-premises. Prüfe die Logs der Azure Firewall auf blockierten DNS-Traffic und auf Anfragen, die an die Server on-premises weitergeleitet wurden (Wo du zuerst nachschaust).

Bei Domains, die auf .local enden, verwenden viele Betriebssysteme Multicast DNS (mDNS) und fragen den konfigurierten DNS-Server nie. Teste mit einem anderen Namen oder ändere den Client.

Zurückrollen

Entferne die Regel aus private_dns_resolver_forwarding_rules (und die Einträge der IP group, falls sie sonst niemand verwendet) und führe hub aus.