vol43. DNSサーバーとping

たまに、dns server が落ちたりして、名前解決ができない事がある。

これまで、dns server の生存確認に、以下のように、ping を使っていたのだが、

$ ping 156.154.70.1

ping は通らないけど、dnsは動いているということがあるのね。。
(下のスクリーンショットから、ping の応答はないけど、DNSのresponse はあることが確認できる。)

f:id:john-rama01:20181002071613p:plain

まぁ、冷静に考えれば、そのdns server がicmp プロトコルをサポートしていなければ、
ping に対する応答がないのは当然であるといえば当然なのだが、
icmp はすべてのネットワーク機器はサポートしていると思い込んでいた。。

少しググると、dns のquery メッセージは、dig コマンドで投げることができる。
DNS server が生きていれば、DNS response メッセージを返すので、
これで確認できる。

dig [@server]

$ dig @156.154.70.2 ; <<>> DiG 9.9.5-9+deb8u5-Debian <<>> @156.154.70.2
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1469
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;. IN NS

;; ANSWER SECTION:
. 512788 IN NS a.root-servers.net.
. 512788 IN NS b.root-servers.net.
. 512788 IN NS c.root-servers.net.
. 512788 IN NS d.root-servers.net.
. 512788 IN NS e.root-servers.net.
. 512788 IN NS f.root-servers.net.
. 512788 IN NS g.root-servers.net.
. 512788 IN NS h.root-servers.net.
. 512788 IN NS i.root-servers.net.
. 512788 IN NS j.root-servers.net.
. 512788 IN NS k.root-servers.net.
. 512788 IN NS l.root-servers.net.
. 512788 IN NS m.root-servers.net.

;; Query time: 20 msec
;; SERVER: 156.154.70.2#53(156.154.70.2)
;; WHEN: Mon Oct 01 18:04:31 EDT 2018
;; MSG SIZE rcvd: 239

ちなみに、Linux では、dns server の設定は、/etc/resolv.conf で行う。

$ cat /etc/resolv.conf
domain ol.csi.178
search ol.csi.178
nameserver 156.154.70.1

nameserver の後のip address がDNS server のip address だ。