内核版本
3.10.0-229.el7.x86_64
现象
主机overlay虚机不通,虚机发出的报文在netns可以抓到报文,在物理网卡抓不到vxlan报文。ovs trace流表正确,但最后的action报错。
ip a 没有vxlan_sys_4789口。
ovs-vswitchd.log有vxlan_sys_4789和“Invalid argument”报错。
排查
如openvswitch vxlan 源码分析文章中所说,vxlan_sys_4789口是ovs调用内核模块创建的。问题机器上没有这个口,可能是内核模块问题。
问题机器上的mod
正常机器上的mod
modinfo查看这些模块是和内核版本相关的
解决
升级kernel,重启机器后,mod支持vxlan了。
升级步骤
1. yum update kernel
升级至3.10.0-1160.80.1.el7.x86_64版本
2. 更改grub,设置用最新内核启动宿主机
2.1 将/etc/default/grub中GRUB_DEFAULT=0
2.2 执行下面命令,重新生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
2.3 reboot 物理机
2.4 重启后检查l3 agent是否正常启动,未启动的话,则执行下面命令
systemctl start neutron-l3-agent.service