DNSの理解を少し深めた
/proc を探検する - いますぐ実践! Linuxシステム管理 / Vol.023
名前解決の理解がかなり曖昧だった。
NSサーバを適当に登録して、aレコードやcnameレコードを適当に投稿してWEBサーバのバーチャルホストを設定するだけで大抵動くので曖昧のままでご飯を食べれてた。
今回、ブラウザが再帰的に権威サーバへ再帰的に問合せしている手順をdigコマンドを使って再現した。 だがまだ理解が微妙だ。
今回はgoogle.comの名前解決をしてみた。
com を知っているnsサーバを問い合わせる
$ dig com ns ;; ANSWER SECTION: com. 11257 IN NS m.gtld-servers.net. com. 11257 IN NS j.gtld-servers.net. com. 11257 IN NS e.gtld-servers.net. com. 11257 IN NS c.gtld-servers.net. com. 11257 IN NS l.gtld-servers.net. com. 11257 IN NS k.gtld-servers.net. com. 11257 IN NS g.gtld-servers.net. com. 11257 IN NS i.gtld-servers.net. com. 11257 IN NS a.gtld-servers.net. com. 11257 IN NS h.gtld-servers.net. com. 11257 IN NS d.gtld-servers.net. com. 11257 IN NS f.gtld-servers.net. com. 11257 IN NS b.gtld-servers.net.
答えがたくさん帰ってきた。com を知っているサーバは*.gtld-servers.netだ。
次は *.gtld-servers.netのnsに対して、google.com のnsを問い合わせる。
google.com の ns サーバを問い合わせる
$ dig @a.gtld-servers.net google.com ns ;; AUTHORITY SECTION: google.com. 172800 IN NS ns2.google.com. google.com. 172800 IN NS ns1.google.com. google.com. 172800 IN NS ns3.google.com. google.com. 172800 IN NS ns4.google.com.
google.com を登録しているnsサーバは ns2.google.com あたりということがわかった。 次はaレコードをns2.google.comに問い合わせる。
$ dig @ns2.google.com google.com a ;; ANSWER SECTION: google.com. 300 IN A 173.194.117.199 google.com. 300 IN A 173.194.117.194 google.com. 300 IN A 173.194.117.192 google.com. 300 IN A 173.194.117.197 google.com. 300 IN A 173.194.117.201 google.com. 300 IN A 173.194.117.200 google.com. 300 IN A 173.194.117.193 google.com. 300 IN A 173.194.117.206 google.com. 300 IN A 173.194.117.196 google.com. 300 IN A 173.194.117.198 google.com. 300 IN A 173.194.117.195
google.com を手で問い合わせた。
権威サーバというのは、com や google.com のnsを知っているサーバのことを指すらしい。 ns2.google.com は 権威サーバというのかな。
ゾーンファイルを持っているのは、ns2.google.com だと思う。
うーーーーーん。なんか微妙に理解ができていない。 nsレコードとはなんなんだ....。