rh436 – 网卡重命名/网卡绑定(rhel5.5)

Bonding原理

ifdown eht0,ping gateway

通过在 /etc/sysconfig/network-scripts/ 目录下创建 ifcfg-bond<N>
配置文件,就能够创建绑定接口。文件名称中的 <N>
为接口的编号,如第一个通道绑定接口的名称一般为
ifcfg-bond0。ifcfg-bond<N> 文件的内容与以太网接口的配置文件(如
ifcfg-eth0)基本相同,只是 DEVICE 选项的值,应该为 bond<N>。

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F7:5A:00 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:3314 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1572 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2330760 (2.2 MiB)  TX bytes:199428 (194.7 KiB)

3、修改 /etc/sysconfig/network-scripts/ifcfg-eth1网卡属性
[root@support ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
HWADDR=00:30:48:56:DA:73
ONBOOT=yes
HOTPLUG=no
DHCP_HOSTNAME=support
MASTER=bond0
SLAVE=yes

mv /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

5、重启网络服务,以使用bond生效
[root@support ~]# service network restart

[root@localhost ~]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:F7:5A:00 
          inet addr:192.168.221.244  Bcast:192.168.221.255 
Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef7:5a00/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:3369 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1755 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2342730 (2.2 MiB)  TX bytes:234018 (228.5 KiB)

Bonding接口创建以后,被绑定的网卡必须在他们的设置文件里面添加MASTER和SLAVE两个参数。每个bonding接口的设置基本相同,具体配置如下:

DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.221.244
NETMASK=255.255.255.0
GATEWAY=192.168.221.254

eth1      Link encap:Ethernet  HWaddr 00:30:48:56:DA:72 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:8423 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2705 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1261472 (1.2 MiB)  TX bytes:260887 (254.7 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:F7:5A:00 
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:64 errors:0 dropped:0 overruns:0 frame:0
          TX packets:195 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:12564 (12.2 KiB)  TX bytes:36566 (35.7 KiB)

1、新建/etc/sysconfig/network-scripts/ifcfg-bond0文件,输入以下配置信息:
[root@support ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.8.0.231
NETMASK=255.255.0.0
NETWORK=10.8.0.0
BROADCAST=10.8.255.255
ONBOOT=yes
USERCTL=NO
BONDING_OPTS=”mode=0 miimon=100″

DEVICE=eth1
MASTER=bond0
SLAVE=yes
BOOTPROTO=static
ONBOOT=yes

说明:修改单个网卡配置,主要是去掉IP
地址、子网掩码等信息。同时添加MASTER及SLAVE两项参数。
MASTER=<bond-interface>:<bond-interface>
的值是以太网卡连接到的通道绑定接口的名称,这个指令与 SLAVE
指令配合使用。
SLAVE=<yes|no>:yes – 表示此设备可以由 MASTER
指令中配置的通道绑定接口进行控制。 no – 表示此设备不能由 MASTER
指令中配置的通道绑定接口进行控制。

查看eth0网卡对应的内核:modprobe -c | grep eth0

本次作业环境中,使用的是CentOS5.6,其系统信息如下:
[root@support ~]# cat /etc/issue
CentOS release 5.6 (Final)
Kernel \r on an \m
[root@support ~]# uname -a
Linux support 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011
x86_64 x86_64 x86_64 GNU/Linux

ifdown eth0

4、编辑 /etc/modules.conf 文件,添加:alias bond0
bonding,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0
[root@support ~]# cat /etc/modprobe.conf
463.com,alias bond0 bonding
alias eth0 e1000
alias eth1 e1000
alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 usb-storage

网卡绑定:

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1178 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2054820 (1.9 MiB)  TX bytes:2054820 (1.9 MiB)

vim /etc/modprobe.conf

说明:这里使用了BONDING_OPTS选项,则不需要再使用 /etc/modprobe.conf
配置文件对绑定设备进行配置。参数mode=0,指负载均衡模式,详见下文。miimon是用来进行链路监测的,其原理是检测网上的链路状态,一般将miimon值设为100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。

options bond0 mode=1 miimon=100 user_carrier=0

为方便理解bonding的配置及实现,顺便阐述一下Linux的网络接口及其配置文件。在
Linux
中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于
/etc/sysconfig/netwrok-scripts/
目录下。网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。接口配置文件的名称通常类似于
ifcfg-<name>,其中 <name> 与配置文件所控制的设备的名称相关。
在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件。虽然在不同的系统之间,文件的类型和数量并不一定相同,但各种的网络设备都需要用到这些文件保证设备的正常运作。bonding技术,就是通过配置文件建立绑定接口,从而实现多个物理网卡绑定到一个虚拟网卡。

vim /etc/sysconfig/network-scripts/ifcfg-bond0

至此,完成了bonding配置,系统已经在网卡的负载均衡模式下运行,随意拔掉一个网卡口的网线,网线依然正常。

取消绑定网卡,需要先卸载绑定内核:modprobe -r bonding

测试环境

vim /etc/sysconfig/network-scripts/ifcfg-eth1

本文介绍Linux(具体发行版本是CentOS5.6)下的双卡绑定的原理及实现。

rhel ver:

可以通过modinfo
bonding命令查看Linux是否支持bonding,据资料介绍,RHEL4已默认支持了,RHEL5、CentOS5毫无疑问也是支持的。系统有类似下面的信息输出,就说明已支持了。
[root@support ~]# modinfo bonding
filename:      
/lib/modules/2.6.18-238.9.1.el5/kernel/drivers/net/bonding/bonding.ko
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver, v3.4.0-1
version:        3.4.0-1
license:        GPL
srcversion:     358EAAF5610876F44387AEF
depends:        ipv6
vermagic:       2.6.18-238.9.1.el5 SMP mod_unload gcc-4.1
parm:           max_bonds:Max number of bonded devices (int)
…… ……
parm:           debug:Print debug messages; 0 for off (default), 1 for
on (int)
module_sig:    
883f3504da4d65c2ddc58dbbe9356811249c0a0993d9c1c5b9055a7e4f2b4d86e86ebb2c5fbdbf09e2c41b93ca13b6b809914bc6a201c3cf694855143

网卡重命名(eth0 -> eth1):

Linux双网卡绑定实现是使用两块网卡虚拟成为一块网卡设备,这简单来说,就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。这项技术在Sun和Cisco中分别被称为Trunking和Etherchannel技术,在Linux的2.4.x及其以后的内核则称为Bonding技术。

service network restart

Linux Bonding

alias bond0 bonding

bonding的前提条件:网卡应该具备自己独立的BIOS芯片,并且各网卡芯片组型号相同。同一台服务器上的网卡毫无疑问是是符合这个条件的。

alias eth0 e1000 => alias eth1 e1000

相关文章