Importera och exportera en DNS-zonfil med Azure CLI

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

Introduktion till DNS-zonmigrering

En DNS-zonfil är en textfil som innehåller information om varje DNS-post (Domain Name System) i zonen. Filen följer ett standardformat som gör den lämplig för att överföra 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 användning med andra DNS-system.

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

Azure CLI är ett plattformsoberoende kommandoradsverktyg som används för att hantera Azure-tjänster. Den är tillgänglig för Windows, Mac och Linux från nedladdningssidan för Azure.

Hämta din befintliga DNS-zonfil

Innan du importerar en DNS-zonfil till Azure DNS måste du skaffa en kopia av zonfilen. Källan till den här filen beror på var DNS-zonen finns.

  • Om din DNS-zon hanteras av en partnertjänst bör tjänsten ha ett sätt för dig att ladda ned DNS-zonfilen. Partnertjänster omfattar domänregistrator, dedikerad DNS-värd eller en alternativ molnleverantör.
  • Om DNS-zonen finns i 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 DNS-zonen hanteras med bindning anges platsen för zonfilen för varje zon i BIND-konfigurationsfilen med namnet.conf.

Viktigt!

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

Importera en DNS-zonfil till Azure DNS

Om du importerar en zonfil skapas en ny zon i Azure DNS om zonen inte redan finns. Om zonen finns sammanfogas postuppsättningarna i zonfilen med de befintliga postuppsättningarna.

Sammanslå beteende

  • Som standard sammanfogas de nya postuppsättningarna med befintliga postuppsättningar. Identiska poster i en sammanslagen postuppsättning dupliceras inte.
  • När postuppsättningar slås samman används TTL (time to live) för befintliga postuppsättningar.
  • Start av utfärdarparametrar (SOA), förutom host tas alltid från den importerade zonfilen. Namnserverposten som anges i zon-apex använder också alltid TTL som hämtats från den importerade zonfilen.
  • En importerad CNAME-post ersätter inte en befintlig CNAME-post med samma namn.
  • När en konflikt inträffar 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 innehåller mer teknisk information om zonens importprocess.

  • Direktivet $TTL är valfritt och stöds. När inget $TTL direktiv anges importeras poster utan explicit TTL till en standard-TTL på 3 600 sekunder. När två poster i samma postuppsättning anger olika TTL:er används det lägre värdet.
  • Direktivet $ORIGIN är valfritt och stöds. När nej $ORIGIN har angetts är standardvärdet det zonnamn som anges på kommandoraden, inklusive slutpunkten (.).
  • Direktiven $INCLUDE och $GENERATE 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 . Den här parametern använder värdet som tillhandahålls av Azure DNS eftersom den måste referera till den primära namnservern som tillhandahålls av Azure DNS.
  • Namnserverposten som anges i zonexet skapas också automatiskt av Azure DNS när zonen skapas. Endast TTL för den här postuppsättningen importeras. Dessa poster innehåller namnservernamnen som tillhandahålls av Azure DNS. Postdata skrivs inte över av värdena i den importerade zonfilen.
  • Under offentlig förhandsversion stöder Azure DNS endast TXT-poster med en sträng. Multistring TXT-poster ska sammanfogas och trunkeras till 255 tecken.

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>

Värden:

  • <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 det inte redan finns en zon med det här namnet i resursgruppen skapas en åt dig. För en befintlig zon sammanfogas de importerade postuppsättningarna med befintliga postuppsättningar.

Importera en zonfil

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. Om du vill importera zonen contoso.com från filen contoso.com.txt till en ny DNS-zon i resursgruppen myresourcegroup kör du kommandot az network dns zone import.

    Det här kommandot läser in zonfilen och parsar den. Kommandot kör en serie åtgärder i Azure DNS-tjänsten för att skapa zonen och alla postuppsättningar i zonen. Kommandot rapporterar förloppet i konsolfönstret tillsammans med eventuella fel eller varningar. Eftersom postuppsättningar skapas i serien 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 när du har importerat filen:

  • Om du vill lista posterna använder du följande Azure CLI-kommando:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • Du kan också lista posterna med hjälp av Azure CLI-kommandot az network dns record-set ns list.

  • Använd nslookup för att verifiera namnmatchningen för posterna. Om zonen inte har delegerats ännu måste du uttryckligen ange rätt Azure DNS-namnservrar. Följande exempel visar hur du hämtar namnservernamnen som tilldelats till 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-kommandotolken för att fråga "www"-posten med nslookup kommandot .

    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 kontrollerat att zonen har importerats korrekt måste du uppdatera DNS-delegeringen så att den pekar på Azure DNS-namnservrarna. Mer information finns i Uppdatera DNS-delegeringen.

Exportera en DNS-zonfil från Azure DNS

Om du vill exportera en DNS-zon använder du följande Azure CLI-kommando:

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

Värden:

  • <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 zonimporten måste du först logga in, välja din prenumeration och konfigurera Azure CLI för att använda Resource Manager-läget.

Exportera en zonfil

Om du vill exportera den befintliga Azure DNS-zonen contoso.com i resursgruppen myresourcegroup till filen contoso.com.txt (i den aktuella mappen) kör du azure network dns zone export. Det här kommandot anropar Azure DNS-tjänsten för att räkna upp postuppsättningar i zonen och exportera resultatet till en BIND-kompatibel zonfil.

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

Nästa steg