bug:

http://lists.openstack.org/pipermail/openstack-operators/2015-August/007924.html

https://bugs.launchpad.net/neutron/+bug/1464178

解决方案地址:

https://bugs.launchpad.net/neutron/+bug/1464178

https://ask.openstack.org/en/question/79967/tunnel-ip-ips-in-use-with-host-hosts/

解决方案:

将数据库neutron中的ml2_gre_endpoints数据改为正确的IP 和域名(跟/etc/hosts中的一致)

参考解决方案摘要如下:

Check your mysql tables to see if the hostname shown on logs matches the one in the DB: on the controller: mysql -u root -pPASSWORD use neutron; select * from ml2_gre_endpoints;

you should see both tunnels with the same hostname as in /etc/hosts and "nova service-list"
Ran into this issue as well in Kilo where my node initially came up with the hostname "localhost.localdomain", and then I corrected it to the proper name.

These are the steps I did to correct my setup, but may not be complete, so use with caution.

I first ran "neutron agent-list" and then "neutron agent-delete $id" of the id associated with localhost.localdomain.
That didn't correct it fully, and not sure if this step was needed. So I then accessed the neutron database and ran MariaDB [neutron]> select * from ml2_gre_endpoints;
+--------------+-----------------------+
| ip_address | host |
+--------------+-----------------------+
| 172.20.20.70 | localhost.localdomain | this was the incorrect entry mapping the ip to localhost.localdomain instead of the correct entry. So i ran
delete from ml2_gre_endpoints where host='localhost.localdomain'; Next, on the bad compute node did " systemctl restart neutron-openvswitch-agent.service" And that made everything work for me. The database table was updated after the restart by openstack to contain the new correct entry. MariaDB [neutron]> select * from ml2_gre_endpoints;
+--------------+--------------+
| ip_address | host |
+--------------+--------------+
| 172.20.20.70 | icbm70.mgmt | You may have to look in ml2_vxlan_endpoints, depending on your setup.
05-04 00:24