多网卡配置bond模式
如何查看机器中的网卡bonding情况
查看是否存在bond网卡:
ip add
如何发现有带有 bondX 名字的网卡,那么说明本机是存在网卡bonding情况的。
然后查看网卡bonding的情况:
cat /proc/net/bonding/bond0
配置网卡bonding
查看内核是否支持网卡bonding功能:
modinfo bonding | more
确认是否加载了内核网卡bonding功能module,如果没有需要手动编译module并且加载。然后修改
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-bond0
bond模式
常用的有三种:
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
环境准备
我们绑定eno33554952和eno50332176网卡,配置的ip为192.168.2.230,实际操作中需要核实物理口和网卡文件的对应关系,防止绑错;
这里采用主备的模式active-backup实验
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:cb:75:ea brd ff:ff:ff:ff:ff:ff
inet 192.168.2.229/24 brd 192.168.2.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fecb:75ea/64 scope link
valid_lft forever preferred_lft forever
3: eno33554952: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:cb:75:f4 brd ff:ff:ff:ff:ff:ff
4: eno50332176: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:cb:75:fe brd ff:ff:ff:ff:ff:ff
操作步骤
(1)新增bond
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
##修改bond接口并设置绑定IP地址为192.168.2.230 192.168.2.1为网关
nmcli connection modify bond0 ipv4.method manual ipv4.addresses 192.168.2.230/24 ipv4.gateway 192.168.2.1
(2)添加slave
将物理网卡添加到bond0作为从属接口(eno33554952、eno50332176为实际的网卡名)
nmcli connection add type bond-slave ifname eno33554952 master bond0
nmcli connection add type bond-slave ifname eno50332176 master bond0
(3)启动bond
nmcli connection up bond-slave-eno33554952
nmcli connection up bond-slave-eno50332176
nmcli connection up bond0
(4)查看bond连接状态
nmcli connection show
注意eno33554952、eno50332176、bond0的MAC地址都是一样的 00:0c:29:7b:6d:f4
[root@localhost ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7b:6d:ea brd ff:ff:ff:ff:ff:ff
inet 192.168.2.229/24 brd 192.168.2.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7b:6dea/64 scope link
valid_lft forever preferred_lft forever
3: eno33554952: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:7b:6d:f4 brd ff:ff:ff:ff:ff:ff
4: eno50332176: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:7b:6d:f4 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:0c:29:7b:6d:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.230/24 brd 192.168.2.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7b:6df4/64 scope link
valid_lft forever preferred_lft forever
(5)查看bond运行模式状态
关闭eno50332176主网卡模拟故障,eno33554952从备转为主
[root@localhost ~]# cat /proc/net/bonding/bond0
模拟环境网卡故障
[root@localhost ~]# ifdown eno33554952
Device 'eno33554952' successfully disconnected.
故障网卡
故障网卡eno33554952恢复之后并不会抢占eno50332176,从而避免网络波动
[root@localhost ~]# ifup eno33554952
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
删除bond
nmcli connection down bond0
nmcli connection delete bond0
删除slave
nmcli connection delete bond-slave-eno33554952
nmcli connection delete bond-slave-eno50332176