#
vi
/etc/sysconfig/network-scripts/ifcfg-bond0
或者下面命令#
cp
/etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-bond0
2、#vi
ifcfg-bond0
将第一行改成
DEVICE=bond0:#
cat
ifcfg-bond0
DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=1921686172NETMASK=255255255240#BROADCAST=1921686179#GATEWAY=1921686177这里要注意,不要指定单个网卡的IP
地址、子网掩码或网卡
ID。将上述信息指定到虚拟适配器(bonding)中即可。#
cat
ifcfg-eth0
DEVICE=eth0BOOTPROTO=noneONBOOT=yesHWADDR=00:15:17:CC:FC:35MASTER=bond0SLAVE=yes#
cat
ifcfg-eth1
DEVICE=eth1BOOTPROTO=noneONBOOT=yesHWADDR=00:15:17:CC:FC:34MASTER=bond0SLAVE=yes
3、
#
vi
/etc/modulesconf
编辑
/etc/modprobeconf或者/etc/modulesconf文件,加入如下两行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为
bond0加入下列两行:alias
bond0
bondingoptions
bond0
miimon=100
mode=1说明:miimon是用来进行链路监测的。
比如:miimon=100,那么系统每100ms监测一次路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。mode=0表示load
balancing
(round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance
(active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡作,另一块做备份
bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用
4、 #
vi
/etc/rcd/rclocal
加入两行,加在启动自运行文件里面
ifenslave
bond0
eth0
eth1route
add
-net
172313254
netmask
2552552550
bond0 #如果需要的话加路由,不需要不用加
到这时已经配置完毕重新启动机器
重启会看见以下信息就表示配置成功了
Bringing
up
interface
bond0
OKBringing
up
interface
eth0
OKBringing
up
interface
eth1
OK一、准备环境
VMware软件、Centos7虚拟机
二、添加网卡
为虚拟机再添加两块网卡,查看网卡信息,可以看到有ens32、ens34、ens35三块网卡
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127001/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:54:02:06 brd ff:ff:ff:ff:ff:ff
inet 19216830142/24 brd 19216830255 scope global noprefixroute dynamic ens32
valid_lft 1615sec preferred_lft 1615sec
inet6 fe80::d089:c15:e69a:8ce4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:54:02:1a brd ff:ff:ff:ff:ff:ff
inet 19216830143/24 brd 19216830255 scope global noprefixroute dynamic ens34
valid_lft 1765sec preferred_lft 1765sec
inet6 fe80::a4af:b843:9032:9dd3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: ens35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:54:02:10 brd ff:ff:ff:ff:ff:ff
inet 19216830141/24 brd 19216830255 scope global noprefixroute dynamic ens35
valid_lft 1765sec preferred_lft 1765sec
inet6 fe80::b7cf:76d7:23aa:63c2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
查看网卡配置文件,可以看到添加网卡后,并没有生成对应的网卡文件
ls /etc/sysconfig/network-scripts/ifcfg
/etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-lo
可以为网卡生成配置文件,但在本文中不需要这样做
nmcli connection add type ethernet con-name ens34 ifname ens34 autoconnect yes
nmcli connection add type ethernet con-name ens35 ifname ens35 autoconnect yes
再次查看网卡配置文件,生成成功
ls /etc/sysconfig/network-scripts/ifcfg
/etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens35
/etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-lo
三,选定网卡绑定模式
多网卡一共有7种bond模式,这里直接选用mode=6 (balance-alb) Adaptive load balancing(适配器适应性负载均衡),该模式不需要交换机支持
四、开始配置
1、加载bonding模块,并设置开机启动
[root@localhost ~]#lsmod|grepbonding[root@localhost ~]#modprobe bonding[root@localhost ~]#lsmod|grepbondingbonding 152979 0
启用rclocal开机启动项
chmod +x /etc/rcd/rclocal
在文件中写入modprobe bonding
2、建立bond网口配置文件并进行配置
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=19216830250
PREFIX=2552552550
GATEWAY=192168302
DNS1=114114114114
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=6 miimon=100"
3、修改三块网卡的配置
vi /etc/sysconfig/network-scripts/ifcfg-ens32
DEVICE=ens32
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
vi /etc/sysconfig/network-scripts/ifcfg-ens34
DEVICE=ens34
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
vi /etc/sysconfig/network-scripts/ifcfg-ens35
DEVICE=ens35
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
4、重新加载网络配置
注意:这一步会断网!
nmcli connection reload && systemctl restart networkservice
使用新IP链接ssh
五、验证绑定是否生效
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v371 (April 27, 2011)
Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: ens32
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens32
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:02:06
Slave queue ID: 0
Slave Interface: ens34
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:02:1a
Slave queue ID: 0
Slave Interface: ens35
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:02:10
Slave queue ID: 0
查看网卡状态
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127001/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:54:02:06 brd ff:ff:ff:ff:ff:ff
3: ens34: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:54:02:1a brd ff:ff:ff:ff:ff:ff
4: ens35: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:54:02:10 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:54:02:06 brd ff:ff:ff:ff:ff:ff
inet 19216830250/24 brd 19216830255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe54:206/64 scope link
valid_lft forever preferred_lft forever
查看接口带宽,带宽为3G
ethtool bond0
Settings for bond0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 3000Mb/s
Duplex: Full
Port: Other
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Link detected: yes
连续ping测试,并禁用第一个网卡,此时会丢一个包,网络依然正常运行
来自 19216830250 的回复: 字节=32 时间<1ms TTL=64
来自 19216830250 的回复: 字节=32 时间<1ms TTL=64
来自 19216830250 的回复: 字节=32 时间=1ms TTL=64
请求超时。
来自 19216830250 的回复: 字节=32 时间=1ms TTL=64
来自 19216830250 的回复: 字节=32 时间<1ms TTL=64
完毕!网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡。在应用部署中是一种常用的技术,我们公司基本所有的项目相关服务器都做了bond,这里总结整理,以便待查。
bond模式:
Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合。
Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。
Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)
Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制和交换机的聚合强制不协商方式配合。
Mode=4(8023ad) 表示支持8023ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)
Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
Mode=6(balance-alb) 在5的tlb基础上增加了rlb。
5和6不需要交换机端的设置,网卡能自动聚合。4需要支持8023ad。0,2和3理论上需要静态聚合方式
但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。Bond3交换机是不需要的。
Bond3交换机不管是高端的还是低端的,基本都是不需要配置插上电就可以使用的,只是这时只能实现基本的通信。
bond3交换机是一种在通信系统中完成信息交换功能的设备。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)