DNS conditional forwarder (een forwarding rule toevoegen)¶
Standaardwijziging: DNS conditional forwarder(s) toevoegen.
Effect: de Azure-omgeving kan namen oplossen van een domein dat op DNS-servers buiten Azure staat (bijvoorbeeld
on-premises). De Private DNS Resolver stuurt queries voor dat domein door naar die servers. Alleen de connectivity layer
verandert, en de firewall layer als de DNS-servers aan een IP-groep worden toegevoegd.
Achtergrond over de resolver en de richting van het forwarden: DNS-ontwerp. De andere richting (van on-premises naar Azure) is een conditional forwarder op de on-premises DNS-servers en valt niet onder deze wijziging.
Aanvraagvelden¶
| Veld | Gebruik |
|---|---|
| Domeinna(a)m(en) | Het domein of de domeinen waarvoor de DNS-servers autoritatief zijn, bijvoorbeeld contoso.example |
| IP-adres(sen) van de DNS-server(s) | De servers die voor het domein moeten antwoorden, bijvoorbeeld 10.50.10.10 en 10.50.10.11 |
| Onderbouwing | pull request |
| Omgeving | Platformomgeving en regio('s) |
Voorbeeld van een aanvraag: "We willen conditional forwarders van Azure naar ons datacenter voor contoso.example. Laat ze
wijzen naar 10.50.10.10 en 10.50.10.11."
Stappen¶
- Maak een branch aan in de configuratierepository (Veilig een wijziging doorvoeren).
-
Voeg de forwarding rule toe in
<env-folder>/<region>/connectivity.auto.tfvars. Zoekprivate_dns_resolver_forwarding_rules. Als er nog geen rules zijn, is de waardenull. Voeg het object toe of breid het uit met één entry per domein: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 } } } }De punt aan het eind is verplicht
domain_namemoet eindigen op een punt (contoso.example.). -
Sta het verkeer naar de DNS-servers toe. Voeg de adressen van de DNS-servers toe aan de IP-groep voor DNS-servers in
<env-folder>/<region>/ip_groups/(in het platform heette deze groepipgrp-dns-servers), als ze er nog niet in staan, en controleer dat een firewallregel DNS (poort 53) van de hub naar die groep toestaat (Firewallregels). - Herhaal dit in elke omgevingsmap waar het nodig is. Canary en prod blijven voor deze wijziging identiek. Als een platform geen canary heeft, sla je die over.
- Plan met
hubin de modusPlan(ofApproveModifications). Verwacht:connectivity: de nieuwe of gewijzigde forwarding rule(s) op de DNS forwarding ruleset;firewall: de update van de IP-groep, als je adressen hebt toegevoegd.
- Apply naar canary, controleer, en daarna naar prod.
- Merge de pull request na de review.
Controleren¶
- Azure-portal: Private DNS Resolver > DNS Forwarding Rulesets, en controleer de nieuwe rule(s). Controleer de IP-groep in de firewall policy.
- Los vanaf een VM in een test-spoke een naam van het domein op zonder een DNS-server te noemen, bijvoorbeeld met
nslookupofdig. De query gebruikt de DNS-server van het virtual network (het pad via de hub).
Als het oplossen van namen niet lukt¶
Los de naam opnieuw op met een expliciete DNS-server, in deze volgorde, om te zien waar het misgaat:
- het private IP-adres van de Azure Firewall (DNS proxy);
- het inbound endpoint van de Private DNS Resolver;
- de on-premises DNS-server uit de aanvraag.
Werkt geen van deze, dan wordt DNS-verkeer ergens op het pad geblokkeerd: door een network security group, een firewallregel, of de on-premises firewall of routering. Controleer de logs van de Azure Firewall op geblokkeerd DNS-verkeer en op queries die naar de on-premises servers zijn doorgestuurd (Waar je eerst kijkt).
Voor domeinen die op .local eindigen gebruiken veel besturingssystemen multicast DNS (mDNS) en vragen ze de ingestelde DNS-server nooit.
Test met een andere naam, of pas de client aan.
Terugdraaien¶
Verwijder de rule uit private_dns_resolver_forwarding_rules (en de IP-groepitems, als niemand anders ze gebruikt) en draai
hub.