Linux Mint を適当にぶち込んだマシンにて、ローカルネットワークのホストにアクセスできない問題が発生。
状況
- DNSサーバは 192.168.0.1 みたいなマシンで、DHCPで配る
- hostname.mydomain.local みたいな名前でローカルネットワークにホストが存在してる
- DNSサーバを指定した上で、digなりnslookupなりからそいつの名前を指定すると、ちゃんとIPアドレスを返してくれる
- ping hostname.mydomain.local とか wget hostname.mydomain.local とかやると、そんなホストしらねーよって言われる
dnsmasq が動いてるせいで、ローカルネットワークのDNSを見に行ってくれない
/etc/NetworkManager/NetworkManager.conf[main] plugins=ifupdown,keyfile dns=dnsmasq [ifupdown] managed=falsedns=dnsmasqの行をコメントアウトして NetworkManager を再起動。
ついでに、resolv.conf を書き換えてローカルネットワークのDNSを見に行くように。
.localのホストだけ名前解決できない
nsswitch くんが悪さをしていた模様。/etc/nsswitch.conf
# /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 mdns4 networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
を、
hosts: files dns mdns4
に書き換えたらちゃんと .local に関してもDNSを参照してくれることに。