Zonas e registros
Consulte cada campo de zona e de registro do Edge DNS, os nameservers e o SOA, as permissões e os erros da API, no Console, na API e na CLI.
Uma zona é o objeto do Edge DNS que contém um domínio, e um registro é um nome, um tipo e um conjunto de valores dentro de uma zona. Edge DNS responde às consultas do domínio da zona pelos três nameservers da Azion assim que o registrador do domínio o delega a eles. Cada tabela abaixo mostra, lado a lado, o rótulo de um campo no Azion Console, o campo na Azion API e a flag na Azion CLI. O formato do valor de cada tipo de registro está em Tipos de registro, e a assinatura de uma zona está em DNSSEC.
Campos da zona
Uma zona tem um nome para sua própria referência, o domínio que ela serve e um estado ativo. No Console, os campos ficam na página Create Zone e na aba Main Settings da zona.
| Console | Campo da API | Flag da CLI | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|---|
| Name | name | --name | string | Sim | Nenhum | De 1 a 50 caracteres. Identifica a zona nas listas; não é o domínio. Um nome mais longo é recusado com 10046. |
| Domain Name | domain | --domain | string | Sim | Nenhum | O domínio que a zona serve, como example.com, com até 200 caracteres. Ele precisa terminar em um domínio de topo válido (19035), e nenhuma outra zona na Azion pode hospedá-lo (19001 ou 10012). Fixo depois da criação. |
| Active | active | --active=true ou --active=false | booleano | Sim, na API | Ligado no Console, true na CLI | true responde aos nomes da zona. false mantém a zona e os registros dela, e os nameservers respondem aos nomes dela com REFUSED. |
O domínio de uma zona não pode mudar depois da criação: uma atualização que envia domain é recusada com 19036, e o Console bloqueia Domain Name na aba Main Settings. Para servir outro domínio, crie outra zona.
Uma zona inativa não é respondida: os nomes dela recebem a resposta REFUSED. A desativação, como qualquer alteração, pode levar alguns minutos para chegar a todos os nameservers, que servem respostas em cache até lá. Para o cache por trás desse atraso, consulte Como o Edge DNS funciona.
A API acrescenta três campos somente leitura a uma zona: id, o identificador da zona; nameservers, os três nameservers do Edge DNS; e product_version, que mostra 2.0. azion describe dns-zone --zone-id <zone-id> imprime os mesmos valores como ID:, Nameservers: e Product Version:.
No Console, a ação Delete fica na linha da zona na lista Zones, e a página de edição não tem controle de exclusão. O diálogo avisa que a zona é excluída com todas as configurações associadas e que a ação não pode ser revertida, e pede que você digite o nome da zona. Para o procedimento completo, consulte Crie, edite ou exclua uma zona.
Campos do registro
Um registro pertence a uma zona: a API o cria no caminho dessa zona, e o Console o lista na aba Records dessa zona, nos drawers Create Record e Edit Record. Um POST com {"name":"www","type":"A","rdata":["192.0.2.1"],"ttl":3600} armazena o registro abaixo, e a API preenche os campos que a requisição omite:
| Console | Campo da API | Flag da CLI | Tipo | Obrigatório | Padrão | Valores |
|---|---|---|---|---|---|---|
| Name | name | --name | string | Sim | Nenhum | Relativo à zona: www responde por www.example.com, e @ pelo próprio domínio da zona. Nunca digite o domínio no nome. Até 255 caracteres; cada rótulo separado por pontos tem até 63 letras, dígitos, -, _ ou *. Um rótulo * cria um wildcard. |
| Record Type | type | --type | string | Sim | A no Console | Um dos 11 tipos da tabela abaixo. Qualquer outro valor, como SOA, é recusado com 10039. |
| Value | rdata | --rdata | array de strings | Sim | Nenhum | Uma ou mais respostas: uma por linha no Console, um array na API, e uma flag repetida ou uma lista separada por vírgulas na CLI. Até 10 valores para A, AAAA, ANAME, DS, MX e NS; exatamente um para CNAME e PTR; mais de 10 valores são aceitos para TXT, CAA e SRV. Para cada tipo, consulte Tipos de registro. |
| TTL (seconds) | ttl | --ttl | inteiro | Não | 3600 | Por quanto tempo um resolver pode manter a resposta em cache. API: de 1 a 2.147.483.647. Console: o campo aceita de 0 a 604.800. Um registro ANAME aceita apenas 20, e o Console preenche 20 para ele. |
| Policy Type | policy | --policy | string | Não | Simple, simple | Simple (simple) responde com todos os valores do registro. Weighted (weighted) permite que vários registros compartilhem um nome e um tipo, cada um respondendo em proporção ao seu peso. |
| Weight | weight | --weight | inteiro | Não na API; sim com Weighted no Console | 255 na API; o Console preenche 100 | De 0 a 255, usado apenas com weighted. A parcela das respostas de um registro é o peso dele sobre a soma dos pesos. 0 mantém o registro e nunca o responde. O Console desativa o campo para ANAME. |
| Description | description | --description | string | Não | Vazio | Até 45 caracteres. Diferencia registros com política Weighted que têm o mesmo nome e tipo. Um valor mais longo é recusado com 10046. |
A API também retorna id, o identificador somente leitura do registro, que os comandos de registro da CLI recebem como --record-id.
O nome de um registro é relativo à zona, então Edge DNS acrescenta o domínio da zona ao que você digitar. Por exemplo, em uma zona cujo domínio é example.com, um registro chamado www.example.com responde por www.example.com.example.com, e uma consulta por www.example.com não recebe resposta dele. Por isso, o Console mostra o domínio como sufixo depois do campo Name.
O dropdown Record Type nomeia cada tipo com uma descrição curta. O formato do valor e as regras de cada tipo estão na entrada dele em Tipos de registro:
| Opção no Console | type na API |
|---|---|
| A - IPv4 Address | A |
| AAAA - IPv6 Address | AAAA |
| ANAME - Maps a name to another name | ANAME |
| CAA - Certification Authority Authorization | CAA |
| CNAME - Canonical name | CNAME |
| DS - Delegation Signer | DS |
| MX - Mail exchange | MX |
| NS - Name Servers | NS |
| PTR - Reverse DNS lookup | PTR |
| SRV - Location of server or service | SRV |
| TXT - Text | TXT |
Para delegar um subdomínio a outros nameservers, adicione um registro NS no nome do subdomínio.
Um nome e um tipo comportam um registro simples. Um segundo registro com o mesmo nome e o mesmo tipo de um registro simples é recusado com 19004; para responder com vários valores, coloque todos eles no valor de um único registro. Um CNAME também bloqueia todos os outros tipos no nome dele, e um registro de outro tipo nesse nome é recusado com 19018.
Uma zona ou um registro salvo não precisa de etapa de implantação, mas as respostas chegam aos nameservers por meio de um cache. Um nome que ninguém consultou antes de você criá-lo responde em segundos. Um nome consultado antes de existir recebe a resposta NXDOMAIN por até uma hora, o mínimo do SOA. Uma alteração em um registro existente pode levar alguns minutos para chegar a todos os nameservers. Para os detalhes, consulte Como o Edge DNS funciona.
Nameservers e SOA
Toda zona é servida pelos mesmos três nameservers do Edge DNS e tem um registro start of authority (SOA) que a Azion escreve. Para tornar Edge DNS autoritativo para um domínio, delegue o domínio aos três no registrador do domínio.
| Nameserver | Endereço IPv4 |
|---|---|
ns1.aziondns.net | 179.191.160.2 |
ns2.aziondns.com | 179.191.161.2 |
ns3.aziondns.org | 179.191.162.2 |
Os nameservers são somente leitura. A API os retorna no array nameservers da zona, e a aba Main Settings da zona os lista em Configure your Nameserver, cada um com um botão de cópia. Na lista Zones, Copy Nameserver Values copia os três como uma única string separada por ponto e vírgula: ns1.aziondns.net;ns2.aziondns.com;ns3.aziondns.org.
O registro SOA nomeia o nameserver primário e o contato de uma zona, e define os timers dela. Você não pode escrever um: a API recusa SOA como tipo de registro com 10039. Uma consulta pelo SOA de uma zona em ns1.aziondns.net retorna estes valores:
| Campo do SOA | Valor |
|---|---|
| Nameserver primário | ns1.aziondns.net |
| Contato | admin.azion.com |
| Refresh | 43.200 segundos |
| Retry | 7.200 segundos |
| Expire | 1.209.600 segundos |
| Minimum | 3.600 segundos |
| TTL do registro SOA | 3.600 segundos |
O minimum é por quanto tempo uma resposta negativa, como NXDOMAIN para um nome que não existe, pode ficar em cache, e os nameservers da Azion também a mantêm em cache, por até uma hora. Para o que isso significa quando você adiciona um registro, consulte Como o Edge DNS funciona.
Permissões
Duas permissões da conta controlam Edge DNS. View Edge DNS dá acesso para ver as zonas da conta, sem criá-las nem removê-las. Edit Edge DNS dá acesso para criar, editar e remover zonas, e exige View Edge DNS. Para saber como as permissões são concedidas, consulte Permissões de equipes.
API e CLI
A URL base da API é https://api.azion.com/v4. Toda requisição leva o cabeçalho Authorization: Token [TOKEN VALUE], com um personal token da conta. A Azion CLI executa as mesmas operações:
| Operação | API | CLI |
|---|---|---|
| Listar zonas | GET /v4/workspace/dns/zones | azion list dns-zone |
| Criar uma zona | POST /v4/workspace/dns/zones | azion create dns-zone --name <name> --domain <domain> --active=true |
| Ler uma zona | GET /v4/workspace/dns/zones/<zone-id> | azion describe dns-zone --zone-id <zone-id> |
| Atualizar uma zona | PATCH ou PUT /v4/workspace/dns/zones/<zone-id> | azion update dns-zone --zone-id <zone-id> |
| Excluir uma zona | DELETE /v4/workspace/dns/zones/<zone-id> | azion delete dns-zone --zone-id <zone-id> |
| Listar registros | GET /v4/workspace/dns/zones/<zone-id>/records | azion list dns-record --zone-id <zone-id> |
| Criar um registro | POST /v4/workspace/dns/zones/<zone-id>/records | azion create dns-record --zone-id <zone-id> |
| Ler um registro | GET /v4/workspace/dns/zones/<zone-id>/records/<record-id> | azion describe dns-record --zone-id <zone-id> --record-id <record-id> |
| Atualizar um registro | PATCH ou PUT /v4/workspace/dns/zones/<zone-id>/records/<record-id> | azion update dns-record --zone-id <zone-id> --record-id <record-id> |
| Excluir um registro | DELETE /v4/workspace/dns/zones/<zone-id>/records/<record-id> | azion delete dns-record --zone-id <zone-id> --record-id <record-id> |
| Ler o DNSSEC | GET /v4/workspace/dns/zones/<zone-id>/dnssec | azion describe dnssec --zone-id <zone-id> |
| Ativar ou desativar o DNSSEC | PATCH ou PUT /v4/workspace/dns/zones/<zone-id>/dnssec | azion update dnssec --zone-id <zone-id> --enabled=true |
Um PATCH altera apenas os campos que você envia. Um PUT substitui o objeto: uma zona recebe name e active, e um registro recebe name, type e rdata. Uma criação ou uma atualização retorna {"state":"executed","data":{…}}, uma leitura retorna {"data":{…}}, e uma exclusão retorna {"state":"executed"}.
Uma lista retorna count, total_pages, page, page_size e os objetos em results. Uma página de lista contém até 100 itens, definidos com o parâmetro de query page_size; a CLI recebe --page e --page-size, com 50 itens por página por padrão.
Escreva um booleano da CLI com sinal de igual: --active=true, --active=false, --enabled=true, --enabled=false.
Erros
A API recusa cada requisição abaixo com HTTP 400 e não altera nada, exceto 10001 e 10002, que retornam 401, e 10004, que retorna 404. Cada entrada do array errors carrega o código, o título, uma frase detail e um source que nomeia o campo, como /data/name.
| Código | Título | Causa | O que fazer |
|---|---|---|---|
10002 | Not Authenticated | A requisição não tem o cabeçalho Authorization: Authentication credentials were not provided. | Envie Authorization: Token [TOKEN VALUE]. |
10001 | Authentication Failed | O token não é válido: Invalid authentication credentials. | Envie um personal token válido. |
10004 | Not Found | O registro não existe, por exemplo depois de uma exclusão: Not found. | Verifique os IDs da zona e do registro. |
19035 | Invalid Domain TLD | O domain de uma zona não termina em um domínio de topo válido: Your domain must use a valid TLD. | Use um domínio com um domínio de topo válido. |
19001 | Domain Already In Use | Outra conta hospeda o domain da zona: Domain Belongs to Another Account. | Use um domínio que nenhuma outra conta hospede. Um domínio é hospedado por uma única conta da Azion. |
10012 | Unique Field | A conta já tem uma zona com esse domain: This field must be unique. | Use a zona existente ou exclua-a antes. |
19036 | Domain Cannot Be Modified | Uma atualização envia o domain de uma zona: The domain cannot be changed in update operations. Please create a new record instead. | Em vez disso, crie outra zona para o outro domínio. |
10046 | Max Length | O name de uma zona tem mais de 50 caracteres: Ensure this field has no more than 50 characters. | Reduza o nome para 50 caracteres. |
10046 | Max Length | O name de um registro tem mais de 255 caracteres: Ensure this field has no more than 255 characters., junto com 10076. | Reduza o nome para 255 caracteres. |
10046 | Max Length | A description de um registro tem mais de 45 caracteres: Ensure this field has no more than 45 characters. | Reduza a descrição para 45 caracteres. |
10076 | Invalid Pattern Match. | O name de um registro tem um rótulo com mais de 63 caracteres, ou o nome tem mais de 255 caracteres. | Mantenha cada rótulo com até 63 caracteres e o nome com até 255. |
10039 | Invalid Choice | type não é um dos 11 tipos de registro, como SOA: "SOA" is not a valid choice. | Envie um dos 11 tipos de registro. |
10059 | Required Field | O registro não tem rdata: This field is required. | Envie pelo menos um valor em rdata. |
10050 | Min Value | ttl é 0: Ensure this value is greater than or equal to 1. | Envie um TTL de 1 ou mais. |
10068 | Max Value | ttl é maior que 2147483647: Ensure this value is less than or equal to 2147483647. | Envie um TTL de 2.147.483.647 ou menos. |
10068 | Max Value | weight é maior que 255: Ensure this value is less than or equal to 255. | Envie um peso de 0 a 255. |
19004 | Record Already Exists | Um registro simples já tem o mesmo nome e o mesmo tipo, ou o nome já tem um registro SRV: There is already another record matching those data. | Adicione o valor ao registro existente. |
19018 | CNAME Record Already Exists For Domain | Um registro de outro tipo, como CAA, é adicionado em um nome que tem um CNAME: A CNAME record was created for this domain. If you want to create another QTYPE, please remove CNAME record first. | Remova o CNAME antes, ou use outro nome. |
19005 | Invalid CNAME | Um registro CNAME tem o nome @: CNAMEs should not be used at the zone apex or domain root. | Dê outro nome ao CNAME; em @, use um registro ANAME para um destino da Azion. |
19007 | Invalid RData Size | Um registro A, AAAA, ANAME, DS, MX ou NS tem mais de 10 valores: The 'rdata' cannot contain more than 10 items for the selected record type. | Mantenha o registro com até 10 valores. |
19006 | Invalid RData For CNAME Record | Um registro CNAME ou PTR tem mais de um valor: The 'rdata' cannot contain more than one item when 'type' is 'CNAME'. O mesmo título e o mesmo detail são retornados para um registro PTR. | Envie um único valor. |
19003 | Invalid IPV4 | O valor de um registro A não é um endereço IPv4, como 300.1.1.1: Inform a valid value for an IPv4 record. | Envie um endereço IPv4 válido. |
19002 | Invalid Domain Name | O valor de um registro CNAME é um endereço IP: Please enter the domain name following the format FQDN. IP addresses are not acceptable for this kind of record. | Informe um hostname, não um endereço. |
19021 | Invalid NS Record Entry | Um registro NS tem o nome @: NS records cannot be used at the zone apex or domain root. | Dê ao registro o nome do subdomínio que você delega. |
19022 | Invalid NS Record Answer | O valor de um registro NS não é um hostname: Invalid value for NS type. You need to use FQDN format. | Informe o hostname do nameserver. |
19011 | Invalid TTL For QTYPE | O ttl de um registro ANAME não é 20, inclusive o padrão 3600: The TTL value is not valid for the selected record type. | Mantenha o TTL em 20. |
19016 | Invalid ANAME Record Answer | O valor de um registro ANAME está fora dos domínios que ele aceita: Only 'azioncdn.net', 'azionedge.net' and 'azionedge.com' subdomains are valid answers for ANAME records. | Aponte o ANAME para um nome sob um desses três domínios. |
19017 | Invalid Record Type For Weighted Policy | Um registro TXT ou NS tem policy definido como weighted: The specified record type cannot be used with weighted policy. | Use a política simple no registro. |
19019 | Invalid SRV Record Entry | O nome de um registro SRV não segue _service._proto, como *._tcp: Invalid SRV record entry format. Please fix the content to the following standard: '_service._proto'. | Dê ao registro o nome _service._proto, como _sip._tcp. |
19024 | Invalid TXT Record Answer Size | Um valor TXT tem mais de 1.000 caracteres: You need to provide an answer with less than 1000 characters. Um valor de exatamente 1.000 caracteres é aceito. | Reduza o valor para 1.000 caracteres. |
10097 | Invalid Page Size | Uma requisição de lista define page_size acima de 100: Page size must be between 0 and 100. | Defina page_size como 100 ou menos. |