Hantera DNS-poster och postuppsättningar i Azure DNS med hjälp av Azure CLI
Den här artikeln visar hur du hanterar DNS-poster för DIN DNS-zon med hjälp av plattformsoberoende Azure CLI. Azure CLI är tillgängligt för Windows, Mac och Linux. Du kan också hantera dina DNS-poster med hjälp av Azure PowerShell eller Azure Portal.
Exemplen i den här artikeln förutsätter att du redan har installerat Azure CLI, loggat in och skapat en DNS-zon.
Introduktion
Innan du skapar DNS-poster i Azure DNS, måste du först förstå hur Azure DNS organiserar DNS-poster i DNS-postuppsättningar.
Registrera namn
Poster i Azure DNS anges med relativa namn. Ett fullständigt domännamn (FQDN) innehåller zonnamnet, medan ett relativt namn inte gör det. Det relativa postnamnet www
i zonen contoso.com
ger till exempel det fullständigt kvalificerade postnamnet www.contoso.com
.
En topppost är en DNS-post vid roten (eller toppen) av en DNS-zon. I DNS-zonen contoso.com
har till exempel en apex-post även det fullständigt kvalificerade namnet contoso.com
(detta kallas ibland för en naken domän). Enligt konventionen används det relativa namnet '@' för att representera topposter.
Typer av poster
Varje DNS-post har ett namn och en typ. Posterna är indelade i olika typer beroende på den data de innehåller. Den vanligaste typen är en ”A”-post som mappar ett namn till en IPv4-adress. En annan vanlig typ är en ”MX”-post som mappar ett namn till en e-postserver.
Azure DNS stöder alla vanliga DNS-posttyper: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV och TXT. Observera att SPF-poster representeras med hjälp av TXT-poster.
Ytterligare posttyper stöds om zonen är signerad med DNS Security Extensions (DNSSEC), till exempel delegeringssignerare (DS) och TLSA-resursposter (Transport Layer Security Authentication).
DNSSEC-resursposttyper som DNSKEY, RRSIG och NSEC3-poster läggs till automatiskt när en zon signeras med DNSSEC. Dessa typer av DNSSEC-resursposter kan inte skapas eller ändras efter zonsignering.
Postuppsättningar
Ibland måste du skapa fler än en DNS-post av ett visst namn och typ. Anta exempelvis att webbplatsen ”www.contoso.com” finns på två olika IP-adresser. Webbplatsen kräver då två olika A-poster, en för varje IP-adress. Här är ett exempel på en postuppsättning:
www.contoso.com. 3600 IN A 134.170.185.46
www.contoso.com. 3600 IN A 134.170.188.221
Azure DNS hanterar DNS-poster med hjälp av postuppsättningar. En postuppsättning (även kallat en resurspostuppsättning)är en samling DNS-poster i en zon som har samma namn och är av samma typ. De flesta postuppsättningar innehåller en enda post. Exempel som det ovan, där en postuppsättning innehåller mer än en post, är dock inte ovanliga.
Anta till exempel att du redan har skapat en A-post "www" i zonen "contoso.com" som pekar på IP-adressen ”134.170.185.46” (första posten ovan). För att skapa den andra posten skulle du lägga till posten i den befintliga postuppsättningen i stället för att skapa ytterligare en post.
Postuppsättningarna SOA och CNAME är undantag. DNS-standarden tillåter inte flera poster med samma namn för dessa typer, därför kan dessa postuppsättningar endast innehålla en enda post.
Mer information om DNS-poster i Azure DNS finns i DNS-zoner och poster.
Skapa en DNS-post
Om du vill skapa en DNS-post använder du az network dns record-set <record-type> add-record
kommandot (där <record-type>
är typen av post, d.v.s. srv, txt osv.) Mer hjälp finns i az network dns record-set --help
.
När du skapar en post måste du ange följande information:
- Namn på resursgrupp
- Zonnamn
- Namn på postuppsättning
- Posttyp
Det angivna postuppsättningsnamnet måste vara ett relativt namn, vilket innebär att det måste undanta zonnamnet. Om postuppsättningen inte redan finns skapar det här kommandot den åt dig. Det här kommandot lägger dock till den post som du anger om postuppsättningen redan finns.
Om en ny postuppsättning skapas, används ett standard TTL-värde (Time to Live) på 3600. Anvisningar om hur du använder olika TTL:er finns i Skapa en DNS-postuppsättning.
Följande exempel skapar en A-post som heter www i zonen contoso.com i resursgruppen MyResourceGroup. IP-adressen för A-posten är 203.0.113.11.
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.11
Skapa en post överst i zonen (i det här fallet ”contoso.com”) genom att använda postnamnet "@", inklusive citattecknen.
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --ipv4-address 203.0.113.11
Skapa en DNS-postuppsättning
I exemplen ovan lades DNS-posten antingen till i en befintlig postuppsättning eller så skapades postuppsättningen implicit. Du kan också skapa postuppsättningen explicit innan du lägger till poster i den. Azure DNS stöder "tomma" postuppsättningar, som kan fungera som platshållare för att reservera ett DNS-namn innan du skapar DNS-poster. Tomma postuppsättningar visas i Azure DNS-kontrollplanet, men visas inte på Azure DNS-namnservrarna.
Postuppsättningar skapas med kommandot az network dns record-set <record-type> create
. Om du vill ha hjälp, så gå till az network dns record-set <record-type> create --help
.
När du skapar postuppsättningen explicit kan du ange egenskaper för postuppsättningar , till exempel TTL (Time-To-Live) och metadata. Metadata för postuppsättningar kan användas för att associera programspecifika data med varje postuppsättning som nyckel/värde-par.
I följande exempel skapas en tom postuppsättning av typen "A" med en TTL på 60 sekunder med hjälp av parametern --ttl
(kort formulär -l
):
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60
I följande exempel skapas en postuppsättning med två metadataposter, "dept=finance" och "environment=production", med hjälp av parametern --metadata
:
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"
När du har skapat en tom postuppsättning kan poster läggas till med hjälp av azure network dns record-set <record-type> add-record
enligt beskrivningen i Skapa en DNS-post.
Skapa poster av andra typer
Efter att ha sett i detalj hur du skapar A-poster visar följande exempel hur du skapar poster för andra posttyper som stöds av Azure DNS.
Parametrarna som används för att ange postdata varierar beroende på posttypen. För en post av typen "A", anger du exempelvis IPv4-adressen med parametern --ipv4-address <IPv4 address>
. Parametrarna för varje posttyp kan anges med hjälp av az network dns record-set <record-type> add-record --help
.
I varje fall visar vi hur du skapar en enda post. Posten läggs till i den befintliga postuppsättningen eller en postuppsättning som skapas implicit. Mer information om hur du skapar postuppsättningar och definierar parametern för postuppsättningar finns i Skapa en DNS-postuppsättning.
Det finns inget exempel för att skapa en SOA-postuppsättning, eftersom SOA skapas och tas bort med varje DNS-zon. SOA-posten kan inte skapas eller tas bort separat. Soa kan dock ändras, som du ser i ett senare exempel.
Skapa en AAAA-post
az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address FD00::1
Skapa en CAA-post
az network dns record-set caa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-caa --flags 0 --tag "issue" --value "ca1.contoso.com"
Skapa en CNAME-post
Kommentar
DNS-standarderna tillåter inte CNAME-poster i toppen av en zon (--Name "@"
), och de tillåter inte heller postuppsättningar som innehåller mer än en post.
Mer information finns i CNAME-poster.
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.contoso.com
Skapa en MX-post
I det här exemplet använder vi postuppsättningsnamnet "@" för att skapa MX-posten i basdomänen (i det här fallet "contoso.com").
az network dns record-set mx add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --exchange mail.contoso.com --preference 5
Skapa en NS-post
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.fabrikam.com
Skapa en PTR-post
I det här fallet representerar "my-arpa-zone.com" ARPA-zonen som representerar ditt IP-intervall. Varje PTR-post som har angetts i den här zonen motsvarar en IP-adress i IP-intervallet. Postnamnet "10" är den sista oktetten av IP-adressen inom det HÄR IP-intervallet som representeras av den här posten.
az network dns record-set ptr add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name my-arpa.zone.com --ptrdname myservice.contoso.com
Skapa en SRV-post
När du skapar en SRV-postuppsättning anger du _service och _protocol i postuppsättningens namn. Du behöver inte inkludera "@" i postuppsättningens namn när du skapar en SRV-postuppsättning i zonexet.
az network dns record-set srv add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name _sip._tls --priority 10 --weight 5 --port 8080 --target sip.contoso.com
Skapa en TXT-post
I följande exempel visas hur du skapar en TXT-post. Mer information om den maximala stränglängd som stöds i TXT-poster finns i TXT-poster.
az network dns record-set txt add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-txt --value "This is a TXT record"
Hämta en postuppsättning
Om du vill hämta en befintlig postuppsättning använder du az network dns record-set <record-type> show
. Om du vill ha hjälp, så gå till az network dns record-set <record-type> show --help
.
När du skapar en post eller postuppsättning måste det angivna postuppsättningsnamnet vara ett relativt namn. Det här namnet innehåller inte zonnamnet. Du måste också ange posttypen, zonen som innehåller postuppsättningen och resursgruppen som innehåller zonen.
I följande exempel hämtas posten www av typen A från zon contoso.com i resursgruppen MyResourceGroup:
az network dns record-set a show --resource-group myresourcegroup --zone-name contoso.com --name www
Lista postuppsättningar
Du kan visa en lista över alla poster i en DNS-zon med hjälp az network dns record-set list
av kommandot . Om du vill ha hjälp, så gå till az network dns record-set list --help
.
Det här exemplet returnerar alla postuppsättningar i zonen contoso.com i resursgruppen MyResourceGroup:
az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com
Det här exemplet returnerar alla postuppsättningar som matchar den angivna posttypen (i det här fallet "A"-poster):
az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com
Lägga till en post i en befintlig postuppsättning
Du kan använda az network dns record-set <record-type> add-record
både för att skapa en post i en ny postuppsättning eller för att lägga till en post i en befintlig postuppsättning.
Mer information finns i Skapa en DNS-post och Skapa poster av andra typer ovan.
Ta bort en post från en befintlig postuppsättning.
Om du vill ta bort en DNS-post från en befintlig postuppsättning använder du az network dns record-set <record-type> remove-record
. Om du vill ha hjälp, så gå till az network dns record-set <record-type> remove-record -h
.
Det här kommandot tar bort en DNS-post från en postuppsättning. Om den sista posten i en postuppsättning tas bort tas även själva postuppsättningen bort. Använd alternativet om du vill behålla den tomma postuppsättningen --keep-empty-record-set
i stället.
När du använder az network dns record-set <record-type> add-record
kommandot måste du ange vilken post som ska tas bort och zonen som du vill ta bort från. Dessa parametrar beskrivs i Skapa en DNS-post och Skapa poster av andra typer ovan.
I följande exempel tas A-posten bort med värdet "203.0.113.11" från postuppsättningen med namnet www i zonen contoso.com i resursgruppen MyResourceGroup.
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "www" --ipv4-address 203.0.113.11
Ändra en befintlig postuppsättning
Varje postuppsättning innehåller TTL(Time To Live), metadata och DNS-poster. I följande avsnitt beskrivs hur du ändrar var och en av dessa egenskaper.
Ändra en A-, AAAA-, CAA-, MX-, NS-, PTR-, SRV- eller TXT-post
Om du vill ändra en befintlig post av typen A, AAAA, CAA, MX, NS, PTR, SRV eller TXT bör du först lägga till en ny post och sedan ta bort den befintliga posten. Detaljerade anvisningar om hur du tar bort och lägger till poster finns i de tidigare avsnitten i den här artikeln.
I följande exempel visas hur du ändrar en A-post från IP-adressen 203.0.113.11 till IP-adressen 203.0.113.22:
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.22
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 203.0.113.11
Du kan inte lägga till, ta bort eller ändra posterna i den automatiskt skapade NS-postuppsättningen i zonens topp (--Name "@"
inklusive citattecken). För den här postuppsättningen är de enda tillåtna ändringarna att ändra postuppsättningens TTL och metadata.
Så här ändrar du en CNAME-post
Till skillnad från de flesta andra posttyper kan en CNAME-postuppsättning bara innehålla en enda post. Därför kan du inte ersätta det aktuella värdet genom att lägga till en ny post och ta bort den befintliga posten som andra posttyper.
Om du i stället vill ändra en CNAME-post använder du az network dns record-set cname set-record
. Mer information finns i az network dns record-set cname set-record --help
Exemplet ändrar CNAME-posten som anges www i zonen contoso.com i resursgruppen MyResourceGroup så att den pekar på "www.fabrikam.net" i stället för dess befintliga värde:
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.fabrikam.net
Ändra en SOA-post
Till skillnad från de flesta andra posttyper kan en SOA-postuppsättning bara innehålla en enda post. Därför kan du inte ersätta det aktuella värdet genom att lägga till en ny post och ta bort den befintliga posten som andra posttyper.
Om du i stället vill ändra SOA-posten använder du az network dns record-set soa update
. Om du vill ha hjälp, så gå till az network dns record-set soa update --help
.
I följande exempel visas hur du anger egenskapen "e-post" för SOA-posten för zonen contoso.com:
az network dns record-set soa update --resource-group myresourcegroup --zone-name contoso.com --email admin.contoso.com
Så här ändrar du NS-poster i zon-apex
NS-posten som anges i zonexet skapas automatiskt med varje DNS-zon. Den innehåller namnen på de Azure DNS-namnservrar som tilldelats till zonen.
Du kan lägga till fler namnservrar i den här NS-postuppsättningen för att stödja cohosting-domäner med mer än en DNS-provider. Du kan också ändra TTL och metadata för den här postuppsättningen. Du kan dock inte ta bort eller ändra de förifyllda Azure DNS-namnservrarna.
Den här begränsningen gäller endast för NS-posten som anges i zonexet. Andra NS-postuppsättningar i din zon (som används för att delegera underordnade zoner) kan ändras utan begränsningar.
I följande exempel visas hur du lägger till en annan namnserver till NS-posten som angetts i zonexemplet:
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.fabrikam.com
Ändra TTL för en befintlig postuppsättning
Om du vill ändra TTL för en befintlig postuppsättning använder du azure network dns record-set <record-type> update
. Om du vill ha hjälp, så gå till azure network dns record-set <record-type> update --help
.
I följande exempel visas hur du ändrar en postuppsättnings TTL, i det här fallet till 60 sekunder:
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set ttl=60
Ändra metadata för en befintlig postuppsättning
Metadata för postuppsättningar kan användas för att associera programspecifika data med varje postuppsättning som nyckel/värde-par. Om du vill ändra metadata för en befintlig postuppsättning använder du az network dns record-set <record-type> update
. Om du vill ha hjälp, så gå till az network dns record-set <record-type> update --help
.
I följande exempel visas hur du ändrar en postuppsättning med två metadataposter, "dept=finance" och "environment=production". Alla befintliga metadata ersätts av de angivna värdena.
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production
Ta bort en postuppsättning
Du kan ta bort postuppsättningar med hjälp az network dns record-set <record-type> delete
av kommandot . Om du vill ha hjälp, så gå till azure network dns record-set <record-type> delete --help
. Om du tar bort en postuppsättning tas även alla poster i postuppsättningen bort.
Kommentar
Du kan inte ta bort SOA- och NS-postuppsättningarna i zonexet (--name "@"
). Dessa skapas automatiskt när zonen skapades och tas bort automatiskt när zonen tas bort.
I följande exempel tas postuppsättningen med namnet www av typen A bort från zonen contoso.com i resursgruppen MyResourceGroup:
az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www
Du uppmanas att bekräfta borttagningsåtgärden. Om du vill ignorera den här uppmaningen använder du växeln --yes
.
Nästa steg
Läs mer om zoner och poster i Azure DNS.
Lär dig hur du skyddar dina zoner och poster när du använder Azure DNS.