将公有IP分配给虚拟机guest

我有一组虚拟机的公共IP地址。 每个独特的公共IP被分配给一个独特的客人。 通过接networking,我可以与KVM机器共享eth0。

ifcfg-eth0文件具有configuration:

DEVICE=eth0 ONBOOT=yes BRIDGE=br0 HWADDR=b8:ac:6f:65:31:e5 DNS1=8.8.8.8 TYPE=Ethernet 

ifcfg-br0文件具有configuration:

 DEVICE=br0 TYPE=Bridge BOOTPROTO=static ONBOOT=yes IPADDR=121.33.7.1 GATEWAY=121.33.7.0 NETMASK=255.255.255.0 DELAY=0 DNS1=8.8.8.8 

我使用默认的libvirtnetworking文件,返回一个网桥摘要

 bridge name bridge id STP enabled interfaces br0 8000.705240103540 no eth0 virtual-machine-0 virtual-machine-1 virtual-machine-2 virtual-machine-3 

它适用于来宾连接和传出连接的客人。 但是configuration的问题是,如果一个guest虚拟机在另一个公有ip上更改他的networking文件,他将能够获得最初没有分配给他的vm的ip。 如何将特定的公共IP分配给访客networking接口?

只是find了正确的方法来做到这一点。 添加一个etables reule,以便具有接口virtual-machine-0的虚拟机guest只能使用ip 121.33.7.5。

 ebtables -A FORWARD -i virtual-machine-0 -p IPv4 --ip-src ! 121.33.7.5 -j DROP