「pingundefinedhost」と「curlundefinedhost」(例:libc「gethostbyname」)が失敗するのではなく、ローカルホストにping /接続するのはなぜですか?
私は古いUbuntu16.04(LTS)をインストールしていますが、今日、pingとcurlが(libcによって)通知されていることに気付きました。不明なホストのIPはローカルホストのIPと同じです(例: "nslookup $(</ etc / hostname) ")。
「nslookup」と「dig」は「NXDOMAIN」を正しく報告します。
で/etc/nsswitch.conf
、私は持っています
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
/etc/hosts
このように見えます:
127.0.0.1 localhost.localdomain localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/etc/hostname
:host1.mydomain.net
(実績値から変更)
そして/etc/resolv.conf
次のようになります:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 213.133.98.98
nameserver 213.133.99.99
nameserver 213.133.100.100
curl https://undefinedhost
印刷されたとき、私は今日完全に混乱しました
curl: (51) SSL: certificate subject name (host1.mydomain.net) does not match target host name 'undefinedhost'
ping undefinedhost
私が理解し始めた出力を見たときだけ、何が起こっているようです:
$ ping unknownhost
PING host1.mydomain.net (138.201.175.226) 56(84) bytes of data.
64 bytes from host1.mydomain.net (138.201.175.226): icmp_seq=1 ttl=63 time=0.237 ms
最後に、dig
期待どおりに動作します。
$ dig unresolvedhost @213.133.98.98
; <<>> DiG 9.10.3-P4-Ubuntu <<>> unresolvedhost @213.133.98.98
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28972
誰かがこれがうまくいかないかもしれないところにいくつかの光を当てることができますか?
回答
説明は、このマシンが存在するローカルドメイン(mydomain.netなど)の下に構成したワイルドカードサブドメインと組み合わせた、暗黙的なホスト名ルックアップドメイン検索リストの存在です。
引用man resolv.conf
:
検索リストは通常、ローカルドメイン名から決定されます。デフォルトでは、ローカルドメイン名のみが含まれます。
ローカルバインドサーバーを実行していて、ドメインが登録されてアクティブになっています。私/etc/bind/local/db.mydomain.net
はこのように見えます:
...
@ IN SOA mydomain.net. ....
...
host1 IN A 138.201.175.226
* IN CNAME host1.mydomain.net.
....
したがって、この動作は完全に正しく、予想されます。私はただ混乱しました。:-)