Ga naar inhoud

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

  1. Maak een branch aan in de configuratierepository (Veilig een wijziging doorvoeren).
  2. Voeg de forwarding rule toe in <env-folder>/<region>/connectivity.auto.tfvars. Zoek private_dns_resolver_forwarding_rules. Als er nog geen rules zijn, is de waarde null. 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_name moet eindigen op een punt (contoso.example.).

  3. 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 groep ipgrp-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).

  4. 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.
  5. Plan met hub in de modus Plan (of ApproveModifications). 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.
  6. Apply naar canary, controleer, en daarna naar prod.
  7. 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 nslookup of dig. 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:

  1. het private IP-adres van de Azure Firewall (DNS proxy);
  2. het inbound endpoint van de Private DNS Resolver;
  3. 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.