Gerir registos E conjuntos de registos DNS no DNS do Azure com a CLI do Azure

Este artigo mostra-lhe como gerir registos DNS para a sua zona DNS com a CLI do Azure entre plataformas. A CLI do Azure está disponível para Windows, Mac e Linux. Também pode gerir os seus registos DNS com Azure PowerShell ou o portal do Azure.

Os exemplos neste artigo partem do princípio de que já instalou a CLI do Azure, iniciou sessão 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 completamente qualificado (FQDN) inclui o nome da zona, enquanto um nome relativo não. Por exemplo, o nome www do registo relativo na zona contoso.com dá o nome www.contoso.comde registo completamente qualificado .

Um registo apex é um registo DNS na raiz (ou apex) de uma zona DNS. Por exemplo, na zona contoso.comDNS , um registo apex também tem o nome contoso.com completamente qualificado (por 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.

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 registos:

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, os exemplos como o apresentado acima, no qual um conjunto um registos contém mais de um registo, não são invulgares.

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> está o tipo de registo, ou seja, srv, txt, etc.) Para obter ajuda, consulte az network dns record-set --help.

Ao criar um registo, tem de especificar as seguintes informações:

  • Nome do grupo de recursos
  • Nome da zona
  • Nome do conjunto de registos
  • Tipo de registo

O nome do conjunto de registos indicado tem de ser um nome relativo , o que significa que tem de excluir o nome da zona. Se o conjunto de registos ainda não existir, este comando irá criá-lo para si. No entanto, este comando irá adicionar o registo que especificar se o conjunto de registos já existe.

Se for criado um novo conjunto de registos, é utilizado um TTL (time-to-live) predefinido de 3600. Para obter instruções sobre como utilizar TTLs diferentes, veja Criar um conjunto de registos 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 é 1.2.3.4.

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

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 1.2.3.4

Criar um conjunto de registos DNS

Nos exemplos acima, o registo DNS foi adicionado a um conjunto de registos existente ou o conjunto de registos foi criado implicitamente. Também pode criar o conjunto de registos explicitamente antes de adicionar registos ao mesmo. O DNS do Azure suporta conjuntos de registos "vazios", que podem funcionar como um marcador de posição para reservar um nome DNS antes de criar registos DNS. Os conjuntos de registos vazios são visíveis no plano de controlo DNS do Azure, mas não aparecem nos servidores de nomes DNS do Azure.

Os conjuntos de registos são criados com o az network dns record-set <record-type> create comando . Para obter ajuda, consulte az network dns record-set <record-type> create --help.

Criar o conjunto de registos explicitamente permite-lhe especificar propriedades do conjunto de registos, como o Time-To-Live (TTL) e os metadados. Os metadados do conjunto de registos podem ser utilizados para associar dados específicos da aplicação a cada conjunto de registos, como pares chave-valor.

O exemplo seguinte cria um conjunto de registos vazio do tipo "A" com um TTL de 60 segundos, utilizando o --ttl parâmetro (formulário -lcurto ):

az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60

O exemplo seguinte cria um conjunto de registos com duas entradas de metadados, "dept=finance" e "environment=production", utilizando 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"

Depois de ter criado um conjunto de registos vazio, os registos podem ser adicionados conforme azure network dns record-set <record-type> add-record descrito em Criar um registo DNS.

Criar registos de outros tipos

Depois de ter visto detalhadamente como criar registos "A", os exemplos seguintes mostram como criar um registo de outros tipos de registo 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 registo podem ser listados com az network dns record-set <record-type> add-record --help.

Em cada caso, mostramos como criar um único registo. O registo é adicionado ao conjunto de registos existente ou a um conjunto de registos criado implicitamente. Para obter mais informações sobre como criar conjuntos de registos e definir explicitamente o parâmetro do conjunto de registos, veja Criar um conjunto de registos DNS.

Não existe nenhum exemplo para criar um conjunto de registos SOA, uma vez que os SOAs são criados e eliminados com cada zona DNS. O registo SOA não pode ser criado ou eliminado separadamente. No entanto, a SOA pode ser modificada, conforme mostrado num exemplo posterior.

Criar um registo AAAA

az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address 2607:f8b0:4009:1803::1005

Criar um registo 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 registo CNAME

Nota

As normas DNS não permitem registos CNAME no ápice de uma zona (--Name "@"), nem permitem conjuntos de registos que contenham mais do que um registo.

Para obter mais informações, veja Registos 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 registo NS

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.contoso.com

Criar um registo PTR

Neste caso, "my-arpa-zone.com" representa a zona ARPA que representa o intervalo de IP. Cada conjunto de registos PTR nesta zona corresponde a um endereço IP neste intervalo de IPs. O nome do registo '10' é o último octeto do endereço IP neste 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 registo SRV

Ao criar um conjunto de registos SRV, especifique o _service e _protocol no nome do conjunto de registos. Não é necessário incluir "@" no nome do conjunto de registos ao criar um conjunto de registos SRV no apex de 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 seguinte mostra como criar um registo TXT. Para obter mais informações sobre o comprimento máximo da cadeia suportado nos registos TXT, veja Registos 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 obter um conjunto de registos existente, utilize az network dns record-set <record-type> show. Para obter ajuda, consulte az network dns record-set <record-type> show --help.

Ao criar um registo ou conjunto de registos, o nome do conjunto de registos indicado tem de ser um nome relativo . Este nome não inclui o nome da zona. Também tem de especificar o tipo de registo, a zona que contém o conjunto de registos e o grupo de recursos que contém a zona.

O exemplo seguinte obtém o registo www do tipo A a partir 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 registos

Pode listar todos os registos numa zona DNS com o az network dns record-set list comando . Para obter ajuda, consulte az network dns record-set list --help.

