現在、OpenVPNでブリッジモードを試していますが、これまではトンアダプタのみを使用していました。 Virtualbox(Ubuntu 22.04 LTS)に3つの仮想マシン(Oracle Virtualbox)と内部ネットワークを設定しました。
VM01 (VPN ブリッジ): インターフェイス 2 個
enp0s3: 192.168.10.10/24 intnet1
enp0s8: 192.168.20.10/24 intnet2
VM02
: インターフェイス 1 個
enp0s3: 192.168.0 :
1個8.20.11 / 24仮想ボックスネットワークintnet2
VPNがない場合は期待どおりに機能し、VM01からVM02、VM03にpingできます。ただし、VM02の場合、VM03はpingできません。
VM02とVM01の間の接続はシミュレートされたインターネット接続であり、目的はインターネット接続間のVPNをシミュレートしてネットワーク192.168.10.0/24を接続することです。
VM02 (192.168.10.0/24) <--VPN--> VM01 (VPN ブリッジ) <--ブリッジ--> ネットワーク 192.168.20.0/24
OpenVPNのスクリプトを使用してブリッジを作成します。
#!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="enp0s8"
eth_ip="192.168.20.10"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.20.255"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
VM02とVM01の間にVPN接続を確立した後、ping 192.168.20.11を使用してVM02からVM03にpingしようとします。ブリッジがARP要求を受信し、正しいMACアドレスも見つけることができるようですが、そうではありません。それ以上は。
VPN ホストへの ping が正常に動作します (VM02 から: ping 192.168.20.10)。また、ネットワークアダプタで無差別モードを有効にしました。