曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4634|回复: 0
打印 上一主题 下一主题

[CentOS/RHEL] 多网卡绑定(channel bonding interface)

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2013-6-25 11:47:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 CentOS 里,使用 bonding 内核模块可以将多个网卡绑定到同一个通道中来,绑定后的这个特殊的网络接口称之为“通道绑定接口”(channel bonding interface)。通道绑定允许将两个或多个网卡绑定到一起,使其看起来像是一张,这么做可以提高传输带宽。也有人将这种绑定称之为“聚合”。

创建一个通道绑定接口,先要在 /etc/sysconfig/network-scripts/ 目录下新建一个名为 ifcfg-bond<N> 的文件,其中 N 是一个数字,比如 0 。这个文件和其它的网卡配置文件大同小异,只不过 DEVICE 一项改为 bond<N> 即可。

下面是一个简单的 ifcfg-bond0 文件的示例:
DEVICE=bond0
IPADDR=192.168.2.100
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
在配置好上面的绑定文件后,对于要绑定的网络接口文件,必须增加 MASTER= 和 SLAVE= 两个配置项。比如这里打算将 eth0 和 eht1 进行绑定,那么就要分别对这两个网卡配置文件进行修改:
eth0 :
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="08:00:27:C5:B7:89"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond0
SLAVE=yes
USERCTL=no
eth1 :
DEVICE="eth1"
BOOTPROTO="none"
HWADDR="08:00:27:BC:2F:DC"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond0
SLAVE=yes
USERCTL=no

为了最后能够将这绑定接口跑起来,必须保证有 bonding 这个内核模块,比如:
[beyes@centos Documents]$ cat /boot/config-2.6.32-358.6.1.el6.i686 |grep CONFIG_BONDING
CONFIG_BONDING=m

确保在通道绑定接口启动时 bonding 模块被加载,需要在 /etc/modprobe.d 目录下创建一个以 .conf 后缀的配置文件,其内容如下:
$ cat /etc/modprobe.d/ethcond.conf
alias bond0 bonding

经上述的配置后,就可以实现两个网卡的绑定。当然多个网卡的绑定也是可以的,也可以有多个绑定通道,在这种情况下,每个通道都需要对应在 .conf 文件中增加一个配置条目。

可以使用 ifconfig 命令来查看是否绑定成功:
[beyes@centos Documents]$ ifconfig
bond0     Link encap:Ethernet  HWaddr 08:00:27:C5:B7:89  
          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fec5:b789/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:10358 (10.1 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:C5:B7:89  
          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:5557 (5.4 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:BC:2F:DC  
          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:4801 (4.6 KiB)
如上所示,出现了 bond0 的网络接口,说明绑定成功。

实际上,在 ifcfg-bond<N> 文件中可有一个选项 BONDING_OPTS=“<bongding parameters>” ,它后面可以接一系列的模块调优参数,每个参数使用空格隔开。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 14:33 , Processed in 0.061545 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表