centos7上实现bonding

centos7中网络管理需要用到nmcli这个工具,全称为NetworkManager command line tool,下面介绍的bondding是使用nmcli工具完成的。

环境

两块网卡:

  • eth0 :172.17.252.97/16
  • eth1 :172.17.252.98/16

bonding

1. 先查看一下信息:
[root@www ~]# nmcli connection show 
NAME  UUID                                  TYPE            DEVICE 
eth0  c6852fda-3d65-4874-8849-0645e0bc06dd  802-3-ethernet  eth0   #NAME列为端口链接名   
eth1  30563221-eac0-4128-bb2b-a492522a1333  802-3-ethernet  eth1
2. 创建bond虚拟网卡
[root@www ~]# nmcli connection add type bond con-name bond0 ifname bond0 mode balance-rr ipv4.method manual ipv4.addresses 172.17.99.99/16 ipv4.gateway 172.17.0.1 #这里模式选用了轮询模式,还有很多模式,可以补全显示出来 
Connection 'bond0' (c0d52464-c50a-41c8-8843-d4af1b999b5c) successfully added.
  • type:创建的类型,这里选择bond类型
  • con-name:这里写链接名,就是show中第一列,这里写什么生成的文件就是什么名字
  • ifname:网卡名,这里bond0是虚拟出来的
  • mode:选择bond模式,常用的有主备,轮询,广播,还有其他模式,用tab补全可以看到所有
  • ipv4.mehod:表示自动还是手动,就是使用dhcp还是自己配置地址,关联配置文件中的BOOTPROTO段,这里不能补全,manual表示手动配置地址
  • ipv4.address:设置ip地址,注意记得加上掩码
  • ipv4.gateway:设置网关
    后边还有很多设置选项,这里实验环境就写这几项就可以了
3. 创建真实网卡配置文件
[root@www network-scripts]# nmcli connection add type bond-slave ifname eth0 master bond0  #将eth0加入到bond0组中
Connection 'bond-slave-eth0' (bedfd9a8-10b6-4ceb-92d5-22c2ae99347d) successfully added.
[root@www network-scripts]# nmcli connection add type bond-slave ifname eth1 master bond0 #将eth1加入到bond0中
Connection 'bond-slave-eth1' (5970aede-20d6-4536-a463-d3c12dd77d14) successfully added.

这里type类型为bond-slave,表示这块真实网卡属于一块附属的网卡,配置的属性都不能使用了,master表示这块从属网卡属于bond0这个组中

4. 启用

之前生成了bond0和eth0,eth1的配置文件,但是0和1的新配置文件还没有使用,我们来看下:

[root@www network-scripts]# nmcli connection show 
NAME             UUID                                  TYPE            DEVICE 
bond0            c0d52464-c50a-41c8-8843-d4af1b999b5c  bond            bond0  
eth0             c6852fda-3d65-4874-8849-0645e0bc06dd  802-3-ethernet  eth0   
eth1             30563221-eac0-4128-bb2b-a492522a1333  802-3-ethernet  eth1   
bond-slave-eth0  bedfd9a8-10b6-4ceb-92d5-22c2ae99347d  802-3-ethernet  --  #生效的还是eth0和1的原有配置文件,新生成的配置文件和网卡没有挂上,这里显示的--   
bond-slave-eth1  5970aede-20d6-4536-a463-d3c12dd77d14  802-3-ethernet  --

需要将bond-slave-eth0bond-slave-eth1启用,如下:

[root@www network-scripts]# nmcli connection up bond-slave-eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@www network-scripts]# nmcli connection up bond-slave-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
5. 验证

这个时候,用ip a命令看到原来的网卡应该已经不能使用了,取代的是虚拟网卡,而且可以看到三个网卡的MAC地址是相同的,如下:

eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000  link/ether 00:0c:29:05:ca:d6 brd ff:ff:ff:ff:ff:ff
eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000  link/ether 00:0c:29:05:ca:d6 brd ff:ff:ff:ff:ff:ff
bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 00:0c:29:05:ca:d6 brd ff:ff:ff:ff:ff:ff

可以cat /proc/net/bonding/bond0来查看详细信息:

...
Bonding Mode: load balancing (round-robin) #轮询模式
...

Slave Interface: eth0 #从接口eth0
MII Status: up #启用状态
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:05:ca:d6
Slave queue ID: 0

Slave Interface: eth1 #从接口eth1
MII Status: up  #启用状态
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:05:ca:e0
Slave queue ID: 0

看到bond模式为轮询,两块网卡都处于up状态,实验成功

    原文作者:fengkaipeng
    原文地址: https://www.jianshu.com/p/4581f81bd41f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