同じルーターに2台のコンピューターを接続しています10.9.8.1
:
10.9.8.2
Windows 10 InsiderPreviewを実行します。 Insider PreviewのVPNが壊れているため、ロールバックできません。 :(10.9.8.3
Linux Mintを実行し、openconnect
を介してVPN接続をセットアップします。ipconfig
がB(フラグメント)について報告する内容は次のとおりです。
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.23.8.183 P-t-P:10.23.8.183 Mask:255.255.255.255
inet6 addr: fe80::7fb2:5598:b02e:e541/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1410 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:7005 (7.0 KB) TX bytes:3243 (3.2 KB)
wlp3s0 Link encap:Ethernet HWaddr 60:67:20:36:6f:a4
inet addr:10.9.8.3 Bcast:10.9.8.255 Mask:255.255.255.0
inet6 addr: fe80::8e96:7526:ff54:d1be/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22511502 errors:0 dropped:0 overruns:0 frame:0
TX packets:16052631 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24451442281 (24.4 GB) TX bytes:6038264731 (6.0 GB)
コンピューターAからVPNの背後にあるリソースにアクセスする必要があります。
私は、ルーターを他のすべてに直接使用しながら、Bを介してVPNリソースにアクセスするようにAのルートを構成することを考えています。
最悪の場合、2台のコンピューターを直接接続できますが、可能であればそれを避けたいと思います。
Windowsでは、任意のアダプターを共有としてマークするだけです。しかし、Linuxで同じことをすると、アダプターは接続を失います。それを正しく行う方法がわからない。
ホストA
では、宛先ネットワークのすべてのトラフィックをホストB
にルーティングする必要があります。これは192.168.0.0/24
のようなものだと思います
linuxの場合(ホストA
上):
ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0
windowsの場合(ホストA
上):
route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3
ルーティングが行われると、ネットワーク192.168.0.0/24
のすべてのパッケージがホストB
に送信されます。
ホストB
でパッケージをwlp3s0
からtun0
に転送できるようにするには、IP転送を有効にする必要があります。
すべてのインターフェースのIP転送を一時的に有効にするには:
sysctl net.ipv4.conf.all.forwarding=1
この変更を永続的に有効にするには、/etc/sysctl.conf
に新しい行を追加します。
net.ipv4.conf.all.forwarding = 1
インターフェース設定に加えて、iptables
がアクティブであり、パッケージ転送を許可する必要がある場合があります。
iptables
がアクティブかどうかを確認するには(少なくともFORWARD
チェーンの場合):
iptables -L FORWARD -nv
チェーンにルールがなく、ポリシーにACCEPT
と記載されている場合は、問題ありません。そうでない場合は、192.168.0.0/24
の転送を許可するために関連するルールを追加する必要があります。
192.168.0.0/24
のwlp3s0
へのすべてのパッケージの転送を許可します。
iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
RELATED,ESTABLISHED
は、返品パッケージを自動的に許可します。
これで、転送が設定された後、パッケージがトンネルに送信されます。しかし、VPNの背後にあるリモートネットワークがローカルネットワークを認識していない限り(通常はそうです)、ローカルネットワークから来てVPNにアドレスに入るすべてのパッケージをNAT
する必要があります。 VPNサーバー(tun0
のIP)から取得しました。
これを行うには、MASQUERADE
テーブルにPOSTROUTING
ルールを作成する必要があります。
iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
これにより、tun0
上のすべての送信パッケージがインターフェースのIPに変換されます。