我有一个CentOS 6 Box (内核2.6.32-642.6.1.el6.x86_64),其中运行着2个KVM实例。
我从数据中心得到两个VLAN。不幸的是,他们不会将两个VLAN合并成一个VLAN。我需要在相同的KVM客人上同时使用两个VLAN。
默认的VLAN被取消标记,第二个vlan在id 471上被标记。
目前,我是这样做的:
bridge name bridge id STP enabled interfaces
br0 8000.0cc47a7fed0a no eth1
kvm1100.0
br1 8000.0cc47a7fed0a no eth1.471
kvm1101.0这如预期的那样起作用。我可以在KVM实例1100上使用无标记的VLAN,在KVM实例1101上使用VLAN 471。
现在,我希望KVM 1101可以使用来自无标记VLAN和VLAN 471的IP地址。
因此,我将eth1.471添加到br0中,然后将kvm1101.0添加到br0中。
bridge name bridge id STP enabled interfaces
br0 8000.0cc47a7fed0a no eth1
eth1.471
kvm1100.0
kvm1101.0这是可行的,我可以在两个实例上访问两个VLAN。我想怎么用就怎么用。
但是当eth1.471被添加到br0中时,我会看到整个网络中的数据包丢失。不仅在这台服务器上,它还影响到一切。当我从br0中删除eth.471时,数据包丢失就停止了。
这似乎不是正确的方法。我尝试过各种各样的事情,但结果总是一样。
我遗漏了什么?如前所述,数据中心不愿意将两个VLAN合并为一个。
将VLAN传递给KVM实例并在那里配置VLAN+ IP地址并不是一种选择。KVM实例应该能够在没有额外配置的情况下使用这两个vlans。
发布于 2016-10-11 13:29:26
当您将eth1与eth1.174连接起来时,您实际上在接口上的数据中心网络中创建了一个拓扑循环,从而导致了数据包丢失和其他问题。
解决问题的可能解决方案是向kvm1101引入第二个接口,并将KVM接口添加到br0,将br0和br1保持为绑定到物理适配器上各自VLAN的单独桥。
发布于 2016-10-11 18:50:50
如果您想在VM中的不同IP子网中使用两个不同的IP地址,那么在VM中需要两个不同的接口。根本没有其他方法,因为这就是IP的工作方式。规则是不能在同一个L2广播域中配置两个不同的IP子网。这也是为什么数据中心拒绝将它们合并为一个的原因。
因此,您需要为VM分配两个虚拟网络适配器(kvm1100.0和kvm1101.0)。
但是,如果VM需要侦听标记VLAN中IP地址上的某些特定端口,则可以使用NAT:
主机操作系统已经在标记的vlan中配置了一个地址(br1或eth1.471,这里实际上不需要桥接器)。然后,主机OS具有端口转发配置,以便将到eth1.471接口IP地址端口X的任何传入连接转发到eth1网络中的客户VM IP地址。
如果您希望某些目的地使用eth1.471作为传出接口,也可以使用NAT处理来自来宾VM的传出流量。
https://serverfault.com/questions/808350
复制相似问题