Delen via


Problemen met dns-clientnaamomzetting oplossen

Dit artikel helpt bij het oplossen van problemen met dns-clientnamen (Domain Name System).

Dns-omzettingsproblemen (Domain Name System) kunnen optreden voor de volgende drie primaire oorzaken:

  • Dns-clientproblemen of -configuraties.
  • Dns-serverproblemen of -configuraties.
  • Tussenliggende apparaten of configuraties tussen een DNS-client en een DNS-server, of tussen een DNS-server en externe resolvers (zoals hoofdhints, doorstuurservers en voorwaardelijke doorstuurservers), waarvoor mogelijk verder onderzoek nodig is.

Notitie

Dit artikel is gericht op problemen met DNS-omzetting die worden veroorzaakt door problemen met de DNS-client of configuraties. Zie Problemen met DNS-servers oplossen voor informatie over problemen met DNS-servers.

Dns-omzettingsproblemen kunnen zich voordoen in de volgende scenario's:

Scenario 1: Firewallregel blokkeert uitgaande verbindingen op UDP-poort 53

Stel dat er een uitgaande firewallregel is die uitgaande verbindingen blokkeert op UDP-poort 53 (User Datagram Protocol).

In dit geval krijgt u de volgende fout wanneer u de Resolve-DnsName contoso.com PowerShell-cmdlet uitvoert met Wireshark :

