Às vezes preciso iniciar manualmente uma máquina virtual, mas fornecer a ela um IP flutuante como se fosse entregue pelo OpenStack (usando nova-network). Isso é apenas para testes rápidos e sujos.
Suponha que você tenha uma máquina virtual com o endereço IP 10.40.1.101 e deseja que ela tenha o endereço IP 10.20.0.101. Isso é o que você faria no controlador, presumindo que sua interface pública seja a eth3:
ip addr add 10.20.0.101/32 dev eth3
iptables -t nat -A nova-network-OUTPUT -d 10.20.0.101/32 -j DNAT --to-destination 10.40.1.101
iptables -t nat -A nova-network-PREROUTING -d 10.20.0.101/32 -j DNAT --to-destination 10.40.1.101
iptables -t nat -A nova-network-float-snat -s 10.40.1.101/32 -o eth3 -j SNAT --to-source 10.20.0.101
Nota: Como o OpenStack não sabe que você entregou esse IP, ele pode entregá-lo a outra instância.