OpenVPN 桥接模式 Virtualbox 3 VM(Virtualbox) 设置 ARP

OpenVPN 桥接模式 Virtualbox 3 VM(Virtualbox) 设置 ARP

我目前正在 OpenVPN 中试验桥接模式,到目前为止只使用了 tun 适配器。我在 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.10.11/24 Virtualbox 网络 intnet1

VM03:1 个接口
enp0s3:192.168 .20.11/24 虚拟盒网络 intnet2

没有 VPN,它可以按预期工作,我可以从 VM01 ping 到 VM02、VM03。但对于 VM02,我无法 ping 通 VM03。
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 ping 到 VM03,似乎桥接器收到 ARP 请求,并且还可以找到正确的 MAC 地址,但它似乎没有做更多的事情。

在此输入图像描述

Ping 到 VPN 主机工作正常(从 VM02:ping 192.168.20.10)。我还在网络适配器上激活了混杂模式。

在此输入图像描述

相关内容