2009年11月29日日曜日

ロシア版ポトリスのDLが遅い原因

ゲームクライアントのダウンロードが遅いのはDNSラウンドロビン経由で応答のないサーバーにアクセスしてしまっているためだと分かりました。その調査レビューです。

結論から書くとこちらですぐにダウンロードできる! ※できなくなってるかもしれません


ことの発端

公式からダウンロードしようとすると異常に遅い!公式自体も落ちていることがあるみたい。

ダウンロードリンク -- ロシア版ポトリス公式
http://files.fortress2.ru/fotress2_v1.0.1_installer.exe

普通にゲームクライアントをダウンロードできるときもあるのですがリンクをクリックしてからダウンロードが始まるまで30分待たされたり、"Bad Request (Invalid Hostname)"と表示されたり挙動がまちまち…近くて遠い国、ロシアだからかなぁ?などと漠然と考えていたのですがもう少し具体的に調べてみました。


7IPへのDNSラウンドロビン

files.fortress2.ruのDNSレコードを取得してみる。
$ dig files.fortress2.ru
...
;; ANSWER SECTION:
files.fortress2.ru. 30804 IN A 92.241.170.96
files.fortress2.ru. 30804 IN A 92.241.170.101
files.fortress2.ru. 30804 IN A 92.241.170.104
files.fortress2.ru. 30804 IN A 81.177.139.5
files.fortress2.ru. 30804 IN A 81.177.139.22
files.fortress2.ru. 30804 IN A 81.177.139.23
files.fortress2.ru. 30804 IN A 92.241.170.90
...
7つのIPアドレスにDNSラウンドロビンされてることが分かった!負荷分散のためでしょうか。


正常なホストは1つだけ

この7つのIPアドレスのホストが正常にWEBサーバーとして動作してるか調べてみる。
$ nmap -PN -p T:80 92.241.170.96 92.241.170.101 92.241.170.104 81.177.139.5 81.177.139.22 81.177.139.23 92.241.170.90

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-29 22:24 JST
Interesting ports on 92.241.170.96:
PORT STATE SERVICE
80/tcp filtered http

Interesting ports on 92.241.170.101:
PORT STATE SERVICE
80/tcp filtered http

Interesting ports on 92.241.170.104:
PORT STATE SERVICE
80/tcp filtered http

Interesting ports on 81.177.139.5:
PORT STATE SERVICE
80/tcp open http

Interesting ports on 81.177.139.22:
PORT STATE SERVICE
80/tcp open http

Interesting ports on 81.177.139.23:
PORT STATE SERVICE
80/tcp filtered http

Interesting ports on 92.241.170.90:
PORT STATE SERVICE
80/tcp filtered http

Nmap done: 7 IP addresses (7 hosts up) scanned in 3.11 seconds
TCP80番ポートがopenなホスト=正常にWEBサーバーとして動作してるホストは、7つのうち2つ、81.177.139.5と81.177.139.22だけ!しかも、後者は"Bad Request (Invalid Hostname)"が返ってきてゲームクラアントのダウンロードができない状態でした。

つまり、正常なホストは1つだけでした。


まとめ

ホスト名"files.fortress2.ru"は7つのIPアドレスにDNSラウンドロビンされているが、そのうち1つのIPアドレス(81.177.139.5)のホストだけしか正常に動作してない、ということのようです。正常に動作してないホストのIPアドレスがWEBブラウザーにキャッシュされて困ってたみたい。

早い話が下のURLからならゲームクライアントのダウンロードがすぐに始まる。
※ダウンロードできなくなっているかもしれません

http://81.177.139.5/fotress2_v1.0.1_installer.exe

4game.ruの管理人さん、対応してくれ!…とロシア語でお願いできれば良いのだけれど。以前、別件でinfo@4game.ruに問い合わメールを送ったんですがリジェクトされました(gmailから送った)。文面は英語で書いたのだけどスパム扱いされたのだろうか…ロシアとロシア語に明るい方いらっしゃれば、ぜひ公式に問い合わせてみて頂けないでしょうか。


参考リンク

チープなDNSラウンドロビンは高価なロードバランサの座を奪い返せるか -- CNET Japan
http://japan.cnet.com/blog/neta/2006/08/10/dns_ecfc/

記事の趣旨は本件と異なるのですが参考になりました。

DNSラウンドロビン -- ウィキペディア(日本)
http://ja.wikipedia.org/wiki/DNS%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%AD%E3%83%93%E3%83%B3

負荷分散に使われる技術らしい。でも色々と問題点もあるみたい。


環境

OS: Linux
debian-lenny
dig-9.5.1-P3
nmap-5.00 (公式ソースmake)


以下は以前に書いたポトリスに関する記事です。

ロシアでポトリス
ロシアでポトリス2
Wineでロシアでポトリス