Este exemplo devolve todos os conjuntos de registos na zona contoso.com, no grupo de recursos MyResourceGroup:

az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com

Este exemplo devolve todos os conjuntos de registos que correspondem ao tipo de registo especificado (neste caso, registos "A"):

az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com 

Adicionar um registo a um conjunto de registos existente

Pode utilizar az network dns record-set <record-type> add-record ambos para criar um registo num novo conjunto de registos ou para adicionar um registo a um conjunto de registos existente.

Para obter mais informações, veja Criar um registo DNS e Criar registos de outros tipos acima.

Remova um registo de um conjunto de registos 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 elimina um registo DNS de um conjunto de registos. Se o último registo num conjunto de registos for eliminado, o próprio conjunto de registos também será eliminado. Em vez disso, para manter o registo vazio definido, utilize a opção --keep-empty-record-set .

Quando utiliza o az network dns record-set <record-type> add-record comando, tem de especificar o registo a ser eliminado e a zona a eliminar. Estes parâmetros estão descritos em Criar um registo DNS e Criar registos de outros tipos acima.

O exemplo seguinte elimina o registo A com o valor "1.2.3.4" do conjunto de registos denominado 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 1.2.3.4

Modificar um conjunto de registos existente

Cada conjunto de registos contém um registo TTL (time-to-live),metadados e registos DNS. As secções seguintes explicam como modificar cada uma destas propriedades.

Para modificar um registo A, AAAA, CAA, MX, NS, PTR, SRV ou TXT

Para modificar um registo existente do tipo A, AAAA, CAA, MX, NS, PTR, SRV ou TXT, deve primeiro adicionar um novo registo e, em seguida, eliminar o registo existente. Para obter instruções detalhadas sobre como eliminar e adicionar registos, veja as secções anteriores deste artigo.

O exemplo seguinte mostra como modificar um registo "A", do endereço IP 1.2.3.4 para o endereço IP 5.6.7.8:

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 5.6.7.8
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

Não pode adicionar, remover ou modificar os registos no conjunto de registos NS criado automaticamente no apex de zona (--Name "@"incluindo aspas). Para este conjunto de registos, as únicas alterações permitidas são modificar o conjunto de registos TTL e metadados.

Para modificar um registo CNAME

Ao contrário da maioria dos outros tipos de registo, um conjunto de registos CNAME só pode conter um único registo. É por isso que não pode substituir o valor atual ao adicionar um novo registo e remover o registo existente, como outros tipos de registo.

Em vez disso, para modificar um registo CNAME, utilize 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 registos CNAME www na zona contoso.com, no grupo de recursos MyResourceGroup, para apontar para "www.fabrikam.net" em vez do 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 registo SOA

Ao contrário da maioria dos outros tipos de registo, um conjunto de registos SOA só pode conter um único registo. É por isso que não pode substituir o valor atual ao adicionar um novo registo e remover o registo existente, como outros tipos de registo.

Em vez disso, para modificar o registo SOA, utilize az network dns record-set soa update. Para obter ajuda, consulte az network dns record-set soa update --help.

O exemplo seguinte mostra como definir a propriedade "e-mail" do registo 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 os registos NS no apex de zona

O conjunto de registos NS no apex de zona é criado automaticamente com cada zona DNS. Contém os nomes dos servidores de nomes DNS do Azure atribuídos à zona.

Pode adicionar mais servidores de nomes a este conjunto de registos NS para suportar domínios de cohosting com mais do que um fornecedor de DNS. Também pode modificar o TTL e os metadados deste conjunto de registos. No entanto, não pode remover ou modificar os servidores de nomes DNS do Azure pré-preenchidos.

Esta restrição aplica-se apenas ao conjunto de registos NS no apex de zona. Outros conjuntos de registos NS na sua zona (conforme utilizado para delegar zonas subordinadas) podem ser modificados sem restrições.

O exemplo seguinte mostra como adicionar outro servidor de nomes ao conjunto de registos NS no apex de zona:

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.myotherdnsprovider.com 

Para modificar o TTL de um conjunto de registos existente

Para modificar o TTL de um conjunto de registos existente, utilize azure network dns record-set <record-type> update. Para obter ajuda, consulte azure network dns record-set <record-type> update --help.

O exemplo seguinte mostra como modificar um TTL de conjunto de registos, 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 registos existente

Os metadados do conjunto de registos podem ser utilizados para associar dados específicos da aplicação a cada conjunto de registos, como pares chave-valor. Para modificar os metadados de um conjunto de registos existente, utilize az network dns record-set <record-type> update. Para obter ajuda, consulte az network dns record-set <record-type> update --help.

O exemplo seguinte mostra como modificar um conjunto de registos com duas entradas de metadados, "dept=finance" e "environment=production". Todos os metadados existentes são substituídos pelos valores indicados.

az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production

Eliminar um conjunto de registos

Os conjuntos de registos podem ser eliminados com o az network dns record-set <record-type> delete comando . Para obter ajuda, consulte azure network dns record-set <record-type> delete --help. Eliminar um conjunto de registos também elimina todos os registos no conjunto de registos.

Nota

Não pode eliminar os conjuntos de registos SOA e NS no apex da zona (--name "@"). Estas são criadas automaticamente quando a zona foi criada e são eliminadas automaticamente quando a zona é eliminada.

O exemplo seguinte elimina o conjunto de registos denominado www do 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

É-lhe pedido que confirme a operação de eliminação. Para suprimir este pedido, utilize o --yes comutador.

Passos seguintes

Saiba mais sobre zonas e registos no DNS do Azure.
Saiba como proteger as suas zonas e registos ao utilizar o DNS do Azure.