您的位置:首页 > 理论基础 > 计算机网络

Openstack记一次与网络节点失联的问题分析

2017-02-24 00:00 351 查看
团队已经搭建过几次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地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: