バグレポート

ダイナミックDNSにおけるTP障害について

 
シノバー
ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Sunday, 28 February 2016, 10:42 AM
 

DDNS(Dynamic DNS)を用いた自宅サーバーにおいて、自宅サーバーのIPが変更されると、次のような障害が出ます。

何度も報告されていますが、たとえば https://www.jogrid.net/wi/mod/forum/discuss.php?d=349

1.  自宅サーバーのSIMに直接ログインができない。JOG Center Sim に飛ばされる。

2. JOG Center Sim から自宅サーバーのSIMにテレポートできない。他のSIMを経由することでテレポートできる場合がある

後者は JOG Center Simが再起動されるまで続き、前者は ROBUSTサーバーが再起動されるまで続きます。

この理由は、ROBUSTサーバーやSIMサーバーがDNSをキャッシュしており、それぞれのサーバーが再起動するまでキャッシュが更新されないからと、解釈されてきました。キャッシュが更新されないのはそれぞれのサーバーに問題があるのか、mono の問題なのか判然としておりません。

しかし、この理由の解釈に私は疑問を抱いています。何度かの経験で、KasumiBeachからは必ずTPできたことなどからです。

そこで実験用に自前グリッド shinogrid を立ち上げました。結論から言うと、JOGで起きているTP障害のうち、少なくともROBUSTに起因すると思われる上記1のような障害は shinogrid では起きていません。SIMサーバーに起因すると思われる上記2の障害は発生するものの、SIMサーバーを再起動しなくても、そのうち復帰し(どのタイミングなのか判然としません)、問題なくTPできるようになります。

shinogrid のROBUSTサーバーとWelcome Area である Shinobar SIMサーバーはカゴヤクラウドVPSによる固定IPです。周辺SIMである Shinobar North, Shinobar East, Shinobar South は自宅サーバーで、DDNSを利用しています。

Shinobar SIMサーバーおよびROBUST:

hg.shinobar.server-on.net

カゴヤクラウド VPS

Ubuntu 14.04

mono 3.2.8

OpenSim 0.8.2.1

Shinobar North など周辺SIMサーバー:

shinobar.server-on.net

パピーリナックス 571JP (Ubuntu 12.04 互換)

mono 2.10.8

OpenSim 0.8.2.1

 

Picture of Iseki Fumikazu
Re: ダイナミックDNSにおけるTP障害について
by Iseki Fumikazu - Tuesday, 1 March 2016, 11:10 PM
 

JOG と同じ設定でテストを行う場合は,DDNSを使用するリージョンサーバ(アドレスが変化するリージョンサーバ)は管理用サーバ群の MySQLではなくて,自前の SQLite を使用しないといけないと思うのですが,その点は(実験条件として)大丈夫でしょうか?

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Wednesday, 2 March 2016, 9:52 AM
 

> DDNSを使用するリージョンサーバ(アドレスが変化するリージョンサーバ)は管理用サーバ群の MySQLではなくて,自前の SQLite を使用

はい、そのようになっています。記述が抜けてました。

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Thursday, 10 March 2016, 5:12 PM
 

今日の午後2時ごろ自宅のIPが変わりました。shinogrid に入ってみると、今回も ROBUSTに問題は見られず。SIMサーバーでTP障害が見られましたが、SIMサーバーを再起動しなくてもTP障害は解消しました。TP障害解消のきっかけも判明しました。以下にその様子を報告します。

1. 自宅IPが変更される。DDNSに再登録。5分ほど後、VPSのDNSに反映を確認後にTP実験を開始。

2. (しのぐりの) shinobar( VPSでIP固定) に問題なくログイン。しかし Shinobar South など周辺リージョンは自宅サーバー(DDNS)で、これらリージョンは見えないし、世界地図に現れるもののテレポートできない。

3.いったんログアウトし、今度は自宅サーバー(DDNS)の Shinobar South をログイン先に指定すると、Shinobar South に問題なく立てる。Shinobar South からは 固定IPの Shinobar や周辺のDDNSリージョンもすべて見え、テレポートもできる。しかし固定IPの Shinobarに入ると、DDNSの周辺リージョンは(ビューアーにバッファされているからか)見えるが、そこへはテレポートできない。

4. ふたたびログアウトし、また 固定IPのShinobar にログインする。周辺のDDNSリージョンは視界から消えていて、(世界地図には現れるが)テレポートもできない。すなわち、2と同じ状態。

5. この状態から世界地図で別のDDNSリージョンである NextDarwin1 を検索し、テレポートする。(ここのIPは変わっていないのでしょう)テレポートできた。

