Doing a sudo ip netns qrouter-<router-id> ifconfig for a router namespace reveals the following. There are two internal devices (qr-XXXX) in this namespace. When a VM is created with a floating ip using this router, it cannot be pinged.
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:147 errors:0 dropped:0 overruns:0 frame:0
TX packets:147 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12936 (12.9 KB) TX bytes:12936 (12.9 KB)
qg-c9bad8cf-63 Link encap:Ethernet HWaddr fa:16:3e:fe:20:2d
inet addr:15.184.41.158 Bcast:15.184.47.255 Mask:255.255.248.0
inet6 addr: fe80::f816:3eff:fefe:202d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7567222 errors:0 dropped:235502 overruns:0 frame:0
TX packets:2831290 errors:0 dropped:4 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14540514463 (14.5 GB) TX bytes:246815068 (246.8 MB)
qr-57bb264d-7c Link encap:Ethernet HWaddr fa:16:3e:8f:dc:be
inet addr:10.24.0.1 Bcast:10.24.255.255 Mask:255.255.0.0
inet6 addr: fe80::f816:3eff:fe8f:dcbe/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:292 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23856 (23.8 KB) TX bytes:126 (126.0 B)
qr-9883db4f-07 Link encap:Ethernet HWaddr fa:16:3e:5e:70:09
inet addr:10.24.0.1 Bcast:10.24.255.255 Mask:255.255.0.0
inet6 addr: fe80::f816:3eff:fe5e:7009/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:171988 errors:0 dropped:0 overruns:0 frame:0
TX packets:319691 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14116358 (14.1 MB) TX bytes:653426894 (653.4 MB)
The question is why there are 2 internal devices with the same IP addresses. In this case, what happened is that the user issued the command "neutron router- interface- delete <router-id> <subnet-id>". The API-server processed the request and then it issued the routers updated notification. However while the the notification is in flight, the machine running the L3-agent hosting the router crashed. After reboot, L3-agent started up again, but it "forgot" about needing to delete the internal device from the namespace.
After awhile, the user created ran the command "neutron router- interface- add <router-id> <subnet-id>". Now the L3-agent created another internal device in the namespace.