How to assign multiple public IP address for 3 KVM guest using a single NIC [closed]

You can use a Bridge on the Host-Server. The other KVMs will use a static IP.

How to create a Bridge: Link. Now you just have to use the Bridge in your KVMs. If you use virsh with the argument --network=bridge:br0

To install a new VM with help from virsh, I am using this command:

virt-install --connect qemu:///system --name test_vm --ram 1024 --vcpus 2 --disk path=/vms/test_vm.img,size=10 \
             --network=bridge:br0 \
             --os-type=linux --graphics vnc,password=test --autostart --virt-type kvm

Special the 2. line is telling the simulator to use the bridge br0. The Linux-Kernel is automatically creating the tap devices for the bridge, you can check this with ifconfig.

A VM need's now a static IP. In CentOS you have to edit /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE="eth0"
BOOTPROTO="none"
HWADDR=
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID=
IPADDR=10.25.147.10*
NETMASK=255.255.254.0
DNS1=10.25.146.???
GATEWAY=10.25.146.9