Gerenciar registros DNS e conjuntos de registros no DNS do Azure usando a CLI do Azure
Este artigo mostra como gerenciar registros DNS para sua zona DNS usando a CLI do Azure entre plataformas. A CLI do Azure está disponível para Windows, Mac e Linux. Você também pode gerenciar seus registros DNS usando o Azure PowerShell ou o portal do Azure.
Os exemplos neste artigo pressupõem que você já instalou a CLI do Azure, entrou e criou uma zona DNS.
Introdução
Antes de criar registos DNS no DNS do Azure, terá primeiro de compreender como o DNS do Azure organiza os registos DNS em conjuntos de registos DNS.
Nomes de registo
No DNS do Azure, os registos são especificados com nomes relativos. Um nome de domínio totalmente qualificado (FQDN) inclui o nome da zona, enquanto um nome relativo não. Por exemplo, o nome www
do registro relativo na zona contoso.com
fornece o nome www.contoso.com
de registro totalmente qualificado.
Um registo apex é um registo DNS na raiz (ou apex) de uma zona DNS. Por exemplo, na zona contoso.com
DNS, um registro do apex também tem o nome contoso.com
totalmente qualificado (às vezes é chamado de domínio nu ). Por convenção, o nome relativo '@' é utilizado para representar registos apex.
Tipos de registo
Cada registo DNS tem um nome e um tipo. Os registos são organizados em vários tipos de acordo com os dados que contêm. O tipo mais comum é um registo “A”, que mapeia um nome para um endereço IPv4. Outro tipo comum é um registo “MX”, que mapeia um nome para um servidor de correio.
O DNS do Azure suporta todos os tipos de registo DNS comuns: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV e TXT. Tenha em atenção que os registos SPF são representados utilizando registos TXT.
Há suporte para tipos de registro adicionais se a zona for assinada com DNSSEC (DNS Security Extensions), como registros de recursos DS (Delegation Signer) e TLSA (Transport Layer Security Authentication).
Os tipos de registro de recursos DNSSEC, como DNSKEY, RRSIG e NSEC3, são adicionados automaticamente quando uma zona é assinada com DNSSEC. Esses tipos de registros de recursos DNSSEC não podem ser criados ou modificados após a assinatura da zona.
Conjuntos de registos
Por vezes, precisa de criar mais do que um registo DNS com um determinado nome e tipo. Por exemplo, suponha que o site “www.contoso.com” está alojado em dois endereços IP diferentes. O site necessita de dois registos A diferentes, um para cada endereço IP. Aqui está um exemplo de um conjunto de registros:
www.contoso.com. 3600 IN A 134.170.185.46
www.contoso.com. 3600 IN A 134.170.188.221
O DNS do Azure gere todos os registos DNS com conjuntos de registos. Um conjunto de registos (também conhecido como conjunto de registos de recurso) é uma coleção de registos DNS numa zona com o mesmo nome e do mesmo tipo. A maioria dos conjuntos de registos contêm um único registo. No entanto, exemplos como o acima, em que um conjunto de registros contém mais de um registro, não são incomuns.
Por exemplo, imagine que já criou um registo "www" A na zona "contoso.com", a apontar para o endereço IP "134.170.185.46" (o primeiro registo acima). Para criar o segundo registo, deverá adicionar esse registo para o conjunto de registos existente, em vez de criar um conjunto de registos adicional.
Os tipos de registos SOA e CNAME são exceções. As normas DNS não permitirem vários registos com o mesmo nome para estes tipos, por conseguinte, estes conjuntos de registos só podem conter um único registo.
Para obter mais informações sobre os registos DNS no DNS do Azure, veja Zonas e registos DNS.
Criar um registo DNS
Para criar um registo DNS, utilize o az network dns record-set <record-type> add-record
comando (onde <record-type>
é o tipo de registo, ou seja, a, srv, txt, etc.) Para obter ajuda, consulte az network dns record-set --help
.
Ao criar um registro, você precisa especificar as seguintes informações:
- Nome do grupo de recursos
- Nome da zona
- Nome do conjunto de registros
- Tipo de registo
O nome do conjunto de registros fornecido deve ser um nome relativo , o que significa que deve excluir o nome da zona. Se o conjunto de registros ainda não existir, este comando o criará para você. Este comando, no entanto, adicionará o registro especificado se o conjunto de registros já existir.
Se for criado um novo conjunto de registos, é utilizado um TTL (time-to-live) predefinido de 3600. Para obter instruções sobre como usar TTLs diferentes, consulte Criar um conjunto de registros DNS.
O exemplo seguinte cria um registo A denominado www na zona contoso.com do grupo de recursos MyResourceGroup. O endereço IP do registo A é 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
Para criar um conjunto de registos no vértice da zona (neste caso, “contoso.com”), utilize o nome do registo “@”, incluindo as aspas:
az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --ipv4-address 203.0.113.11
Criar um conjunto de registos DNS
Nos exemplos acima, o registro DNS foi adicionado a um conjunto de registros existente ou o conjunto de registros foi criado implicitamente. Você também pode criar o conjunto de registros explicitamente antes de adicionar registros a ele. O DNS do Azure dá suporte a conjuntos de registros 'vazios', que podem atuar como um espaço reservado para reservar um nome DNS antes de criar registros DNS. Os conjuntos de registros vazios são visíveis no plano de controle DNS do Azure, mas não aparecem nos servidores de nomes DNS do Azure.
Os conjuntos de registros são criados usando o az network dns record-set <record-type> create
comando. Para obter ajuda, consulte az network dns record-set <record-type> create --help
.
A criação explícita do conjunto de registros permite especificar propriedades do conjunto de registros, como TTL (Time-To-Live) e metadados. Os metadados do conjunto de registros podem ser usados para associar dados específicos do aplicativo a cada conjunto de registros, como pares chave-valor.
O exemplo a seguir cria um conjunto de registros vazio do tipo 'A' com um TTL de 60 segundos, usando o --ttl
parâmetro (forma -l
curta):
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60
O exemplo a seguir cria um conjunto de registros com duas entradas de metadados, "dept=finance" e "environment=production", usando o --metadata
parâmetro:
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"
Tendo criado um conjunto de registros vazio, os registros podem ser adicionados usando azure network dns record-set <record-type> add-record
conforme descrito em Criar um registro DNS.
Criar registos de outros tipos
Tendo visto em detalhes como criar registros 'A', os exemplos a seguir mostram como criar registros de outros tipos de registro suportados pelo DNS do Azure.
Os parâmetros utilizados para especificar os dados de registo variam consoante o tipo de registo. Por exemplo, para um registo do tipo "A", especifica o endereço IPv4 com o parâmetro --ipv4-address <IPv4 address>
. Os parâmetros para cada tipo de registro podem ser listados usando az network dns record-set <record-type> add-record --help
.
Em cada caso, mostramos como criar um único registro. O registro é adicionado ao conjunto de registros existente ou a um conjunto de registros criado implicitamente. Para obter mais informações sobre como criar conjuntos de registros e definir explicitamente o parâmetro do conjunto de registros, consulte Criar um conjunto de registros DNS.
Não há nenhum exemplo para criar um conjunto de registros SOA, já que SOAs são criados e excluídos com cada zona DNS. O registro SOA não pode ser criado ou excluído separadamente. No entanto, a SOA pode ser modificada, como mostrado em um exemplo posterior.
Criar um registro AAAA
az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address FD00::1
Criar um registro CAA
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"
Crie um registo de CNAME
Nota
Os padrões DNS não permitem registros CNAME no ápice de uma zona (--Name "@"
), nem permitem conjuntos de registros contendo mais de um registro.
Para obter mais informações, consulte Registros CNAME.
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.contoso.com
Criar um registo MX
Neste exemplo, utilizamos o nome do conjunto de registos “@” para criar o registo MX no vértice da zona (neste caso, “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
Criar um registro NS
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.fabrikam.com
Criar um registo PTR
Neste caso, 'my-arpa-zone.com' representa a zona ARPA que representa o seu intervalo de IP. Cada conjunto de registos PTR nesta zona corresponde a um endereço IP neste intervalo de IPs. O nome de registo «10» é o último octeto do endereço IP dentro deste intervalo de IP representado por este registo.
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
Criar um registro SRV
Ao criar um conjunto de registros SRV, especifique a _service e a _protocol no nome do conjunto de registros. Não há necessidade de incluir "@" no nome do conjunto de registros ao criar um conjunto de registros SRV no ápice da zona.
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
Criar um registo TXT
O exemplo a seguir mostra como criar um registro TXT. Para obter mais informações sobre o comprimento máximo de cadeia de caracteres suportado em registros TXT, consulte Registros TXT.
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"
Obter um conjunto de registos
Para recuperar um conjunto de registros existente, use az network dns record-set <record-type> show
. Para obter ajuda, consulte az network dns record-set <record-type> show --help
.
Ao criar um registro ou conjunto de registros, o nome do conjunto de registros fornecido deve ser um nome relativo . Este nome não inclui o nome da zona. Você também precisa especificar o tipo de registro, a zona que contém o conjunto de registros e o grupo de recursos que contém a zona.
O exemplo a seguir recupera o registro www do tipo A da zona contoso.com no grupo de recursos MyResourceGroup:
az network dns record-set a show --resource-group myresourcegroup --zone-name contoso.com --name www
Listar conjuntos de registros
Você pode listar todos os registros em uma zona DNS usando o az network dns record-set list
comando. Para obter ajuda, consulte az network dns record-set list --help
.
Este exemplo retorna todos os conjuntos de registros na zona contoso.com, no grupo de recursos MyResourceGroup:
az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com
Este exemplo retorna todos os conjuntos de registros que correspondem ao tipo de registro fornecido (neste caso, registros 'A'):
az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com
Adicionar um registo a um conjunto de registos existente
Você pode usar az network dns record-set <record-type> add-record
ambos para criar um registro em um novo conjunto de registros ou para adicionar um registro a um conjunto de registros existente.
Para obter mais informações, consulte Criar um registro DNS e Criar registros de outros tipos acima.
Remova um registro de um conjunto de registros existente.
Para remover um registo DNS de um conjunto de registos existente, utilize az network dns record-set <record-type> remove-record
. Para obter ajuda, consulte az network dns record-set <record-type> remove-record -h
.
Este comando exclui um registro DNS de um conjunto de registros. Se o último registro de um conjunto de registros for excluído, o próprio conjunto de registros também será excluído. Para manter o registro vazio definido, use a --keep-empty-record-set
opção.
Ao usar o az network dns record-set <record-type> add-record
comando, você precisa especificar o registro que será excluído e a zona da qual será excluído. Esses parâmetros são descritos em Criar um registro DNS e Criar registros de outros tipos acima.
O exemplo a seguir exclui o registro A com o valor '203.0.113.11' do conjunto de registros chamado www na zona contoso.com, no grupo de recursos 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
Modificar um conjunto de registros existente
Cada conjunto de registros contém um tempo de vida (TTL), metadados e registros DNS. As seções a seguir explicam como modificar cada uma dessas propriedades.
Para modificar um registro A, AAAA, CAA, MX, NS, PTR, SRV ou TXT
Para modificar um registro existente do tipo A, AAAA, CAA, MX, NS, PTR, SRV ou TXT, você deve primeiro adicionar um novo registro e, em seguida, excluir o registro existente. Para obter instruções detalhadas sobre como excluir e adicionar registros, consulte as seções anteriores deste artigo.
O exemplo a seguir mostra como modificar um registro 'A', do endereço IP 203.0.113.11 para o endereço IP 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
Não é possível adicionar, remover ou modificar os registros no conjunto de registros NS criados automaticamente no ápice da zona (--Name "@"
, incluindo aspas). Para esse conjunto de registros, as únicas alterações permitidas são modificar o TTL e os metadados do conjunto de registros.
Para modificar um registro CNAME
Ao contrário da maioria dos outros tipos de registro, um conjunto de registros CNAME só pode conter um único registro. É por isso que você não pode substituir o valor atual adicionando um novo registro e removendo o registro existente como outros tipos de registro.
Em vez disso, para modificar um registro CNAME, use az network dns record-set cname set-record
. Para obter ajuda, consulte az network dns record-set cname set-record --help
O exemplo modifica o conjunto de registros CNAME www na zona contoso.com, no grupo de recursos MyResourceGroup, para apontar para 'www.fabrikam.net' em vez de seu valor existente:
az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.fabrikam.net
Para modificar um registro SOA
Ao contrário da maioria dos outros tipos de registro, um conjunto de registros SOA só pode conter um único registro. É por isso que você não pode substituir o valor atual adicionando um novo registro e removendo o registro existente como outros tipos de registro.
Em vez disso, para modificar o registro SOA, use az network dns record-set soa update
. Para obter ajuda, consulte az network dns record-set soa update --help
.
O exemplo a seguir mostra como definir a propriedade 'email' do registro SOA para a zona contoso.com:
az network dns record-set soa update --resource-group myresourcegroup --zone-name contoso.com --email admin.contoso.com
Para modificar registros NS no ápice da zona
O registro NS definido no ápice da zona é criado automaticamente com cada zona DNS. Ele contém os nomes dos servidores de nomes DNS do Azure atribuídos à zona.
Você pode adicionar mais servidores de nomes a esse conjunto de registros NS, para oferecer suporte a domínios de cohospedagem com mais de um provedor DNS. Você também pode modificar o TTL e os metadados desse conjunto de registros. No entanto, não é possível remover ou modificar os servidores de nomes DNS do Azure pré-preenchidos.
Esta restrição aplica-se apenas ao registo NS definido no ápice da zona. Outros conjuntos de registros NS em sua zona (como usados para delegar zonas filhas) podem ser modificados sem restrições.
O exemplo a seguir mostra como adicionar outro servidor de nomes ao conjunto de registros NS no ápice da zona:
az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.fabrikam.com
Para modificar o TTL de um conjunto de registros existente
Para modificar o TTL de um conjunto de registros existente, use azure network dns record-set <record-type> update
. Para obter ajuda, consulte azure network dns record-set <record-type> update --help
.
O exemplo a seguir mostra como modificar um conjunto de registros TTL, neste caso para 60 segundos:
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set ttl=60
Para modificar os metadados de um conjunto de registros existente
Os metadados do conjunto de registros podem ser usados para associar dados específicos do aplicativo a cada conjunto de registros, como pares chave-valor. Para modificar os metadados de um conjunto de registros existente, use az network dns record-set <record-type> update
. Para obter ajuda, consulte az network dns record-set <record-type> update --help
.
O exemplo a seguir mostra como modificar um conjunto de registros com duas entradas de metadados, "dept=finance" e "environment=production". Os metadados existentes são substituídos pelos valores fornecidos.
az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production
Excluir um conjunto de registros
Os conjuntos de registros podem ser excluídos usando o az network dns record-set <record-type> delete
comando. Para obter ajuda, consulte azure network dns record-set <record-type> delete --help
. A exclusão de um conjunto de registros também exclui todos os registros dentro do conjunto de registros.
Nota
Não é possível excluir os conjuntos de registros SOA e NS no ápice da zona (--name "@"
). Eles são criados automaticamente quando a zona foi criada e são excluídos automaticamente quando a zona é excluída.
O exemplo a seguir exclui o conjunto de registros chamado www do tipo A do contoso.com de zona no grupo de recursos MyResourceGroup:
az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www
Você será solicitado a confirmar a operação de exclusão. Para suprimir esse prompt, use a --yes
opção.
Próximos passos
Saiba mais sobre zonas e registos no DNS do Azure.
Saiba como proteger suas zonas e registros ao usar o DNS do Azure.