VPN 接続時、特定の IP のみ VPN を経由させるが、他の通信は全部、インターネット経由にしたい。
PowerShell の以下のモジュール
PowerShell の以下のモジュール
- Microsoft / Docs / Windows / PowerShell / Reference / VpnClient
「Add-VPNConnectionRoute list」でググったら、以下のページを見つけた。
Get-VPNConnection で得られた VPN に .routes を適用すると Add-VpnConnectionRoute した結果の一覧が得られるとのこと。
とりあえず、
-PassThru は結果の pass through なので、なくても良い。
設定されている routing の一覧は
設定後に再接続を行うと、
この設定は、例によって
NumRoutes=0 の場合 Routes= の行は存在しない。
16進72桁で表される 36 byte (=576 bit) の routing データの内訳は先頭から
例えば、
NextHop がどこかに入りそうな気がするが、IPv6 だと末尾の 8byte じゃ足らないし、Add-VPNConnectionRoute にもそれらしいオプションがなさそうなので気のせいだろうか?
なお、デフォルトでは、VPN 設定(プロパティ)の「ネットワーク」タブで
- Microsoft / Docs /Q&A / 2022-07-07: list of Add-VpnConnectionRoute
Get-VPNConnection で得られた VPN に .routes を適用すると Add-VpnConnectionRoute した結果の一覧が得られるとのこと。
とりあえず、
Add-VPNConnectionRoute "VPN接続名" -DestinationPrefix "IPアドレス/ネットマスク長" -PassThruとすると目的の VPN 接続に route が追加される。
-PassThru は結果の pass through なので、なくても良い。
設定されている routing の一覧は
Get-VPNConnection "VPN接続名" |% routesで得られる他、
設定後に再接続を行うと、
route printでも確認できる。
この設定は、例によって
- %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk
NumRoutes=設定されているroute数 Routes=1route当たり16進72桁の設定値が128桁区切りで並ぶ Routes=...みたいになってた。
NumRoutes=0 の場合 Routes= の行は存在しない。
16進72桁で表される 36 byte (=576 bit) の routing データの内訳は先頭から
- RouteMetric : little endian 32bit
- AddressFamily: little endian 32bit (2 = IPv4, 0x17 = IPv6 ?)
- NetMask(length) : little endian 32bit
- IPAddress : (4 byte (IPv4) + 12byte (padding ?)) or (16 byte (IPv6))
- 不明 : 8 byte
例えば、
PS C:\Users\kou> Add-VpnConnectionRoute "HOME" -DestinationPrefix "18.3.4.5/32" -RouteMetric 4660 -PassThru DestinationPrefix : 18.3.4.5/32 InterfaceIndex : InterfaceAlias : HOME AddressFamily : IPv4 NextHop : 0.0.0.0 Publish : 0 RouteMetric : 4660 PolicyStore : PS C:\Users\kou> Add-VpnConnectionRoute "HOME" -DestinationPrefix "1234:5:6:7:8:9:a:b/128" -RouteMetric 4660 -PassThru DestinationPrefix : 1234:5:6:7:8:9:a:b/128 InterfaceIndex : InterfaceAlias : HOME AddressFamily : IPv6 NextHop : :: Publish : 0 RouteMetric : 4660 PolicyStore :のように設定すると
NumRoutes=2 Routes=341200000200000020000000120304050000000000000000000000000000000000000000341200001700000080000000123400050006000700080009000A000B Routes=0000000000000000のような設定値となる。
NextHop がどこかに入りそうな気がするが、IPv6 だと末尾の 8byte じゃ足らないし、Add-VPNConnectionRoute にもそれらしいオプションがなさそうなので気のせいだろうか?
なお、デフォルトでは、VPN 設定(プロパティ)の「ネットワーク」タブで
- インターネット プロトコル バージョン 4 (TCP/IPv4)
- インターネット プロトコル バージョン 6 (TCP/IPv6)
- ☑ リモート ネットワークでデフォルト ゲートウェイを使う
タグ
コメントをかく