2016年8月31日水曜日

RTX1200のGUIが表示されない。原因はハングアウトだった。

 ある日、気付いたらRTX1200のGUIが表示されなくなっていた。Chromeで見ようとしたら「192.168.0.1 からの応答時間が長すぎます。」と表示されてしまう。つい、先日までは普通に使えていたのに。

 最後に設定したのはDHCP予約アドレスの設定だ。それが悪かったのかな思い、その設定を削除してみたが駄目。追加したNASが悪さをしているのかと思い、それをLANから外しても駄目。

 RTX1200の電源を切断し再投入するとGUIで繋がるのだが、数秒経過するとまた応答無しになってしまう。しかし、telnetでは接続が可能で問題なく設定が出来る。その他、思いつくことは色々とやってみたが復旧せず。

 困ってヤマハのサポートに電話連絡し、電話とメールのやり取りを何度か繰り返してどうやらRTX1200には問題が無く、原因はその他にあるとの事になった。そこから先は自力で原因を調査することになる。

 弊社に於はRTX1200はデフォルトゲートウェイでもあり、ファイアーウォールでもあり、DHCPサーバーでもある。ネットワークの要衝である。GUIが表示されなくてもそんなに運用上影響はないが、原因が判明しない事には気持ちが悪い。ひょっとするとウィルスが社内LANに潜んでいて悪さをしている可能性もゼロではない。

 RTX1200の配下には数十台のOA機器が複数台のL2 SW経由で接続されている。それらのOA機器の電源を全て切断し、ブロック毎に電源を投入して原因の絞り込みをする事にした。すると、思いも寄らぬ事が判明した。事務所ブロックのOA機器の電源を投入しても再現せず、工場側ブロックで電源を投入すると障害が再現した。てっきり、事務所のOA機器が怪しいと踏んでいたのに意外な結果だった。納得がいかない結果ではあったが現実にそうなのだから受け入れざるを得ない。

 今度は工場側のOA機器を1台毎にLANに接続して再現するかを確認した。そして発見した原因と思われる1台目はWindows7のPCだった。フリーソフトのPortViewerでポートの状態を確認してみた。すると、プロセス名称がchromeで、相手のアドレスは192.168.0.1、相手のポートは80、ポートの状態はCLOSE_WAITというのが表示された。何故、chromeが192.168.0.1のポート80に接続するんだ?そもそも、chromeのウインドウは表示されていないのに。タスクバーの通知領域を見るとハングアウトがログオフの状態になっていた。

 このPCは現場の共有PCで特定の個人が利用している訳ではないので、ChromeはインストールしてあるがGoogleにログオンはしていない。また、現場のPCに対しては、RTX1200のURLフィルターを設定して、業務に関係あるサイトのみを閲覧可(ホワイトリスト)としている。Googleは閲覧不可だ。

 ここで思いついた。ひょっとしてハングアウトのログオンとログオフ、それからRTX1200のURLフィルターの組み合わせで障害が発生しているとすると納得がいく。事務所ブロックは全員がハングアウトにログオンしているし、インターネットへの接続には制限をかけていない。逆に、現場のPCは先程記述した通りだ。

 その後、ハングアウトのログオンとログオフ、またRTX1200のURLフィルターの有無の組み合わせで障害の再現を確認すると、以下のことが判明した。

 ハングアウトがログオフ状態でインターネットの216.58.197.195:80と216.58.200.174:80への接続に制限がかかっていると192.168.0.1:80に対してchromeが接続を要求する。関係しているipアドレスはこの2つだけではないと思うけど。因みに、このipアドレスのドメイン名は1e100.net。Google所有!

 これは私の想像でしかないけれど、ハングアウトはログオフ状態の時にこの1e100.netへ接続に行く。RTX1200はURLフィルターでブロックした場合は「YAMAHA RTX1200 によってこのページはブロックされました。」を返信する。それが何かしらの影響をPCまたはRTX1200に与え、GUIが表示されないのだと思う。

 対策は色々と考えたが、私はRTX1200のHTTPサーバー機能のlistenポートの設定でポート番号を別なポート番号に変更した。他の対策を講じてもまた同様の障害が発生しないとも限らないから。これにより、GUIは正常に表示されるようになった。また、現場のPCをPortViewerで確認したときに192.168.0.1:80は表示されなくなった。

 原因がウィルスではなくて本当に良かった。これを解決するまでに5日間かかった。