服务器的网络连通状况直接影响着服务器的可用性,利用双网卡(NIC)绑定技术,可以实现服务器网卡的失效保护和负载均衡,有助于提高网络性能,从而保证服务器的高可用性(见图1)。

服务器的网络连通状况直接影响着服务器的可用性,利用双网卡(NIC)绑定技术,可以实现服务器网卡的失效保护和负载均衡,有助于提高网络性能,从而保证服务器的高可用性(见图1)。

图1 双网卡绑定后的网络拓扑图

双网卡绑定技术

双网卡绑定就是将两块物理网卡虚拟成一块逻辑网卡,使其具有相同的IP地址,合成一个逻辑链路进行工作。这项技术在Sun和Cisco的设备中早已存在,分别被称为Trunking和Etherchannel,在Linux中这种技术被称为Bonding。Bonding技术最早应用在集群——Beowulf上,是为了提高集群节点间的数据传输效率而设计的。

Bonding运行在网卡的混杂(Promisc)模式下,而且它将两块网卡的MAC地址修改为一样的。混杂模式就是网卡不再只接收目的硬件地址是自身MAC地址的数据帧,而是可以接收网络上所有的帧。利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同,并且都具备独立的BIOS芯片。

配置方法

1. 指定网卡IP

建立并修改ifcfg-bond0文件,把IP地址、子网掩码、网卡ID等信息指定到虚拟网卡(bond0)即可。注意,不要指定单个网卡的这些信息。

#cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

把ifcfg-bond0文件修改为如下内容:

DEVICE=bond0

BOOTPROTO=static

IPADDR=172.31.0.13

NETMASK=255.255.252.0

BROADCAST=172.31.3.255

ONBOOT=yes

TYPE=Ethernet

IP地址、广播地址等请根据具体情况填写。

另外,还需要将两块网卡的配置文件ifcfg-eth0和ifcfg-eth1中的“BOOTPROTO”设为“dhcp”,并且删除关于“IPADDR”、“NETMASK”和“BROADCAST”的设置。

2.修改/etc/modules.conf 文件

编辑/etc/modules.conf文件,加入如下内容,以使系统在启动时加载Bonding模块。

alias bond0 bonding

options bond0 miimon=100 mode=1

“miimon=100”表示系统每100ms监测一次链路连接状态,如果监测到有一条线路不通就转入另一条线路。

“mode”的值表示工作模式,共有0、1、2和3四种模式,常用的为0、1两种。

3.修改/etc/rc.d/rc.local文件

加入以下两行(路由视具体情况而定):

ifenslave bond0 eth0 eth1

route add -net 172.31.3.254 netmask 255.255.255.0 bond0

以上配置完毕后重新启动机器。重启时看见以下信息就表示双网卡绑定配置成功了。

................

Bringing up interface bond0 OK

Bringing up interface eth0 OK

Bringing up interface eth1 OK

................

失效保护和负载均衡“mode”设为1时,Bonding提供冗余功能(Fault-Tolerance (active-backup)),即Bonding工作在主备模式下,同时只有一块网卡工作,另一块作为备份。当主网卡失效时,系统会按照文件/etc/rc.d/rc.local里指定的顺序启动备用网卡工作,保证服务器不会出现长时间的网络中断。

用ifconfig命令查看网卡的配置信息,显示如下:

bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:18495 errors:0 dropped:0 overruns:0 frame:0

TX packets:480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)

eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:9572 errors:0 dropped:0 overruns:0 frame:0

TX packets:480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)

Interrupt:11

eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1

RX packets:8923 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b)

Interrupt:15

“mode”设为0时,Bonding工作在负载均衡(Load Balancing (round-robin))方式下,即两块网卡同时工作,这时理论上Bonding能提供两倍的带宽。在这种情况下如果一块网卡失效,仅仅会使服务器出口带宽下降,并不会影响网络使用。

通过ifconfig命令查看网卡的配置信息,“mode=0”和“mode=1”的区别在于eth1是工作在“SLAVE” 状态,而非“NOARP”。

小结

通过以下命令可以详细掌握Bonding的工作状态:

# cat /proc/net/bonding/bond0

bonding.c:v2.4.1 (September 15, 2003)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 0

Up Delay (ms): 0

Down Delay (ms): 0

Multicast Mode: all slaves

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8a

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8b

无论是“mode=0”还是“mode=1”,都大大增加了Linux服务器的高可用性,使服务器可以为用户提供不间断的关键服务。

如果想了解更多相关信息以及详细咨询,欢迎点击中英网http://www.uker.net/,或发email至:echo@uker.net,UKer.net资深编辑将为您详细解答。

