![在 Ubuntu 上创建 VLAN 和网桥的正确方法是什么?](https://linux22.com/image/865604/%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E5%88%9B%E5%BB%BA%20VLAN%20%E5%92%8C%E7%BD%91%E6%A1%A5%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
当我尝试在 Ubuntu 14.04 上创建 VLAN 和网桥(如以下配置所示)时,网络连接总是丢失。
问题是什么?
请注意,如果我仅使用相同的 IP、网关等设置接口 em1(没有 em1.100、cloudbr0 和 cloudbr1),网络就可以正常工作。
以下设置 VLAN 和网桥的方式是否错误,或者我是否遗漏了什么?我还检查了 802.1q 模块是否已加载。
#cat /etc/network/interfaces
auto lo
iface lo inet loopback
#The primary network interface
auto em1.100
iface em1.100 inet static
address 192.168.42.11
netmask 255.255.255.240
gateway 192.168.42.1
dns-nameservers 8.8.8.8 8.8.4.4
#Public network
auto cloudbr0
iface cloudbr0 inet manual
bridge_ports em1.200
bridge_fd 5
bridge_stp off
bridge_maxwait 1
#Private network
auto cloudbr1
iface cloudbr1 inet manual
bridge_ports em1.300
bridge_fd 5
bridge_stp off
bridge_maxwait 1
#reboot ==> then lost network connection.
答案1
您需要先定义 VLAN 接口,然后才能将它们纳入网桥。您可以尝试以下操作,将 IP 地址更改为您自己的 IP 地址:
auto lo
iface lo inet loopback
#The primary network interface
auto em1.100
iface em1.100 inet static
address 192.168.42.11
netmask 255.255.255.240
gateway 192.168.42.1
dns-nameservers 8.8.8.8 8.8.4.4
vlan-raw-device em1
auto em1.200
iface em1.200 inet static
address 172.22.1.1
netmask 255.255.255.0
vlan-raw-device em1
auto em1.300
iface em1.300 inet static
address 172.22.2.1
vlan-raw-device em1
netamsk 255.255.255.0
#Public network
auto cloudbr0
iface cloudbr0 inet manual
bridge_ports em1.200
bridge_fd 5
bridge_stp off
bridge_maxwait 1
#Private network
auto cloudbr1
iface cloudbr1 inet manual
bridge_ports em1.300
bridge_fd 5
bridge_stp off
bridge_maxwait 1
答案2
如果指定了 bridge-utils 包中的 bridge_ports 选项,则 VLAN 配置将不会在 Ubuntu 上执行,如下所示: http://manpages.ubuntu.com/manpages/saucy/man5/interfaces.5.html
答案3
检查 VLAN 设置以验证这一点:
cat /proc/net/vlan/config
安装 vlan 包,它会向 ifup/ifdown 模拟中添加一些脚本:
apt-get install vlan