在Debian上桥接vlan和OpenVPN

Debian下,我需要桥接一个vlan eth0.1并点击tap0 。 通常,当用一个水龙头桥接一个普通的以太网适配器时,我会在/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 

现在,我承认这不是很漂亮(我们使用原始命令手动创buildtun和bridge),尽pipe它是我发现的最像Debian的手段。 问题出现在我想用eth0代替eth0的时候,比如eth0.1 。 我能想到的唯一方法是手动添加pre-uppost-down命令手动创buildeth0.1 vlan(所有其他configuration以Debian的方式)。

但是,我不完全确定,因为post-down /sbin/ip link set eth0 down可能会打破其他eth0.x 。 有人可以build议一个更清洁的手段来完成我的目标?

“我发现的最类似Debian的方法” – 您需要更加努力,可能在bridge-utils-interfaces (5)手册页中。

桥接VLAN接口是微不足道的; 您只需将VLAN接口作为手动接口(即iface eth0.1 inet manual ),然后将eth0.1添加到bridge_ports列表中。

关于OpenVPN和它的以太网模式的快速logging – 不要。

你可以调出你的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 

你需要调整你想要的抽头界面拥有的用户,当然还有所有的IP设置和时间。

您需要安装vlan和bridge-utils软件包以使您的设置正常工作。

这种设置甚至可以在一个绑定的以太网接口上实现:我在Debiannetworkingconfiguration中描述了在VLAN Pseudo-HOW-TO的绑定接口上进行的泛滥的分接 。