サーバーとOpenVPNクライアントがインストールされ、トンネルを介してインターネットに接続されていますが、すべてがうまく機能します。 LANインターフェイス(192.168.1.x)を介してサーバーにアクセスすることもできます。ただし、LANの異なるIP範囲である10.8.0.xで同じサーバーにアクセスしようとすると機能しません。 VPNClientをオフにすると再びうまく機能します。
サーバーで実行されているVPNクライアントがない場合、10.8.0.xの範囲のクライアントはサーバーにアクセスできます。
root@server:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0
enp0s31f6
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0
enp0s31f6
192.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0
enp0s31f6
VPNクライアントがサーバー上で実行されている場合、10.8.0.xの範囲のクライアントはサーバーにアクセスできません。
root@server:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.23.10.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp0s31f6
10.23.10.1 10.23.10.5 255.255.255.255 UGH 0 0 0 tun0
10.23.10.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.166.188.211 192.168.1.1 255.255.255.255 UGH 0 0 0 enp0s31f6
128.0.0.0 10.23.10.5 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s31f6
192.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 enp0s31f6
また、enp0s31f6インターフェイスを介して10.8.0.0トラフィックをルーティングするようにネットワークに明示的に通知する送信パスを追加しました。
root@server:~# route add -net 10.8.0.0 netmask 255.255.0.0 dev enp0s31f6
しかし、幸運はありません。
なぜこれを知っている人がいますか?
答え1
tun
VPNインターフェイスに関連付けられているサブネットへのルートを手動で追加する必要はありません。クライアントはこれを設定する必要があります。また、tun
openvpn がパケットをルーティングする方法のためにイーサネット インターフェイスにルートを追加すると、そのインターフェイスでは機能しません。
client-to-client
サーバー構成でこれを有効にしてルールがあることを確認する必要があるようですiptables
。
iptables -A INPUT -i tun0 -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT