免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11869 | 回复: 8
打印 上一主题 下一主题

服务端做网口聚合(bond4或bond1模式)后,down/up聚合网口,其他节客户端连接失败。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-11-18 20:42 |只看该作者 |倒序浏览
环境 : [Ubuntu14.04]
网卡聚合 :  [bonding+ifenslave], bond4和bond1
物理网卡 : P9P1/P9P2
聚合网卡 : bond0
以上环境作为服务端,服务端还有其他物理网卡,服务端程序监听所有IP,通过SO_BINDTODEVICE绑定到bond0网口,做到监听bond0。
如果只是down/up聚合的物理网卡不会出现问题,如果down/up聚合网卡,客户端连接失败(connection refused),重启服务端程序后,恢复正常。如果服务端程序只是监听bond0网卡的一个IP,则不会出现连接失败。
分析是down掉聚合网口后监听失效,是否是服务端程序问题还是bond本身的bug,如果是服务端程序错误该怎么修改?如果是bond模式的bug,如何规避,服务端程序怎么感知到监听失效?
谢谢解答。

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2017-11-20 02:04 |只看该作者
回复 1# sky__hook

到底是哪里有影响?
没看明白。

论坛徽章:
0
3 [报告]
发表于 2017-11-20 09:44 |只看该作者
本帖最后由 sky__hook 于 2017-11-20 20:26 编辑

回复 2# q1208c

服务端设备是多网卡的,服务端程序bind的是INADDR_ANY,最初客户端程序可以通过所有网段来访问服务端程序,为了安全性限制客户端只能在一个网段访问服务端程序,所以在服务端增加了setsockopt+SO_BINDTODEVICE方式来将服务端程序只绑定到一个网卡(没有改成bind一个IP是因为一个网口会有多个IP)。所以客户端只能通过服务端绑定的网卡的网段来访问服务端程序。

1、当服务端直接使用的都是物理网卡的情况都是正常的;
2、如果将物理网卡P9P1和P9P2做成虚拟聚合网卡bond0(采用bond4模式),此时如果将物理网卡P9P1或P9P2进行down、up操作,只要保证有一个物理网卡是up状态,也是正常的;
3、如果将bond0网卡down、up,客户端程序去访问服务端程序,就会出现connection refused,但是客户端去ping服务端是正常的,此时重启服务端程序后,又恢复正常。


论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2017-11-20 19:08 |只看该作者
回复 3# sky__hook

你有试过只使用物理网卡时,down掉物理网卡的情况么?

一般来说,在管理上,很少会在同一块网卡上绑定多个IP或者多个网段的IP。
更一般的做法是使用 vlan。

我对程序设计不是太了解,不知道应用层的程序是怎么设置为监听物理层的网卡的。

论坛徽章:
0
5 [报告]
发表于 2017-11-20 20:36 |只看该作者
回复 4# q1208c

只使用物理网卡都是正常的。
服务端节点有高可用keepalived的时候,工作节点会增加一个高可用VIP的,这个时候业务网卡(bond0)就会有两个IP。

另外,ifenslave有个限制就是,
当你ifdown bond0后,bond0、P9P1、P9P2都会down掉,
然后必须要先ifup P9P1或者ifup P9P2,bond0也会同时启动,如果先ifup bond0就会出现提示有60s等待时间等待P9P1或者P9P2启动,否则就会出现bond0异常。

另外测试发现,如果用命令ifconfig bond0 down的时候,不会同时down掉P9P1和P9P2,而且ifconfig bond0 up后也没有出现connetion refused的问题。


论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2017-11-21 15:39 |只看该作者
回复 5# sky__hook

个人觉得, 你的环境被人为的搞得很复杂.

keepalived 本来应该 在上一层.

你把太多的功能加在了同一台服务器,很不利于管理.

论坛徽章:
0
7 [报告]
发表于 2017-11-22 08:04 来自手机 |只看该作者
q1208c 发表于 2017-11-21 15:39
回复 5# sky__hook

个人觉得, 你的环境被人为的搞得很复杂.

你说的keepalived在上一层什么意思呢?高可用的虚IP总是要落在一个工作节点吧,这里只是把聚合网卡当成工作节点的业务网卡了,不都是这么用么

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
8 [报告]
发表于 2017-11-22 21:49 |只看该作者
回复 7# sky__hook

我自己一般会单独搞一组机器来专门处理 转发。
这一层由于是单台,所以, 需要keepalived。



论坛徽章:
0
9 [报告]
发表于 2017-11-25 15:15 来自手机 |只看该作者
q1208c 发表于 2017-11-22 21:49
回复 7# sky__hook

我自己一般会单独搞一组机器来专门处理 转发。

多谢了,只能再看看ifenslave的聚合机制了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP