ネットワーク側から切断されてしまう!

フレッツISDNって一応"常時"のはずなのに....

なぜネットワーク側から切断される?

 フレッツISDNのNTTの公式サイトのFAQには、

 "本サービスが提供するのは、あくまで定額のダイヤルアップ接続です。通常のダイヤルアップの場合と同様にネットワーク側からのコネクション設定は行わないため、常時接続性は保証されておりません。"

 という記述が見えます(この部分です)。

 "ネットワーク側からのコネクション設定は行わない"という意味は不明ですが、実際問題としてクライアント側から切断を行わないのに、ネットワーク側から切断されることがありますし、更に数分間の間認証エラーで接続できない状況に陥ることもあります。当然フレッツADSLでも同じです。

 実は私はネットワーク側からの切断は自宅-プロバイダ間にデータが一定時間流れなかったらされるのではないかと考えて、ずっとあるインターネット上のホストにPingを送りつづけてみたのですが、それでもやはり切断されるときは切断されてしまいました。

 このため、クライアント側で全く切断を行わないように設定をし、かつデータを絶えず流しつづけていても、気が付いたら切れているということがあります。

私も色々試しましたが、結論としてこの点については

あきらめるしかありません(TT)

どうしてもいやならば、常時接続性を保証する専用線を自分で引くしかありません。

 フレッツISDN/ADSLを利用するのならば、"フレッツISDN/ADSLとは、常時接続性を保証するサービスではない"ということを頭に叩き込んで利用するしかありません。

 フレッツISDN/ADSLを利用してサーバーを運用するのならば、切断されてしまうことによって発生するサーバー運用上の障害を最小限に抑えるように、常に対策を立てながら利用/運用するしかないということになります。

 

それではどうすればいいのか?

 ネットワーク側から切断されることにより、IPアドレスが変わってしまうという点に目をつぶれば、接続し続ける事自体はそれほど難しいことではありません。具体的には、ルーターの自動接続機能をonにして、インターネット側に常時パケットを投げるようにすればいいということになります。インターネット側に常時パケットを流しつづける方法ですが、いちばん簡単なのはpingをあるホストに対して打ち続けることです。

 他のホストに打ち続けるということはあまり誉められることではありませんので、少しでも迷惑をかけるホストを減らすために、自分から一番ネットワーク的に近いホストを選んでpingを打つべきでしょう。自分から一番近いホストを調べるには、

 traceroute (適当なインターネット上のホスト名)

とコマンドラインから入力します。その結果の中で、一番上のホストが一番近いホストです。

 ちなみに、私のホストからwww.dyn.toに対してtracerouteをすると、

[ryu@ryu ~]# traceroute www.dyn.to
traceroute to www.ryo.com (209.204.227.194), 30 hops max, 40 byte packets
1 192.168.0.1 (192.168.0.1) 0.722 ms 0.647 ms 0.623 ms
2 210.130.139.65 (210.130.139.65) 29.493 ms 29.153 ms 29.681 ms
3 otmlip0.IIJ.Net (210.130.143.33) 31.425 ms 32.666 ms 31.277 ms
4 iijgate.IIJ.Net (210.130.130.1) 32.299 ms 30.881 ms 33.228 ms
5 PaloAlto-bb3.IIJ.Net (202.232.0.246) 141.999 ms 141.356 ms 142.509 ms
6 203.ATM1-0.BR2.SJC1.ALTER.NET (137.39.91.65) 149.036 ms 148.796 ms 150.394 ms
7 118.ATM2-0.XR2.SJC1.ALTER.NET (146.188.144.142) 143.394 ms 144.344 ms 141.807 ms
8 192.at-2-2-0.TR2.SAC1.ALTER.NET (152.63.51.54) 147.163 ms 146.529 ms 147.566 ms
9 127.at-6-1-0.TR2.CHI2.ALTER.NET (152.63.1.193) 222.602 ms 222.717 ms 224.425 ms
10 296.ATM6-0.XR2.CHI6.ALTER.NET (152.63.65.105) 224.719 ms 225.491 ms 224.558 ms
11 190.ATM9-0-0.GW2.CHI6.ALTER.NET (146.188.208.189) 247.034 ms 209.103 ms 207.669 ms
12 UU-ds3.axxs.net (157.130.101.114) 333.098 ms 387.951 ms 386.425 ms
13 209.204.227.194 (209.204.227.194) 403.071 ms 426.976 ms 419.814 ms

 となりますので、一番近いホストは210.130.139.65になります。一番近いホストがわかったら、

ping (ホスト名)

 と入力すれば、延々とそのホストに対してpingが送られつづけますので、万一ネットワーク側から切断されることがあっても、自動接続機能によってすぐに接続が回復されます。ちなみに、この形で延々とPingしつづけるのはUnix系のPingで、Windows系のPingは4回Pingしたら自動的に終了してしまいます。Windows系のPingで打ちつづけるには、-tオプションを使用する必要があります。

 基本的にこれでいいのですが、本当に送りつづけるのは迷惑かもしれないので、pingの-cオプションを利用して回数制限した上で、cronで例えば15分に1回実行する、といったような形を取る方がいいでしょう。このようにすれば、最大ダウンタイム15分で済みます。