特定の宛先だけ VPN経由で通信させる(PowerShellで設定)

ALL
スポンサーリンク

通常VPN使用時はすべての通信がVPN経由で流れますが、特定の宛先だけ VPN経由で通信させる設定です。なお、Windowsでの設定です。
次の記事では route コマンドでの設定方法ですが、本記事では PowerShell上での設定方法です。

特定の宛先だけ VPN経由で通信させる

設定は、デフォルトで VPN経由で通信しないようにした上で、特定の宛先だけ VPN経由で通信させるようにします。

スポンサーリンク

デフォルトで VPN経由で通信しないようにする

VPN接続のプロパティで、ネットワーク タブを選択します。
[インターネットプロトコルバージョン 4(TCP/IPv4)] を選択して「プロパティ」ボタンを押し、「詳細設定」を押します。

次のような画面になるので、[リモートネットワークでデフォルトゲートウェイを使う] のチェックを外し、[クラスベースのルートの追加を無効にする] にチェックを付けます。
これで、デフォルトで VPN経由で通信しないようになります。
以下説明ですが、飛ばす場合は、「特定の宛先だけ VPN経由で通信させる」まで進んでください。

画像

[リモートネットワークでデフォルトゲートウェイを使う] は、もし、チェックが付いていると、すべての通信がVPN経由で流れます。
デフォルトで VPN経由で通信しないようにしたいので、チェックを外します。

[クラスベースのルートの追加を無効にする] は、もし、チェックが外れていると、VPNと同じネットワークアドレス宛の通信は、全てVPN経由で流れます。
つまり、ローカルネットワークとVPNで同じネットワークアドレスの場合、ローカルネットワーク宛の通信がVPN経由で流れてしまいます。
チェックを付けると、宛先個別に設定しないと、VPN経由で流れません。
特定の宛先だけ VPN経由で通信させたいので、チェックを付けます。
宛先個別の設定は、次の項で説明します。

特定の宛先だけ VPN経由で通信させる

PowerShellで次を実行します。
「VPN名」の箇所は、各自のVPN接続名に置き換えてください。
VPN名にスペースや()を含む場合は、”” でくくってください。

Add-VpnConnectionRoute "VPN名" -DestinationPrefix "宛先アドレス" -PassThru

例えば、次のようにすると、宛先が 192.168.100.0/24 または 10.8.46.95 の場合は、VPN「VPN_test」経由で通信されます。

Add-VpnConnectionRoute "VPN_test" -DestinationPrefix "192.168.100.0/24" -PassThru
Add-VpnConnectionRoute "VPN_test" -DestinationPrefix "10.8.46.95/32" -PassThru

設定後に VPNに接続すると、上記が反映されます。
既にVPN接続していた場合は、いったん切断した後に、接続しなおしてください。

この設定は、コマンドで削除(後述)まで有効です。

設定内容の確認は、VPNに接続後、

Get-NetRoute -InterfaceAlias "VPN名"

を実行します。
「VPN名」の箇所は、各自のVPN接続名に置き換えてください。
VPN名にスペースや()を含む場合は、”” でくくってください。

下記のように、追加した設定が表示されます。
(RouteMetric列の値が 1 の行です)

ifIndex DestinationPrefix                              NextHop                                  RouteMetric ifMetric Po
                                                                                                                     li
                                                                                                                     cy
                                                                                                                     St
                                                                                                                     or
                                                                                                                     e
------- -----------------                              -------                                  ----------- -------- --
44      255.255.255.255/32                             0.0.0.0                                          256 35       Ac
44      224.0.0.0/4                                    0.0.0.0                                          256 35       Ac
44      192.168.11.128/32                              0.0.0.0                                          256 35       Ac
44      192.168.100.0/24                               0.0.0.0                                            1 35       Ac
44      10.8.46.95/32                                  0.0.0.0                                            1 35       Ac

追加した設定を削除する場合は、下記のようにVPN名と、削除する宛先を指定してコマンドを実行します。

Remove-VpnConnectionRoute -ConnectionName "VPN_test" -DestinationPrefix "10.8.46.95/32" -PassThru

コメント