RHEL7.X双网卡绑定

       为了提高网络容错或吞吐量,一般服务器都会采取多网卡绑定的策略,在RHEL6中使用的是Bonding,而RHEL7提供了一项新的实现技术Teaming,具体原理和对比列表大家可以参考扩展阅读中的RedHat官方博客。配置Teaming有两种方式,第一种是使用nmclii命令,第二种是直接修改配置文件。

2.原理

      这里介绍两种最常见的双网卡绑定模式:
        (1) roundrobin - 轮询模式
            所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力。
        (2) activebackup - 主备模式
            一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡 

3.配置

      在RHEL7和Centos7中使用nmtui命令来配置网络,系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络的守护进程,能够让网络设备保持连接状态。可以使用 nmcli 命令来管理 Network Manager 服务。

[root@localhost ~]# nmtui

查看网卡连接信息

[root@localhost ~]# nmcli connection show
NAME    UUID                                  TYPE    DEVICE
virbr0  b286b35c-cb10-4d7c-980c-af2778929b66  bridge  virbr0

查看物理网卡信息

[root@localhost ~]# nmcli dev
设备         类型      状态    CONNECTION
eno16777736  ethernet  已断开  --        
eno33554960  ethernet  已断开  --        
lo           loopback  未管理  -- 

上面信息可以查看到连接只有virbr0,物理网卡有两个未连接,首先删除无用连接

[root@localhost ~]# nmcli connection delete b91bbba9-5019-48a5-a873-5e1b13df2a7d

建立两个连接

[root@localhost ~]# nmcli connection add type ethernet con-name eno16777736 ifname eno16777736
Connection 'eno16777736' (86cc9bf6-5492-4c41-bfd8-ab89cde271e8) successfully added.
[root@localhost ~]# nmcli connection add type ethernet con-name eno33554960 ifname eno33554960
Connection 'eno33554960' (48db52c1-0449-41c8-9a2b-da3951ea4076) successfully added.

再次查看连接信息

[root@localhost ~]# nmcli connection show
名称         UUID                                  类型            设备       
eno33554960  48db52c1-0449-41c8-9a2b-da3951ea4076  802-3-ethernet  eno33554960
eno16777736  86cc9bf6-5492-4c41-bfd8-ab89cde271e8  802-3-ethernet  eno16777736

网络连接和配置文件都成功生成,接下来通过eno33554960和eno16777736使用teaming模式进行双网卡绑定

3.1 roundrobin - 轮询模式

roundrobin模式也称为轮询模式,它 基于每一个包 ,当某一台服务器的两张网卡设置为roundrobin模式teaming,此时服务器发出的数据包,就会在两个物理
    网卡上进行轮询,即第一个数据包走一张网卡,第二个数据包走第二张网卡,依次轮询。
    注意:
        (1)roundrobin具有容错性,当一张网卡down掉,数据包依然发送成功。
        (2)在使用roundrobin模式必须要在交换机上做以太通道,不然会出现网络无法连通。

使用nmcli命令操作,创建team接口team0,同时设置teaming模式为roundrobin

[root@localhost ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name": "roundrobin"}}'
Connection 'team0' (283eb25f-7212-4cc2-a5b5-85d6aa5f2152) successfully added.

给team0设置IP地址,IP模式为手动

[root@localhost ~]# nmcli connection mod team0 ipv4.addresses 192.168.1.20/24 ipv4.gateway 192.168.1.1 ipv4.method manual connectio.autoconnect yes

将两张物理网卡加入到team中

[root@localhost ~]# nmcli connection add type team-slave con-name team0-port1 ifname eno33554960 master team0
Connection 'team0-port1' (96f914fa-f43a-4bc9-8458-10e3923c62f9) successfully added.
[root@localhost ~]# nmcli connection add type team-slave con-name team0-port2 ifname eno16777736 master team0
Connection 'team0-port2' (b1eb81ce-d190-44bb-83a5-deba333fa7b2) successfully added.

重新载入连接配置

[root@192 jun]# nmcli connection reload 

启动team0 

[root@192 jun]# nmcli connection up team0
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/8)

查看状态

[root@192 jun]# teamdctl team0 state
setup:
runner: activebackup
runner:
active port:

[root@192 jun]# nmcli connection show
名称 UUID 类型 设备
ens33 f1ce3db1-bea6-44a9-94be-1bc13c1a7a8b 802-3-ethernet ens33
ens38 a2dbd32a-af3f-4c69-82a2-160ae3af95f8 802-3-ethernet ens38
team0 5b68aca4-cd1f-4204-889a-2f7d7467afbc team team0
virbr0 7fbf45c9-eee4-4742-8188-c4c51603f4fa bridge virbr0
team0-port1 027eef4c-52c4-4ce9-a0f0-25acd901beff 802-3-ethernet --
team0-port2 f05ff513-b7de-4729-8b2c-7b886aa22dc6 802-3-ethernet --
[root@192 jun]# nmcli dev

发现发现team0-port1 team0-port2没有添加成功物理网卡

删除掉没有添加成功team0-port1 team0-port2两张网卡

[root@192 jun]# nmcli connection delete team0-port1
成功删除连接 'team0-port1'(7df353c3-b279-4641-9fb9-b9f6276077d1)。
[root@192 jun]# nmcli connection delete team0-port2
成功删除连接 'team0-port2'(0cff2fae-5aa0-4158-8bf4-660ab1445399)。

删除两张物理网卡ens33,ens38

[root@192 jun]# nmcli connection delete ens33 ens38
成功删除连接 'ens38'(a2dbd32a-af3f-4c69-82a2-160ae3af95f8)。
成功删除连接 'ens33'(f1ce3db1-bea6-44a9-94be-1bc13c1a7a8b)。

再次添加team0-port1 team0-port2两张网卡

[root@192 jun]# nmcli connection add type team-slave con-name team0-port1 ifname ens33 master team0
连接“team0-port1”(964b7117-a6e6-4d52-a9bf-d12378aa7eae) 已成功添加。
[root@192 jun]# nmcli connection add type team-slave con-name team0-port2 ifname ens38 master team0
连接“team0-port2”(12794ede-75c1-4737-8a46-69738943f4b2) 已成功添加。

再次查看状态

[root@192 jun]# teamdctl team0 state
setup:
runner: activebackup
ports:
ens33
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens38
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens33

3.2 activebackup-主备模式

一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡。

[root@localhost ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name": "activebackup"}}'

其余命令一样。

总结:

知道两张物理网卡连接名则:

nmcli connection add type team ifname team0 con-name team0 config '{"runner":{"name":"activebackup"}}'

nmcli connection mod team0 ipv4.addresses 192.168.1.20/24 ipv4.gateway 192.168.1.1

nmcli connection modify team0 ipv4.method manual

nmcli connection add type team-slave con-name team0-port1 ifname ens33 master team0

nmcli connection add type team-slave con-name team0-port2 ifname ens38 master team0

systemctl restart network

teamdctl team0 state

猜你喜欢

转载自www.cnblogs.com/jun1/p/9054180.html