说明:经过查阅,原来双网卡绑定一个 IP 的专业名词叫做 bond,可以实现负载均衡;如果想要实现两张网卡绑定到一个网桥,基本思路是两张网卡设置同一个网桥是行不通的,但如果先实现 bond,然后将 bond 绑定到这个网桥上是行的.关键看你配置的思路.网桥一般情况用不到,主要是用在 KVM 上.
双网卡绑定单个 IP 地址为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断.
在 Linux 下叫 bonding,IBM 称为 etherchanel,broadcom 叫 team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性.比如我们在 CentOS 6.9 下可以将 eth0 和 eth1 绑定成虚拟网卡 bond0.
如图:
实验配置:
mode=1:表示 fault-tolerance (active-backup) 提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若 eth0 断掉),则自动切换到另一个块网卡(eth1 做备份).
CentOS 6.9_64bit系 统 | 设备名称 | IP 地址 | 子网掩码 |
eth0 | |||
eth1 | |||
bond0 | 10.1.3.210 | 255.255.255.0 |
2,复制 ifcfg-bond0
[root@web ~]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# ll
total 200
-rw-r--r--. 1 root root 212 Mar 20 22:15 ifcfg-eth0
-rw-r--r-- 1 root root 212 Mar 23 19:10 ifcfg-eth1
3,编辑 ifcfg-bond0,ifcfg-eth0,ifcfg-eth1
[root@web network-scripts]# cp ifcfg-eth0 ifcfg-bond0
[root@web network-scripts]# ll
total 204
-rw-r--r-- 1 root root 212 Mar 23 19:12 ifcfg-bond0
-rw-r--r--. 1 root root 212 Mar 20 22:15 ifcfg-eth0
-rw-r--r-- 1 root root 212 Mar 23 19:10 ifcfg-eth1
4,模块加载
[root@web network-scripts]# vim ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.1.3.210
NETMASK=255.255.255.0
GATEWAY=10.1.3.254
ONBOOT=yes
USERCTL=no
[root@web1 network-scripts]# vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
[root@web1 network-scripts]# vim ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
[root@web1 ~]# vim /etc/modprobe.d/dist.conf
在最后添加以下内容:
查看
# 加载 bonding 模块,对外虚拟网络接口设备为 bond0
alias bond0 bonding
options bond0 miimon=100 mode=1
说明:
[root@web1 ~]# grep bond0 /etc/modprobe.d/dist.conf
alias bond0 bonding
options bond0 miimon=100 mode=1
miimon 是用来进行链路监测的. 比如:miimon=100,单位是 ms(毫秒) 这边的 100,是 100ms,即是 0.1 秒那么系统每 100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode 的值表示工作模式,他共有 0,1,2,3 四种模式,常用的为 0,1 两种.
mode 共有七种 (0~6),这里解释两个常用的选项.
mode=0:表示 load balancing (round-robin) 为负载均衡方式,两块网卡都在工作.
mode=1:表示 fault-tolerance (active-backup) 提供冗余功能,工作方式是主备的工作方式,其中一块网卡在工作(若 eth0 断掉),则自动切换到另一个块网卡(eth1 做备份).
bonding 只能提供链路监测,即从主机到交换机的链路是否接通.如果只是交换机对外的链路 down 掉了,而交换机本身并没有故障,那么 bonding 会认为链路没有问题而继续使用.
5,重启网络服务,使配置生效
6,查看 bond0 接口状态
[root@web1 ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: RTNETLINK answers: File exists
Error adding address 10.1.3.210 for bond0.
RTNETLINK answers: File exists [ OK ]
7,查看中路由表状态:
[root@web1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0 // eth0 主模式
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:c9:6d:18
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:c9:6d:22
Slave queue ID: 0
8,测试
[root@web1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.3.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 bond0
0.0.0.0 10.1.3.254 0.0.0.0 UG 0 0 0 bond0
[root@web1 ~]# lsmod | grep bond
bonding 127060 0
选择一台 windows 7 机器 ping 测试机,然后停掉当前使用的网卡 eth0,查看是否能够继续 ping 通;
测试结果:丢失一个包.
查看 bond0 接口状态
配置完成!
[root@web1 ~]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1 //eth1 为主模式
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:0c:29:c9:6d:18
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:c9:6d:22
Slave queue ID: 0
9,支持 NetworkManager 的 centos 系统
只需要通过界面配置即可以完成多块网卡的绑定
10,一个网桥,bond 实例
/etc/sysconfig/network-scripts / 下的文件:
参考:
ifcfg-ebr:
vi
DEVICE=ebr
STP=yes
BRIDGING_OPTS=priority=128
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=
DNS2=
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ebr
UUID=1ce71742-a273-42fe-b358-3b0a0ee77c50
ONBOOT=yes
ifcfg-ebrbond:
DEVICE=ebrbond
BONDING_OPTS="miimon=100 mode=balance-alb"
TYPE=Bond
BONDING_MASTER=yes
BRIDGING_OPTS="priority=50 path_cost=33"
NAME=ebrbond
UUID=d0baebf0-282b-4dfe-b6d4-f6ff30ad81d1
ONBOOT=yes
BRIDGE=ebr
ifcfg-eth0
DEVICE=eth0
HWADDR=90:B1:1C:6E:AE:09
TYPE=Ethernet
NAME=eth0
UUID=c2eee5d8-34ee-4c0c-8d77-90029520b249
ONBOOT=yes
MASTER=ebrbond
SLAVE=yes
ifcfg-eth1
DEVICE=eth1
HWADDR=00:10:18:EA:9E:FC
TYPE=Ethernet
NAME=eth1
UUID=71ee5282-ce19-49f4-972d-37ab030b8011
ONBOOT=yes
MASTER=ebrbond
SLAVE=yes
http://blog.csdn.net/taiyang1987912/article/details/46550857 (以上内容转自此篇文章)
https://www.cnblogs.com/wonux/p/5555953.html
https://www.cnblogs.com/weifeng1463/p/7549951.html
来源: http://www.bubuko.com/infodetail-2477199.html