Ga naar inhoud

DNS-ontwerp

Naamresolutie bepaalt of verkeer naar een PaaS-service op het private netwerk blijft of over het internet gaat. Deze pagina legt het DNS-ontwerp van het platform uit en de valkuilen bij het koppelen aan een on-premises DNS. Voor de instellingen, zie feature flags (private DNS-zones, private DNS resolver).

Componenten

Component Rol
Spoke virtual network Gebruikt een custom DNS-server: de hub-DNS-server van de eigen regio (de spoke-instelling dnsServerOverwrite is standaard leeg, zie Spoke JSON-referentie)
Hub DNS-ingang Meestal de Azure Firewall die als DNS proxy optreedt. Die stuurt queries door naar de resolver.
Azure Private DNS Resolver Inbound endpoint: ontvangt queries van de firewall en van on-premises. Outbound endpoint: stuurt queries voor geselecteerde domeinen (bijvoorbeeld een intern Active Directory-domein) door naar DNS-servers elders.
Centrale private DNS-zones Eén zone per Private Link-service (bijvoorbeeld privatelink.blob.core.windows.net). Een Azure Policy initiative registreert de records van private endpoints daarin.
On-premises DNS Domain controllers of andere DNS-servers. Ze beantwoorden de interne namespace en sturen Azure-namen met conditional forwarders door naar het inbound endpoint van de resolver.
Publieke DNS Beheerd buiten het platform, door de registrar of DNS-provider

Resolutiepaden

flowchart LR
    vm["VM in a spoke"] --> fw["Hub firewall (DNS proxy)"]
    fw --> in["Private DNS Resolver (inbound)"]
    in --> pz["Central private DNS zones"]
    out["Private DNS Resolver (outbound)"] -- "forwarding rule" --> ad["Internal DNS / AD servers"]
    in --> out
    onprem["On-premises client"] --> opdns["On-premises DNS"]
    opdns -- "conditional forwarder" --> in
Van Naar Pad
Spoke Een naam in een private DNS-zone (private endpoint) DNS-instelling van de spoke, firewall DNS proxy, inbound endpoint van de resolver, private DNS-zone
Spoke Een intern domein dat on-premises of op domain controllers in Azure wordt gehost Hetzelfde pad, waarna een forwarding rule op de resolver de query via het outbound endpoint naar buiten stuurt
On-premises Het interne domein Beantwoord door de on-premises DNS
On-premises Een naam in een private DNS-zone van Azure Een conditional forwarder op de on-premises DNS stuurt de query via de VPN- of ExpressRoute-verbinding naar het inbound endpoint van de resolver

Hoe een naam van een private endpoint wordt opgelost

  1. Een resource in het virtual network zoekt example.azurewebsites.net op.
  2. De door Azure geleverde DNS (168.63.129.16) ziet dat Private Link is ingeschakeld voor de service en geeft een CNAME terug naar example.privatelink.azurewebsites.net.
  3. De private DNS-zone privatelink.azurewebsites.net is gekoppeld aan het netwerk en bevat een A-record met het IP-adres van de private endpoint.
  4. De resource maakt verbinding met dat private IP. Het verkeer blijft op de Azure-backbone.

Om on-premises clients het private IP te laten krijgen, moet hun DNS de query naar de resolver doorsturen. Zonder dat krijgen ze het publieke IP en gaat het verkeer over het internet.

Conditional forwarding inschakelen: doe het in de juiste volgorde

Het inschakelen van conditional forwarding verandert waar on-premises verkeer naartoe gaat. Bestaande workloads die een PaaS-service vandaag via het publieke adres bereiken, gaan het private IP-adres gebruiken. Als de firewalls dat niet toestaan, werken ze niet meer.

  1. Maak een lijst van de private DNS-zones die je gaat doorsturen. Maak per zone een conditional forwarder op de on-premises DNS-servers, die naar het inbound endpoint van de resolver wijst.
  2. Sta eerst het verkeer van on-premises naar de adressen van de private endpoints toe, in de on-premises firewall en in de Azure Firewall.
  3. Zorg dat elke locatie die de DNS-servers gebruikt private connectiviteit met Azure heeft. Een externe locatie of dochteronderneming zonder private link zou een privaat IP krijgen dat ze niet kan bereiken. Schakel forwarding voor die locaties in nadat de verbinding live is.
  4. Schakel de forwarders in, één zone tegelijk, en test.

Runbook voor het toevoegen van een forwardingregel: DNS conditional forwarder.

Valkuilen

Valkuil Wat er gebeurt Wat te doen
Split DNS: dezelfde zone bestaat in de interne DNS en in de publieke DNS Een record dat alleen in de publieke zone bestaat kan binnen het netwerk niet worden opgelost, omdat de interne DNS authoritative is voor de hele zone en name not found teruggeeft Maak elk record op beide plekken aan, of host dezelfde zone niet op beide plekken
Handmatig recordbeheer Traag, foutgevoelig en slechts enkele mensen kunnen het Beheer records als code in een repository, of delegeer een subdomein aan de teams (DNS-subdomeindelegatie)
Onduidelijk eigenaarschap Niemand weet wie eigenaar van een zone is Noem zones naar de workload en omgeving

Controleer tegen je configuratie

Deze pagina beschrijft het gebruikelijke ontwerp. Controleer welk adres de spokes als DNS-server gebruiken en of de DNS proxy van de firewall is ingeschakeld in je platformconfiguratie (virtual_network_dns_servers, firewall_policy_dns.proxy_enabled).