DNS-records en -recordsets beheren in Azure DNS met behulp van de Azure CLI
In dit artikel leest u hoe u DNS-records voor uw DNS-zone beheert met behulp van de platformoverschrijdende Azure CLI. De Azure CLI is beschikbaar voor Windows, Mac en Linux. U kunt uw DNS-records ook beheren met Behulp van Azure PowerShell of Azure Portal.
In de voorbeelden in dit artikel wordt ervan uitgegaan dat u de Azure CLI al hebt geïnstalleerd, aangemeld en een DNS-zone hebt gemaakt.
Inleiding
Voordat u DNS-records in DNS Azure maakt, leest u eerst hoe Azure DNS DNS-records organiseert in DNS-recordsets.
Recordnamen
In Azure DNS worden records opgegeven met behulp van relatieve namen. Een FQDN (Fully Qualified Domain Name) bevat de zonenaam, terwijl een relatieve naam dat niet doet. De relatieve recordnaam www
in de zone contoso.com
geeft bijvoorbeeld de volledig gekwalificeerde recordnaam www.contoso.com
.
Een apexrecord is een DNS-record in de hoofdmap (of apex) van een DNS-zone. In de DNS-zone contoso.com
heeft een apex-record bijvoorbeeld ook de volledig gekwalificeerde naam contoso.com
(dit wordt ook wel een naakt domein genoemd). Volgens de conventies wordt de relatieve naam '@' gebruikt om apexrecords te representeren.
Recordtypen
Elke DNS-record heeft een naam en een type. Records zijn ingedeeld in verschillende typen overeenkomstig de gegevens die ze bevatten. Het meest voorkomende type is een A-record, waarmee een naam aan een IPv4-adres wordt toegewezen. Een ander algemeen type is een MX-record, waarmee een naam aan een e-mailserver wordt toegewezen.
Azure DNS ondersteunt alle algemene DNS-recordtypen: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV en TXT. Houd er rekening mee dat SPF-records worden gerepresenteerd door TXT-records.
Aanvullende recordtypen worden ondersteund als de zone is ondertekend met DNS-beveiligingsextensies (DNSSEC), zoals DS-delegering (DS) en TLSA-bronrecords (Transport Layer Security Authentication).
DNSSEC-bronrecordtypen, zoals DNSKEY, RRSIG en NSEC3-records, worden automatisch toegevoegd wanneer een zone is ondertekend met DNSSEC. Deze typen DNSSEC-resourcerecords kunnen niet worden gemaakt of gewijzigd na het ondertekenen van de zone.
Recordsets
Soms moet u meer dan één DNS-record maken met een bepaalde naam en een bepaald type. Stel bijvoorbeeld dat de website www.contoso.com wordt gehost op twee verschillende IP-adressen. De website vereist twee verschillende A-records, één voor elk IP-adres. Hier volgt een voorbeeld van een recordset:
www.contoso.com. 3600 IN A 134.170.185.46
www.contoso.com. 3600 IN A 134.170.188.221
Azure DNS beheert alle DNS-records met recordsets. Een recordset (ook bekend als een resource-recordset) is een verzameling DNS-records in een zone die dezelfde naam hebben en van hetzelfde type zijn. De meeste recordsets bevatten één record. Voorbeelden zoals hierboven, waarin een recordset meer dan één record bevat, zijn echter niet ongewoon.
Veronderstel bijvoorbeeld dat u al een A-record 'www' hebt gemaakt in de zone 'contoso.com' die naar het IP-adres '134.170.185.46' verwijst (de eerste record bovenaan). Als u nu de tweede record wilt maken, moet u deze toevoegen aan de bestaande recordset. U maakt dus geen aanvullende recordset.
De recordtypen SOA en CNAME zijn uitzonderingen. De DNS-standaarden staan voor deze typen niet toe dat er meerdere records zijn met dezelfde naam. Daarom kunnen deze recordsets slechts één record bevatten.
Zie DNS-zones en -records voor meer informatie over DNS-records in Azure DNS.
Een DNS-record maken
Als u een DNS-record wilt maken, gebruikt u de az network dns record-set <record-type> add-record
opdracht (waar <record-type>
is het type record, d.w.z. a, srv, txt, enzovoort) Zie voor hulp az network dns record-set --help
.
Wanneer u een record maakt, moet u de volgende gegevens opgeven:
- Naam van de resourcegroep
- Zonenaam
- Naam van recordset
- Recordtype
De opgegeven naam van de recordset moet een relatieve naam zijn, wat betekent dat deze de zonenaam moet uitsluiten. Als de recordset nog niet bestaat, wordt deze met deze opdracht voor u gemaakt. Met deze opdracht wordt echter de record toegevoegd die u opgeeft als de recordset al bestaat.
Als er een nieuwe recordset wordt gemaakt, wordt een standaard time-to-live (TTL) van 3600 gebruikt. Zie Een DNS-recordset maken voor instructies over het gebruik van verschillende TTU's.
In het volgende voorbeeld maakt u een A-record met de naam www in de zone contoso.com in de resourcegroep MyResourceGroup. Het IP-adres van de A-record is 203.0.113.111.
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
Als u een recordset wilt maken in de apex van de zone (in dit geval 'contoso.com'), gebruikt u de recordnaam @, inclusief de aanhalingstekens:
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --ipv4-address 203.0.113.11
Een DNS-recordset maken
In de bovenstaande voorbeelden is de DNS-record toegevoegd aan een bestaande recordset of is de recordset impliciet gemaakt. U kunt de recordset ook expliciet maken voordat u er records aan toevoegt. Azure DNS ondersteunt 'lege' recordsets, die als tijdelijke aanduiding kunnen fungeren om een DNS-naam te reserveren voordat u DNS-records maakt. Lege recordsets zijn zichtbaar in het Azure DNS-besturingsvlak, maar worden niet weergegeven op de Azure DNS-naamservers.
Recordsets worden gemaakt met behulp van de az network dns record-set <record-type> create
opdracht. Zie az network dns record-set <record-type> create --help
voor help.
Als u de recordset maakt, kunt u expliciet eigenschappen van recordset opgeven, zoals de TTL (Time-To-Live) en metagegevens. Metagegevens van recordsets kunnen worden gebruikt om toepassingsspecifieke gegevens te koppelen aan elke recordset, als sleutel-waardeparen.
In het volgende voorbeeld wordt een lege recordset van het type A gemaakt met een TTL van 60 seconden, met behulp van de --ttl
parameter (korte vorm -l
):
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60
In het volgende voorbeeld wordt een recordset gemaakt met twee metagegevensvermeldingen: 'dept=finance' en 'environment=production', met behulp van de --metadata
parameter:
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"
Nadat u een lege recordset hebt gemaakt, kunnen records worden toegevoegd met behulp van azure network dns record-set <record-type> add-record
de instructies in Een DNS-record maken.
Records van andere typen maken
De volgende voorbeelden laten zien hoe u A-records maakt. In de volgende voorbeelden ziet u hoe u een record maakt van andere recordtypen die worden ondersteund door Azure DNS.
De parameters die u gebruikt om de gegevens van de record op te geven, variëren afhankelijk van het type record. Voor een record van het type 'A' geeft u bijvoorbeeld het IPv4-adres met de parameter --ipv4-address <IPv4 address>
op. De parameters voor elk recordtype kunnen worden vermeld met behulp van az network dns record-set <record-type> add-record --help
.
In elk geval laten we zien hoe u één record maakt. De record wordt toegevoegd aan de bestaande recordset of een recordset die impliciet is gemaakt. Zie Een DNS-recordset maken voor meer informatie over het maken van recordsets en het expliciet definiëren van een parameter voor recordset.
Er is geen voorbeeld voor het maken van een SOA-recordset, omdat SOA's worden gemaakt en verwijderd met elke DNS-zone. De SOA-record kan niet afzonderlijk worden gemaakt of verwijderd. De SOA kan echter worden gewijzigd, zoals wordt weergegeven in een later voorbeeld.
Een AAAA-record maken
az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address FD00::1
Een CAA-record maken
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"
Een CNAME-record maken
Notitie
De DNS-standaarden staan geen CNAME-records toe aan de apex van een zone (--Name "@"
), noch staan ze recordsets toe die meer dan één record bevatten.
Zie CNAME-records voor meer informatie.
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.contoso.com
Een MX-record maken
In dit voorbeeld gebruiken we de naam van de recordset '@' om de MX-record te maken in het toppunt van de zone (in dit geval '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
Een NS-record maken
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.fabrikam.com
Een PTR-record maken
In dit geval vertegenwoordigt 'my-arpa-zone.com' de ARPA-zone die uw IP-bereik vertegenwoordigt. Elke PTR-recordset die is ingesteld in deze zone komt overeen met een IP-adres in dit IP-bereik. De recordnaam 10 is de laatste octet van het IP-adres binnen dit IP-bereik dat wordt vertegenwoordigd door deze record.
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
Een SRV-record maken
Wanneer u een SRV-recordset maakt, geeft u de _service en _protocol op in de naam van de recordset. Het is niet nodig om @op te nemen in de recordsetnaam bij het maken van een SRV-recordset in de zone-apex.
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
Een TXT-record maken
In het volgende voorbeeld ziet u hoe u een TXT-record maakt. Zie TXT-records voor meer informatie over de maximale tekenreekslengte die wordt ondersteund in TXT-records.
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"
Een recordset ophalen
Als u een bestaande recordset wilt ophalen, gebruikt u az network dns record-set <record-type> show
. Zie az network dns record-set <record-type> show --help
voor help.
Bij het maken van een record of recordset moet de opgegeven naam van de recordset een relatieve naam zijn. Deze naam bevat niet de zonenaam. U moet ook het recordtype, de zone met de recordset en de resourcegroep met de zone opgeven.
In het volgende voorbeeld wordt de record www van het type A opgehaald uit de zone contoso.com in de resourcegroep MyResourceGroup:
az network dns record-set a show --resource-group myresourcegroup --zone-name contoso.com --name www
Recordsets weergeven
U kunt alle records in een DNS-zone weergeven met behulp van de az network dns record-set list
opdracht. Zie az network dns record-set list --help
voor help.
In dit voorbeeld worden alle recordsets geretourneerd in de zone contoso.com, in resourcegroep MyResourceGroup:
az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com
In dit voorbeeld worden alle recordsets geretourneerd die overeenkomen met het opgegeven recordtype (in dit geval A-records):
az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com
Een record toevoegen aan een bestaande recordset
U kunt beide gebruiken az network dns record-set <record-type> add-record
om een record in een nieuwe recordset te maken of om een record toe te voegen aan een bestaande recordset.
Zie Een DNS-record maken en records van andere typen maken hierboven voor meer informatie.
Een record verwijderen uit een bestaande recordset.
Als u een DNS-record uit een bestaande recordset wilt verwijderen, gebruikt u az network dns record-set <record-type> remove-record
. Zie az network dns record-set <record-type> remove-record -h
voor help.
Met deze opdracht wordt een DNS-record uit een recordset verwijderd. Als de laatste record in een recordset wordt verwijderd, wordt de recordset zelf ook verwijderd. Als u de lege recordset wilt behouden, gebruikt u de --keep-empty-record-set
optie.
Wanneer u de az network dns record-set <record-type> add-record
opdracht gebruikt, moet u de record opgeven die wordt verwijderd en de zone waaruit u wilt verwijderen. Deze parameters worden beschreven in Een DNS-record maken en records maken van andere typen hierboven.
In het volgende voorbeeld wordt de A-record met de waarde '203.0.113.111' verwijderd uit de recordset met de naam www in de zone contoso.com, in de resourcegroep 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
Een bestaande recordset wijzigen
Elke recordset bevat een time-to-live (TTL), metagegevens en DNS-records. In de volgende secties wordt uitgelegd hoe u elk van deze eigenschappen kunt wijzigen.
Een A-, AAAA-, CAA-, MX-, NS-, PTR-, SRV- of TXT-record wijzigen
Als u een bestaande record van het type A, AAAA, CAA, MX, NS, PTR, SRV of TXT wilt wijzigen, moet u eerst een nieuwe record toevoegen en vervolgens de bestaande record verwijderen. Zie de eerdere secties van dit artikel voor gedetailleerde instructies over het verwijderen en toevoegen van records.
In het volgende voorbeeld ziet u hoe u een A-record wijzigt, van IP-adres 203.0.113.111 naar IP-adres 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
U kunt de records in de automatisch gemaakte NS-recordset in de zone-apex (--Name "@"
inclusief aanhalingstekens) niet toevoegen, verwijderen of wijzigen. Voor deze recordset zijn de enige wijzigingen toegestaan om de TTL en metagegevens van de recordset te wijzigen.
Een CNAME-record wijzigen
In tegenstelling tot de meeste andere recordtypen kan een CNAME-recordset slechts één record bevatten. Daarom kunt u de huidige waarde niet vervangen door een nieuwe record toe te voegen en de bestaande record zoals andere recordtypen te verwijderen.
Als u in plaats daarvan een CNAME-record wilt wijzigen, gebruikt u az network dns record-set cname set-record
. Zie voor hulp az network dns record-set cname set-record --help
In het voorbeeld wordt de CNAME-recordset www gewijzigd in de zone contoso.com, in resourcegroep MyResourceGroup, zodat deze verwijst naar 'www.fabrikam.net' in plaats van de bestaande waarde:
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.fabrikam.net
Een SOA-record wijzigen
In tegenstelling tot de meeste andere recordtypen kan een SOA-recordset slechts één record bevatten. Daarom kunt u de huidige waarde niet vervangen door een nieuwe record toe te voegen en de bestaande record zoals andere recordtypen te verwijderen.
Als u in plaats daarvan de SOA-record wilt wijzigen, gebruikt u az network dns record-set soa update
. Zie az network dns record-set soa update --help
voor help.
In het volgende voorbeeld ziet u hoe u de eigenschap 'e-mail' van de SOA-record voor de zone contoso.com instelt:
az network dns record-set soa update --resource-group myresourcegroup --zone-name contoso.com --email admin.contoso.com
NS-records wijzigen in de zone-apex
De NS-recordset op de zone-apex wordt automatisch gemaakt met elke DNS-zone. Het bevat de namen van de Azure DNS-naamservers die zijn toegewezen aan de zone.
U kunt meer naamservers toevoegen aan deze NS-recordset om cohostingdomeinen met meer dan één DNS-provider te ondersteunen. U kunt ook de TTL en metagegevens voor deze recordset wijzigen. U kunt de vooraf ingevulde Azure DNS-naamservers echter niet verwijderen of wijzigen.
Deze beperking geldt alleen voor de NS-recordset in de zone-apex. Andere NS-recordsets in uw zone (zoals gebruikt voor het delegeren van onderliggende zones) kunnen zonder beperking worden gewijzigd.
In het volgende voorbeeld ziet u hoe u een andere naamserver toevoegt aan de NS-recordset in de zone-apex:
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.fabrikam.com
De TTL van een bestaande recordset wijzigen
Als u de TTL van een bestaande recordset wilt wijzigen, gebruikt u azure network dns record-set <record-type> update
. Zie azure network dns record-set <record-type> update --help
voor help.
In het volgende voorbeeld ziet u hoe u een TTL voor een recordset wijzigt, in dit geval tot 60 seconden:
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set ttl=60
De metagegevens van een bestaande recordset wijzigen
Metagegevens van recordsets kunnen worden gebruikt om toepassingsspecifieke gegevens te koppelen aan elke recordset, als sleutel-waardeparen. Als u de metagegevens van een bestaande recordset wilt wijzigen, gebruikt u az network dns record-set <record-type> update
. Zie az network dns record-set <record-type> update --help
voor help.
In het volgende voorbeeld ziet u hoe u een recordset wijzigt met twee metagegevensvermeldingen: 'dept=finance' en 'environment=production'. Bestaande metagegevens worden vervangen door de opgegeven waarden.
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production
Een recordset verwijderen
Recordsets kunnen worden verwijderd met behulp van de az network dns record-set <record-type> delete
opdracht. Zie azure network dns record-set <record-type> delete --help
voor help. Als u een recordset verwijdert, worden ook alle records in de recordset verwijderd.
Notitie
U kunt de SOA- en NS-recordsets niet verwijderen in de zone-apex (--name "@"
). Deze worden automatisch gemaakt wanneer de zone is gemaakt en worden automatisch verwijderd wanneer de zone wordt verwijderd.
In het volgende voorbeeld wordt de recordset met de naam www van het type A verwijderd uit de zone contoso.com in resourcegroep MyResourceGroup:
az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www
U wordt gevraagd om de verwijderbewerking te bevestigen. Gebruik de --yes
schakeloptie om deze prompt te onderdrukken.
Volgende stappen
Meer informatie over zones en records in Azure DNS.
Meer informatie over het beveiligen van uw zones en records bij het gebruik van Azure DNS.