Se as linhas de resolução inteligente de DNS configuradas no Alibaba Cloud DNS não rotearem o tráfego conforme o esperado, utilize os métodos descritos neste tópico para solucionar o problema.
Este método se aplica apenas a domínios que utilizam o Alibaba Cloud DNS. Caso seu domínio esteja hospedado em servidores DNS de outro provedor, entre em contato com ele para obter assistência.
1. Verifique o IP de saída do DNS local
O Alibaba Cloud DNS realiza a resolução inteligente com base no IP de saída do DNS local do cliente, e não no endereço IP do próprio cliente.
Entre em contato com o administrador da rede para obter os IPs de saída detalhados do DNS.
Execute o comando a seguir várias vezes para obter o endereço IP:
dig +short TXT whoami.ds.akahelp.net(para Linux) ounslookup -q=txt whoami.ds.akahelp.net(para Windows).
O comando de diagnóstico retorna os seguintes parâmetros:
$ dig +short TXT whoami.ds.akahelp.net ok at 11:20:47# Command for Linux.
"ns" "123.126.xx.xx" # ns is the egress IP of the local DNS, which can be an IPv4 or IPv6 address.
"ecs" "120.52.xx.xx/32/24" # ecs (EDNS-client-subnet) is the client subnet included in the query request.
"ip" "123.126.xx.xx" # ip is the client's representative IP address selected by the authoritative name server from ecs. The local DNS does not carry the actual client IP to protect user privacy.
Saída do comando no Windows
C:\Users\xxx>nslookup -q=txt whoami.ds.akahelp.net
Server: Unknown
Address: 172.20.10.1
Non-authoritative answer:
whoami.ds.akahelp.net text =
"ns"
"197.234.xxx.29"
whoami.ds.akahelp.net text =
"ip"
"197.239.xxx.163"
whoami.ds.akahelp.net text =
"ecs"
"197.239.xxx.xxx/24/24"
Saída do comando no Linux
[root@iZbp1igkb78js3gsxxx ~]# dig +short TXT whoami.ds.akahelp.net
"ns" "2404:6800:4005:c08::xxx"
"ecs" "112.124.xxx.0/24/24"
"ip" "112.124.xxx.5"
Após obter o IP de saída do DNS local, execute dig <domain_name> @vip4.alidns.com +subnet=<local_DNS_egress_IP> e verifique se o resultado está correto.
Substitua o parâmetro vip4.alidns.com pelo nome do seu servidor DNS real. Para mais informações, consulte Visualizar o status dos servidores DNS e tratar exceções.
2. Registros DNS em linha personalizada não entram em vigor
Uma linha personalizada define um intervalo de endereços IP para a origem da solicitação. Especifique o intervalo de IPs de saída do DNS local dos clientes, e não os endereços IP dos próprios clientes. Caso contrário, a linha personalizada não corresponderá à solicitação e o Alibaba Cloud DNS retornará o registro DNS da linha padrão.
Um DNS local frequentemente possui múltiplos IPs de saída. Para garantir maior precisão na linha personalizada, obtenha uma lista completa desses IPs com o administrador da rede.
Se o DNS local tiver poucos IPs de saída, execute o comando a seguir várias vezes para identificá-los: dig +short TXT whoami.ds.akahelp.net (para Linux) ou nslookup -q=txt whoami.ds.akahelp.net (para Windows).
Linhas personalizadas não suportam endereços IPv6. Se o IP de saída do DNS local for um endereço IPv6, a linha personalizada não fará a correspondência e o sistema retornará o registro DNS da linha padrão.
3. Como o cache de CNAME da linha padrão causa roteamento impreciso
Caso de uso
Um registro CNAME está configurado na linha padrão.
Você configura um registro DNS diferente de CNAME (como A, AAAA, TXT ou MX) em uma linha não padrão.
Análise da causa
Quando uma solicitação é feita para um registro DNS em uma linha não padrão:
Se o tipo de registro solicitado for A, mas a linha correspondente tiver apenas um registro AAAA (sem registro A), o sistema retorna uma resposta vazia. Isso não causa roteamento impreciso.
Caso o tipo de registro solicitado seja AAAA, porém a linha possua apenas um registro A (sem AAAA), o sistema também retorna uma resposta vazia, sem gerar roteamento incorreto.
Quando o tipo de registro solicitado é A, mas a linha não possui registros A nem AAAA (apenas registros como TXT ou MX), o sistema retorna o registro CNAME da linha padrão. O DNS local armazena esse registro em cache, resultando em roteamento impreciso.
De forma similar, se a solicitação for para um registro AAAA e a linha não contiver registros A ou AAAA (somente TXT ou MX, por exemplo), o sistema devolve o CNAME da linha padrão. O cache desse registro pelo DNS local leva a um roteamento incorreto.
Para solicitações de tipos como MX ou TXT, caso não exista tal registro na linha correspondente, o sistema retorna o CNAME da linha padrão, armazenado em cache pelo DNS local. Como registros CNAME têm a maior prioridade, consultas subsequentes de A ou AAAA (mesmo que configuradas na linha não padrão) resolverão erroneamente para o CNAME em cache até que seu TTL expire, causando roteamento impreciso.
Solução
Para corrigir isso, utilize um registro CNAME intermediário para os registros A e AAAA na linha não padrão. Por exemplo, para o domínio dns-example.top, primeiro crie registros A e AAAA para test.dns-example.top apontando para seus endereços IPv4 e IPv6. Em seguida, para o seu domínio de serviço na linha China Mobile, crie um registro CNAME que aponte para test.dns-example.top.
O subdomínio
test.dns-example.topé apenas um exemplo. Utilize um novo subdomínio que não possua registros DNS pré-existentes.Adicione os registros A e AAAA antes de adicionar o registro CNAME. Caso contrário, poderá ocorrer uma interrupção na resolução.
Antes da alteração:
|
Host record |
Type |
Request source |
Value |
|
@ |
AAAA |
China Mobile |
ff03:0:0:0:0:0:0:c1 |
|
@ |
A |
China Mobile |
223,5.. |
|
@ |
CNAME |
Default |
www.aliyun.com |
Após a alteração:
|
Host record |
Type |
Request source |
Value |
|
@ |
AAAA |
China Mobile |
ff03:0:0:0:0:0:0:c1 |
|
@ |
A |
China Mobile |
223,5.. |
|
@ |
CNAME |
China Mobile |
test.dns-example.top |
|
@ |
CNAME |
Default |
www.aliyun.com |
Tanto a linha padrão quanto a não padrão agora utilizam registros CNAME, compartilhando a mesma prioridade. Quando um cliente solicita um tipo de registro (como MX ou TXT) não configurado em uma linha, o sistema retorna uma resposta vazia em vez do CNAME padrão. Isso evita a poluição do cache.