nslookupがアドレスを解決しようとすると、/ etc / hostsファイルが照会されないのはなぜですか?


15

ファイル127.0.0.1内で解決されたローカルドメインがいくつかあり/etc/hostsます。そして、しばらくの間は大丈夫でしたが、今私が走ったとき:

nslookup test.local

結果:

Server:     192.168.1.3
Address:    192.168.1.3#53

** server can't find test.local: NXDOMAIN

これ192.168.1.3は私たちのネットワークDNSであり、ローカルドメインを知ることを想定していませんtest.local。数回検索した結果、その/etc/nsswitch.confファイルには、照会するDNSソースの優先順位に関する情報が含まれていることがわかりました。しかし、そこには問題はありませんでした!これが私のものです:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

だから誰が私のhostsファイルがDNSルックアップに含まれていないのか知っていますか?

回答:


20

nslookup適切な DNS解決のみを行います。これは、他のアプリケーションが使用するネームサービススイッチサブシステムとは大きく異なります。つまり、nslookup無視する/etc/hostsおよびmDNSです。

そのようなローカル解像度をテストするには、NSSを使用するものを使用します。ping <hostname>例えば。これ/etc/hostsは、ネットワーク上のエントリに基づいた簡単なデモです。

$ nslookup bert
Server:     8.8.8.8
Address:    8.8.8.8#53

** server can't find bert: NXDOMAIN

$ ping bert
PING bert (10.10.0.4) 56(84) bytes of data.
64 bytes from bert (10.10.0.4): icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from bert (10.10.0.4): icmp_seq=2 ttl=64 time=0.407 ms

/etc/hostsファイルを考慮することができるDNSサーバーとプロキシがあることに注意してください。これらの場合、nslookupローカルソースから結果を返す可能性があります。


5
代わりに持っている必要がありますので、ping使用getent ahostsする必要がpingあります。
ミッコランタライネン

2

名前解決が必要だと思います /etc/hosts特定のホスト(mysite.com)のファイル。

この動作を引き起こす可能性のある別の一般的な問題/etc/hostsは、同じIPのファイルに多くのエントリがある可能性があることです。例:

1.1.1.1 host1.domain1.com
1.1.1.1 host2.domain2.com

一部の実装では、これにより名前解決がDNSに渡される可能性があります。簡単な修正、すべてを1行にグループ化

1.1.1.1 host1.domain1.com host2.domain2.com

1

私が見る別の一般的なことは、誰か(通常は私)がホスト名を含むIPアドレスを逆にする場所です/etc/hosts-例えば:

mysite.com    10.2.3.4

一見、普通のように見えます...これが私の解決策の約50%です:

10.2.3.4    mysite.com

今回の有罪...#sigh
Cybex

1
通常、hostsファイルには、事前定義された127.0.0.1 localhostエントリが付属しています。それを間違えることはとても間違っています:-)
m3nda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.