Versão resumida: Por que Test-Connection
report "Ocorreu um erro não recuperável durante uma consulta ao banco de dados" para um host offline em uma sub-rede diferente?
Estou usando o PowerShell para fazer ping de um host remoto com o cmdlet Test-Connection
:
$Computer = "COMPUTER01"
Test-Connection -ComputerName $Computer -Count 3
Eu recebo a seguinte mensagem de erro:
System.Net.NetworkInformation.PingException: Testing connection to computer
'COMPUTER01' failed: A non-recoverable error occurred during a database
lookup ---> System.ComponentModel.Win32Exception: A non-recoverable error
occurred during a database lookup.
Meus servidores DNS são todos os controladores do Windows AD executando o serviço DNS. Eu sou capaz de resolver o nome do host para o endereço IP usando nslookup
:
Name: computer01.domain.com
Address: 192.168.2.153
O site da Microsoft diz o seguinte:
This is a nonrecoverable error. This indicates that some sort of
nonrecoverable error occurred during a database lookup. This may be
because the database files (for example, BSD-compatible HOSTS,
SERVICES, or PROTOCOLS files) could not be found, or a DNS request was
returned by the server with a severe error.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx
Pergunta: O que "pesquisa de banco de dados" pode estar falhando?
Solução de problemas pt. 1
Eu tentei ping
o mesmo host, que também falha, mas com uma mensagem mais familiar:
C:\> ping COMPUTER01
Pinging COMPUTER01.domain.com [192.168.2.153] with 32 bytes of data:
Reply from 192.168.0.220: Destination host unreachable.
A execução de tracert
para o endereço IP de destino confirma isso:
C:\> tracert -d 192.168.2.153
7 40 ms 40 ms 40 ms 192.168.0.220
8 192.168.0.220 reports: Destination host unreachable.
This message indicates one of two problems: either the local system
has no route to the desired destination, or a remote router reports
that it has no route to the destination...
If the message is "Reply From < IP address >: Destination Host Unreachable,"
then the routing problem occurred at a remote router, whose address is
indicated by the "< IP address >" field. Use the appropriate utility
or facility to check the IP routing table of the router assigned the
IP address of < IP address >.
https://technet.microsoft.com/en-us/library/cc940095.aspx
Solução de problemas pt. 2
Eu dei uma olhada nos pacotes ICMP usando o WireShark. Eu posso ver que a resposta deste roteador é:
Type: 3 (Destination unreachable)
Code: 1 (Host unreachable)
Destination unreachable is generated by the host or its inbound
gateway to inform the client that the destination is unreachable
for some reason... Unreachable TCP ports notably respond with TCP
RST rather than a Destination Unreachable type 3 as might be expected.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
E finalmente
Eu também tenho uma confirmação separada / independente de que o host de destino é conhecido por estar fora da rede, o que explica porque o roteador não consegue "atingir" o alvo. Ainda estou me perguntando por que o cmdlet Test-Connection
jogou o que é (para mim) uma mensagem de exceção tão enganosa.