【Windows 10】VPN接続時に静的ルートを自動追加し、切断時に自動削除する方法
VPN接続時の静的ルート自動追加機能について
最新のWindows 10では、VPN接続を確立した際に静的ルートを自動的に追加でき、接続を切断するとルーティングテーブルからそのルートが自動的に削除されます。IPv4またはIPv6のルートをVPN接続に関連付けるには、PowerShellのコマンドレットAdd-VpnConnectionRouteを使用します。
もちろん、コマンドプロンプトから手動でルートを追加することも可能ですが、VPN接続を切断するとそれらの設定は失われ、次回接続時に再度手動で追加し直す必要があります。
ここでは、「2つのサブネット(192.168.11.0/24と10.1.0.0/16)宛てのトラフィックのみVPN経由でルーティングし、その他のトラフィックはプロバイダー(ISP)経由とする」というケースを例に、具体的な設定手順を解説します。
手順1:構成済みのVPN接続一覧を表示する
PowerShellコンソールを開き、Windowsに登録されているVPN接続の一覧を表示します。
Get-VpnConnection

手順2:「リモートネットワークで既定のゲートウェイを使用する」を無効化する
まず、「リモートネットワークで既定のゲートウェイを使用する」オプションをオフにします。コントロールパネルのVPN接続プロパティから変更するか、次のコマンドで設定できます。
Set-VpnConnection –Name workVPN -SplitTunneling $True
このSplitTunneling(スプリットトンネリング)の詳細については、「VPN接続後にインターネットに繋がらなくなる場合の対処法」の記事を参照してください。

手順3:静的ルートを追加する
VPN接続に対して2つの静的ルートを追加します。
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.11.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 10.1.0.0/16 –PassThru
DestinationPrefixパラメーターには、VPN経由でルーティングしたいサブネットまたはホストのIPアドレスを指定します。単一ホストをIPアドレスで指定したい場合は、10.1.1.26/32のように「/32」形式を使用してください。
コマンド実行後の出力例は以下の通りです。
DestinationPrefix : 192.168.11.0/24 InterfaceIndex : InterfaceAlias : workVPN AddressFamily : IPv4 NextHop : 0.0.0.0 Publish : 0 RouteMetric : 1

なお、VPN接続がすでにアクティブな状態の場合は、新しいルートをルーティングテーブルに反映させるために一度再接続する必要があります。

切断時にルートが自動削除されることを確認する
追加されたルートはVPN接続に紐付けられており、接続が確立されたときにのみ登録されます。VPNサーバーから切断すると、ルートは自動的に削除されます。
実際にVPNから切断してルーティングテーブルを確認してみましょう。リモートネットワークへのルートは自動的に削除され、Get-NetRouteを実行すると「該当するルートが見つからない」という結果が返されます。
Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.11.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

VPN接続の静的ルートを完全に削除する方法
VPN接続に設定した静的ルートを完全に削除したい場合は、次のコマンドを使用します。
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru
また、VPN接続中におけるDNS名前解決の優先順位を変更したい場合は、関連記事「VPN接続時のDNS解決順序の変更方法」を参照してください。
旧バージョンのWindowsでの代替手段
以前のWindows(Windows 7 / Windows Server 2008 R2)では、VPN接続の確立後に動的にルートを追加するために、CMAK(接続マネージャ管理キット)やroute addコマンドを含むさまざまなスクリプトを利用する必要がありました。
たとえば、静的ルートを追加するためのバッチファイル vpn_route.netsh を作成する方法があります。
interface ipv4 add route prefix=192.168.11.24 interface="workVPN" store=active add route prefix=10.1.0.0/16 interface="workVPN" store=active exit
このファイルは、タスクスケジューラを使用して「VPN接続の確立」をトリガーとして自動実行できます。トリガーとなるのは、イベントビューアーに記録されるRasMan 20225イベントです。
schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:\PS\vpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='My VPN']]"
-
Windows 10でVPNが「接続中」のまま固まる問題の原因と6つの解決策
VPNは、オンラインセキュリティを強化するための非常に優れたツールです。VPNを利用すれば、IPアドレスを隠蔽し、オンライン上の身元を保護することで、ハッカー、ISP(インターネットサービスプロバイダ)、政府機関といった第三者の監視から自分を守ることができます。しかし、VPNにはさまざまなトラブルがつきもので、その中でも多くのユーザーが報告しているのが「VPNが『接続中』のまま固まる」という問題です。 VPNが「接続中」で固まる問題とは?その原因は? この問題を簡単に説明すると、VPN接続を選択して「接続」ボタンをクリックしても、実際には接続が確立されず、「接続中…」というステータスが延々とル
-
VPN接続が遅いときの対処法|通信速度を高速化する7つのテクニック
VPNは、オンラインでの匿名性を保ち、IPアドレスを隠し、地域制限されたサイトへも速度を犠牲にせずアクセスできるようにするために使われますよね。しかし、利用しているVPNの動作が遅く重いと、「通信速度を落とさずにVPNを使う」という本来の目的が果たせなくなってしまいます。だからこそ、VPNを選ぶ際には信頼性のあるサービスを選ぶことが重要です。もしおすすめを探しているなら、Windows向けに最適なSystweak VPNの利用を検討してみてください。「それでも無料VPNのほうがいい」と思うなら、注意が必要です。無料VPNの多くは安全性やセキュリティが十分とは言えません。「無料」に惹かれる前に、