Een DNS-zonebestand importeren en exporteren met de Azure CLI

In dit artikel leert u hoe u een DNS-zonebestand in Azure DNS importeert en exporteert met behulp van Azure CLI. U kunt ook een zonebestand importeren en exporteren met behulp van Azure Portal.

Inleiding tot migratie van DNS-zone

Een DNS-zonebestand is een tekstbestand met informatie over elke DNS-record (Domain Name System) in de zone. Het volgt een standaardindeling, waardoor het geschikt is voor het overdragen van DNS-records tussen DNS-systemen. Het gebruik van een zonebestand is een snelle en handige manier om DNS-zones te importeren in Azure DNS. U kunt ook een zonebestand exporteren uit Azure DNS voor gebruik met andere DNS-systemen.

Azure DNS biedt ondersteuning voor het importeren en exporteren van zonebestanden via de Azure CLI en Azure Portal.

Azure CLI is een platformoverschrijdend opdrachtregelprogramma dat wordt gebruikt voor het beheren van Azure-services. Deze is beschikbaar voor Windows, Mac en Linux via de azure-downloadpagina.

Uw bestaande DNS-zonebestand verkrijgen

Voordat u een DNS-zonebestand in Azure DNS importeert, moet u een kopie van het zonebestand verkrijgen. De bron van dit bestand is afhankelijk van waar de DNS-zone wordt gehost.

  • Als uw DNS-zone wordt gehost door een partnerservice, moet de service een manier hebben om het DNS-zonebestand te downloaden. Partnerservices zijn domeinregistrar, toegewezen DNS-hostingprovider of een alternatieve cloudprovider.
  • Als uw DNS-zone wordt gehost op Windows DNS, is de standaardmap voor de zonebestanden %systemroot%\system32\dns. Het volledige pad naar elk zonebestand wordt ook weergegeven op het tabblad Algemeen van de DNS-console.
  • Als uw DNS-zone wordt gehost met BEHULP van BIND, wordt de locatie van het zonebestand voor elke zone opgegeven in het BIND-configuratiebestand met de naam.conf.

Belangrijk

Als het zonebestand dat u importeert CNAME-vermeldingen bevat die verwijzen naar namen in een andere privézone, mislukt de Azure DNS-omzetting van de CNAME, tenzij de andere zone ook wordt geïmporteerd of de CNAME-vermeldingen worden gewijzigd.

Een DNS-zonebestand importeren in Azure DNS

Als u een zonebestand importeert, wordt er een nieuwe zone gemaakt in Azure DNS als de zone nog niet bestaat. Als de zone bestaat, worden de recordsets in het zonebestand samengevoegd met de bestaande recordsets.

Samenvoeggedrag

  • Standaard worden de nieuwe recordsets samengevoegd met de bestaande recordsets. Identieke records in een samengevoegde recordset worden niet gedupliceerd.
  • Wanneer recordsets worden samengevoegd, wordt de TTL (Time to Live) van bestaande recordsets gebruikt.
  • Begin van SOA-parameters (Authority), met uitzondering host van het geïmporteerde zonebestand. De naamserverrecordset in de zone-apex gebruikt ook altijd de TTL die uit het geïmporteerde zonebestand is genomen.
  • Een geïmporteerde CNAME-record vervangt de bestaande CNAME-record met dezelfde naam.
  • Wanneer er een conflict optreedt tussen een CNAME-record en een andere record met dezelfde naam van een ander type, wordt de bestaande record gebruikt.

Aanvullende informatie over importeren

De volgende opmerkingen bevatten meer technische informatie over het zone-importproces.

  • De $TTL richtlijn is optioneel en wordt ondersteund. Wanneer er geen $TTL instructie wordt gegeven, worden records zonder expliciete TTL geïmporteerd op een standaard-TTL van 3600 seconden. Wanneer twee records in dezelfde recordset verschillende TTLs opgeven, wordt de lagere waarde gebruikt.
  • De $ORIGIN richtlijn is optioneel en wordt ondersteund. Als er geen $ORIGIN is ingesteld, is de standaardwaarde die wordt gebruikt de zonenaam zoals opgegeven op de opdrachtregel, inclusief de eindpunt (.).
  • De $INCLUDE en $GENERATE instructies worden niet ondersteund.
  • Deze recordtypen worden ondersteund: A, AAAA, CAA, CNAME, MX, NS, SOA, SRV en TXT.
  • De SOA-record wordt automatisch gemaakt door Azure DNS wanneer er een zone wordt gemaakt. Wanneer u een zonebestand importeert, worden alle SOA-parameters opgehaald uit het zonebestand , behalve de host parameter. Deze parameter gebruikt de waarde van Azure DNS omdat deze moet verwijzen naar de primaire naamserver die wordt geleverd door Azure DNS.
  • De naamserverrecordset in de zone-apex wordt ook automatisch gemaakt door Azure DNS wanneer de zone wordt gemaakt. Alleen de TTL van deze recordset wordt geïmporteerd. Deze records bevatten de naamservernamen van Azure DNS. De recordgegevens worden niet overschreven door de waarden in het geïmporteerde zonebestand.
  • Tijdens de openbare preview ondersteunt Azure DNS alleen TXT-records met één tekenreeks. Txt-records met meerdere tekenreeksen moeten worden samengevoegd en afgekapt tot 255 tekens.

