Twitterなどを使っているとbit.lyというURL短縮サービスをよく見ますが、「 .ly」というccTLD(country code Top Level Domain)はリビアです。現在、リビアが不安定化していますが、もしリビアのccTLDが停止した場合、bit.lyが影響を受ける可能性もありそうです。
まず、最初にどの部分がどう影響があるのかを見てみます。
bit.lyそのものはアメリカにありそうです。DNSはDny Inc.によるDynectとNTT CommunicationsのAS2914のIPアドレスという組み合わせです。この組み合わせによる運用(負荷分散)はTwitterと同じです。
> dig bit.ly.
; <<>> DiG 9.4.3-P2 <<>> bit.ly
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59284
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;bit.ly. IN A
;; ANSWER SECTION:
bit.ly. 3600 IN A 168.143.172.53
;; AUTHORITY SECTION:
bit.ly. 69900 IN NS ns3.p26.dynect.net.
bit.ly. 69900 IN NS ns4.p26.dynect.net.
bit.ly. 69900 IN NS ns1.p26.dynect.net.
bit.ly. 69900 IN NS ns2.p26.dynect.net.
;; ADDITIONAL SECTION:
ns1.p26.dynect.net. 20238 IN A 208.78.70.26
ns2.p26.dynect.net. 20238 IN A 204.13.250.26
ns3.p26.dynect.net. 20238 IN A 208.78.71.26
ns4.p26.dynect.net. 20238 IN A 204.13.251.26
;; Query time: 68 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 22 13:22:43 2011
;; MSG SIZE rcvd: 190
このようにアメリカで運用されていると思われるbit.lyですが、リビアのccTLDが止まってしまうとどうなるのでしょうか?DNSの仕組みを含めて、ざっと説明すると以下のようになります。
DNSに関してざっと紹介
一般的な環境では、ユーザは次のようにDNSキャッシュサーバに問い合わせを行って、名前解決をします。DNSキャッシュサーバは、ISP内で運用されていることが多いです(Google Public DNS のようなオープンリゾルバな形式はこの限りではないのでご注意ください) 。
DNSキャッシュサーバは、既にキャッシュを持っていれば、単純にそのキャッシュをユーザに返します。このように、DNSキャッシュサーバがキャッシュを返すので、世界中のDNS問い合わせでインターネットが埋め尽くされずに済むという構造になっています。
DNSキャッシュサーバに蓄積されるキャッシュにはTTL(Time To Live、生存期間)というものがあります。このTTLを過ぎてしまったキャッシュは破棄され、使われません。
ユーザから問い合わせ受けた名前の解決を一度も行ったことがなかったり、持っていたキャッシュが期限切れ(Expire)してしまった場合、DNSキャッシュサーバは世界中にあるDNS権威サーバへ問い合わせを行って名前解決を行います。
リビアのccTLDであるlyのDNS権威サーバが止まってしまうと、この図中の④と⑤の部分が抜け落ちてしまいます。
ccTLDが停止してしまうというのは、そのccTLDを持つ名前解決ができなくなるという意味であり、国全体のインターネットが停止している状態に近いです。Webやメール、その他のさまざまな通信が事実上できなくなります。
今回のリビアとは事情が違いますが、オペミスによってccTLD全体が停止してしまった事例も過去にあります。
最近では、2009年10月にスゥエーデンのccTLDが90分停止したり(参考 ) 、2010年5月にはドイツのccTLDが約120分停止する(参考 )という事件もありました。
lyに関してDNS Root Serverに問い合わせる
では、実際にリビアのccTLDであるlyに関して調べてみます。問い合わせ先はDNS Root ServerのMです。A~Mの13系統(エニーキャストなので「台」ではなく「系統」です)のどのDNS Root Serverに問い合わせても大丈夫ですが、なんとなくMに問い合わせてみました。
> dig @m.root-servers.net ly.
; <<>> DiG 9.4.3-P2 <<>> @m.root-servers.net ly.
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64945
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 6
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;ly. IN A
;; AUTHORITY SECTION:
ly. 172800 IN NS dns1.lttnet.net.
ly. 172800 IN NS ns-ly.ripe.net.
ly. 172800 IN NS phloem.uoregon.edu.
ly. 172800 IN NS dns.lttnet.net.
ly. 172800 IN NS auth02.ns.uu.net.
;; ADDITIONAL SECTION:
dns.lttnet.net. 172800 IN A 62.240.36.9
dns1.lttnet.net. 172800 IN A 62.68.42.9
ns-ly.ripe.net. 172800 IN A 193.0.12.125
auth02.ns.uu.net. 172800 IN A 198.6.1.82
phloem.uoregon.edu. 172800 IN A 128.223.32.35
phloem.uoregon.edu. 172800 IN AAAA 2001:468:d01:20::80df:2023
;; Query time: 13 msec
;; SERVER: 2001:dc3::35#53(2001:dc3::35)
;; WHEN: Tue Feb 22 14:16:08 2011
;; MSG SIZE rcvd: 259
この中のlttnetが、Libia Telecom and Technologyです。いかにもリビアのテレコムのような名前です。
digの結果を見ると、lyは5つのDNSサーバによって運営されています。これは全て推測ですが、2つがリビア(dns.lttnet.netとdns1.lttnet.net)に、2つがアメリカ(uunetとオレゴン大学)に、1つ(ns-ly.ripe.net)がヨーロッパにあるようです。
「 5つのうち3つがリビア外なら問題ないんじゃない?」と思うかも知れませんが、実はそうでもなかったりします。
dns.lttnet.net以外には「使える期間」が決まっています。次はSOAレコードを見てみましょう。
SOAレコードを見る
次に、リビアのccTLDであるlyをdigで調べてみます。するとSOAレコードが登場します。
> dig ly.
; <<>> DiG 9.4.3-P2 <<>> ly.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31851
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;ly. IN A
;; AUTHORITY SECTION:
ly. 117 IN SOA dns.lttnet.net.
khaleds.lttnet.net. 2011022217 3600 900 2419200 600
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 22 13:14:44 2011
;; MSG SIZE rcvd: 78
このSOAレコードというのは、Start of Authorityの略で、直訳すると「権威の開始」という意味になります。リビアのccTLDであるlyに関して考えると、lyというドメインのSOAは以下のようになります。
@ IN SOA dns.lttnet.net. khaleds.lttnet.net. (
2011022217 ; Serial
3600 ; Refresh
900 ; Retry
2419200 ; Expire
600 ; Negative cache TTL
)
細かい部分は「SOA」という単語でWeb検索して調べていただくとして…、今回注目するのはExpireの部分です。
Expireは、dns.lttnet.netが利用不能な状態が続いた時にセカンダリDNSサーバの結果をどれだけ使っても良いかを示しています。今回のbit.lyに限定して考えると、dns.lttnet.netが接続不能になったときに、アメリカやヨーロッパに設置してある(もしくは、してあると思われる) .lyのセカンダリDNSサーバをどれぐらいの期間使い続けられるかということになります。
このExpireの値は秒数で表現されますが、lyでの値は2419200です。2419200を3600(1時間の秒数)で割ると672になり、672を24(1日の時間数)で割ると28になります。ということで、lttnet.netが何らかの理由で停止し続けても4週間は機能するかも知れません。
( ただし、それはオレゴン大学とuunetとripeがセカンダリを続けてくれたらという条件がつきます。それらのセカンダリがセカンダリとしての機能提供をやめてしまった場合、状況が変わります)
まとめ
ということで、たとえばリビアのインターネットが完全に停止したうえで、リビアテレコムがサービスを提供不能になってlyのプライマリDNSサーバが機能不全に陥っても、現時点ではbit.lyは28日間は使い続けることが出来そうです。
おまけ