KVM with one host IP and a different subnet for machines

The gateway configured on guest is not an IP of the host machine, I would try this config on guest:

auto eth0
iface eth0 inet static
       address 255.46.187.153
       netmask 255.255.255.255
       gateway 255.9.24.80
       pointopoint 255.9.24.80
       dns-nameservers <host provided nameservers>
       up ip addr add 255.46.187.154 dev eth0

also on host, make sure to add the route to to guest, add this to /etc/network/interfaces

iface eth0 inet static
       (...)
       up route add -host 255.46.187.153 dev br0
       up route add -host 255.46.187.154 dev br0

this way you can use network and broadcast addresses for guests (255.46.187.152 and 255.46.187.159)

some resources, sorry not in english:

http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/ (catalan)

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way (german)


If the VM aren't on the same network as the host, then you may need to set up the host as a router for the VMs:

iptables --table nat --append POSTROUTING --out-interface br0 -j MASQUERADE
iptables --append FORWARD --in-interface br0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Edit: Sorry for the "MASQUERADE", I simply copy-pasted a script I had lying around. In your case, you don't need it. But it can be useful in a different case, for instance when you want to give your VMs privates IPs.