如何进行Openstack中网络节点失联的问题分析
更新:HHH   时间:2023-1-7


本篇文章给大家分享的是有关如何进行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中网络节点失联的问题分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注天达云行业资讯频道。

返回云计算教程...