6.  NextDarwin1から Shinobar へテレポートで戻る。すると、さっきまで見えていなかった周辺リージョンが現れ、テレポートもできるようになった。

以降ログアウト、ログインしてみたが、TP障害は無くなっていた。

 

以上の shinobargrid での経験と、JOGとでは次のような違いがあります。

1. JOGではIPが変わった自宅サーバーSIMへの直接ログインができなくなる。

2. JOG Center SIMから自宅サーバーSIMへのTP障害が起きたとき、別のリージョンを経由するとTPできることがありますが、JOGの場合は、そこから JOG Center Sim へ戻っても自宅サーバーSIMへの直接TPは、相変わらずできません。JOG Center Simが再起動されるまでTP障害は続きます。

 

Picture of Iseki Fumikazu
Re: ダイナミックDNSにおけるTP障害について
by Iseki Fumikazu - Thursday, 10 March 2016, 11:34 PM
 

詳細なレポートをありがとうございます.

ところで mono のバージョンはいくつでしょうか?

つい先ほど mono の最新バージョン 4.3.2 で ServicePointManager.DnsRefreshTimeout がサポートされたとの記述を見つけました(詳細は未確認).

JOG の mono のバージョンは 4.2.1 です.

 

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Friday, 11 March 2016, 9:40 AM
 

しのぐりの各サーバーのスペックです。

Shinobar SIMサーバーおよびROBUST:
hg.shinobar.server-on.net(固定IP)
カゴヤクラウド VPS 1GB HDD
Ubuntu 14.04
mono 3.2.8
MySql 5.5
OpenSim 0.8.2.1
Shinobar North など周辺SIMサーバー:
shinobar.server-on.net (Dynamic DNS by MyDNS)
自宅サーバー
パピーリナックス 571JP (Ubuntu 12.04 互換)
mono 2.10.8
Sqlite(OpenSim内蔵)
OpenSim 0.8.2.1


NextDarwin1 の 詳しいことは聞いていませんが、推定:

mygrid.no-ip.org (DynamicDNS)
自宅サーバー
FreeBSD 8.4
mono 4.0.3
Sqlite
OpenSim 0.8.2.1


間違いがあれば訂正ください>ヨーダ様。

今回は NextDarwin1との往復でTP障害が解消したとの報告ですが、以前NextDarwin1が無かったときにもTP障害とその解消を経験しています。そのときは自宅サーバー上のリージョンの1つをグローバルIPで記述し(そうすれば行き来できる)、そのリージョンとの往復で解消したのだろうと、今は思っています。

Picture of Iseki Fumikazu
Re: ダイナミックDNSにおけるTP障害について
by Iseki Fumikazu - Friday, 11 March 2016, 11:40 AM
 

mono のバージョンが古いので,DnsRefreshTimeout のせいではないようですね.

難しいですね.

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Tuesday, 29 March 2016, 9:20 AM
 

ShinogridにおいてダイナミックDNSでIP変更によるTP障害は、いったん別のSIMへ飛んで戻れば解消すると、さきに報告しました。しかし、再現する場合とそうでない場合がありました。必ずしも一度の往復ですっぱり解消するわけではありません。何度か試していると解消する場合があります。

固定IPのSIMとDDNSのSIM(Region)が隣接している場合に、固定IPのSIM(Region)にアバタが出入りすることで隣接Region同士の通信が発生します。それがタイムアウトで失敗したら、次の機会には FQDNではなく、DNSを引き直したうえでIPを使ってアクセスするみたいです。それでアバタが何度か出入りするうちに障害が解消されるようです。タイムアウトが生じるまでしばらく滞在することがコツのようです。

ということは、他のSIMに飛ばなくても、ログイン、ログアウトを繰り返すことだけでも解消しそうですが、それは確認できてません。

Picture of Xpyoda Janus
Re: ダイナミックDNSにおけるTP障害について
by Xpyoda Janus - Wednesday, 30 March 2016, 10:28 PM
 

記事をみおとしていました。かなり遅いリプライになってしまいますが(^_^;)...

NextDarwin1 の 詳しいことは聞いていませんが、推定:

mygrid.no-ip.org (DynamicDNS)
自宅サーバー
FreeBSD 8.4
mono 4.0.3
Sqlite
OpenSim 0.8.2.1

ご推測どおり、この環境で動作しています。

そして、2016-03-06から、24日間動作し続けています。OpenSim 0.8.2.1 Release版は、安定しています(でも、まあ、ほとんどたこ焼き島ですけど...)。

# show uptime
Time now is 3/30/2016 10:04:13 PM
Server has been running since Sunday, 3/6/2016 1:16:33 PM
That is an elapsed time of 24.08:47:39.7184300

