【備忘録】特定のIPアドレスだけVPNを通す方法

全部VPN経由で通信するのは嫌

リモートワークをする機会が増え、お客さま環境へ接続する際にVPN経由でアクセスすることが増えました。

その時に問題(?)になるのが、「全部の通信がVPN経由になる」こと。

別にやましいことをしているわけではないのですが、

  • すべての通信がVPN経由=お客様ネットワークに流れるのでトラフィック増になり申し訳ない
  • TeamsやSlack、メールなどで他のお客様との随時やり取りもVPN経由になることは避けたい
  • VPN先でフィルタが掛かっていると特定のアプリが使えない

ことが理由にあります。

上記の2点目、通信自体は暗号化されているので問題はないですが、通信先はわかりますし、なにより個人的に気持ち悪いので嫌です。
できる限り、自分でコントロールしたいですよね。

特定の通信だけVPNを通す方法

前提

  • VPN設定が終わっていて、問題なく接続できること
  • 以降の検証に使用するVPN接続名は"okyakusama-vpn"とする

VPNでデフォルトゲートウェイを使用しないように設定

PowerShellを立ち上げて、次のコマンドを実行する。
VPN接続すると、デフォルトゲートウェイがVPNに(=すべての通信がVPN経由に)なってしまうが、これをすることで特定の通信だけVPN経由とすることができる。
Split Tunnelingなので、トンネル(通信する穴)を分けるということですね。

VPNで通信する先を指定する

トンネルを作ったあとは、そこを通すものを指定します。

パターン①IPアドレスを指定する場合

特定サーバーを名指しで指定するときですね。
この例はYAHOO!JAPANのサイトだけVPN経由にする場合です。(そんなことないのであくまで例です)
釈迦に説法ですが、"/32"の部分はサブネットなので、端末指定の場合はこれですね。

パターン②ネットワークをまとめて指定する場合

お客様の環境に複数のサーバーがあって、それらまとめて接続できるようにする場合です。
この例は、お客さま環境のネットワークアドレスが"192.168.10"の場合です。

元に戻す場合

上記設定をやめる場合はこちら。

これで問題なく行けるはずです。
実際に指定した通信だけVPN経由になっているかは、tracertコマンドでも何でもいいので確認してから使いましょう!

参考にしたサイト↓(+Copilotに聞いた)

https://learn.microsoft.com/ja-jp/powershell/module/vpnclient/set-vpnconnection?view=windowsserver2019-ps

https://learn.microsoft.com/ja-jp/powershell/module/vpnclient/add-vpnconnectionroute?view=windowsserver2019-ps


ミライドットでは取り上げてほしいテーマのリクエストを受け付けています。
お名前等の記入は不要ですのでお気軽にリクエストください!

投稿者プロフィール

穗苅洋介