linux双网卡合并,Linux系统如何让双网卡合“一”而用相关推荐

  1. 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动

    在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...

  2. 双馈风力发电系统 ACDCAC变流器双馈风力发电机仿真模型

    双馈风力发电系统 ACDCAC变流器双馈风力发电机仿真模型,有相关学习资料 ID:6944654313752465

  3. linux双显卡配置_Linux系统怎么配置双显卡

    Linux系统怎么配置双显卡 Linux系统中想要配置双显卡,该怎么配置呢?下面是小编分享的资料,一起来看一下吧. 众所周知,自从高性能独立图形处理器出现之后,很多便携式计算机就会采取一种双显卡的设计 ...

  4. linux双显卡配置_Linux系统怎么配置双显卡?,linux配置显卡

    Linux系统怎么配置双显卡?,linux配置显卡 感谢帮客之家网友鸢一雨音 的投稿 众所周知,自从高性能独立图形处理器出现之后,很多便携式计算机就会采取一种双显卡的设计:节能的核心图形处理器用于渲染 ...

  5. linux 文件拆分 合并,Linux下文件的切分与合并的简单方法

    linux下文件分割可以通过split命令来实现,可以将一个大文件拆分成指定大小的多个文件,并且拆分速度非常的快,可以指定按行数分割和安大小分割两种模式.Linux下文件合并可以通过cat命令来实现, ...

  6. windows服务器添加虚拟网卡,在WindowsServer2008R2系统中安装虚拟网卡.pdf

    在Windows Server 2008 R2 系统中安装虚拟网卡 在Windows Server 2008 R2 系统中安装虚拟网卡 (1) 打开"运行",输入"dev ...

  7. linux双显卡配置_Linux系统怎么配置双显卡?

    感谢脚本之家网友鸢一雨音 的投稿 众所周知,自从高性能独立图形处理器出现之后,很多便携式计算机就会采取一种双显卡的设计:节能的核心图形处理器用于渲染常规的桌面环境,而高性能的独立图形处理器则负责渲染高 ...

  8. ubuntu如何查看网卡名称_Ubuntu系统如何安装双网卡及更改网卡名称(eth0改为eth1)...

    本文只有部分内容,请到一牛网阅读全文: 最近,在原来的ubuntu服务器上安装两块千兆网卡,需要用到了一些网卡的安装.配置及更改命令. 新 安装的网卡为PCI-E 1x 接口,芯片为"BRO ...

  9. linux把目录合并,linux目录合并

     赶紧上网找解决办法,很快就被我命中了方法.使用下面的指令来将/aaa/bbb目录复制到当前目录的bbb目录下合并.-u参数表示只更新较新的文件和不存在的文件. #cp -R -u /aaa/bb ...

最新文章

  1. 2019年上半年收集到的人工智能迁移学习干货文章
  2. 探索Java语言与JVM中的Lambda表达式
  3. Android 多线程及线程通信
  4. json数据映射到html,在GoLang中将Json数据映射到Html模板
  5. 网络教育计算机 判断,北京师范大学网络教育计算机作业1、4、8
  6. 用python写石头剪刀布_Python实现简单石头剪刀布游戏
  7. 辞职腾讯去了小公司,从0到1搭建后端架构,工资就翻倍了
  8. 39万的一节课:让你悟透“近朱者赤,近墨者黑”的道理
  9. C# 实现对三维点数据的 显示
  10. VBScript编程教程 [下]
  11. Auto property synthesis will not synthesizeproterty;it will be implemented by its superclass, use@dy
  12. C语言编程>第二十三周 ② 请补充fun函数,该函数的功能是:交换数组a中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组a中没有相同元素。
  13. 交换机,路由器上的 S口 F口 E口 Gi是什么?
  14. Vue 制作滚动字幕,用于展示通知内容
  15. 算法:根据四色定理(Four color theorem),求出地图的所有着色方案
  16. Go入门-Go语言环境安装与GoLand第一个项目创建
  17. 宁芝蓝牙X87 说明书
  18. python实现树的遍历
  19. 阿里云前端专家冯军:前端用户体验该如何优化
  20. 科大讯飞机试题—修改成绩

热门文章

  1. 泰拉瑞亚装mod要java,泰拉瑞亚mod怎么安装教程 模组怎么进行安装
  2. 如何做到输入一个英语句子,将句中单词分行打印输出
  3. 我们需要什么样的智能助理?
  4. android定位导航,Corodva高德定位导航安卓插件
  5. iOS-Swift3 监听UITextView文字改变
  6. ElasticSearch系列之索引机制学习笔记
  7. goahead服务器性能,嵌入式Web服务器GoAhead的研究与应用
  8. Flutter 基础组件之 Text
  9. 使用禅道进行测试管理
  10. deviceiocontrol(deviceiocontrol函数)