Importera och exportera en DNS-zonfil med Azure CLI

I den här artikeln lär du dig hur man importerar och exporterar en DNS-zonfil i Azure DNS med hjälp av Azure CLI. Du kan också importera och exportera en zonfil via Azure-portalen.

Introduktion till DNS-zonmigrering

En DNS-zonfil är en textfil som innehåller information om varje domännamnssystem (DNS)-post i zonen. Den följer ett standardformat, vilket gör den lämplig för överföring av DNS-poster mellan DNS-system. Att använda en zonfil är ett snabbt och bekvämt sätt att importera DNS-zoner till Azure DNS. Du kan också exportera en zonfil från Azure DNS för att använda med andra DNS-system.

Azure DNS stöder import och export av zonfiler via Azure CLI och Azure Portal.

Azure CLI är ett plattformsoberoende kommandoradsverktyg som används för att hantera Azure-tjänster. Det finns tillgängligt för Windows, Mac och Linux via Azure-nedladdningssidan.

Hämta din befintliga DNS-zonfil

Innan du importerar en DNS-zonfil till Azure DNS behöver du skaffa en kopia av zonfilen. Källan till denna fil beror på var DNS-zonen är värd.

  • Om din DNS-zon är värd hos en partnertjänst bör tjänsten ha ett sätt för dig att ladda ner DNS-zonfilen. Partnertjänster inkluderar domänregistrar, dedikerad DNS-hostingleverantör eller en alternativ molnleverantör.
  • Om din DNS-zon är hostad på Windows DNS är standardmappen för zonfilerna %systemroot%\system32\dns. Den fullständiga sökvägen till varje zonfil visas också på fliken Allmänt i DNS-konsolen.
  • Om din DNS-zon hostas med BIND specificeras platsen för zonfilen för varje zon i BIND-konfigurationsfilen named.conf.

Important

Om zonfilen du importerar innehåller CNAME-poster som pekar på namn i en annan privat zon, misslyckas Azure DNS-lösningen av CNAME om inte den andra zonen också importeras eller CNAME-posterna ändras.

Importera en DNS-zonfil till Azure DNS

Att importera en zonfil skapar en ny zon i Azure DNS om zonen inte redan finns. Om zonen finns slås postuppsättningarna i zonfilen ihop med de befintliga postuppsättningarna.

Sammanfogningsbeteende

  • Som standard slås de nya postmängdarna ihop med de befintliga postmängden. Identiska poster i en sammanslagen postuppsättning duplicerats inte.
  • När postuppsättningar slås ihop används tiden för att leva (TTL) för redan existerande postuppsättningar.
  • Start of Authority (SOA)-parametrar host tas dock alltid från den importerade zonfilen. Namnserverposten som är inställd vid zonapex använder också alltid TTL hämtad från den importerade zonfilen.
  • En importerad CNAME-post ersätter den befintliga CNAME-posten med samma namn.
  • När en konflikt uppstår mellan en CNAME-post och en annan post med samma namn av annan typ används den befintliga posten.

Ytterligare information om import

Följande anteckningar ger mer tekniska detaljer om zonimportprocessen.

  • Direktivet $TTL är valfritt och stöds. När ingen $TTL direktiv ges importeras poster utan explicit TTL och sätts till en standard-TTL på 3600 sekunder. När två poster i samma postuppsättning specificerar olika TTL:er används det lägre värdet.
  • Direktivet $ORIGIN är valfritt och stöds. När no $ORIGIN är satt är standardvärdet zonnamnet som anges på kommandoraden, inklusive slutpunkten (.).
  • Och $INCLUDE$GENERATE direktiven stöds inte.
  • Dessa posttyper stöds: A, AAAA, CAA, CNAME, MX, NS, SOA, SRV och TXT.
  • SOA-posten skapas automatiskt av Azure DNS när en zon skapas. När du importerar en zonfil tas alla SOA-parametrar från zonfilen utom parametern host . Denna parameter använder värdet som tillhandahålls av Azure DNS eftersom den behöver referera till den primära namnservern som tillhandahålls av Azure DNS.
  • Namnserverposten som ställs in vid zonens apex skapas också automatiskt av Azure DNS när zonen skapas. Endast TTL för denna skivuppsättning importeras. Dessa poster innehåller namnservernamn som tillhandahålls av Azure DNS. Recorddatan skrivs inte över av värdena som finns i den importerade zonfilen.
  • Azure DNS stöder TXT-poster som innehåller flera strängar, var och en upp till 255 tecken lång, med totalt upp till 4 096 tecken i varje TXT-postuppsättning. Multisträngade TXT-poster i en zonfil kanske inte importeras med samma strängstruktur, så verifiera dina TXT-poster efter att importen är klar. För mer information, se TXT-poster.

CLI-format och värden

Formatet för Azure CLI-kommandot för att importera en DNS-zon är:

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

Values:

  • <resource group>är namnet på resursgruppen för zonen i Azure DNS.
  • <zone name> är namnet på zonen.
  • <zone file name> är sökvägen/namnet på zonfilen som ska importeras.

Om en zon med detta namn inte redan finns i resursgruppen, skapas en sådan åt dig. För en befintlig zon slås de importerade postseten ihop med befintliga postset.

Importera en zonfil

För att importera en zonfil för zonen contoso.com.

  1. Skapa en resursgrupp om du inte har någon.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. För att importera zonen contoso.com från filen contoso.com.txt till en ny DNS-zon i resursgruppen myresourcegroup, kör kommandot az network dns zone import.

    Detta kommando laddar zonfilen och tolkar den. Kommandot utför en serie operationer på Azure DNS-tjänsten för att skapa zonen och alla postuppsättningar i zonen. Kommandot rapporterar framsteg i konsolfönstret tillsammans med eventuella fel eller varningar. Eftersom postset skapas i serie kan det ta några minuter att importera en stor zonfil.

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

Verifiera zonen

Du kan använda någon av följande metoder för att verifiera DNS-zonen efter att du har importerat filen:

  • För att lista posterna, använd följande Azure CLI-kommando:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • Du kan också lista posterna genom att använda kommandot az network dns record-set ns listAzure CLI.

  • Använd nslookup för att verifiera namnupplösningen för posterna. Om zonen ännu inte har delegerats måste du specificera rätt Azure DNS-namnservrar explicit. Följande exempel visar hur man hämtar namnservernamnen som är tilldelade zonen.

    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"
      }
    ]
    

    Använd Windows kommandoprompt för att söka efter "www"-posten med kommandotnslookup.

    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
    

Uppdatera DNS-delegering

När du har verifierat att zonen har importerats korrekt behöver du uppdatera DNS-delegeringen så att den pekar på Azure DNS-namnservrarna. För mer information, se Uppdatera DNS-delegeringen.

Exportera en DNS-zonfil från Azure DNS

För att exportera en DNS-zon, använd följande Azure CLI-kommando:

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

Values:

  • <resource group>är namnet på resursgruppen för zonen i Azure DNS.
  • <zone name> är namnet på zonen.
  • <zone file name> är sökvägen/namnet på zonfilen som ska exporteras.

Precis som med zonimport måste du först logga in, välja din prenumeration och konfigurera Azure CLI för att använda Resource Manager-läge.

För att exportera en zonfil

För att exportera den befintliga Azure DNS zonen contoso.com i resource group myresourcegroup till filen contoso.com.txt (i den aktuella mappen), kör azure network dns zone export. Detta kommando anropar Azure DNS-tjänsten för att räkna upp postuppsättningar i zonen och exportera resultaten till en BIND-kompatibel zonfil.

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

Nästa steg