Few weeks back me & my friend wanted to try out OpenStack on CentOS. We followed all steps but after 3 days of debugging we were still not able to figure out the issue. I am total newbie with the networking part of OpenStack, trying to catch up with it.
After hitting head around forums, launchpad & taking help from google we realized it was “Linux Namespaces” which was missing from the CentOS kernel version we were using. It was this configuration inside “l3_agent.ini”
# use_namespaces = True was our culprit.
Making it “False” and restarting the service made everything work as we desired, which was to run an instance along with associating an IP to the machine & making it reachable.
Further down the line i was having conversation with Lorin on IRC & explained what is Namespaces is & how important it is for SDN/Virtual Networking. I was lucky to go through this and this link to understand this magical piece added inside Linux Kernel.
In newbies term Net Namespaces is like LXC for networking, an independent & isolated network virtualNIC. Which means every instance started will have its own VirtualNIC associated with the greatness of Net Namespaces. Also each net namespace has its own routing table, but also its own iptables chains and rules.
Hope it helps!!