Compartilhar via


Falha na resolução de nomes DNS encaminhados para consultas com pilha dupla

Aplica-se a: Windows Server 2016

Sintomas

Você está usando uma solução de servidor DNS de terceiros e não pode resolve nomes consistentemente quando usa o encaminhamento condicional.

O servidor DNS local (10.100.100.70) pode se conectar ao servidor DNS configurado como um encaminhador condicional (10.133.3.250). A primeira solicitação do servidor DNS para o encaminhador condicional resolve com êxito um nome (por exemplo, nbob1.contoso.com). Depois de algum tempo, a resolução de nomes para de funcionar. Uma consulta nslookup para o encaminhador condicional retorna uma mensagem de erro "domínio inexistente".

Se você limpar o cache do servidor DNS no computador de encaminhamento (o servidor DNS local), a resolução de nomes será retomada. No entanto, essa correção é temporária.

Motivo

O servidor DNS (10.100.100.70) encaminha a solicitação de resolução de nome do cliente para nbob1.contoso.com para o encaminhador condicional configurado (10.133.3.250). A consulta de nome contém duas partes: uma consulta A (IPv4) e uma consulta AAAA (IPv6).

O encaminhador condicional retorna uma resposta correta para o registro A. Por exemplo, quando um cliente DNS emite o nslookup nbob1.contoso.com comando, o servidor DNS relata a seguinte resposta do encaminhador condicional:

10.100.100.70 10.133.3.250 DNS:QueryId = 0x78CB, QUERY (Standard query), Query for nbob1.contoso.com of type Host Addr on class Internet
10.133.3.250 10.100.100.70 DNS:QueryId = 0x78CB, QUERY (Standard query), Response - Success, 10.158.150.200
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[5C-B9-01-D0-00-E0],SourceAddress:[00-09-0F-09-00-02]
+ Ipv4: Src = 10.133.3.250, Dest = 10.100.100.70, Next Protocol = UDP, Packet ID = 16114, Total IP Length = 91
+ Udp: SrcPort = DNS(53), DstPort = 63344, Length = 71
- Dns: QueryId = 0x78CB, QUERY (Standard query), Response - Success, 10.158.150.200
QueryIdentifier: 30923 (0x78CB)
+ Flags: Response, Opcode - QUERY (Standard query), AA, RD, Rcode - Success
QuestionCount: 1 (0x1)
AnswerCount: 1 (0x1)
NameServerCount: 0 (0x0)
AdditionalCount: 1 (0x1)
- QRecord: nbob1.contoso.com of type Host Addr on class Internet
QuestionName: nbob1.contoso.com
QuestionType: A, IPv4 address, 1(0x1)
QuestionClass: Internet, 1(0x1)
- ARecord: nbob1.contoso.com of type Host Addr on class Internet: 10.158.150.200
ResourceName: nbob1.contoso.com
ResourceType: A, IPv4 address, 1(0x1)
ResourceClass: Internet, 1(0x1)
TimeToLive: 0 (0x0)
ResourceDataLength: 4 (0x4)
IPAddress: 10.158.150.200

Essas respostas são extraídas de rastreamentos wireshark do lado do servidor no servidor DNS local (10.100.100.70).

A resposta relatada para a consulta AAAA deve se assemelhar ao seguinte trecho:

10.10.10.100 10.10.10.10 DNS:QueryId = 0x21F1, QUERY (Standard query), Query for nbob1.contoso.com of type AAAA on class Internet
10.10.10.10 10.10.10.100 DNS:QueryId = 0x21F1, QUERY (Standard query), Response - Success
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-E4-19-07],SourceAddress:[00-15-5D-E4-19-00]
+ Ipv4: Src = 10.10.10.10, Dest = 10.10.10.100, Next Protocol = UDP, Packet ID = 9830, Total IP Length = 121
+ Udp: SrcPort = DNS(53), DstPort = 57256, Length = 101
- Dns: QueryId = 0x21F1, QUERY (Standard query), Response - Success
QueryIdentifier: 8689 (0x21F1)
- Flags: Response, Opcode - QUERY (Standard query), AA, RD, RA, Rcode - Success
QR: (1...............) Response
Opcode: (.0000...........) QUERY (Standard query) 0
AA: (.....1..........) Is authoritative
TC: (......0.........) Not truncated
RD: (.......1........) Recursion desired
RA: (........1.......) Recursive query support available
Zero: (.........0......) 0
AuthenticatedData: (..........0.....) Not AuthenticatedData
CheckingDisabled: (...........0....) Not CheckingDisabled
Rcode: (............0000) Success 0
QuestionCount: 1 (0x1)
AnswerCount: 0 (0x0)
NameServerCount: 1 (0x1)
AdditionalCount: 1 (0x1)
- QRecord: nbob1.contoso.com of type AAAA on class Internet
QuestionName: nbob1.contoso.com
QuestionType: AAAA, IPv6 Address, 28(0x1c)
QuestionClass: Internet, 1(0x1)
- AuthorityRecord: contoso.com of type SOA on class Internet: PrimaryNameServer: stdc, AuthoritativeMailbox: hostmaster
ResourceName: contoso.com
ResourceType: SOA, Marks the start of a zone of authority, 6(0x6)
ResourceClass: Internet, 1(0x1)
TimeToLive: 3600 (0xE10)
ResourceDataLength: 38 (0x26)
- SOARData: PrimaryNameServer: stdc, AuthoritativeMailbox: hostmaster
PrimaryNameServer: stdc
ResponsibleAuthoritativeMailbox: hostmaster
SerialNumber: 2 (0x2)
RefreshInterval: 900 (0x384)
RetryInterval: 600 (0x258)
ExpirationLimit: 86400 (0x15180)
MinimumTTL: 3600 (0xE10)

