TCPスタックでDNS要求が失敗した場所をどのように確認しますか?

TCPスタックでDNS要求が失敗した場所をどのように確認しますか?

ここではネットワーク設定について説明しました。

この静的パスが適用されないのはなぜですか?

現在DNSサーバーをpingできますが、すべてのDNS要求が失敗します。

~$ ping 130.35.249.52
PING 130.35.249.52 (130.35.249.52) 56(84) bytes of data.
64 bytes from 130.35.249.52: icmp_seq=1 ttl=57 time=105 ms
64 bytes from 130.35.249.52: icmp_seq=2 ttl=57 time=111 ms
^C
--- 130.35.249.52 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 105.604/108.388/111.172/2.784 ms

~$ nslookup oracle.com 130.35.249.52
;; connection timed out; no servers could be reached

Ubuntu(私の知る限り)はファイアウォールを実行していないので、何が正しい理由も考えられません。しかし、Ubuntuは仮想化されているので、VirtualBoxホストの設定方法に問題がないことを願っています。

ベストアンサー1

まず、DNSはデフォルトではTCPサービスではなくUDPサービスです。 DNSはUDPポート53にあります。 DNSサーバーコンピュータから着信接続用にUDPポートが開いていることを確認してください。また、DNSにはTCPポート53を使用するTCPを使用するオプションがありますが、DNSはTCPなしではうまく機能しますが、UDPなしでは機能しません。

dig第二に、DNS問題をデバッグするよりも作業する方がはるかに優れていますnslookup。例:dig @130.35.249.52 oracle.com digがない場合yum install bind-tools(RHEL / Oracle / CentOS 6)、またはLinuxディストリビューションに対応するコマンドを使用してインポートします。

実際、ファイアウォールはポート53 TCPを受け入れましdig -t @130.35.249.52 oracle.comたが、dig @130.35.249.52 oracle.comUDPがまだブロックされて動作しないことを確認しました。

おすすめ記事