■
facebook.com の名前解決を、少し追ってみた。
権威 DNS を whois と dig で調べると、こんな感じ。
ns4.facebook.com 69.171.245.32
ns3.facebook.com 66.220.151.20
ns5.facebook.com 66.220.145.65
google で facebook の URL を調べると、日本版は ja-jp.facebook.com となっている。
そのまま dig で引くと…
;; ANSWER SECTION:
ja-jp.facebook.com. 2038 IN CNAME star.facebook.com.
star.facebook.com. 13 IN A 69.171.229.76
こんな感じで CNAME を使っている。
この IP アドレス…なんか怖い。
一つしか使ってないのか?
そんなことはない。
dig を trace 付きで実行してみると…
ja-jp.facebook.com. 3600 IN CNAME star.facebook.com.
star.facebook.com. 1800 IN NS glb2.facebook.com.
star.facebook.com. 1800 IN NS glb1.facebook.com.
ja-jp というホストは star というホストの CNAME で、その CNAME 自体は2種類の DNS で管理されている…と出てくる。
じゃ、この 2 種類の DNS に対する IPアドレスは?
そのまま引くと、こんな感じ。
URL | IPアドレス |
---|---|
glb1.facebook.com. | 69.171.239.10 |
glb2.facebook.com. | 69.171.255.10 |
この IP アドレスに対して star.facebook.com を引いてみる。
dig @69.171.239.10 star.facebook.com. +short
dig @69.171.239.10 star.facebook.com. +short
dig @69.171.239.10 star.facebook.com. +short
・
・
・
こんな感じで何回も引くと、IPアドレスがころころ変わる。
69.171.224.39
69.171.224.55
69.171.224.87
69.171.228.72
69.171.228.76
69.171.229.72
69.171.229.76
69.171.234.23
69.171.234.39
69.171.234.71
あんまり負荷をかけすぎても迷惑をかけることになるので、ちょっとだけ…
自分の手元に返ってきた IP アドレスは、上記のリストになる。
たぶん、もっと多いんだろうな。
最初は、なんでDNSラウンドロビンを使わないんだろう…と思ったけど、大量に IP アドレスを利用しているんなら納得。
でも、この実装って、どうやっているんだろう?
BIND とかを使うなら、前提として IP アドレスの分だけ DNS サーバが必要になる気がする。
ロードバランサで、クエリを複数の DNS に投げれば返ってくる答えを変えられる。
でも、あまりにも大量すぎて実感がわかない。
専用のアプライアンスがあるんかな?