現時点で、メモリ消費も top コマンドで、378M(常駐 194M)ぐらいですんでます。

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 3333 opensim     118  44    0   494M   250M ucond   0 486:54  2.88% mono-sgen
70845 opensim      71  44    0   378M   194M ucond   0 791:19  0.00% mono-sgen
...

IPアドレスの変化は、次のようになっています。ところどころ、ログが抜けていることもあるようですが、IPアドレスの変化は追えると思います(dhisという自前でうごかしているDynamicDNSサーバーのログから切り取りました)。

Mon Mar  7 05:35:55 2016 : -> offline (1001) mygrid.no-ip.org  [118.2.34.163]
Mon Mar  7 05:37:19 2016 : -> online (1001) mygrid.no-ip.org  [122.20.91.223]
Mon Mar  7 18:03:36 2016 : -> online (1001) mygrid.no-ip.org  [122.20.91.223]
Mon Mar  7 19:54:00 2016 : -> online (1001) mygrid.no-ip.org  [122.20.91.223]
Thu Mar 17 17:43:56 2016 : -> online (1001) mygrid.no-ip.org  [122.20.91.223]
Thu Mar 17 18:00:52 2016 : -> online (1001) mygrid.no-ip.org  [122.20.91.223]
Sun Mar 27 11:45:38 2016 : -> offline (1001) mygrid.no-ip.org  [122.20.91.223]
Sun Mar 27 11:47:01 2016 : -> online (1001) mygrid.no-ip.org  [123.223.65.115]
Sun Mar 27 12:13:10 2016 : -> offline (1001) mygrid.no-ip.org  [123.223.65.115]
Sun Mar 27 12:14:33 2016 : -> online (1001) mygrid.no-ip.org  [122.20.82.208]

ご参考までに。

 

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Friday, 8 April 2016, 12:13 PM
 

昨日4月7日午前10時ごろ、我が家のIPが変更されたので、しのぐりで再実験しました。5分後、DDNSのSIMにログインでき、固定IPのSIMにも移動できましたが、逆はできません。

その後固定IPのSIMにログインしましたが、周辺のDDNSのSIMは見えないし、TPもできません。そこで何度もログイン、ログアウトを繰り返しましたが、状況は変わりませんでした。ログイン後の周辺IMとの通信は約1分で、ログアウト時の通信は約10秒でタイムアウトが発生するようです。

しばらく繰り返してもダメだったので、約30分後にしのぐりからJOGへ跳び、再びしのぐりに戻ると周辺SIMが見え、TPも問題なくできるようになりました。

以上の実験から、ログイン、ログアウトによるアバタの出入りではTP障害は解消せず、どこか(遠くの?)SIMへTPすることが無いと解消しないようです。30分という時間も関係してるかもしれません。

いずれにせよ、しのぐりではIPが変更されたDDNSのSIMへ5分後には直接ログインできています。少なくともROBUSTサーバーに関して、mono のDNSキャッシュは障害の原因にはなっていないと思われます。JOGでのTP障害には別のところに原因があるのではという、私の疑いは変わりません。

シノバー
Re: ダイナミックDNSにおけるTP障害について
by Shinobar Martinek - Thursday, 21 April 2016, 1:09 PM
 

4月18日未明 1時半ごろにIPが変わり、その日の10時半ごろ、しのぐりに入ってみましたが、とくに何もしなくても、すべてのリージョンへTPできました。

4月20日午後10時半ごろにまたIPが変わりました。翌日の12時半にログインしましたが、やはりTP障害はありません。

しのぐりの場合、(30分〜)半日以下の時間経過で、とくに何もしなくてもTP障害は解消するようです。

さて、JOGでも実験のため Shinobar Annex 以外の周辺リージョン群 を FQDN表記(shinobar.server-on.net)にしております。この間にJOGでのサーバー事故やSIM再起動がありました。現在、JOG Center Sim などから、これらのリージョンへのテレポートはできます。しかし現在、FQDN表記のリージョンへは直接ログインできません。

直接ログインできなくともログイン後TPできるのですが、他のグリッドからこれらのリージョンへ直接HGテレポートができないのは困りものです。またスタンドアロン+HGの自宅サーバーのアバタがJOGに入れない(アバタの認証に失敗する)こともやっかいです。

JOGのSIMサーバーはともかく、JOGのROBUSTサーバーがらみのTP障害は、JOG固有の問題に思えます(OSGでも特定リージョンに直接TPできないことは、たまにあるようですが)。サーバーやmonoのバージョンに関わらない、PCあるいはJOGのネット構成などに問題があるのではと、私は疑ってます。