厳選!「Geekなぺーじ」トピックス

第7回リビアのインターネットとbit.ly

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日間は使い続けることが出来そうです。

おまけ

おすすめ記事

記事・ニュース一覧