服务器网卡bond0和bond1到底有什么区别?

Table of Contents
- bond0配置示例
- bond1配置示例
不知道你们有没有遇到过这种情况:公司服务器突然断网,整个部门急得跳脚。后来网管小哥说加了”bond0双网卡绑定”,结果半年后又升级成了”bond1″。这时候你心里是不是在嘀咕——这bond0和bond1不都是网卡绑定吗?难不成网管在搞什么玄学操作?
先来打个比方,假设你家有两条宽带,bond技术就像是个智能路由器。bond0相当于把两条网线拧成一股绳,而bond1更像是给两条网线分配不同任务。不过真实情况可比这个复杂多了,咱们慢慢往下唠。
网卡绑定到底在绑什么? 其实说白了就是把多个物理网卡打包成一个虚拟网卡。想象下给服务器装了两个网口,bond技术能让这两个网口要么同时干活(提升网速),要么互相替补(保证不断网)。这里头最关键的参数叫”bonding mode”,也就是工作模式。
bond0对应的mode0有个很直白的名字叫”负载均衡轮询”。举个栗子,你有两个1G网卡绑成bond0,这时候系统会像发扑克牌那样,把数据包轮流发给两个网卡。理论上网速能翻倍到2G,但实际使用中会遇到个头疼的问题——接收端的设备可能认不出这种轮询模式,导致数据包乱序。
bond1对应的mode1则是”主备模式”。平时只用主网卡,只有当主网卡挂了才会切换备用网卡。这种模式网速不会叠加,但胜在稳定可靠。很多银行ATM机用的就是这种模式,保证7×24小时不断网。
这时候问题来了:为什么同样的bond技术会有两种完全不同的用法? 咱们得从使用场景说起。bond0适合需要大带宽但对稳定性要求不高的场合,比如视频网站的内容分发服务器。而bond1更适合不能接受任何网络中断的关键系统,比如医院的电子病历服务器。
不过这里有个坑要注意:不是所有设备都支持bond0! 有些老式交换机处理不了轮询模式的数据包,这时候强行用bond0反而会导致网络性能下降。前两年我就踩过这个雷,当时给客户装了bond0,结果他们机房的华为交换机直接罢工了…
实际配置时怎么区分bond0和bond1? 在Linux系统里,配置文件一般长这样: “`
bond0配置示例
BONDING_OPTS=”mode=0 miimon=100″
bond1配置示例
BONDING_OPTS=”mode=1 primary=eth0″ “` 看”mode=”后面的数字就知道是哪种模式了。不过新手常犯的错误是以为bond0到bond7对应着不同的模式,其实bond后面的数字只是设备编号,真正起作用的还是mode参数。
测试时有个小技巧:用ifconfig命令查看绑定状态时,bond0的工作状态显示”up”和”running”,而bond1的主网卡会显示”active”,备用网卡显示”backup”。这个细节很多人没注意到,结果排查故障时白白浪费两小时。
最近有个学员问我:既然bond1更稳定,为什么不全用bond1? 这个问题问到点子上了!bond1虽然稳定,但有两个致命缺点:首先是硬件资源浪费,备用网卡平时就是个摆设;其次是切换需要时间,虽然通常只要几毫秒,但对高频交易系统来说可能就是重大事故。所以现在很多云服务器开始用mode4(动态链路聚合),算是bond技术的升级版。
不过说实在的,对于刚入门的新手,我的建议是:先用bond1保平安,等摸清网络环境再尝试其他模式。别学某些教程一上来就搞负载均衡,结果连个ping测试都过不了。就像学开车先学自动挡,等技术熟练了再玩手动挡,这样才不容易翻车嘛!


相关文章:
相关推荐:




