• 加筆
  • 2021.11.26
  • 修正
十一月
15
月曜日
2021

Flets光クロスのレンタルルータの挙動がおかしい

2021年4月頃に光コラボ回線の事業者さんからフレッツ光クロスへの変更を提案する営業電話がかかってきた。フレッツ光クロスはNTTのフレッツの中でも今の所最上位のサービスで10Gbps回線をベストエフォートで提供するサービスとなっている。提供エリアがそもそもそんなにまだ広くなく、申し込みも少ないのかもしれない。光コラボの回線事業者さんを応援したい気持ちもあったし、今の契約もフレッツNEXTというそこそこ古い契約で200Mbpsのベストエフォート回線だ。まぁ10年前に引っ越してきた際に契約したものなので。

という事で契約変更依頼。1ヶ月後位に工事日が設定された。ベストエフォートとはいえ10Gbpsの回線。そんな回線に対応するルータは民生向けにはまだ発売されておらず、スモールビジネス向けの機器を買おうとすると30万近くしてしまう。ちょっと厳しいよね、って事で月々500円でお借りすることにした。WiFi部分も含めるとコンデンサなどが劣化してしまうこともあり、購入するよりレンタルする方がコスパ良かったりもするのでオススメではある。

ただしちゃんと動けば。

不具合の気づき

夏前頃から、時折回線が途切れる事を感じていた。しかしまぁ民生品の装置でもあるしネットワークが切れることはまれにあるかな、なんて思っていたのであまり気になっていなかった。しかし、徐々にその頻度が上がっていく。先月くらいに流石におかしくないか?と思いはじめ、装置に入りログを眺めてみた。

ログは過去1000件分保管されており、それより前のものは残っていない。残念だが仕方ないので直近1000件分でどれだけ再起動を繰り返しているか調べた。

なお再起動した事を確認するにはいくつかの文字列で探す事が出来るが、 reboot で探すと良いだろう。この文字列はユーザーが手動で再起動操作を行なった際にも出るので、その分は除外している。下記のリストは勝手に再起動しているものだけ抽出した。

なおユーザ操作による再起動はこのような感じでログに残る。

473. 2021-07-18 19:21:11 JavaVM正常停止(reboot)
474. 2021-07-18 19:21:11 ユーザ操作による再起動

勝手に再起動した頻度

There are 1000 entries.
   17. 2021-10-14 17:35:28 JavaVM起動(reboot)
   27. 2021-10-14 08:03:32 JavaVM起動(reboot)
   51. 2021-10-10 21:27:11 JavaVM起動(reboot)
   73. 2021-10-07 16:21:40 JavaVM起動(reboot)
   96. 2019-01-01 00:00:41 JavaVM起動(reboot)
  107. 2021-10-05 08:56:03 JavaVM起動(reboot)
  124. 2021-10-04 08:49:59 JavaVM起動(reboot)
  158. 2021-09-28 17:12:07 JavaVM起動(reboot)
  171. 2021-09-27 14:57:28 JavaVM起動(reboot)
  181. 2021-09-26 09:55:04 JavaVM起動(reboot)
  213. 2021-09-20 07:03:26 JavaVM起動(reboot)
  224. 2021-09-18 20:55:43 JavaVM起動(reboot)
  236. 2021-09-16 09:49:01 JavaVM起動(reboot)
  252. 2021-09-13 00:34:16 JavaVM起動(reboot)
  295. 2021-08-31 06:00:25 JavaVM起動(reboot)
  323. 2021-08-22 18:27:34 JavaVM起動(reboot)
  357. 2021-08-15 09:02:57 JavaVM起動(reboot)
  370. 2021-08-13 12:38:50 JavaVM起動(reboot)
  384. 2021-08-11 12:15:18 JavaVM起動(reboot)
  414. 2021-07-31 05:09:34 JavaVM起動(reboot)
  425. 2021-07-30 00:46:32 JavaVM起動(reboot)
  458. 2021-07-21 02:58:44 JavaVM起動(reboot)
  469. 2021-07-18 19:22:19 JavaVM起動(reboot)
  490. 2021-07-15 10:47:09 JavaVM起動(reboot)
  500. 2021-07-14 07:33:58 JavaVM起動(reboot)
  519. 2021-07-09 22:10:14 JavaVM起動(reboot)
  531. 2021-07-07 16:34:27 JavaVM起動(reboot)
  572. 2021-06-25 02:15:56 JavaVM起動(reboot)
  634. 2021-06-07 10:52:56 JavaVM起動(reboot)
  674. 2021-05-28 10:01:01 JavaVM起動(reboot)
  762. 2021-05-18 15:23:13 JavaVM起動(reboot)
  770. 2021-05-16 22:34:03 JavaVM起動(reboot)
  801. 2021-05-05 21:30:34 JavaVM起動(reboot)
  886. 2021-04-24 21:17:01 JavaVM起動(reboot)
  896. 2021-04-24 01:02:10 JavaVM起動(reboot)
  908. 2021-04-22 02:56:28 JavaVM起動(reboot)
  916. 2021-04-21 01:32:46 JavaVM起動(reboot)
  998. 2021-04-19 18:02:00 JavaVM起動(reboot)

