Ping ICMP é um teste ruim, já que um servidor DNS em funcionamento pode firewallar tais solicitações. O DNS-over-UDP não tem um handshake de "conexão" (SYN / SYN + ACK / ACK) que o SSH-over-TCP faz, portanto, o melhor que podemos fazer é lançar consultas DNS no servidor DNS presumido e ver o que acontece . Essas consultas podem não funcionar se houver um firewall ou se a consulta for executada em função da diminuição da taxa de DNS (em nível de firewall ou no próprio servidor DNS, mais comum atualmente devido a ataques de amplificação de DNS) ou dependendo da consulta ou do Servidor DNS (por exemplo, foi uma consulta recursiva para um não-recursivo NS
? Ou é o cliente em que o servidor DNS considera uma exibição não local? Etc.)
Normalmente, uso dig
(ou Net::DNS
em programas Perl) para verificações de DNS. Consulte também o software de monitoramento , pois eles devem ter suporte para monitoramento, geração de gráficos e relatórios sobre DNS, embora possam ser muito pesado para uso em um roteador embutido. Alguns exemplos de dig
:
# possibly get server version info (unreliable)
$ dig +short @128.95.120.1 TXT CHAOS version.bind
"UW 3A7_3"
$ dig +short @8.8.8.8 TXT CHAOS version.bind
$
$ dig +short @8.8.8.8 NS example.org
b.iana-servers.net.
a.iana-servers.net.
$ dig +short @8.8.8.8 SOA example.org
sns.dns.icann.org. noc.dns.icann.org. 2015082419 7200 3600 1209600 3600
$
$ dig +short @8.8.4.4 A www.example.org
93.184.216.34
$ dig +short @8.8.4.4 CNAME www.example.org
$
# checking via TCP and via IPv6 might also be useful
$ dig +tcp +short @2001:4860:4860::8888 A www.example.org
93.184.216.34
$
Existem também os comandos nslookup
e getent hosts
, se você não deseja instalar os utilitários BIND. Eles são menos ou muito menos poderosos do que dig
, embora possam ser suficientes se você só precisar verificar se uma consulta para um determinado host retorna um IP específico.