共计 1724 个字符,预计需要花费 5 分钟才能阅读完成。
本篇文章给大家分享的是有关如何进行 Openstack 中网络节点失联的问题分析,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。
团队已经搭建过几次 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 中网络节点失联的问题分析,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。