ubuntu16.04 kvm bridge vlan

注:linux中通过bridge实现交换,通过vlan 实现隔离,而vm实际上是连在bridge上的,所以同一个vlan下的几个vm的说法实际上是同一个vlan连接的bridge下的几个vm
注:vm主机之间通信的关键在于bridge必须设置ip,同一个bridge下的vm之间通信不需要bridge设置ip,只需要vm之间同网段

  • bridge
  1. 两个vm之间互通
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.203
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 192.168.0.1
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_ports eth0

注:因为eth0连在br0上,主机ip192.168.0.203
因为eth0连在br0上,ip没法直接设置在eth0上,会导致无法主机连通外网,如果需要在eth0上设置ip,那么eth0需要通过vlan间接连在br0

虚拟机:两个vm接到br0上,网段是192.168.0.1

结果:
vm主机:可以互通,因为bridgevm在同一网段
vmvm:可以互通,而且同一个bridge下的vm之间互通只需要网段一致,bridge可以不需要ip
vm外网:因为192.168.0.203可以通外网,那么vm也能连通外网

  • vlan
    注:linux中是自动实现access端口和trunk端口,或者说只实现trunk端口
    因为vlan实现隔离功能,所以经过eth0.10的数据包都会打上vid
    bridge实现交换功能,而bridge没有vid这个东西,所以既不会打上vid,也不会删除vid,所以天然实现access功能
  1. vm主机互通
auto eth0
iface eth0 inet static
address 192.168.0.203
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 192.168.0.1

auto eth0.10
iface eth0.10 inet manual
vlan-raw-device eth0

auto brvlan10
iface brvlan10 inet static
address 192.168.10.207
netmask 255.255.255.0
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_ports eth0.10

注:

虚拟机:vm连在brvlan10上,网段是192.168.10.1

结果:
vm主机:可以互通,因为bridgevm在同一网段
vmvm:可以互通,参照上面的两个vm之间互通
vm外网:因为vm主机不在同一网段,所以无法连通外网

  1. 不同vlan对应的bridge下的vm之间隔离
    注:vlan的隔离是靠网段隔离,连在同一个eth上的两个vlan对应的bridgeip必须是不同网段,否则第二个vlan对应的vm会出问题,无法与主机互通
    而且bridge也不能与任何其他非虚拟机 ip(比如eth0 ip)同网段,否则会出错
auto eth0
iface eth0 inet static
address 192.168.0.203
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 192.168.0.1

auto eth0.10
iface eth0.10 inet manual
vlan-raw-device eth0

auto brvlan10
iface brvlan10 inet static
address 192.168.10.207
netmask 255.255.255.0
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_ports eth0.10

auto eth0.20
iface eth0.20 inet manual
vlan-raw-device eth0

auto brvlan20
iface brvlan20 inet static
address 192.168.20.208
netmask 255.255.255.0
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_ports eth0.20

虚拟机:vm1连在brvlan10上,vm2连在brvlan20上,
结果:
vm主机:可以互通,因为bridgevm在同一网段
vmvm:不能互通,因为同一个eth0下不同vlan对应的bridge必须不同网段,所以无法互通
vm外网:因为vmeth0不同网段,所以无法上网

你可能感兴趣的:(ubuntu16.04 kvm bridge vlan)