Linux_另一种方式设置IP地址:网络组Network Teaming

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/zhouchuan152/article/details/96130947

网络组Network Teaming

网络组是将多块网卡逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法。提高服务器网络可用性的一个方式是使用多个网卡。Linux 绑定驱动程序提供了一种将多个网卡聚合到一个逻辑的绑定接口的方法。这是个新的实现绑定的方法,并不影响linux内核中旧绑定驱动。

  1. 网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
  2. 网络组不同于旧版中bonding技术,提供更好的性能和扩展性
  3. 网络组由内核驱动和teamd守护进程实现.
  4. 多种方式runner:

    broadcast:传输来自所有端口的每个包

    roundrobin:以轮询方式传输来自每个端口的包

    activebackup:故障转移,监视链接更改并选择活动端口进行数据传输

    loadbalance:监控流量并使用哈希函数以尝试在为包传输选择端口时达到完美均衡

    lacp(implements the 802.3ad Link Aggregation Control Protocol)

          实施802.3链路聚合控制协议

  1. 启动网络组接口不会自动启动网络组中的port接口
  2. 启动网络组接口中的port接口始终会启动合作接口
  3. 禁用网络组接口会自动禁用网络组中的port接口
  4. 没有port接口的网络组接口可以启动静态IP连接
  5. 启用DHCP连接时,没有port接口的网络组会等待port接口的加入

创建网络组接口

nmcli命令可用于创建和管理组和端口接口。以下4个步骤用于创建和激活网络组接口:

配置网卡(这种方式可以永久的设置IP地址)

配置IP地址  nmcli connection add type ethernet con-name ens36 ifname ens36

激活IP nmcli connection up ens36

设置IP地址nmcli connection modify ens36 ipv4.addresses 192.168.2.200/24

设置网管nmcli connection modify ens36 ipv4.gateway 192.168.2.2

设置dns  nmcli connection modify ens36 ipv4.dns 144.144.144.144

设置手动  nmcli connection modify ens36 ipv4.method manual (手动),(auto 自动)

重载网卡  systemctl restart network

查看IP  nmcli connection show ens36 | grep ipv4

 

  1. 创建组接口

2、确定组接口的IPv4和/或IPv6属性

3、分配端口接口

4、启动/关闭组接口和端口接口

创建组接口命令格式:组接口默认使用dhcp获取IP参数

nmcli con add type team con-name CNAME ifname INAME [configJSON]

    CNAME:连接名,INAME:接口名

    JSON指定runner方式

       格式:'{"runner": {"name": "METHOD"}}'

         METHOD可以是broadcast,roundrobin,

        activebackup,loadbalance, lacp

分配端口接口命令格式:

nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

    CNAME:连接名

    INAME:网络接口名

    TEAM:网络组接口名

连接名若不指定,默认为team-slave-IFACE

启动/关闭组接口和端口接口

nmcli dev dis INAME

nmcli con up CNAME

  INAME设备名 CNAME网络组接口名或port接口

实验:创建网络组(如果是建网络组必须要恢复到原始快照)

  1. 创建网络组team0,会在/etc/sysconfig/network-scripts/目录下生成ifcfg-team0文件

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

添加IP nmcli connection modify team0 ipv4.addresses 172.16.16.2/24

添加网关nmcli connection modify team0 ipv4.gateway 172.16.16.254

添加DNS  nmcli connection modify team0 ipv4.dns 144.144.144.144

改为手动 nmcli connection modify team0 ipv4.method manual

  1. 加入组成员

加入33网卡 nmcli connection add con-name team1 type team-slave ifname ens33 master team0

加入36网卡nmcli connection add con-name team2 type team-slave ifname ens36 master team0

启动

nmcli connection up team0

nmcli connection up team1

nmcli connection up team2

两台虚拟机同样的操作

5、查看状态

teamdctl team0 state

会自动创建配置文件:

team组配置文件

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

DEVICE=team0

TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=team0

UUID=346f1ea9-20e8-4798-b162-0cddbeeef375

ONBOOT=yes

DEVICETYPE=Team       //标示这个是一个team组接口

DNS1=144.144.144.144

IPADDR=172.16.16.1

PREFIX=24

ONBOOT=yes

DEVICETYPE=Team

DNS1=144.144.144.144

IPADDR=172.16.16.1

PREFIX=24

GATEWAY=171.16.16.254

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

组中端口的配置文件:

[root@localhost network-scripts]# cat  ifcfg-team2

NAME=team02

UUID=f573946a-c553-43ed-9c97-1d8650e47f34

DEVICE=ens36

ONBOOT=yes

TEAM_MASTER=team0     //定义端口所属的组设备

DEVICETYPE=TeamPort    //标示这是一个组端口接口

可以模拟设备接口down掉

nmcli device disconnect ens36

 

常用的team配置排障工具命令:

teamnl  和 teamdctl

显示team1接口的组端口:

[root@localhost ~]# teamnl team0 ports

3: ens36: up 1000Mbit FD

 2: ens33: up 1000Mbit FD

显示team1的当前活动端口:

[root@localhost ~]# teamnl  team0  getoption activeport

2

设置team1的当前活动端口:

[root@localhost ~]# teamnl team1 setoption activeport 3

[root@localhost network-scripts]#  teamnl team0 getoption activeport

猜你喜欢

转载自blog.csdn.net/zhouchuan152/article/details/96130947