# Solucionar problemas de Edge DNS

Esta página lista os sintomas de uma zona no [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/), cada um com a causa e a correção. As respostas dos nameservers da Azion vêm primeiro, depois as respostas de resolvers públicos, as alterações, os registros com política *Weighted* e o DNSSEC. Em seguida vêm os erros da API e da CLI, o monitoramento de consultas e os incidentes da plataforma. A maioria das verificações consulta `ns1.aziondns.net` diretamente, o que funciona antes de o domínio ser delegado para a Azion.

---

## A zona não responde pelos nameservers da Azion

Uma consulta a `ns1.aziondns.net` por um nome da sua zona não retorna nenhum valor, ou o cabeçalho da resposta mostra `status: REFUSED`.

Os nameservers respondem apenas por uma zona ativa, apenas pelo domínio que a zona contém e apenas por nomes de registro relativos a esse domínio.

Para consultar o nameserver diretamente, sem o cache do seu resolver, use `dig`, `host` ou `nslookup`. Substitua `example.com` pelo seu domínio:

```bash
dig +short @ns1.aziondns.net www.example.com A
```

O `dig` imprime o valor do registro, `192.0.2.1`. O `host` converte nomes em endereços e endereços em nomes:

```bash
host www.example.com ns1.aziondns.net
```

```text
Using domain server:
Name: ns1.aziondns.net
Address: 179.191.160.2#53
Aliases:

www.example.com has address 192.0.2.1
www.example.com has IPv6 address 2001:db8::2
```

O `nslookup` lê os registros de um domínio, de um host ou de um endereço IP:

```bash
nslookup www.example.com ns1.aziondns.net
```

```text
Server:		ns1.aziondns.net
Address:	179.191.160.2#53

Name:	www.example.com
Address: 192.0.2.1
```

Quando a zona não responde, verifique estas causas:

- **Ative a zona**: os nameservers respondem a todos os nomes de uma zona inativa com `REFUSED`. Na aba **Main Settings** da zona, ative **Active** em **Status** e selecione **Save**. Na CLI, execute `azion update dns-zone --zone-id <zone-id> --active=true`.
- **Confira o domínio da zona**: a zona responde apenas pelo domínio digitado na criação, exibido bloqueado em **Domain Name**. O domínio não pode ser alterado, então crie outra zona para o domínio correto. Para os passos, consulte [Crie, edite ou exclua uma zona](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/edge-dns-definir-main-settings/).
- **Nomeie os registros em relação à zona**: digite `www` para `www.example.com` e `@` para `example.com`. Um registro com o nome `www.example.com` é servido como `www.example.com.example.com`.

Ativar uma zona, como qualquer alteração, pode levar alguns minutos para chegar a todos os nameservers. Quando a zona responde, a saída completa do `dig` mostra `status: NOERROR` e a flag `aa` de uma resposta autoritativa.

---

## Resolvers públicos retornam NXDOMAIN enquanto os nameservers da Azion respondem

O `ns1.aziondns.net` responde por um nome, mas um resolver público como `8.8.8.8` retorna `NXDOMAIN` ou os registros do seu provedor anterior.

Os resolvers públicos só chegam aos nameservers da Azion pela delegação que o registrador do domínio publica. Até lá, eles consultam os nameservers que o registrador lista, ou não encontram nenhuma delegação.

Para ver o que um resolver público responde, consulte-o no lugar do nameserver da Azion:

```bash
dig @8.8.8.8 www.example.com A
```

Para um domínio que não está delegado para a Azion, o cabeçalho mostra `NXDOMAIN`, sem nenhuma resposta:

```text
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 19090
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
…
```

O SOA na seção AUTHORITY pertence ao registry pai, não a `ns1.aziondns.net`.

