基于RHEL实现NMCLI服务

狂风中的少年 提交于 2019-12-15 01:44:54

NMCLI(Network Manager Comand Line Tool):基于会话的网路管理

Teaming配置网卡聚合链路

    Teaming技术:将同一台服务器上的多个物理网卡通过软件绑定为一个虚拟的网卡。即:对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序及服务器所在网络,这台服务器只有一个可以访问的IP地址。

    使用Teaming技术,不但可以利用多网卡同时工作来提高网络速度以外,还可以通过Teaming实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。

Teaming与bonding的关系

    bonding(网卡绑定)可以提高网络的冗余,提高网络速度。为了提高网络容错或吞吐量,一般服务器都会采取多网卡绑定的策略,在RHEL5/RHEL6中使用的为bonding。

    RHEL7提供了一项新技术Teaming来实现链路聚合的功能。但在RHEL7中不会使用Teaming替换bonding,这两者是并存的,可以选择Teaming也可选择bonding。

一、配置Teaming高可用

查看本地网卡情况:
[root@localhost ~]# nmcli device show
在这里插入图片描述
在这里插入图片描述
  示例文件路径:
[root@localhost ~]# cd /usr/share/doc/teamd-1.17/example_configs/
[root@localhost example_configs]# ll
在这里插入图片描述
在这里插入图片描述

  • braodcast:广播模式—传输来自所有端口的数据包;
  • roundrobin:轮询模式–以轮询的方式传输所有端口的数据包;
  • activebackup:主备模式–一个故障迁移程序,监控连接更改并选择活动的端口进行传输;
  • loadbalance:负载均衡:监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美流量均衡;

实验环境:
RHEL7.2,添加两个网卡,共三个网卡。将其中两个网卡进行绑定测试。

创建team0设备team0会话:

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

查看创建的team0会话:

[root@localhost ~]# nmcli connection show 

在这里插入图片描述
修改team0会话的IP地址、网关,并将IP地址的获取方式改为手动方式:

[root@localhost ~]# nmcli connection modify team0 ipv4.addresses 192.168.199.200/24 ipv4.gateway 192.168.199.128 ipv4.method manual

添加网卡设备到team0中:

[root@localhost ~]# nmcli connection add type team-slave con-name team0-port1 ifname eno33554992 master team0 
[root@localhost ~]# nmcli connection add type team-slave con-name team0-port2 ifname eno50332216 master team0 

激活从设备:

[root@localhost ~]# nmcli connection up team0-port1
[root@localhost ~]# nmcli connection up team0-port2

激活主设备:

[root@localhost ~]# nmcli connection up team0

查看激活后team0的状态:

[root@localhost ~]# teamdctl team0 state

在这里插入图片描述
使用未绑定的网卡与team0进行ping测试:
(此处SSH远程连接的网卡为未绑定的网卡)
在这里插入图片描述
停用team0-port1设备后进行ping测试:

[root@localhost ~]# nmcli connection down team0-port1
[root@localhost ~]# teamdctl team0 state

在这里插入图片描述
在这里插入图片描述
停用team0-port2设备后进行ping测试:

[root@localhost ~]# nmcli connection up team0-port1
[root@localhost ~]# nmcli connection down team0-port2
[root@localhost ~]# teamdctl team0 state

在这里插入图片描述
在这里插入图片描述
将team0-port1与team0-port2同时停用并进行ping测试:

[root@localhost ~]# nmcli connection down team0-port1
[root@localhost ~]# teamdctl team0 state

在这里插入图片描述
在这里插入图片描述

将两个从设备停用之后ping测试依旧正常的原因是应为未绑定的网卡与team0在同一网段,所以可以ping通。

二、配置软件桥接

创建一个软件桥接设备和会话:

[root@localhost ~]# nmcli connection add type bridge con-name br1 ifname br1

添加从设备和会话到桥接设备:

[root@localhost ~]# nmcli connection add type bridge-slave con-name br1-port1 ifname eno33554992 master br1 

启动从设备会话:

[root@localhost ~]# nmcli connection up br1-port1 

启动桥接会话:

[root@localhost ~]# nmcli connection up br1

配置软件桥接网卡的IP地址、网关及IP地址的获取方式:

[root@localhost ~]# nmcli connection modify br1 ipv4.addresses 192.168.199.210/24 ipv4.gateway 192.168.199.128 ipv4.method manual

三、配置桥接 team0

1:配置team0
    配置方式同上。
配置完成后停用team0设备:

[root@localhost ~]# nmcli device disconnect team0 

2:停用NetworkManager服务

[root@localhost ~]# systemctl stop NetworkManager.service 

3:配置软件桥接br1的配置文件

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-br1

在这里插入图片描述
编辑team1的配置文件:

[root@localhost network-scripts]# vim ifcfg-team0

  在配置文件的最后追加一下内容:
在这里插入图片描述
重启网络服务:

[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# nmcli device connect team0 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!