Linux网口绑定

本文介绍了如何在Linux系统中进行网口绑定,以实现网络冗余和负载均衡。通过编辑配置文件设置bond0,eth0和eth1的参数,加载bonding模块,并配置modprobe设定,最终达到active-backup模式的网口绑定。拔掉一根网线后,服务器仍能保持网络连接,证明绑定成功。

Linux网口绑定

 

 

通过网口绑定(bond)技术,可以很容易实现网口冗余,负载均衡,从而达到高可用高可靠的目的。

前提约定:
2个物理网口分别是:eth0,eth1
绑定后的虚拟口是:bond0
服务器IP是:192.168.0.100

第一步,配置设定文件:
/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0BOOTPROTO=noneONBOOT=yesIPADDR=192.168.0.100NETMASK=255.255.255.0NETWORK=192.168.0.0BROADCAST=192.168.0.255

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

DEVICE=eth0BOOTPROTO=noneMASTER=bond0SLAVE=yes

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

DEVICE=eth1BOOTPROTO=noneMASTER=bond0SLAVE=yes

第二步,修改modprobe相关设定文件,并加载bonding模块:
1.在这里,我们直接创建一个加载bonding的专属设定文件/etc/modprobe.d/bonding.conf

[root@test ~]# vi /etc/modprobe.d/bonding.conf#追加alias bond0 bondingoptions bonding mode=1 miimon=200

2.加载模块(重启系统后就不用手动再加载了)

[root@test ~]# modprobe bonding

3.确认模块是否加载成功:

[root@test ~]# lsmod | grep bondingbonding               100065  0

第三步,重启一下网络,然后确认一下状况:

[root@test ~]# /etc/init.d/network restart[root@test ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: eth0 MII Status: upMII Polling Interval (ms): 200Up Delay (ms): 0Down Delay (ms): 0 Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 00:16:36:1b:bb:74 Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 00:16:36:1b:bb:80[root@test ~]# ifconfig | grep HWaddrbond0     Link encap:Ethernet  HWaddr 00:16:36:1B:BB:74eth0      Link encap:Ethernet  HWaddr 00:16:36:1B:BB:74eth1      Link encap:Ethernet  HWaddr 00:16:36:1B:BB:74

从上面的确认信息中,我们可以看到3个重要信息:
1.现在的bonding模式是active-backup
2.现在Active状态的网口是eth0
3.bond0,eth1的物理地址和处于active状态下的eth0的物理地址相同,这样是为了避免上位交换机发生混乱。

任意拔掉一根网线,然后再访问你的服务器,看网络是否还是通的。

留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,
那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:

alias bond0 bondingoptions bonding mode=1 miimon=200alias bond1 bondingoptions bonding mode=1 miimon=200

正确的设置方法有2种:
第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:

alias bond0 bondingalias bond1 bondingoptions bonding max_bonds=2 miimon=200 mode=1

第二种,这种方式,不同的bond口的mode可以设成不一样:

alias bond0 bondingoptions bond0 miimon=100 mode=1install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!

后记:简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:

miimon      监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。max_bonds   配置的bond口个数mode        bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多,如果你要深入了解这些模式各自的特点就需要靠读者你自己去查资料并做实践了。0或balance-rr         轮转策略,提供负载均衡和耐故障功能,按顺序轮流把包发给包含在bond口内的网口。1或active-backup      主备策略,提供高耐故障功能,逻辑简单,一个处于激活状态,一个失败,另外一个自动激活。2或balance-xor        XOR策略,提供负载均衡和耐故障功能。3或broadcast          广播策略,耐故障功能。把数据以广播的方式,发给包含在该bond口内的所有网口。4或802.3ad            IEEE 802.3ad动态链接集合。5或balance-tlb        自动适应传输负载均衡策略。6或balance-alb        自动适应负载均衡策略。

Linux系统中,可以使用bonding驱动来实现网口绑定。以下是网口绑定的基本步骤: 1. 安装bonding驱动:在Linux系统中,bonding驱动通常是内核自带的,可以通过modprobe命令加载。 2. 配置bonding网卡:在/etc/sysconfig/network-scripts目录下,创建ifcfg-bond0文件,设置bonding网卡的IP地址、网关等网络参数。 3. 配置物理网卡:在/etc/sysconfig/network-scripts目录下,创建ifcfg-eth0、ifcfg-eth1等文件,设置每个物理网卡的参数,并将它们绑定到bonding网卡上。 4. 配置bonding模式:bonding模式有多种,可以根据实际需求选择合适的模式,比如负载均衡模式、备份模式等。 5. 重启网络服务:使用service network restart命令重启网络服务,使配置生效。 以下是一个具体的网口绑定实例,假设我们需要将eth0和eth1这两个物理网口绑定: 1. 加载bonding驱动:在终端中执行以下命令加载bonding驱动: ``` modprobe bonding ``` 2. 配置bonding网卡:在/etc/sysconfig/network-scripts目录下,创建ifcfg-bond0文件,内容如下: ``` DEVICE=bond0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPADDR=192.168.0.10 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 BONDING_OPTS="mode=0 miimon=100" ``` 其中,BONDING_OPTS参数设置了bonding模式为0(负载均衡模式),miimon参数表示每100毫秒检查一次物理网卡的状态。 3. 配置物理网卡:在/etc/sysconfig/network-scripts目录下,创建ifcfg-eth0、ifcfg-eth1文件,内容如下: ``` DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes ``` ``` DEVICE=eth1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes ``` MASTER参数表示将该网卡绑定到bonding网卡上,SLAVE参数表示该网卡是物理网卡。 4. 重启网络服务:执行以下命令重启网络服务: ``` service network restart ``` 完成以上步骤后,就可以实现网口绑定了。需要注意的是,网口绑定的配置需要在每个节点上都进行,才能实现负载均衡和高可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值