頑張って1週間、ダメだとその日のうちとかそんな感じで再起動している。大体平均すると3日に1回と言う感じだ。深夜だったり早朝だったり利用してない時間に再起動してくれる分には全く問題ないが、テレワーク中にぶっつり切れてしまうのは中々に困る。当初はホームゲートウェイ以外の機器であるWiFiルータもかなりの安物を使っているのでそちらの被疑も考えていたが、有線接続に切り替えたデスクトップPCでもWiFi機器類と同じタイミングで切れている事が確認されたので、これはWiFiルータではなくNTTからレンタルしているHGWが悪いのでは、と切り分ける事が出来た。

原因を探る

安直に毎朝仕事を開始する前に再起動しておけばいいのかな、なんて思っていたのだが、それもナンセンスだよねぇ。って事で原因を考察してみる事にした。真っ先に頭に浮かんだのは2点

  • パケット過多によるCPU過負荷
  • 利用セッション過多によるNAPTテーブル溢れ

ただ、ログからわかるのは深夜の3時とかにもこの再起動は発生しているという事。深夜の3時にパケット過多になる事もNAPTが溢れてしまう事も考えにくい。

そもそもこの装置はどれだけNAPT出来るのか?とざっくり調べた感じでは4096セッションっぽいので2人暮らしの我が家なら余裕、なんて思ったりもしたのだが、よくよく考えるとテレワークによって仕事中は複数PCを起動し、場合によってはWebexやTeamsでWeb会議を開きっぱなしにしていたりする。ただしWebexもTeamsもIPv6でセッションを持っていると思うので、多分NAPTが溢れることはなさそう。ただそれ以外でも色々繋いだり調べごとで複数端末を使っているので、テレワークの時間中はNAPT溢れている可能性はあるかなぁ。気づかないだけでNAPT溢れによる速度低下は発生しているかも知れない。しかし切断・ルータのリセットとなると話は別だ。

なんといっても深夜3時にも再起動しているのでNAPTテーブル溢れによるメモリリークなどは再起動の原因とするには常識的に考えてちょっと考えにくい。

原因不明

色々考察はして見たものの、原因を特定するには情報が足りなさすぎるので一個人では原因究明は不可能です。Twitterなどを検索してみても同じように困っている方がいらっしゃる様なので、早くメーカーのエンジニアに声が届いて修正されるといいのだけれど…

Fletsに関する技術ついて学ぼう

