Win10のVPN接続時インターネットが繋がらない
筆者の環境ではDebianOSを使ったルーターと、さくらのVPSにIPSecサーバーを構築して、ローカル環境とクラウド環境をIPSecで接続しています。
接続時はWindows10に標準搭載されているVPN接続を利用していますが、いつからそうなっていたのか覚えがないのですがIPv4でWindows10でVPN接続をした際にインターネットの接続ができなくなっていました。この原因を調査して対応しました。
解決方法
- VPNに接続します。
先にVPNに接続をしておかないと、設定の変更ができません。
- ネットワークと共有センターを開きます。
「コントロールパネル」から「ネットワークとインターネット」(カテゴリ表示の場合)、「ネットワークと共有センター」と進みます。
- 接続中のVPNを選択します。
- TCP/IP詳細設定を開きます。
「ネットワーク」タブより「インターネットプロトコルバージョン4」「プロパティ」「詳細設定」と進みます。
- リモートネットワークでデフォルトゲートウェイを使うのチェックボックスを外します。
一度設定すれば以降は記憶されます。
ちなみにこの設定をせずに、ルーティングでなんとかしようと思っても筆者の環境では実現できませんでした。一旦デフォルトルートを削除した後に再度デフォルトルートを設定したのですが、通信エラーとなってしまいました。
原因
原因は、マイクロソフトのVPN サーバーに接続した後、インターネットに接続できないに載っているようにVPN経由でインターネット接続をしようとするのが原因です。
「リモートネットワークでデフォルトゲートウェイを使う」という設定がされていると、経由でのインターネット接続を許可していないVPNサーバーでは接続できなかったり、許可されていても遠回りになるため接続速度が低下したりします。
管理者のコマンドラインでroute printと入力すると経路情報がでてきますので興味があるなら自身の環境で試してみてください。
ちなみに筆者の環境では次のような感じでした。 192.168.1.1:ゲートウェイ
192.168.1.100:PCのIPアドレス
123.456.789.2がVPNサーバーから配布されたIPアドレス
修正前
宛先 | ネットマスク | ゲートウェイ | インターフェース | メトリック |
0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.100 | 4236 |
0.0.0.0 | 0.0.0.0 | リンク上 | 123.456.789.2 | 36 |
修正後
宛先 | ネットマスク | ゲートウェイ | インターフェース | メトリック |
0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.100 | 11 |
修正前はデフォルトルート0.0.0.0の設定が2行ありました。この場合メトリックの値小さなものが優先されるので、VPNで配布された123.456.789.2インターフェースから出て、VPNサーバーを通って、インターネット通信をしようとします。
このルートを使わないように、デフォルトルートを削除(route delete)して再追加(route add)したり、修正(route change)で192.168.1.100インターフェースからのメトリックを小さくしたりしても、通信ができなくなりました。
予想ですが「リモートネットワークでデフォルトゲートウェイを使う」の設定が優先され、そちらのインターフェースから出る際のデフォルトゲートウェイを探すのだけれど、設定が見つからないのでエラーとなっていたのだと思います。
先に紹介した方法で設定をした場合は、余計なルートが最初から入っていませんので問題なく通信ができます。