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¶
- Erstelle einen branch im Konfigurations-Repository (Änderungen sicher durchführen).
-
Füge die Weiterleitungsregel hinzu in
<env-folder>/<region>/connectivity.auto.tfvars. Sucheprivate_dns_resolver_forwarding_rules. Wenn es noch keine Regeln gibt, ist der Wertnull. 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_namemuss mit einem Punkt enden (contoso.example.). -
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 Gruppeipgrp-dns-servers), falls sie noch nicht darin sind, und prüfe, dass eine Firewallregel DNS (Port 53) vom hub zu dieser Gruppe erlaubt (Firewallregeln). - Wiederhole das in jedem Umgebungsordner, der es braucht. Canary und prod bleiben bei dieser Änderung identisch. Wenn eine Plattform keine canary hat, überspringe sie.
- Plan mit
hubim ModusPlan(oderApproveModifications). 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.
- Apply auf canary, prüfen, dann auf prod.
- 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
nslookupoderdig. 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:
- die private IP-Adresse der Azure Firewall (DNS proxy);
- der Inbound-Endpoint des Private DNS Resolver;
- 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.