原因を特定していくに当たってはそもそもどういう仕組みでネットワークが作られているか理解する必要がある。という事で文献を探してみたら、JPNEさん監修でこのPDF無料で公開しちゃって本当にいいの?!という位高品質なドキュメントとなる 徹底解説v6プラス と言う本が見つかった。自宅の光ケーブルはどこに繋がるか、その中でJPNEさんが担う役割はどこか、と言った学びとともに、IPoE方式とPPPoE方式の違いから、MAP-EやDSliteと言うIPoE方式の中で使われる技術仕様まできっちり書かれている。とても良いドキュメントなので一読される事をオススメしたい。

ホームゲートウェイでの挙動が書いてあった

ひかり電話の契約があり、 NTT 東西のひかり電話ルーターまたはホームゲートウェイを利用する場合には、 MAP-E の機能を提供する JPNE のソフトウェアをホームゲートウェイにインストールする必要があります。ホームゲートウェイを利用する形でv6 プラスの利用を申し込むと自動的にインストールされるので、エンドユーザ側で6.2 ひかり電話の有無で変わる IPv6 ネットワーク構成の作業は不要です。

ひかり電話の契約はないが、フレッツ光クロス契約だと10Gbpsの市販ルータがない事もありホームゲートウェイをレンタルする事になります。実際にはレンタルせずとも良いらしいのですが、一部ISP等では ユーザーは必ずホームゲートウェイをレンタルする と言う契約導線になっている様です。すると何が起きるか。

JPNE のソフトウェアは、 NTT 東西による「フレッツ・ジョイント」というサービスによって配布されています。フレッツ・ジョイントは、事業者がホームゲートウェイに対してフレッツ網からソフトウェアを配信できるようにするサービスです。JPNE が NTT 東西とフレッツ・ジョイントの契約を行っており、これを通じて JPNE のソフトウェアがユーザのホームゲートウェイにインストールできるようになっています。

フレッツ光クロスを契約し、その際にホームゲートウェイ(レンタルルータ)を不要としても フレッツクロス契約の人はホームゲートウェイを利用しているものと勝手に判断 されて、このフレッツ・ジョイントを用いたJPNEソフトウェアの配信が設定されます。そうすると自前でルータを用意して接続しても本来MAPルール配信サーバからMAPルールを取得するシーケンスであるのに、不要なのにJPNEソフトウェアを配信のシーケンスが走り、それが完了しないとMAP-Eルールの配信が始まりません。結果JPNEソフトウェアの配信がエラーになるので、そこで処理が完了。IPv6での通信はできるのですがMAP-Eルールが処理されない事からIPv4での通信路が確立しない事になります。

この JPNEのソフトウェア こそ、ログの再起動の際に出てくる文字列 JavaVM になります。

原因がこの JPNEのソフトウェア 側にあるのか、それともJavaVMを動作させるホームゲートウェイ側にあるのかは不明ですが、何らかの不具合がXG-100NEの中で発生し再起動してしまうようです。

機器交換

最終的には結構業務時間に再起動を起こす事が多くなってきました。最近は大事な会議に参加する事も多いためあまりに頻度が多いと、これだからテレワークは。出社して仕事したら?みたいなマインドが社内に生まれてしまうのでそういうのは避けたい。こんなに頻繁に再起動しては困るのでユーザーサポートにサポートを依頼。

光コラボの弱点

ドコモ光を契約しているのでいわゆる光コラボです。まずはドコモ光の故障受付に。状況を伝えるのにログとかもみて欲しかったのでWebフォームでまずはコンタクト。程なくして折り返し電話がかかってきます。情報を先に送っているので話は早い。でも結局光コラボなのでドコモでは故障対応が出来なくて、NTTの故障受付に転送されるという。という事でエスカレーションをお願いし、エスカレーション先からの電話を待った。

NTT故障受付からの電話

その日の深夜に故障受付から電話が来た。23時近かったのでこんな時間でも相談に乗ってくれてありがたいなー、と思いつつ、結局故障受付の方なのでそれほど技術に明るいわけでもなく、NAPTやMAP-Eと言った単語を交えて状況説明してもピンと来てなかったみたい。仕方ない。