- **Delegue o domínio aos três nameservers**: no registrador do domínio, defina `ns1.aziondns.net`, `ns2.aziondns.com` e `ns3.aziondns.org`. Para os passos, consulte [Migre nameservers para a Azion](/pt-br/documentacao/guias/plataforma/migracao/migrar-ns-para-a-azion/).
- **Adicione os registros antes de delegar**: um nome sem registro recebe a resposta `NXDOMAIN`. Para um nome consultado antes de o registro existir, consulte [Um registro novo retorna NXDOMAIN](#um-registro-novo-retorna-nxdomain).
- **Verifique o DNSSEC deixado pelo provedor anterior**: um registro DS das chaves de outro provedor falha na validação, como explica [A validação falha depois de ativar o DNSSEC](#a-validacao-falha-depois-de-ativar-o-dnssec).
- **Siga a delegação**: para ver quais nameservers o domínio usa, rastreie a delegação a partir da zona raiz com [Consulte uma zona com o dig](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/executar-o-comando-dig/).

Quando o registrador publica a delegação, os resolvers públicos consultam os nameservers da Azion e retornam os mesmos valores que `ns1.aziondns.net`.

---

## Um registro novo retorna NXDOMAIN

Você adicionou um registro, e uma consulta pelo nome dele retorna `NXDOMAIN` no nameserver da Azion ou em um resolver.

Ou o nome foi consultado antes de o registro existir, ou a consulta não corresponde ao nome ou ao tipo do registro. Os nameservers da Azion mantêm uma resposta negativa em cache por até uma hora, o mínimo do SOA. Quando um wildcard na zona faz o nome existir, a consulta antecipada recebe `NOERROR` com uma resposta vazia, e essa resposta vazia fica em cache da mesma forma.

- **Aguarde a resposta negativa expirar**: os nameservers respondem pelo registro no máximo uma hora depois da consulta antecipada. Um resolver que guardou o `NXDOMAIN` em cache o mantém por até a mesma hora. Para os valores do SOA, consulte [Nameservers e SOA](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros/#nameservers-e-soa).
- **Consulte um nome que ninguém consultou ainda**: um nome que ninguém consultou antes de existir responde em segundos. Para conferir na hora, salve um registro com um nome novo e consulte esse nome.
- **Aguarde os primeiros registros de uma zona**: os primeiros registros de uma zona recém-criada podem levar alguns minutos para ser respondidos.
- **Confira o nome e o tipo**: confirme que o nome e o tipo do registro correspondem aos da consulta. A aba **Records** da zona e `azion list dns-record --zone-id <zone-id>` listam os dois.
- **Remova o domínio duplicado**: um registro com o nome `_acme-challenge.example.com` é servido como `_acme-challenge.example.com.example.com`, e uma autoridade certificadora nunca o encontra. Nomeie o registro como `_acme-challenge`, como mostra [Adicione o registro TXT do Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/registro-lets-encrypt/). Um [registro CAA](/pt-br/documentacao/plataforma/edge-dns/tipos-de-registro/#caa) também pode limitar quais autoridades emitem certificados.

Para evitar o `NXDOMAIN` em cache, consulte um nome só depois de criar o registro dele, como recomenda [Boas práticas para Edge DNS](/pt-br/documentacao/plataforma/edge-dns/boas-praticas/). Quando o registro é respondido, `dig +short` imprime o valor dele.

---

## Um registro alterado ainda retorna o valor antigo

Depois que você altera um registro, as consultas retornam o valor antigo, ou algumas redes recebem o valor alterado enquanto outras recebem o antigo.

Os nameservers da Azion respondem a partir de um cache, então uma alteração em um registro existente pode levar alguns minutos para chegar a todos os nameservers. Depois disso, cada resolver mantém a própria cópia até o TTL do registro expirar.

- **Confirme o valor salvo**: confira o registro na aba **Records** da zona, ou com `azion describe dns-record --zone-id <zone-id> --record-id <record-id>`.
- **Compare o nameserver da Azion com o seu resolver**: execute a mesma consulta `dig` com `@ns1.aziondns.net` e depois com o seu resolver ou com `@8.8.8.8`. Quando só o resolver retorna o valor antigo, a cópia dele ainda não expirou.
- **Leia o TTL restante**: na saída completa do `dig`, o TTL na seção ANSWER conta os segundos que faltam para essa cópia expirar.
- **Reduza o TTL antes de uma alteração planejada**: assim, os resolvers mantêm o valor antigo por menos tempo. Para a prática, consulte [Boas práticas para Edge DNS](/pt-br/documentacao/plataforma/edge-dns/boas-praticas/).

Para ver como os dois caches se somam, consulte [Cache e propagação](/pt-br/documentacao/plataforma/edge-dns/como-funciona/#cache-e-propagacao). Quando todas as cópias expiram, os nameservers da Azion e os resolvers públicos retornam o mesmo valor.

---

## Um registro com política Weighted sempre retorna o mesmo endereço

Consultas repetidas por um nome com registros *Weighted* retornam sempre um mesmo endereço, e não uma mistura de endereços.

Cada resposta carrega um valor, escolhido pelo peso, e fica em cache pelo TTL do registro, como qualquer resposta. Até o TTL expirar, o nameserver e o resolver retornam esse mesmo endereço.

- **Meça ao longo do tempo, não consulta a consulta**: a parcela de cada registro é o peso dele dividido pela soma dos pesos. As parcelas se equilibram ao longo de muitos resolvers e de muitos períodos de TTL.
- **Reduza o TTL para escolher de novo mais cedo**: um TTL curto, como 20 segundos, faz os resolvers consultarem de novo mais cedo. Cada consulta conta para o [uso incluído](/pt-br/documentacao/plataforma/edge-dns/limites/#uso-incluido-por-plano) do seu plano.
- **Confira cada peso**: um registro com peso `0` nunca é respondido. O Console preenche **Weight** com `100`, e a API usa `255` como padrão de `weight`.

Para ver como uma resposta da política *Weighted* é escolhida, consulte [Políticas de registro](/pt-br/documentacao/plataforma/edge-dns/como-funciona/#politicas-de-registro). Para a configuração, consulte [Distribua o tráfego com pesos](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/balanceamento-de-carga-dns/). Ao longo de muitos períodos de TTL, cada endereço responde na proporção do peso dele.

---

## A validação falha depois de ativar o DNSSEC

O DNSSEC está ativado na zona, mas os resolvers validadores não conseguem responder pelo domínio, ou o [DNSSEC Analyzer](https://dnssec-analyzer.verisignlabs.com/) informa erros.

Os resolvers validadores só confiam nas assinaturas da zona por meio do registro DS que o registrador do domínio publica. Um registro DS ausente, divergente ou desatualizado quebra essa cadeia de confiança.

- **Adicione o registro DS no registrador**: o status `ready` significa que a Azion assinou a zona, não que o registrador tem o registro DS. Adicione os quatro valores de [Registro DS](/pt-br/documentacao/plataforma/edge-dns/dnssec/#registro-ds).
- **Compare os quatro valores**: o registro no registrador precisa corresponder a `delegation_signer`, ou aos campos bloqueados em **Enable DNSSEC**. Um registro DS deixado por um provedor de DNS anterior descreve as chaves de outro provedor. Substitua esse registro.
- **Confirme que o TLD oferece suporte a DNSSEC**: o registry do domínio de nível superior (TLD) do domínio precisa oferecer suporte a DNSSEC para publicar o registro DS.
- **Aguarde a publicação do registro DS**: o registrador e o registry do TLD podem levar até 48 horas.
- **Aguarde alguns minutos pela assinatura**: respostas guardadas em cache antes de o DNSSEC ser ativado podem ser servidas sem assinatura por alguns minutos.
- **Ative o DNSSEC de novo se ele foi desativado primeiro**: enquanto o registrador publica o registro DS, ou enquanto os resolvers o mantêm em cache, eles esperam assinaturas. Ativar o DNSSEC de novo retorna os mesmos quatro valores do DS. Depois, siga a ordem em [Desative o DNSSEC](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/ativar-dnssec/#desative-o-dnssec).

Um registro `RRSIG` em uma resposta de `dig +dnssec` mostra que a zona está assinada, não que os resolvers a validam. Quando o registrador publica um registro DS correspondente, os resolvers validadores verificam as respostas da zona.

---

## A API recusa um registro com 400

Um `POST` para `/v4/workspace/dns/zones/<zone-id>/records` retorna `400` com um array `errors`, e a API não cria nada. O Console envia um registro para a API como ele foi digitado, então um valor que o formulário aceita pode ser recusado com os mesmos códigos. O `code` de cada erro indica a regra que o registro viola:

- `400` `19005` `Invalid CNAME`: o registro CNAME tem o nome `@`. No apex, use um registro [ANAME](/pt-br/documentacao/plataforma/edge-dns/tipos-de-registro/#aname) para um destino na Azion.
- `400` `19018` `CNAME Record Already Exists For Domain`: o nome tem um CNAME, que bloqueia todos os outros tipos. Remova o CNAME ou use outro nome.
- `400` `19004` `Record Already Exists`: já existe um registro simples com o mesmo nome e o mesmo tipo, ou o nome tem um registro SRV. Adicione o valor ao registro existente.
- `400` `19007` `Invalid RData Size`: um registro A, AAAA, ANAME, DS, MX ou NS tem mais de 10 valores. Mantenha 10 valores ou menos.
- `400` `19011` `Invalid TTL For QTYPE`: o `ttl` de um registro ANAME não é `20`, incluindo o padrão `3600`. Envie `"ttl": 20`.
- `400` `19016` `Invalid ANAME Record Answer`: o destino do ANAME não está sob `azioncdn.net`, `azionedge.net` ou `azionedge.com`. Aponte o registro para um deles.
- `400` `19024` `Invalid TXT Record Answer Size`: um valor TXT tem mais de 1.000 caracteres. Encurte o valor.
- `400` `10046` `Max Length`: a `description` de um registro tem mais de 45 caracteres, ou o `name` dele tem mais de 255. Encurte o campo.

Todos os códigos, com a causa e a correção de cada um, estão em [Zonas e registros](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros/#erros). Com o campo corrigido, a API responde `201` e retorna o registro.

---

## A CLI informa uma atualização, mas a zona ou o DNSSEC não muda

O `azion update dns-zone` ou o `azion update dnssec` imprime a linha de sucesso, mas o `azion describe` ainda mostra o valor anterior de `Active:` ou de `Enabled:`.

A flag booleana foi escrita com um espaço, como `--active false`. Nessa forma, o comando não aplica o valor e ainda assim imprime a linha de sucesso.

- **Escreva cada booleano com um sinal de igual**: use `--active=true`, `--active=false`, `--enabled=true` ou `--enabled=false`.
- **Leia o valor de volta**: depois de uma atualização, execute `azion describe dns-zone --zone-id <zone-id>` ou `azion describe dnssec --zone-id <zone-id>`.

Por exemplo, para desativar uma zona:

```bash
azion update dns-zone --zone-id <zone-id> --active=false
```

O comando imprime `DNS zone <zone-id> was updated`, e o `azion describe dns-zone` então imprime `Active: false`.

---

## Você precisa ver quantas consultas uma zona recebe

Você quer saber se as consultas chegam à sua zona, quantas chegam ou o que cada uma pediu.

O Edge DNS informa as próprias consultas no Real-Time Metrics, no Real-Time Events e na API GraphQL.

- **Leia a contagem de consultas**: no Real-Time Metrics, a aba **Edge DNS** contém o dashboard **Standard Queries** com o gráfico **Total Queries**, que você pode filtrar por zona. Uma queda repentina pode indicar um erro de configuração ou um problema de propagação, e um pico inesperado pode indicar tráfego anormal. Para o gráfico e os filtros dele, consulte [Dashboard do Edge DNS](/pt-br/documentacao/plataforma/real-time-metrics/dashboards-secure/#edge-dns).
- **Leia cada consulta**: o Real-Time Events mantém um registro por consulta que o Edge DNS responde. Para os campos, consulte [Fonte de dados Edge DNS](/pt-br/documentacao/plataforma/real-time-events/fontes-de-dados/#edge-dns).
- **Consulte os dados pela API**: a [API GraphQL](/pt-br/documentacao/devtools/graphql/visao-geral/) retorna dados agregados e brutos, apenas com os campos que você solicita. Para os datasets do Edge DNS, consulte [Conjuntos de dados](/pt-br/documentacao/devtools/graphql/recursos/#datasets).

Depois que o domínio é delegado, a contagem de consultas da sua zona mostra as consultas que chegam aos nameservers da Azion.

---

## As zonas param de responder sem nenhuma alteração

Nomes em uma ou mais zonas param de responder, ou respondem devagar, e nenhuma alteração na sua conta explica isso.

Um incidente na plataforma pode afetar o Edge DNS em uma ou mais regiões.

- **Consulte a Azion Status Page**: a [status.azion.com](https://status.azion.com/) mostra o status de cada componente da plataforma, incluindo o Edge DNS. Ela indica operacional, performance degradada, interrupção parcial ou interrupção grave. Inscreva-se nela para receber um e-mail quando a Azion abrir, atualizar ou resolver um incidente.
- **Suspenda as alterações de zona durante um incidente**: leia as regiões e a previsão de resolução do incidente, e evite alterar suas zonas até ele terminar. A propagação pode se comportar de forma imprevisível durante um incidente. Registros com TTL baixo fazem os resolvers consultarem os nameservers da Azion com mais frequência, o que pode ampliar uma interrupção.
- **Reúna as evidências**: guarde a saída do `dig` ou do `host` que mostra a resposta inesperada e o horário em UTC. Liste os nomes e os tipos de registro afetados. Acrescente o nameserver que você consultou, como `ns1.aziondns.net`, e o lugar onde você observou o problema. Para incluir o caminho de rede, consulte [Rastreie a rota até um host](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/executar-o-comando-traceroute/).
- **Entre em contato com o Suporte da Azion**: quando a status page não mostra nenhum incidente, envie as evidências pelo [Suporte](/pt-br/documentacao/suporte/).

Quando a status page mostrar o Edge DNS como operacional, consulte `ns1.aziondns.net` de novo para confirmar a resposta.

---

## Recursos relacionados

- [Como o Edge DNS funciona](/pt-br/documentacao/plataforma/edge-dns/como-funciona.md#o-caminho-da-resolucao): Como uma consulta chega aos nameservers da Azion pela delegação, e quando eles respondem REFUSED ou NXDOMAIN.
- [Erros de zonas e registros](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros.md#erros): Todos os códigos de erro da API para zonas e registros, com a causa e a correção de cada um.
- [Consulte uma zona com o dig](/pt-br/documentacao/guias/seguranca-de-aplicacoes/dns/executar-o-comando-dig.md): Como instalar o dig, ler a saída dele e seguir uma delegação a partir da zona raiz.
- [Migre nameservers para a Azion](/pt-br/documentacao/guias/plataforma/migracao/migrar-ns-para-a-azion.md): A alteração no registrador que delega um domínio ao Edge DNS, passo a passo.
