Gerenciar registros DNS e conjuntos de registros no DNS do Azure usando a CLI do Azure
Este artigo mostra como gerenciar os registros de DNS para sua zona de DNS usando a plataforma cruzada da CLI do Azure. 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 registros DNS no DNS do Azure, primeiro você precisa entender como o DNS do Azure organiza registros DNS em conjuntos de registros DNS.
Nomes de registros
No DNS do Azure, os registros são especificados usando 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 relativo do registro www
na zona contoso.com
fornece o nome totalmente qualificado do registro www.contoso.com
.
Um registro apex é um registro DNS na raiz (ou apex) de uma zona DNS. Por exemplo, na zona DNScontoso.com
, um registro apex também tem o nome totalmente qualificadocontoso.com
(ele às vezes é chamado de domíniodescoberto). Por convenção, o nome relativo \'\@\' é usado para representar os registros de vértices.
Tipos de registro
Cada registro DNS tem um nome e um tipo. Os registros são organizados em vários tipos de acordo com os dados que eles contêm. O tipo mais comum é um registro 'A', que mapeia um nome para um endereço IPv4. Outro tipo comum é um registro 'MX', que mapeia um nome para um servidor de email.
O DNS do Azure dá suporte a todos os tipos de registro DNS comuns: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV e TXT. Observe que registros SPF são representados usando registros TXT.
Há suporte para tipos de registro adicionais se a zona for assinada com Extensões de Segurança de DNS (DNSSEC), como Signatário de Delegação (DS) e Autenticação de Segurança de Camada de Transporte (TLSA).
Tipos de registro de recursos DNSSEC como DNSKEY, RRSIG e NSEC3 são adicionados automaticamente quando uma zona é assinada com DNSSEC. Esses tipos de registro de recursos DNSSEC não podem ser criados ou modificados após a assinatura da zona.
Conjuntos de registros
Às vezes, você precisa criar mais de um registro DNS com determinado nome e tipo. Por exemplo, vamos supor que o site 'www.contoso.com' seja hospedado em dois endereços IP diferentes. O site exige dois registros A diferentes, um para cada endereço IP. Veja a seguir 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 gerencia todos os registros DNS usando conjuntos de registros. Um conjunto de registros (também conhecido como conjunto de registros de recurso) é uma coleção de registros DNS em uma zona que tem o mesmo nome e o mesmo tipo. A maioria dos conjuntos de registros contém um único registro. 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, digamos que você já criou um registro 'www' A na zona 'contoso.com' apontando para o endereço IP '134.170.185.46' (o primeiro registro acima). Para criar o segundo registro, você deve adicioná-lo ao conjunto de registros existente em vez de criar um conjunto de registros adicional.
Os conjuntos de registros SOA e CNAME são exceções. Os padrões DNS não permitem vários registros com o mesmo nome para esses tipos e, assim, esses conjuntos de registros podem conter apenas um único registro.
Para obter mais informações sobre os registros DNS no DNS do Azure, confira Zonas e registros DNS.
Criar um registro DNS
Para criar um registro DNS, use o comando az network dns record-set <record-type> add-record
(em que <record-type>
é o tipo do registro, ou seja, A, srv, txt etc.). Para obter ajuda, confira 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 registro
O nome do conjunto de registros fornecido deve ser um nome relativo, significando que ele deve excluir o nome da zona. Se o conjunto de registros não existir ainda, este comando vai criá-lo para você. No entanto, esse comando adicionará o registro que você especificar se o conjunto de registros já existir.
Se um novo conjunto de registros for criado, um TTL padrão de 3600 será usado. Para obter instruções sobre como usar TTLs diferentes, consulte Criar um conjunto de registros DNS.
O exemplo a seguir cria um registro A chamado www na zona contoso.com no grupo de recursos MyResourceGroup. O endereço IP do registro 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 registros em vértices da zona (nesse caso, "contoso.com"), use o nome do Registro \"\@\", 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 registros DNS
Nos exemplos acima, o registro DNS ou foi adicionado a um conjunto de registros existente ou então 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 também dá suporte a conjuntos de registros 'vazios', que podem agir como um espaço reservado para reservar um nome DNS antes da criação de registros DNS. Os conjuntos de registros vazios são visíveis no painel de controle do DNS do Azure, mas não aparecem nos servidores de nome DNS do Azure.
Os conjuntos de registros são criados usando o comando az network dns record-set <record-type> create
. Para obter ajuda, consulte az network dns record-set <record-type> create --help
.
Criar o registro definido explicitamente permite que você especifique propriedades do conjunto de registros como o TTL (vida útil) e os metadados. Os metadados do conjunto de registros podem ser usados para associar os dados específicos do aplicativo com cada conjunto de registros, como pares de chave-valor.
O exemplo a seguir cria um conjunto de registros vazio do tipo ‘A’ com um TTL de 60 segundos, usando o parâmetro --ttl
(forma abreviada -l
):
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 parâmetro --metadata
:
az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"
Depois de criar um conjunto de registros vazio, registros podem ser adicionados usando azure network dns record-set <record-type> add-record
conforme descrito em Criar um registro DNS.
Criar outros tipos de registro
Depois de ter visto detalhadamente como criar os registros 'A', os exemplos a seguir mostram como criar registros de outros tipos, aos quais o DNS do Azure dá suporte.
Os parâmetros usados para especificar os dados de registro variam dependendo do tipo de registro. Por exemplo, para um registro do tipo "A", você 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, mostraremos como criar um único registro. O registro é adicionado ao conjunto de registros existente ou um conjunto de registros é criado implicitamente. Para obter mais informações sobre como criar conjuntos de registros e definir o parâmetro do conjunto de registros explicitamente, consulte Criar um conjunto de registros DNS.
Não existe exemplo para criar um conjunto de registros SOA, pois 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, o SOA pode ser modificado, conforme mostrado no exemplo mais adiante.
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"
Criar um registro CNAME
Observação
Os padrões do DNS não permitem registros CNAME no ápice de uma zona (--Name "@"
), nem permitem conjuntos de registros que contêm 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 registro MX
Neste exemplo, usamos o nome do conjunto de registros \"\@\" para criar o registro MX no vértice da zona (nesse 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 registro PTR
Neste caso, 'minha-zona-arpa.com' representa a zona ARPA que apresenta o intervalo de IP. Cada registro PTR definido nesta zona corresponde a um endereço IP nesse intervalo de IP. O nome do registro '10' é o último octeto do endereço IP dentro desse intervalo IP representado por esse registro.
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 o _serviço e o _protocolo no nome do conjunto de registros. Não é necessário incluir '@' no nome do conjunto de registros ao criar um conjunto de registros SRV definido 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 registro TXT
O exemplo a seguir mostra como criar um registro TXT. Para obter mais informações sobre o tamanho máximo suportado pelos 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 registros
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. Esse 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 de 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 os conjuntos de registros
Você pode listar todos os registros em uma zona DNS com o comando az network dns record-set list
. Para obter ajuda, consulte az network dns record-set list --help
.
Este exemplo retorna todos os conjuntos de registros na zona contoso.com e 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 correspondentes ao tipo de registro determinado (nesse caso, registros 'A'):
az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com
Adicionar um registro a um conjunto de registros existente
Você pode usar az network dns record-set <record-type> add-record
tanto para criar um registro em um novo conjunto de registros quanto 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.
Remover um registro de um conjunto de registros existente.
Para remover um registro DNS de um conjunto de registros existente, use az network dns record-set <record-type> remove-record
. Para obter ajuda, consulte az network dns record-set <record-type> remove-record -h
.
Esse comando exclui um registro DNS de um conjunto de registros. Se o último registro de um conjunto de registros é excluído, o conjunto de registros em si também é excluído. Para manter o conjunto de registros vazio em vez disso, use a opção --keep-empty-record-set
.
Ao usar o comando az network dns record-set <record-type> add-record
, você precisa especificar o registro sendo excluído e a zona a ser excluída. Esses parâmetros são descritos em Criar um registro DNS e Criar registros de outros tipos, acima.
O exemplo a seguir exclui um registro A com o valor "203.0.113.11" do conjunto de recursos chamado www na zona contoso.com do 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 TTL (vida útil), 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, primeiro você deve 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", alterando o 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 nem modificar os registros no conjunto de registros NS criado automaticamente no ápice da zona (--Name "@"
, incluindo as aspas). Para este conjunto de registros, as únicas alterações permitidas são modificar o TTL do conjunto de registros e os metadados.
Para modificar um registro CNAME
Ao contrário da maioria dos outros tipos de registro, um conjunto de registros CNAME pode conter apenas um único registro. Por isso 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 pode conter apenas um único registro. Por isso 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 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 apex da zona
O registro NS definido no apex da zona é criado automaticamente com cada zona DNS. Ele contém os nomes dos servidores de nome DNS do Azure atribuídos à zona.
Você pode adicionar mais servidores de nome a esse conjunto de registros NS para dar suporte à co-hospedagem de domínios com mais de um provedor DNS. Também é possível modificar o TTL e os metadados para esse conjunto de registros. No entanto, você não pode remover nem modificar os servidores de nome DNS do Azure previamente populados.
Essa restrição se aplica somente ao conjunto de registros NS no ápice da zona. Outros conjuntos de registros NS na sua zona (conforme utilizados para delegar zonas filho) podem ser modificados sem restrição.
O exemplo a seguir mostra como adicionar outro servidor de nome 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, nesse 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 os dados específicos do aplicativo com cada conjunto de registros, como pares de 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 comando az network dns record-set <record-type> delete
. Para obter ajuda, consulte azure network dns record-set <record-type> delete --help
. Excluir um conjunto de registros também exclui todos os registros no conjunto de registros.
Observação
Não é possível excluir os conjuntos de registro 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 de tipo A da zona contoso.com no grupo de recursos MyResourceGroup:
az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www
Será solicitado que você confirme a operação de exclusão. Para suprimir esse prompt, use a opção --yes
.
Próximas etapas
Saiba mais sobre as zonas e os registros no DNS do Azure.
Saiba como proteger seus registros e zonas ao usar o DNS do Azure.