注:linux
中通过bridge
实现交换,通过vlan
实现隔离,而vm
实际上是连在bridge
上的,所以同一个vlan下的几个vm
的说法实际上是同一个vlan连接的bridge下的几个vm
注:vm
与主机
之间通信的关键在于bridge
必须设置ip
,同一个bridge
下的vm
之间通信不需要bridge
设置ip
,只需要vm
之间同网段
bridge
- 两个
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
上,主机ip
是192.168.0.203
因为eth0
连在br0
上,ip
没法直接设置在eth0
上,会导致无法主机
连通外网
,如果需要在eth0
上设置ip
,那么eth0
需要通过vlan
间接连在br0
上虚拟机:两个
vm
接到br0
上,网段是192.168.0.1
结果:
vm
与主机
:可以互通,因为bridge
和vm
在同一网段
vm
与vm
:可以互通,而且同一个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
功能
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
与主机
:可以互通,因为bridge
和vm
在同一网段
vm
与vm
:可以互通,参照上面的两个vm之间互通
vm
与外网
:因为vm
和主机
不在同一网段,所以无法连通外网
- 不同
vlan
对应的bridge
下的vm
之间隔离
注:vlan
的隔离是靠网段隔离,连在同一个eth
上的两个vlan
对应的bridge
的ip
必须是不同网段,否则第二个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
与主机
:可以互通,因为bridge
和vm
在同一网段
vm
与vm
:不能互通,因为同一个eth0
下不同vlan
对应的bridge
必须不同网段,所以无法互通
vm
与外网
:因为vm
与eth0
不同网段,所以无法上网
网友评论