No entanto, o servidor DNS local realmente relata uma falha do servidor (como "nenhum registro no domínio" ou "falha do servidor") para o registro AAAA. Essa resposta envenena o cache do servidor DNS local e gera uma entrada de cache negativa para o host Um registro também. Após essa atualização de cache, o servidor DNS local não resolve mais as solicitações de resolução de nomes do host (A) para nbob1.contoso.com.

10.100.100.170 10.133.3.250 DNS:QueryId = 0xC30F, QUERY (Standard query), Query for nbob1.contoso.com of type AAAA on class Internet
10.133.3.250 10.100.100.70 DNS:QueryId = 0xC30F, QUERY (Standard query), Response - Server failure
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[5C-B9-01-D0-00-E0],SourceAddress:[00-09-0F-09-00-02]
+ Ipv4: Src = 10.133.3.250, Dest = 10.100.100.70, Next Protocol = UDP, Packet ID = 32142, Total IP Length = 75
+ Udp: SrcPort = DNS(53), DstPort = 63171, Length = 55
- Dns: QueryId = 0xC30F, QUERY (Standard query), Response - Server failure
QueryIdentifier: 49935 (0xC30F)
- Flags: Response, Opcode - QUERY (Standard query), AA, RD, Rcode - Server failure
QR: (1...............) Response
Opcode: (.0000...........) QUERY (Standard query) 0
AA: (.....1..........) Is authoritative
TC: (......0.........) Not truncated
RD: (.......1........) Recursion desired
RA: (........0.......) Recursive query support not available
Zero: (.........0......) 0
AuthenticatedData: (..........0.....) Not AuthenticatedData
CheckingDisabled: (...........0....) Not CheckingDisabled
Rcode: (............0010) Server failure 2
QuestionCount: 1 (0x1)
AnswerCount: 0 (0x0)
NameServerCount: 0 (0x0)
AdditionalCount: 1 (0x1)
- QRecord: nbob1.contoso.com of type AAAA on class Internet
QuestionName: nbob1.contoso.com
QuestionType: AAAA, IPv6 Address, 28(0x1c)
QuestionClass: Internet, 1(0x1) 

Nesses casos, o problema subjacente é que a resposta do encaminhador condicional não é formatada corretamente. O servidor DNS local interpreta a resposta para significar que o registro não foi encontrado.

Resolução

Entre em contato com o fornecedor da implementação do servidor DNS de terceiros sobre esse problema.

Além disso, você pode usar Windows PowerShell para implementar a seguinte política de recursão do servidor DNS, da seguinte maneira:

Add-DnsServerQueryResolutionPolicy -Name "BlockRecursionOfAAAA" -ApplyOnRecursion -Action Deny -QType "EQ,AAAA"

A nova política pode atenuar esse problema.

Mais informações

RFC 2308, Cache negativo de consultas DNS, Seção 3, descreve o comportamento esperado dos servidores de nome que são autoritativos para uma zona. Quando o servidor DNS relata um NXDOMAIN ou indica que não existem dados do tipo solicitado, a resposta deve incluir na seção de autoridade o registro de Início de Autoridade (SOA) para a zona. Isso é necessário para que a resposta possa ser armazenada em cache.

O mau comportamento comum contra consultas DNS para endereços IPv6 descreve problemas específicos que podem afetar consultas de resolução de nomes AAAA.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.