在 Debian 下,我需要桥接一个 vlaneth0.1
和 tap tap0
。通常,在使用 tap 桥接普通以太网适配器时,我会在 中包含类似以下内容/etc/network/interfaces
:
auto br0
iface br0 inet static
pre-up /usr/sbin/openvpn --mktun --dev tap0
pre-up /usr/sbin/brctl addbr br0
address 10.0.0.254
network 10.0.0.0
netmask 255.255.255.0
post-up /sbin/ip link set tap0 up
post-up /usr/sbin/brctl addif br0 tap0
post-up /sbin/ip link set eth0 up
post-up /usr/sbin/brctl addif br0 eth0
post-down /sbin/ip link set br0 down
post-down /usr/sbin/brctl delbr br0
post-down /usr/sbin/openvpn --rmtun tap0
post-down /sbin/ip link set eth0 down
现在,我承认它并不漂亮(我们使用原始命令手动创建 tun 和 bridge),尽管这是我发现的最像 Debian 的方法。当我想eth0
用 vlan 替换时,问题就出现了,例如eth0.1
。我能想到的唯一方法是手动添加pre-up
和post-down
命令来手动创建eth0.1
vlan(所有其他方法都以 Debian 方式配置)。
但是,我不太确定,因为这post-down /sbin/ip link set eth0 down
可能会破坏其他eth0.x
VLAN。有人能建议一种更干净的方法来实现我的目标吗?
答案1
“我发现的最像 Debian 的方法”——你需要更仔细地查找,可能需要在bridge-utils-interfaces
(5) 手册页中查找。
桥接 VLAN 接口很简单;您只需将 VLAN 接口作为手动接口(即iface eth0.1 inet manual
),然后添加eth0.1
到bridge_ports
列表中。
关于 OpenVPN 及其以太网模式的简要说明——不要。
答案2
然后您可以将 tuntap 设备与 vlan 接口和网桥一起启动:
# The physical network port
allow-hotplug eth0
auto eth0
iface eth0 inet manual
# The interface used for the bridge
auto vlan1
iface vlan1 inet manual
vlan_raw_device eth0
pre-up ip tuntap add dev tap0 mode tap user openvpn-system-user
pre-up ip link set tap0 up
post-down ip link set tap0 down
post-down ip tuntap del dev tap0 mode tap
# The bridge interface
auto br0
iface br0 inet static
pre-up ip link set vlan1 up
pre-up ip link set tap0 up
bridge_ports vlan1 tap0
bridge_waitport 5
bridge_waitmax 10
bridge_fd 0
bridge_stp off
address 10.0.0.254
netmask 255.255.255.0
network 10.0.0.0
boradcast 10.0.0.255
gateway 10.0.0.1
dns-nameservers 10.0.0.1
dns-search-domain openvpn.example.net
post-down ip link set tap0 down
post-down ip link set vlan1 down
您需要调整您想要拥有 Tap 界面的用户,当然还有所有的 IP 设置和时间。
您需要安装 vlan 和 bridge-utils 包才能使您的设置正常工作。
这种设置甚至可以在绑定的以太网接口上进行:我在Debian 网络配置:使用 VLAN 伪方法在绑定接口上进行桥接分流。