resolve-dnsname : contoso.com : This operation returned because the timeout period expired
At line:1 char:1
+ resolve-dnsname contoso.com
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationTimeout: (contoso.com:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName

Wanneer u de Wireshark-trace controleert, is er geen uitgaand DNS-verkeer naar de domeincontroller (DC).

In dit geval controleert u de Windows Firewall-regels en controleert u eventuele beveiligingsproducten van derden op pakketdruppels op UDP- of TCP-poort (Transmission Control Protocol) 53.

Als u een DNS-omzettingsaanvraag zonder antwoord ziet, is het handig om Wireshark-traceringen van een switch te verzamelen met behulp van poortspiegeling om te bevestigen dat het DNS UDP-pakket de clientcomputer heeft verlaten. De aanvragen lijken op het volgende:

139 3.149039    10.0.1.10   10.0.1.2    DNS 71  Standard query 0xcdc6 A contoso.com
140 3.149192    10.0.1.10   10.0.1.2    DNS 71  Standard query 0x8168 AAAA contoso.com

Dit zijn standaardqueryaanvragen voor host A en host AAAA zonder antwoord. Door de tracering te controleren, kan het probleem worden geïsoleerd. Als u het UDP-pakket op de switch ziet, betekent dit dat het pakket de clientcomputer al heeft verlaten en het probleem zich buiten de clientcomputer bevindt.

Scenario 2: Er is een vermelding voor de domeinnaam in het hosts-bestand

Stel dat het hosts-bestand in C:\Windows\System32\drivers\etc een vermelding heeft voor de domeinnaam die u wilt omzetten. Bijvoorbeeld:

192.168.1.10 contoso.com

In dit geval ontvangt u de volgende uitvoer wanneer u de domeinnaam contoso.com met Wireshark uitvoert:

PS C:\Windows\System32\drivers\etc> Resolve-DnsName contoso.com

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
contoso.com                                    A      60440 Answer     192.168.1.10

Daarnaast kan er geen verkeer worden gedetecteerd in Wireshark.

Dit komt doordat de DNS-client de volgende volgorde gebruikt bij het omzetten van namen:

  1. Controleer de cache.
  2. Controleer het hosts-bestand.
  3. Verzend de query naar de DNS-server.

Omdat er een vermelding in het hosts-bestand staat, voert de DNS-clientservice geen query's uit op de DNS-server.

Scenario 3: De client verwijst naar een onjuiste of onbereikbare DNS-server

Stel dat de DNS-server op de NIC (Network Interface Card) van de DNS-client is geconfigureerd met het IP-adres van een onbereikbare DNS-server. De client-IP-configuratie ziet er als volgt uit:

IPv4 Address. . . . . . . . . . . : 10.0.1.10<Preferred>
Default Gateway . . . . . . . . . : 10.0.1.1
DNS Servers . . . . . . . . . . . : 192.168.0.1

Omdat de DNS-server niet bereikbaar is, ontvangt de client geen antwoord, waardoor er een time-out optreedt voor de query. Deze time-out kan worden waargenomen in Wireshark. De DNS-standaardquery's zonder antwoord:

439 14.482923   10.0.1.10   192.168.0.1 DNS 71  Standard query 0xa384 A contoso.com
440 14.482923   10.0.1.10   192.168.0.1 DNS 71  Standard query 0x4fe0 AAAA contoso.com

In dit geval ontvangt u, wanneer u de Resolve-DnsName contoso.com PowerShell-cmdlet uitvoert, de volgende uitvoer:

PS C:\Windows\System32\drivers\etc> Resolve-DnsName contoso.com
Resolve-DnsName : contoso.com : This operation returned because the timeout period expired
At line:1 char:1
+ Resolve-DnsName contoso.com
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationTimeout: (contoso.com:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_TIMEOUT,Microsoft.DnsClient.Commands.ResolveDnsName

Scenario 4: Verschillende DNS-servers zijn geconfigureerd op de NIC, waarvan sommige niet bereikbaar zijn

Stel dat de DNS-instellingen van de client als volgt zijn geconfigureerd met een aantal onbereikbare DNS-servers:

DNS Servers . . . . . . . . . . . : 192.168.0.1
                                    172.16.1.1
                                    192.168.1.20
                                    10.0.1.2

In dit geval, wanneer u een DNS-omzetting uitvoert met behulp van de Resolve-DnsName contoso.com PowerShell-cmdlet, zijn al deze DNS-serveradressen behalve 10.0.1.2 niet bereikbaar.

De DNS-client verzendt deze query standaard naar de DNS-servers die zijn geconfigureerd in een specifieke volgorde en wacht op een antwoord binnen een specifieke respijtperiode.

Dit proces is te zien in Wireshark met het filter dns.qry.name == contoso.com.

De Wireshark-uitvoer laat zien dat het bijna vier seconden duurt voordat de query is voltooid. Vanuit het oogpunt van netwerken kan deze duur lang zijn en kunnen sommige toepassingen een time-out veroorzaken.

30  03:56:58.634623 10.0.1.10   192.168.0.1  DNS 71  Standard query 0x9f32 A contoso.com
33  03:56:59.643171 10.0.1.10   172.16.1.1   DNS 71  Standard query 0x9f32 A contoso.com
38  03:57:02.646443 10.0.1.10   192.168.0.1  DNS 71  Standard query 0x9f32 A contoso.com
42  03:57:02.646556 10.0.1.10   172.16.1.1   DNS 71  Standard query 0x9f32 A contoso.com
43  03:57:02.646573 10.0.1.10   192.168.1.20 DNS 71  Standard query 0x9f32 A contoso.com
47  03:57:02.646684 10.0.1.10   10.0.1.2     DNS 71  Standard query 0x9f32 A contoso.com

Notitie

In dit scenario is het gebruik nslookup niet van toepassing en mislukt het altijd. Dit komt doordat nslookup er nslookup.exe wordt gebruikt om alleen contact op te maken met de primaire DNS-server die in dit geval is 192.168.0.1geconfigureerd.

Scenario 5: Zoeklijst met lange DNS-achtervoegsels

Stel dat de zoeklijst voor DNS-achtervoegsels op de DNS-client als volgt is geconfigureerd:

Notitie

contoso.com is het juiste DNS-achtervoegsel.

DNS Suffix Search List. . . . . . : microsoft.com
                                    ms.com
                                    azure.com
                                    ms.local
                                    contoso.local
                                    contoso.com

Als u in dit geval een naamomzetting uitvoert met behulp van de Resolve-DnsName internal PowerShell-cmdlet, voegt de DNS-client de DNS-achtervoegsels in de juiste volgorde toe, wat mogelijk vertragingen veroorzaakt als de benodigde query lager in de lijst staat. Door het filter dns.qry.name contains internal in Wireshark te gebruiken, wordt de query als volgt weergegeven:

116 04:33:38.164251 10.0.1.10   10.0.1.2    DNS 82  Standard query 0xc557 A internal.microsoft.com
120 04:33:38.177186 10.0.1.10   10.0.1.2    DNS 75  Standard query 0x0a4b A internal.ms.com
124 04:33:38.453625 10.0.1.10   10.0.1.2    DNS 78  Standard query 0x4245 A internal.azure.com
128 04:33:38.466154 10.0.1.10   10.0.1.2    DNS 77  Standard query 0xfaca A internal.ms.local
131 04:33:38.471033 10.0.1.10   10.0.1.2    DNS 82  Standard query 0xa9d6 A internal.contoso.local
136 04:33:38.476248 10.0.1.10   10.0.1.2    DNS 80  Standard query 0x611f A internal.contoso.com

Notitie

Als u een specifieke query wilt testen, kunt u aan het einde een volgperiode (.) toevoegen. Bijvoorbeeld internal.contoso.com.

Meten hoe lang een DNS-omzettingsquery duurt

Voer de volgende PowerShell-cmdlet uit om de tijd te meten die nodig is om een DNS-omzettingsquery te voltooien:

Notitie

Een resultaat onder één seconde wordt als aanvaardbaar beschouwd.

(Measure-Command {Resolve-DnsName -Name contoso.com -Server <IP Address> -DnsOnly}).TotalMilliseconds

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.