本篇文章给大家分享的是有关如何进行Openstack中网络节点失联的问题分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
团队已经搭建过几次openstack后,决定分组搭建环境,并将network节点独立出来。
安装完成后,发现ssh远程连接不上,通过VNC发现机器是正常的。
经过多次测试,开机后ssh连接正常,但等Linux bridge启动后就连接断开,后经分析,发现新建的拥有ip的网桥的mac地址与物理网卡的mac地址不一致,试着指定网桥的mac为网卡的mac,ssh连接恢复。
# ifconfig brqfd64f5fd-a5 hw ether fa:16:3e:90:ee:b0
后面团队内分析由于ip与mac映射改变了,导致无法通信,一度认为这是openstack的bug。
后面查看了几个环境的网络信息,发现网桥与物理网卡的mac不一定相同,但本身网络都是没有问题的。分析与网络节点失联,原因可能做了类似ip与mac绑定的策略,ip与mac映射关系改变后就无法通信。
相同:
不同:
但为什么bridge的mac地址有时与物理网卡一致,有时不一致,引起了注意。
后在网上查找相关的资料,发现linux 的网桥mac是按如下规则变化:
bridge的MAC地址会根据bridge中port的变化,自动选择port中最小的一个MAC地址作为bridge的MAC地址。可以通过hw ether制定bridge的mac地址为port中的一个。
因此,做了如下测试:
1、新建BRIDGE和3个TAP设备
brctl addbr br0
ip tuntap add "tap1" mode tap
ip link set "tap1" address 00:50:56:a4:41:b6
ip tuntap add "tap2" mode tap
ip link set "tap2" address 00:50:56:a4:41:b5
ip tuntap add "tap3" mode tap
ip link set "tap3" address 00:50:56:a4:41:b7
# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1450
ether 00:00:00:00:00:00 txqueuelen 0 (Ethernet)
2、添加mac居中的tap设备
# brctl addif br0 tap1
# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 00:50:56:a4:41:b6 txqueuelen 0 (Ethernet)
3、添加mac最小的tap设备
# brctl addif br0 tap2
# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 00:50:56:a4:41:b5 txqueuelen 0 (Ethernet)
4、添加mac最大的tap设备
# brctl addif br0 tap3
# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1450
ether 00:50:56:a4:41:b5 txqueuelen 0 (Ethernet)
5、删除mac最小的tap设备
# brctl delif br0 tap2
# ifconfig br0
br0: flags=4098<BROADCAST,MULTICAST> mtu 1450
ether 00:50:56:a4:41:b6 txqueuelen 0 (Ethernet)
通过如上步骤证实,bridge自动选择port中最小的一个MAC地址作为bridge的MAC地址。
以上就是如何进行Openstack中网络节点失联的问题分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注天达云行业资讯频道。