我が家はWindows Server 2016 Essensntialsが現役で稼働しているので、自宅サーバーに外部からアクセスできるようにしています。
1GbpsのフレッツのIPv6 IPoE接続で、ボトルネック設備を経由しないことで夜間の速度低下を避け高速通信のメリットを享受しながら、並行してIPv4 PPPoE接続もしながら、サーバー公開を実現しています。詳細は、過去の記事を参照ください。
過去の記事では以下のように、HGW配下に2台のルーターを配置し、1台のルーターにIPv4 PPPoE接続を担わせていました。
ひかり電話を利用しているためHGWはルーターとして機能させておきたいですし、v6オプション等で構提供されるHGWのIPv4 over IPV6接続を活かすのが最もシンプルなため、あくまでHGWの配下にルーターを配置するこのような構成に敢えてしています。
ルーター1のIPv4 PPPoE接続を通じて実現したかったのは外部へのサーバー公開と外部からのVPN接続で、ルーター1はCiscoのC841Mを利用していました。
しかし最近になり、
- 図に記載のないnasneをLANに接続するためのWiFi親機(ブリッジ)と子機(コンバーターとしてnasne等と有線LAN接続)が存在し、機器が多くなってきたこと
- リプレイスした新しい無線ルーター2(11ax,メッシュ対応)に、WindowsやiOS,Androidからも接続できるVPNサーバー機能があったこと
から、ネットワークの見直しをすることとしました。
新しいルーターの機能を利用すべく、ネットワーク構成を見直してみた
CiscoのC841Mを退役させ、これまでnasne接続のために利用していたWi-Fi親機を無線ルーター1の位置に昇格させて以下のような構成にしました。
ここで利用する無線ルーター1はNEC Aterm WG1800HP2で、2014年10月発売のかなり古い機種になります。
無線LANのスペックはかなり古いですし最近のMAP-EやDS-Liteなどの機能はありませんが、スループットは約940Mbpsありますので、ローカルルーターでIPv4のルートを担わせるだけなら十分活躍してくれるでしょう。
無線ルーター2はASUSのZenWiFi XT8になります。
メッシュ機能を利用し、2Fの自室にネットワークを拡張するのに利用しています。
11axに対応したトライバンドのWiFiメッシュを利用することで、2Fの自室にあるデスクトップPCやサーバーからも、快適に通信ができています。
おススメは以下のようにトライバンド対応の同じ機種2台でメッシュを組むことですが、現状は予算の関係で2Fの自室には以前使っていたASUSのRT-AX3000をメッシュ子機として利用しています。それでも、デスクトップPCから下り500Mbps以上出ています(上りはAX3000の性能ではさすがに200Mbpsちょっと)ので、快適です。
見直ししたポイント
無線ルーター2でIPv4 PPPoE接続をすることで、無線ルーター2の持つ機能を活かしつつ、IPv4(IPoE)とIPv6(ブリッジ)を2台の機器に分散することで、負荷分散も狙います。そのため、以下のように設定をしました。
無線ルーター1
- 無線ルーター1のWANポートとHGWのLANポートを接続
- 無線ルーター1をローカルルーターとして構成し、DHCPでWAN側IPアドレスを取得するように構成
無線ルーター2
- 無線ルーター2のWANポートとHGWのLANポートを接続
- 無線ルーター2をルーターとして構成し、IPv4 PPPoE接続とIPv6(パススルー)を構成
- v6パススルーを構成することで、IPV6通信は無線ルーター2を経由することになります
- 無線ルーター1のDHCPサーバー機能が貧弱(クライアント32台まで)なため、無線ルーター2をDHCPサーバーとして稼働させ(クライアント253台まで可!)、DHCPでクライアントに対し無線ルーター1(192.168.11.1)をIPv4のデフォルトゲートウェイとして通知
- IPv4のデフォルトゲートウェイは無線ルーター1とすることで、通常のIPv4通信は無線ルーター1を経由して、HGWからIPv4 over IPv6で流れていきます
- 外部公開するサーバーだけは、手動設定でデフォルトゲートウェイを無線ルーター2とすることで、IPv4 PPPoE接続を経由して通信します。
- IPv4のポートフォワーディング設定を行い、サーバーを外部からアクセス可能にする
- Windows Server EssensialsのリモートWebアクセスと、SSTPを利用したVPN接続を可能とします。
- SSTPはAndroid, iOS向けにもクライアントアプリ(有料)が出ていますので、VPNは通常はこちらを利用します
- VPNサーバー(IPSec)を構成し、iOSやAndroidそしてWindowsからVPNアクセス可能にする
- ASUSのIPSecサーバー機能では、WindowsはIKEv2になり証明書の設定が必要なようです
- ルーターのVPNサーバー機能は、万が一Windows Serverに接続できない場合の予備として構築しておきます
うまくいくと思っていたが、図上演習通りにうまくはいかない
この構成変更により機器の数としては1台(Cisco C841Mが)減り、電力消費面でもメリットがありそうです。
また、新しい無線ルーター2の高機能を活かし、外部から接続するVPNサーバーなどの機能も活用できそうだとニンマリし、実際うまくいっているかのように見えていたのですが、思わぬトラブルが降りかかります。
突如しばらく通信不能になる古い無線ルーター1
2Fの自室にあるPCからは、在宅勤務でWeb会議(WebexやTeams,Zoomなど)に接続するのですが、これまで安定して利用できていたWeb会議でトラブルが発生しました。
症状としては、Chromeから参加したWebex会議で最初はうまく接続できているものの、しばらく経つとミュート解除などの操作ができなくなったり、こちらの音声が相手に聞こえなくなるといったものです。ブラウザ画面上で操作ができなくなります。しばらくすると再度接続できるようになりますが、また時間が経つと再発します。
Web会議が切断された直後に切り分けしてみたところ、
- 2FのPCから、無線ルーター2にはpingも通り管理画面にもアクセスできる
- 無線LAN配下のスマートフォンからのインターネット接続も問題なさそう
- 2FのPCからChromeでサイトにアクセスすると、インターネット接続もできていそう
でしたが、
- Yahoo!などIPv4にしか対応していないサイトにはアクセスできない
- 切断された直後は無線ルーター1にpingも通らない
ことに気が付きました。
どうやら無線ルーター1が落ちているようです。無線ルーター1のログをみても、再起動している様子は見当たりません。
また、LANポート同士を接続している無線ルーター2にも、接続しているLANポートのLink down/upのログも残っていないようなので、内部のプロセスが落ちて再起動しているのかもしれません。
NECルーターに昔からよくあるNAT溢れか?
NEC製の家庭向けブロードバンドルーターでは、かなり前からNAT溢れでリブートしたりだんまりする事例が報告されており、おそらくNAT関連の問題だろうとあたりを付けました。
無線ルーター1NAT(NAPT)タイマーを短くしてみたが解決しない
NAT溢れの場合、タイマーを短くすることでテーブル上の古いレコードをクリアし、NATテーブルが溢れることを抑制することができます。そのため、この機種で設定できる最小の時間に設定をしてみました。
これで解決するだろうと期待して、改めてWeb会議に参加したところ、やはり途中で音声が通らなくなったりブラウザの画面がフリーズして操作不能になりました。
HGWのNATタイマーも短くしてみるがだめ
NTTのHGWにフレッツジョイントで配信されたIPv6 IPoEで用いられるIPv4接続ソフトに入り、こちらもタイマー値を短くしてみました。
http://HGWのIPアドレス:8888/t にログインし、以下のようにTCPのタイマー値を300秒から180秒に、そのほかにについても短くできるものは短くして様子を見てみましたが、事象は改善されませんでした。
さすがに1年以上テレワークをしてきて、今さらこんな不安定なテレワーク環境を露呈するのは示しがつきません。一瞬元の構成に戻そうかという思いも頭をよぎりました。
無線ルーター1のNAT(NAPT)を無効にする
が、ここでもう1つ試してみることにします。そもそもIPv4はHGWでNATが行われており、多段NAT構成です。多段NATはトラブルの元、そもそも配下の無線ルーター1では本来NATが不要です(以前の構成でも配下のルーターでNATはオフにしていた)ので、上記の画面でNAPT機能を「使用する」のチェックを外します。
しかし、これで設定を有効にするだけですと、IPv4でインターネットに接続できなくなります。
なぜなら、NATを無効にすることで、HGWのLAN側ポートに到達するクライアントからの通信がHGWが無線ルーター1に割り当てたアドレス(上記図の192.168.1.3)ではなく、HGWが知らない無線ルーター1、2のLAN側セグメント(上記図の192.168.11.0)のアドレスになってしまい、ルーティングがうまくいかなくなるためです。
HGWにルーティングテーブルを追加する
HGWに到達する無線ルーター1、2のLAN側セグメント(上記図の192.168.11.0)からのパケットをHGWが処理できるように、HGWにルーティングテーブルを追加します。
我が家のHGWはPR-400MIですが、詳細設定>LAN側静的ルーティング設定からルーティングテーブルを追加することができました。
以下のように、無線ルーター1、2のLAN側セグメント(上記図の192.168.11.0)は無線ルーター1のWAN側アドレスがゲートウェイだと明示的に指定をしてあげます。
これで無事、無線ルーター1でNATを無効にしても、通信ができるようになります。
そして、問題も無事解決
無線ルーター1のNATを無効にしたところ、悩まされたWeb会議のトラブルも発生しなくなり、無事当初の目的を達成することができました。
本来多段NATや多段ルーターはトラブルの元となるため、多くのネット記事などでは配下のルーターはルーター機能を殺しブリッジモードにするなどの対応を推奨しているかと思います。
しかし、「IPv6 IPoE接続でも外部サーバーを公開したい」「IPv6非対応の海外ルーターでもルーターが備えるVPNサーバーやDDNSなどの機能を利用したい」など、敢えてルーター機能を活かしたいケースがあると思います。
自身の備忘録が主目的ではありますが、同じような悩みを抱える誰かの参考になれば幸いです。
コメント