CLI-indeling en -waarden

De indeling van de Azure CLI-opdracht voor het importeren van een DNS-zone is:

az network dns zone import -g <resource group> -n <zone name> -f <zone file name>

Waarden:

  • <resource group> is de naam van de resourcegroep voor de zone in Azure DNS.
  • <zone name> is de naam van de zone.
  • <zone file name> is het pad/de naam van het zonebestand dat moet worden geïmporteerd.

Als er nog geen zone met deze naam in de resourcegroep bestaat, wordt er een voor u gemaakt. Voor een bestaande zone worden de geïmporteerde recordsets samengevoegd met bestaande recordsets.

Een zonebestand importeren

Een zonebestand importeren voor de zone contoso.com.

  1. Maak een resourcegroep als u er nog geen hebt.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Als u de zone wilt importeren contoso.com uit het bestand contoso.com.txt in een nieuwe DNS-zone in de myresourcegroup van de resourcegroep, voert u de opdracht az network dns zone importuit.

    Met deze opdracht wordt het zonebestand geladen en geparseerd. Met de opdracht wordt een reeks bewerkingen uitgevoerd op de Azure DNS-service om de zone en alle recordsets in de zone te maken. De opdracht rapporteert de voortgang in het consolevenster, samen met eventuele fouten of waarschuwingen. Omdat recordsets in reeksen worden gemaakt, kan het enkele minuten duren voordat een groot zonebestand is geïmporteerd.

    az network dns zone import -g myresourcegroup -n contoso.com -f contoso.com.txt
    

De zone controleren

U kunt een van de volgende methoden gebruiken om de DNS-zone te controleren nadat u het bestand hebt geïmporteerd:

  • Gebruik de volgende Azure CLI-opdracht om de records weer te geven:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • U kunt de records ook weergeven met behulp van de Azure CLI-opdracht az network dns record-set ns list.

  • Gebruik nslookup dit om de naamomzetting voor de records te controleren. Als de zone nog niet is gedelegeerd, moet u expliciet de juiste Azure DNS-naamservers opgeven. In het volgende voorbeeld ziet u hoe u de namen van de naamservers ophaalt die zijn toegewezen aan de zone.

    az network dns record-set ns list -g myresourcegroup -z contoso.com  --output json 
    
    [
      {
       .......
       "name": "@",
        "nsRecords": [
          {
            "additionalProperties": {},
            "nsdname": "ns1-03.azure-dns.com."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns2-03.azure-dns.net."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns3-03.azure-dns.org."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns4-03.azure-dns.info."
          }
        ],
        "resourceGroup": "myresourcegroup",
        "ttl": 86400,
        "type": "Microsoft.Network/dnszones/NS"
      }
    ]
    

    Gebruik de Windows-opdrachtprompt om een query uit te voeren op de www-record met de nslookup opdracht.

    nslookup www.contoso.com ns1-03.azure-dns.com
    
        Server: ns1-01.azure-dns.com
        Address:  40.90.4.1
    
        Name:www.contoso.com
        Addresses:  134.170.185.46
        134.170.188.221
    

DNS-delegatie bijwerken

Nadat u hebt gecontroleerd of de zone correct is geïmporteerd, moet u de DNS-delegatie bijwerken zodat deze verwijst naar de Azure DNS-naamservers. Zie De DNS-delegatie bijwerken voor meer informatie.

Een DNS-zonebestand exporteren vanuit Azure DNS

Als u een DNS-zone wilt exporteren, gebruikt u de volgende Azure CLI-opdracht:

az network dns zone export -g <resource group> -n <zone name> -f <zone file name>

Waarden:

  • <resource group> is de naam van de resourcegroep voor de zone in Azure DNS.
  • <zone name> is de naam van de zone.
  • <zone file name> is het pad/de naam van het zonebestand dat moet worden geëxporteerd.

Net als bij het importeren van de zone moet u zich eerst aanmelden, uw abonnement kiezen en de Azure CLI configureren voor het gebruik van de Resource Manager-modus.

Een zonebestand exporteren

Voer uit om de bestaande Azure DNS-zone contoso.com in de resourcegroep myresourcegroup te exporteren naar het bestand contoso.com.txt (in de huidige map).azure network dns zone export Met deze opdracht wordt de Azure DNS-service aanroepen om recordsets in de zone op te sommen en de resultaten te exporteren naar een bind-compatibel zonebestand.

az network dns zone export -g myresourcegroup -n contoso.com -f contoso.com.txt

Volgende stappen