web-dev-qa-db-ja.com

wgetがホストアドレスを80%解決できない

wget 'http://xxxx.net/somepage.asp?params@abc' bashファイル内。

私がそれを実行すると、5回のうち4回はそれは言う:

Resolving xxxx.net (xxxx.net)... failed: No address associated with hostname.
wget: unable to resolve Host address 'xxxx.net'

DNSサーバーに問題があると思って、ping -c 2 xxxx.net wgetの前。 Pingは常に100%確実に解決されます。

原因は何でしょうか? wgetには、名前を解決する独自の方法がありますか?これはRaspberry Piにあります。

6
Old Geezer

技術的にはどちらも同じ方法でアドレスを解決する必要がありますが、pingはIPv6アドレス(AAAAレコード)を解決しようとはせず、IPv4専用ツール(ping6はIPv6 ICMP要求を行います)。

namedでサポートされている一部の負荷分散DNSサーバーで見られた構成の問題(動的DNSリゾルバーをサポートするものは何も適用されないはずです)は、負荷にAレコードがある場合に発生します。 named内の同じ名前の構成と何も分散していない場合、AAAAレコードの要求はnamedにフォールバックし、-NXDomainエラー(noそのようなドメイン)、リゾルバーが他の要求を試行するのを防ぎます。 1つの修正は、A、TXTまたはその名前の他の互換性のあるレコードを追加することです。そのため、namedがAAAAリクエストをキャッチしたときに、アドレスも戻りませんNXDomainなので、クライアントはAレコードを探し続けます。

DNSサーバーを制御できない場合は、wget --inet4-onlyオプションが役立つ場合があります。それで問題が解決した場合は、ドメインの所有者にDNSの問題を伝える必要もあります。