VPN Gateサーバに接続するとき、仮想LANカードを複数用意すると、同時に複数台接続できてしまいます。
サーバ:A 仮想HUB:VPNGATE 仮想LANカード:VPN
サーバ:B 仮想HUB:VPNGATE 仮想LANカード:VPN2
まずAにつなぎ、次にBにつなぎます。
Bを切ると普通にBだけ切れますが、Aを切るとBも切れてしまいます。
これはクライアント~A~B~サーバという直列の形になっているのかと思いきや、IPアドレスを確認するとAのアドレスになっています。
正しくはどのような形になっているのでしょうか?
また、このようなことができるようにしてある目的というか、どのような用途でこのようにするのか教えていただければと思います。
そもそもなぜこのようなことをしたかというと、AとBにつないでおいて、どちらかが切れてももう一方につながっていられるようにしたかったからです。
しかしこのやり方ではAが切れるとBも切れてしまうので、間違っているということになります。
正しいやり方があれば教えていただければと思います。
よろしくお願いします。
複数接続
-
- Posts: 286
- Joined: Wed Nov 25, 2020 9:10 am
Re: 複数接続
Aに繋いでいると、宛先がローカルネットワーク以外のトラフィックは自動的にAに送信されます。これは「デフォルトゲートウェイ」といいます。
このタイミングでまたBに接続すると、BへのトラフィックもトンネルAを通ります。なので「Aを切るとBも切れる」ということになります。
もちろんBにもデフォルトゲートウェイが存在します。ではなぜこういう二重接続の場合、外部アドレスがBではなくAなのかというと、Aの使っている仮想LANカードの優先順位がBの仮想LANカードより上だからです。LANカードの優先順位(メトリックという)はシステムから配布されていて、どのような仕組みで決められたのは知りませんが、Windows 10では「Get-NetIPInterface」というPowerShellコマンドで確認できます。
例えば以下のテーブルによると、IPv4においてVPN2のメトリック(1)はVPNのメトリック(35)より小さいから、VPN2が優先されるということです。
Aを通らないでBに接続するには、AのデフォルトゲートウェイからBの抜け道(ルート)を作る必要があります。
例えば、
Bのアドレス: 100.200.0.1
ローカルルーターのアドレス: 192.168.1.1とします。
以下のようにルートを追加します
ルートを削除する(元に戻す)には
ただし、管理者としてコマンドプロンプトをオープンし、実行する必要があります。
このタイミングでまたBに接続すると、BへのトラフィックもトンネルAを通ります。なので「Aを切るとBも切れる」ということになります。
もちろんBにもデフォルトゲートウェイが存在します。ではなぜこういう二重接続の場合、外部アドレスがBではなくAなのかというと、Aの使っている仮想LANカードの優先順位がBの仮想LANカードより上だからです。LANカードの優先順位(メトリックという)はシステムから配布されていて、どのような仕組みで決められたのは知りませんが、Windows 10では「Get-NetIPInterface」というPowerShellコマンドで確認できます。
例えば以下のテーブルによると、IPv4においてVPN2のメトリック(1)はVPNのメトリック(35)より小さいから、VPN2が優先されるということです。
Code: Select all
PS C:\Users\eddiewu> Get-NetIPInterface
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
16 Local Area Connection* 1 IPv6 1500 25 Disabled Disconnected ActiveStore
64 VPN2 - VPN Client IPv6 1500 35 Disabled Disconnected ActiveStore
11 Ethernet IPv6 1500 5 Enabled Disconnected ActiveStore
13 VPN - VPN Client IPv6 1500 35 Enabled Disconnected ActiveStore
1 Loopback Pseudo-Interface 1 IPv6 4294967295 75 Disabled Connected ActiveStore
16 Local Area Connection* 1 IPv4 1500 25 Enabled Disconnected ActiveStore
64 VPN2 - VPN Client IPv4 1500 1 Enabled Disconnected ActiveStore
11 Ethernet IPv4 1500 5 Enabled Disconnected ActiveStore
6 Wi-Fi IPv4 1500 45 Enabled Connected ActiveStore
13 VPN - VPN Client IPv4 1500 35 Enabled Disconnected ActiveStore
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
例えば、
Bのアドレス: 100.200.0.1
ローカルルーターのアドレス: 192.168.1.1とします。
以下のようにルートを追加します
Code: Select all
route add 100.200.0.1 192.168.1.1
Code: Select all
route delete 100.200.0.1 192.168.1.1