openstack云主机获取IP地址异常

时间:2024-03-30 14:33:43


计算节点云主机获取IP地址异常

 

问题描述: 新增的计算节点物理机内核版本3.10.0-514.1.el7.x86_64,qemu版本1.5.3-501.el7.centos.bc.x86_64,libvirt版本1.2.17-13.el7_2.4.1.x86_64,OVS版本3.2.10-392-nuage,其他配置项服务运行正常,当创建运行虚拟机时,发现虚拟机无法获取IP地址。

问题根本原因分析:

https://bugzilla.redhat.com/show_bug.cgi?id=1445054

新增计算节点物理机,因系统引导文件增加ipv6.disable = 1参数。导致vxlan无法初始化错误“vxlan:无法绑定端口4789,err = -97”,通常情况下EAFNOSUPPORT状态很好,除了在第一次调用__vxlan_sock_add()时,EAFNOSUPPORT而导致的IPv6检查失败的情况下,不会发生第二个非IPv6调用__vxlan_sock_add()。
由于在__vxlan_add_sock()中进行了检查:__vxlan_add_sock()将通vxlan_sock_add  - > __ vxlan_sock_add-> vxlan_create_sock-> udp_sock_create()返回EAFNOSUPPORT而导致失败,在拒绝AF_INET6地址时,第一个检查失败,第二个检查也失败,因此不会重试vxlan套接字。

问题依据:

通过查看messages日志分析,虚机启动后,出现内核报错“kernel: vxlan: Cannotbind port 4789, err=-97 “

openstack云主机获取IP地址异常

查看/etc/default/grub时,发现增加了ipv6.disable=1参数

openstack云主机获取IP地址异常

解决方案:

如果我们要使用__vxlan_sock_add()到IPv4套接字。有效的解决方法是删除/etc/default/grub中GRUB_CMDLINE_LINUX="crashkernel=auto rhgb ipv6.disable=1 quiet"的ipv6.disable=1参数,执行grub2-mkconfig-o /boot/grub2/grub.cfg并重启物理机,这样VXLAN不再运行,将会打开套接字,创建云主机能成功绑定4789端口,正常获取IP地址。