🔥
WindowsでVPN接続時に特定の通信のみをVPN経由で通信させる
はじめに
リモートIT技術者としてVPN接続しながら作業するということは割とよくあることだと思います。しかしながら、VPN接続すると外界と遮断されてしまいブラウザベースで動作するアプリが利用できなかったりする不便さが発生することが多々あります。今回は特定の通信のみVPNを経由するスプリットトンネルの設定について説明します。
VPN設定の確認
PowerShellを起動し、以下のコマンドを入力してVPN接続設定を確認します
PS > get-vpnconnection
Name : {VPNの名前}
ServerAddress : ***.***.***.***
AllUserConnection : False
Guid : {*******-****-****-****-*******}
TunnelType : L2tp
AuthenticationMethod : {*******}
EncryptionLevel : Optional
L2tpIPsecAuth : ***
UseWinlogonCredential : False
EapConfigXmlStream : ********
ConnectionStatus : Disconnected
RememberCredential : True
SplitTunneling : False
DnsSuffix : *********
IdleDisconnectSeconds : 0
スプリットトンネルを有効にする
PowerShellにて以下のコマンドを実行し、スプリットトンネルを有効にします
PS > set-vpnconnection -Name "VPNの名前" -SplitTunneling $true
VPNを経由する通信を指定する
VPN経由で通信したい宛先を登録します。ここでは、10.0.10.0/16
の範囲はVPN経由で通信するものとします
PS > Add-VpnConnectionRoute "VPNの名前" -DestinationPrefix "10.0.10.0/16" -PassThru
接続確認する
該当VPNで接続後、指定したアドレスに対してはVPN経由で通信し、他の通信はVPNを経由していないことを確認します
登録経路の確認
以下のコマンドで登録済み経路を確認できます。
(Get-VpnConnection "surara-VPN").Routes
スプリットトンネルの削除
スプリットトンネルが不要になり、無効化したり、あて先を削除したい場合は以下のコマンドを実行してください。
# スプリットトンネル無効化
PS > set-vpnconnection -Name "VPN" -SplitTunneling $false
# 経路削除
PS > Remove-VpnConnectionRoute "VPN" -DestinationPrefix "10.0.10.0/16" -PassThru
Discussion