自宅JCOMが繋がらなくなって自力で復旧させた話
7月に突然JCOMが繋がらなくなり、色々やって復旧した話をこれからしていこうと思う。
内容
不具合発生
7月上旬、自宅で使っているChrome Bookで電子書籍をダウンロードしようとしたらネットワークエラーで途中終了し「なんだダウンロード失敗したか、再度ダウンロードだな」とダウンロードをかけたところ今度は全くダウンロードができず「サーバが混んでるか、混むのが解消するまでSNSでも見るか」とSNSのビューワーを立ち上げたらこちらも接続できないという表示が。
「???」となりながらWebブラウザを立ち上げてYahooやGoogleを見ようとしたら軒並み接続できず。
「J-COMの障害か?」と思い、スマホのモバイル接続でDowndetectorという障害情報が掲載されるサイトでJCOMをチェックしたのだが障害の情報は無く「まぁしばらくしたら回復するかな」と思い、夜も遅い時刻だったので寝る事にした。 しかしこれが1ヶ月近くも続いた騒動の始まりだった。
障害状況と確認
翌日起床後にネットワークの状態を確認したところ、昨日と変わらず「やけに長引くな」と思いつつ状況の確認を始めた。
自宅は以前書いたように自宅のネットワーク構成を変更している。
ネットワーク不具合発生時の構成はザッと書くとこのようになっていた。
通常自宅のネットワークが繋がらないという場合は以下の場合が考えられる。
1.使っているPCのファイアウォールの設定ミスでPCがネットワークから来るパケットを全て遮断している
2.アクセスポイントが機能せずに自宅のルータまで繋がらなくなっている
3.ルータの設定ミスでインターネットに繋がらなくなっている
4.DNSというサーバーと接続できなくなってドメイン名とIPアドレスの変換ができなくなっている
ということで上記1、2を確かめるため無線LAN経由で自宅ケーブルモデムルーターの管理画面へアクセスしたところ問題なくアクセスができており1と2の可能性が消えた。
そして3と4の可能性を探るためにMacBookのターミナルからpingコマンドを実行してみた。
このコマンドはコマンドを実行したマシンとネットワークのとあるサーバが通信できるかを確かめるコマンドで、通信ができる場合はサーバから返答が返ってきたことと要した時間等が表示されるコマンドである。
まずは3の可能性を確かめるためにGoogleのDNSサーバのIPアドレスである「8.8.8.8」へコマンドを実行した。
IPアドレスというのはコンピュータ個々のネットワークデバイスが持っているアドレスで実はコンピューター同士はこのIPアドレスがわからないもしくはアドレスに到達しないと通信ができないため、返答が返ってこないということはネットワーク的に問題があるということなのだが、結果としては問題なく返答が返ってきていた。
次はDNSだが、DNSとは簡単に言うとIPアドレスでしか接続できないコンピューター同士がWebブラウザ(EdgeやらChromeとかのインターネットのホームページをみるソフト)でホームページをみるためのhttp://以降の文字は実はIPアドレスと紐づいており「この名前のサーバのIPアドレスはこれ」と伝えるサーバでこれと通信ができていないということはhttp://以降の文字を入れてもIPアドレスが取れずに通信ができないということになる。
4の可能性を確かめるためにはwww.yahoo.co.jpやwww.facebook.comにpingコマンドを実行して返答が返ってくるかを確かめる(ただしpingコマンドは下手なアドレスに対して実行するとネットワーク攻撃と見なされることもあり、実行する場合は上記のようなメジャーなところにして欲しい)結果としては返答が返ってきており、ネットワーク接続的には問題はないということになり、状況は暗礁に乗り上げてしまった。
サポートその1~~ケーブルモデム交換
上記のような状況であることまで確認してJCOMのサポートに連絡、やり取りをした結果ケーブルモデルルーターを交換ということになり、日時を調整してサポートの方が到着してケーブルモデムルーターを交換、交換直後は問題なく接続ができていたため「ケーブルモデムルーターの不具合だったか」と思っていたのだが、2〜3時間後に状況が元に戻ってしまいその日のうちにサポートに連絡するという事態になってしまった。
サポートその2~~ケーブルTV関係接続機器の交換
ケーブルモデムルーターで状況が改善しないということで、再度サポートのお世話になることに、実の話7月の半ばからリモートワークが始まる事が決まっており、このままでは業務ができない状況に陥る恐れがあったためかなり焦っていた。 再度サポートが訪問して今度は自宅の接続機器の交換ということになり、交換をしてもらったのだが状態は解消せずサポート要員の方もできることはここが限界ということで終了。
ただし訪問していただいたサポートの方の話によると、基地局から自宅マンションのケーブル回線(自宅マンションは、地上デジタル化の際に電波対策地域となっていたためケーブル回線が引きまわされている)と自宅までの通信はできているのは確認できているが、通常一定を値を示す通信状況が自宅のみ振幅しているとの話で、接続機器の不調を疑ったが交換しても不調なためそれが何が原因かはわからないという話で、現状では対応できるのはここまでが限界という話だった。
ということで、自宅の回線が不調のため旅行の際に使っているポケットWiFiルーターにリモートワーク用のPCを接続して当面はリモートワークを行うことにして、対応を考えることにした。
意外なキッカケ
自宅のネットワークが不調のためポケットWiFiルーターでリモートワークが始まり、リモートワーク用のPCは一応問題なく接続が行えていて一安心といったところだったのだが、ある時仕事中にリモートワーク用のPCのステータスを確認したところ自宅のネットワークに繋がっていることに気づき「自宅ネットワークが不調なはずなのに何で繋がって使えてるんだ?」となり、業務終了後にリモートワーク用のPCを調べていたところリモートワーク時には勤務先のネットワークとVPNというPCと勤務先のネットワークをソフトウェアを使って仮想的に勤務先のネットワーク内にいる状態になっていると問題なくインターネットのサービスが使えることに気いた。
「もしかして」と以前自宅のストレージに問題があった際にProtonDriveというサービスに申し込んでいて、登録した際にProtonVPNというVPNサービスが使える様になっていた。
そのため試しに自宅のMacBookProでProtonVPNに接続してみたところMacBookProで問題なくWebやメールが使えるという状況になった。
その頃たまたまネットワーク関係の人と飲む機会があり自宅の状況を説明したところ「もしかしてケーブルモデムルーターのNATテーブルが溢れてない?」という話に。
※この先は自分のちょっと曖昧なネットワークの知識を元にして書いているので、これより先はネットワーク系の皆さん間違っていたらご指摘お願いいたします。
NATというのは、家庭のネットワークは内線電話とすると、インターネットという外線に繋ぐ場合、自宅のPCのIPアドレスを一旦自宅のルーターに割り振られた外線のIPアドレス置き換えて繋ぐ仕組みというと分かりやすいだろうか
NATテーブルというのは「現在のインターネットサービスを利用している(これをセッションといったりする)リスト」といったところで、これが一杯になってしまうと内部のネットワークから外部のサービスへ繋げなくなってしまい結果的にネットワークが使えなくなってしまうということになる。
試しに自宅のRTX1200でNATのセッションを見てみると6000くらいのセッションがあり、RTX1200は20000セッションが限界なので問題ないがケーブルモデムルーターのNATテーブルが溢れているということであれば説明がつく。
他のネットワーク関係の方に聞いてみたところ家庭用のルーターだとNATテーブルは大体2000前後で設定されているのではとのことで、これはほぼ確定ではなかろうかということになった。
VPNを使うと繋がるのはVPNのクライアントとサーバを接続するとその間にトンネル接続という接続がなされてVPNの接続先のネットワークを介してインターネットに接続される状態になるため、自宅のNATの制約を受けなくなるからであると考えられる。
完全復旧?
ということでVPNを使えば個々のPCは問題なく使えるのだが、自宅内にはPCの他にインターネットを使っているマシンがあったことからインターネットの繋ぎ先であるケーブルモデムルーターで対処しないとダメだろうという結論になり、ケーブルモデムルーターのNAT関連の設定を見たが、テーブル操作に関する設定は存在しなかった。
どうするかと思ったが、現在自宅のネットワークはケーブルモデムルーターにはRTX1200がつながっているのみなのでケーブルモデムルーターのNATを含めたルーター機能を停止してインターネットの繋ぎ先になるブリッジモードに変更して、ルーティングはRTX1200に任せればと思い立ち、設定を行ってみたところネットワーク接続が復旧し、とりあえずは以前と同様に使える様になった。
このように、自宅でのJCOMの接続は復旧したが、この解決策を取ろうとすると
- 自分のPCもしくはスマホからインターネットにどの様な機器を介してつながっているかを把握しているか?
- ネットワーク接続機器がどの様なものがあり、どの様に使うか?
- IPアドレスの知識
- ネットワーク調査用のコマンドの知識
- ネットワーク接続トラブルの対処経験
が必要で、先に示した知識が全く無い人がこれをやろうとすると事態が悪化するためオススメはできない、あえて作業を行う場合は自宅のネットワークをダメにする覚悟で自分でそこら辺の知識を勉強するか、その様なことを知っている人に頼んだ方がいいだろう。
このような方法で解決後にJCOMのサポートに連絡、ケーブルモデムルーターのNATテーブルに関してセッション数の限界について聞いてみたのだが、サポートにもNATテーブルの限界セッションの情報はないとのことで、他に自宅のネットワークについて確認をしてみたところ原因不明の回線の不安定状況は継続しているとのことで、当面は問題なさそうだがまた繋がらなくなりそうな気配もあり、その際の代替経路も準備しないとダメなのか考えているところである。