我有一组虚拟机的公共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