Comment 11 for bug 1515990

Revision history for this message
Ross Krumbeck (rkrum) wrote :

As a multi-tenant cloud provider we have the requirement of separating public VM traffic and backup VM traffic to our backup servers on our physical network whilst also isolating traffic between different clients.

We are using DVR and our compute nodes have different physical interfaces for public VM traffic and the backup VM traffic.

We are using vlxan for VM networks and have the following setup:

public_external_subnet (vlan provider) mapped to physnet1 (public VM interface)
backup_external_subnet (vlan provider) mapped to physnet2 (backup VM interface)

Then for the project/tenant:

client_public_subnet attached to client_public_router
client_backup_subnet attached to client_backup_router

And then we have an instance with:

eth0 connected to client_public_router with an ip from client_public_subnet on eth0 with a floating ip from public_external_subnet
eth1 connected to client_backup_router with an ip from client_backup_subnet on eth1 with a floating ip from backup_external_subnet

So what we want to do is have the default route go out eth0 and then have a static route specifically for our backup server network go out eth1.

But this is not possible due to the "if not subnet['gateway_ip']" code when adding the floating ip on the for the instance backup interface. When setting the gateway on the private subnet, this will result in the default gateway being updated for the instance public traffic to be incorrectly routed out the private interface.