Floating IP being assigned to wrong interface

asked 2014-11-18 15:54:02 -0600

clarkt gravatar image

Running Juno. We have both a publically routable floating IP pool and an internal floating IP pool. If we attempt to associate an internal floating IP to a VM, we can see that the floating IP gets assigned to the gateway interface on the L3 agent instead of on the subnet-appropriate internal interface on the router.

Under the process_router_floating_ip_addresses function in l3_agent.py, it grabs the _get_external_device_interface_name, instead of selecting the internal interface for that subnet. This seems like an obvious bug. Is there no way currently for Neutron to select the appropriate interface?

Just wanted to ask before opening a bug report.

edit retag flag offensive close merge delete

Comments

What says dnsmasq.log when you assign private IP to VM ?

dbaxps gravatar imagedbaxps ( 2014-11-19 00:46:06 -0600 )edit

There's nothing unusual in the logs. From the source code, it's clear it's functioning as coded. It's only selecting the external interface for that router, which means we'll have to set up multiple routers for the tenant, one for each pool of floating IPs we want to use.

clarkt gravatar imageclarkt ( 2014-11-19 08:15:16 -0600 )edit

Could you please run :-

ps -ef | grep dnsmasq
ip netns list

and update your post with complete outputs

dbaxps gravatar imagedbaxps ( 2014-11-19 08:23:18 -0600 )edit

I would also ask you to enable dnsmasq logging ( view http://bderzhavets.blogspot.com/2014/... )
4. Updated dhcp_agent.ini and dnsmasq.conf to assign internal IP for instance and upload somewhere dnsmasq.log.

dbaxps gravatar imagedbaxps ( 2014-11-19 09:26:43 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2014-11-23 01:33:44 -0600

DanIzack gravatar image

When VM starts

neutron port-list --device-id   server-id

returns port-id on corresponding private subnet

neutron floatingip-create ext_net

returns floatingip_id

neutron floatingip-associate floatingip_id port_id

Assigns floating IP to VM.

neutron floatingip-show floatingip_id

Returns in particular port_id, which may be found in neutron port-list Are you saying that it doesn't work ?

edit flag offensive delete link more

Get to know Ask OpenStack

Resources for moderators

Question Tools

3 followers

Stats

Asked: 2014-11-18 15:49:57 -0600

Seen: 409 times

Last updated: Nov 23 '14