結局故障対応は訪問になる、ということで、ハード故障では無いしなぁ…とは思いつつも、エンジニアの方に状況をお伝えしないと始まらないだろう?との思いから故障対応をお願いした。

訪問対応

数日後NTTのエンジニアさんが来訪。状況説明するために障害ログを抜き出し再起動の頻度をマーキングしたファイルを用意しておき、大画面のモニタに大きく映して状況をお伝えするプレゼンを数分行い、せっかく来ていただいたがハード故障とは考えていない旨をお伝えした。

念のためという事で光のレベル測定を計測するも当然問題なし。ハード故障とは考えられないのでログを取得して持って帰って頂いて状況確認していただければいいよ?と提案したが、来たからには交換して帰らないと、という事で交換して頂いた。持ち帰ったハードを解析していただくのも場合によっては必要だと思うのでそれはそれで良いかもしれない。

機器交換後

機器を交換してしばらくは安定して動いていた。ここ最近は大体3〜4日間隔で落ちていたので機器交換後に1週間再起動しなかったので、お?回復?!なんて思った矢先にやはり再起動を繰り返すようになった。

設定チューニングでどうにかならないか悪あがき

NAPTテーブルが溢れたメモリリークの線も全く消えたわけでもないし、チューニングで少しはマシに出来るかな?という事でチューニングを試みる。

http://ntt.setup:8888/t/ にログインするとホームゲートウェイにダウンロードされたアプリケーション一覧が表示される。ホームゲートウェイは全ての機能をファームウェアとして機能を全て持っている訳ではなく、必要な機能をJavaアプリケーションをダウンロードし利用するようになっている。今回はIPoEを用いるプロバイダを利用しているのでIPoEに関するアプリをダウンロードして動かしている感じ。このホームゲートウェイには電話用のモジュラージャックもあり、現在は利用できないが様々NTT局社側の設備などが整ったら現在は提供されていないひかり電話サービスも利用できるようになるだろう、その際には契約したらひかり電話サービス用のアプリがダウンロードされて使えるようになる、という感じになる。仕組みとしてはよくできていると思う。

アプリのチューニングで各種タイムアウト値を変更できる、これを少し短めに設定する事でアプリやブラウザ起動時のセッション保持は短くなるので体感として若干遅くなる場合があるが、よりNATテーブルが溢れにくくなるようにすることが出来る。

みたいな設定をしてみたものの、全く関係なく普通に再起動を繰り返しているので、色々悩んで検索してこのページに辿り着いたみたいな方には申し訳ないですが、チューニングしても無駄っぽいです。

MAP-EでもDS-Liteでも起きているらしい

様々インターネットで調べると昨今のISPはMAP-Eでサービスしている所が多いのでMAP-Eの事象が多いのだが、DS-Liteでも同様に再起動を繰り返す事象が発生しているようだ。MAP-Eに関する部分ではなくアプリの共通部分的な所であったり、JavaVMの動作管理を行なっているFirmwareだったりが怪しいのかなぁ。と言う所感。

今後の対応

この不安定なネットワークを利用し続けるのは正直しんどいので、フレッツ光クロスを出来れば解約したいと考えています。Nuro光とか他社に行くのでは違約金なども発生してしまいますし、10Gbpsの世界を諦めてフレッツ光クロスからフレッツ光ネクスト ギガラインサービスとかに変更できたら良いなと思っています。フレッツ光ネクストに変更させてもらえなかったとしても、XG−100NEをこの不安定のまま使い続ける気もないので、在宅勤務への投資という事でブランチ向けのルータ NEC UNIVERGE IX2207 を購入しました。新品で。

中古でも十分だとは思うのですが、お仕事にも用いる所ですしNW機器って結構コンデンサまわりが痛みやすいですし、ちゃんとFirmwareサポートも受けたいですし、投資投資。

今回は取り急ぎここまで。回線契約を変更できるのか?安定したネットワークを取り戻すことが出来るのか? 乞うご期待。