せっかなくので、やってみた。

日々のあんなこと、こんなこと、せっかくなのでやってみた

Windows10のVPN接続で、ネットワークインターフェースのメトリック値を変更できない件

またまたリモートワーク関連ネタです。
会社のネットワークなどにVPN接続して作業する場合、普通にVPN接続を作成して接続すると、 通信のデフォルトGWがVPNのインターフェースに向いてしまいます。(VPNサーバの設定にもよると思うので一概にそうとは言えないでしょうが。)

普通に使用する分には問題無いのですが、ウェブサイトのアクセスなど、一般の通信は WiFiなどのインターフェース(自宅の回線に繋がる)へ、会社のサーバなど、特定のIPへのアクセスのみVPNのインターフェスへと分岐させたい場合、 特定IPへのスタティックルートを設定してあげたうえで、さらにデフォルトの通信先がWiFiなどのインターフェースに向くように ネットワークインターフェースのメトリック値をVPNより小さい値に変更してあげる必要があります。

私の場合、VPN接続の必要のないリモートデスクトップ製品を使用している時は、会社の通信負荷を下げるため 自宅の回線経由にしたい場合があるため、上のように設定を変更しています。
ZOOMなどテレビ会議の通信で会社のネットワークに負荷をかけたくない場合にも有効かと思います。

ネットワークインターフェースのメトリック値の変更は、ネットにたくさん情報があるように、
コントロールパネル>ネットワークと共有センター>アダプター設定の変更から
変更したいアダプターを右クリックして、プロパティ>ネットワークタブ>インターネットプロトコルバージョン4>プロパティ >詳細設定
で、「自動メトリック」のチェックを外して
インターフェースメトリックの値を変更できます。(設定が深すぎてしんどい...)
必要に応じて、インターネットプロトコルバージョン6も同様に変更してあげます。

SoftEtherを使用したVPN環境ではこの設定で問題無く利用できていたのですが、Windows標準のVPNを作成して 同様に設定を変更してもメトリック値がデフォルト値(4325など)に戻ってしまいました。
設定直後は変更値が反映されているのですが、何かのタイミングで値が戻ってしまう。。。

不思議に思っていたのですが、どうもVPN接続を開始すると値が戻ってしまうようです。
PowerShellで確認するとこんな感じでした。(関係ないインターフェースは省略しています)

> netsh interface ipv4 show interface
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
 10         100        1500  connected     Wi-Fi
  3         200        1500  disconnected  イーサネット

VPN接続を開始

> netsh interface ipv4 show interface
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
 54         999        1400  connected     hoge-VPN
 10        4325        1500  connected     Wi-Fi
  3        4425        1500  disconnected  イーサネット

VPNを切断すると設定した値に戻るので、どうもVPN接続の設定が怪しいです。
色々試したことろ、先ほどの「自動メトリック」を設定するダイアログで、 「リモートネットワークでデフォルトゲートウェイを使う」のチェックをは外したら 設定が保存されるようになしました。
f:id:moneci:20210306120725p:plain