在 Ubuntu 上创建 VLAN 和网桥的正确方法是什么?

在 Ubuntu 上创建 VLAN 和网桥的正确方法是什么?

当我尝试在 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

相关内容