欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在CentOS 6和7上使用nmcli进行链路聚合教程

最编程 2024-02-04 22:07:54
...

先说下网卡绑定的模式

CentOS6.x 使用的为bonding 技术共有七种(0~6) bond0-6

bond0:(balance-rr)Round-robin policy(平衡循环策略)

bond1: (active-backup)Active-backup policy(主-备份策略)

bond2: (balance-xor)XOR policy(平衡策略)

bond3: (broadcast)fault-tolerance (广播策略)

bond4: (lacp)--(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE802.3ad 动态链接聚合)

bond5: (balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡)

bond6:(balance-alb)Adaptive load balancing(适配器适应性负载均衡)

常用的为 0 , 1, 6模式
mode=0(balance-rr):平衡负载模式,有自动备援,但需要”Switch”支援及设定。有可能会出现数据包无序到达的问题.

mode=1(active-backup):自动备援模式,其中一条线若断线,其他线路将会自动备援。但是它的资源利用率较低,只有一个接口处于工作状态

mode=6(adaptive load balancing):平衡负载模式,有自动备援,不必”Switch”支援及设定。所有进入的(incoming)流量会到达同一个接口;该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。


CentOS7.3 后使用teaming技术也可以使用bonding ,推荐使用teaming,方便与查看和监控。

相比bonding 来说少了bond2(balance-xor)和bond6(balance-alb)这两种模式的支持,其中的balance-xor完全可以通过lacp代替,另外一种balance-alb功能据说以后teaming也会支持。

另外"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。

下面是teaming的5种模式:

broadcast 广播容错

roundrobin      负载轮询

activebackup    主备

loadbalance    负载均衡

lacp            需要交换机支持lacp协议



nmcli用man nmcli-examples 查看示例

centOS6  聚合链路最小安装后需要安装包NetworkManager 

yum install NetworkManager -y

0、查看NetworkManager服务,停止NetworkManager服务。不做这一步很可能出问题

service NetworkManager status

service NetworkManager stop

1、修改三类文件

/etc/sysconfig/network-scripts/下的ifcfg-*文件

/etc/modprobe.conf 文件

/etc/init.d/rc.local 文件

2、编辑虚拟网口配置文件 ,记住此文件复制的时候要把MAC地址去掉,去掉UUID

vi     /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static 

IPADDR=192.168.1.111

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

3、编辑各网卡的配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=none

TYPE=Ethernet 

DEVICE=em1

ONBOOT=yes

MASTER=bond0

SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=none

TYPE=Ethernet

DEVICE=em2

ONBOOT=yes

MASTER=bond0

SLAVE=yes

4、修改/etc/modprobe.conf     centos 6.5 是/etc/modprobe.d/bonding.conf

最后两行加入

alias bond0 bonding

options bond0 miimon=100 mode=6

//     如果有多个bond配置文件,可按如下方式添加

alias bond1 bonding

options bond1 miimon=100 mode=6

注:

(1)、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之     间是否连通,如不通则使用另外的链路。

(2)、mode=0 表示负载均衡方式,两块网卡都工作,需要交换机作支持

mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的

mode=6 表示负载均衡方式,两块网卡都工作,不需要交换机作支持

5、修改/etc/rc.d/rc.local,加入以下内容     ,配置了modprobe.conf 可能不再需要配置rc.local

modprobe bonding miimon=100 mode=6     // 也有加入 ifenslave bond0 eth0 eth1 这种形式

6、service network  restart     // 查看虚拟接口是否起来

reboot        // 查看是否开机启动

=====================================================


centos 7.X 聚合链路

如果bonding模块没有加载到你的Linux机器上,那么使用下面的命令来加载。

modprobe bonding

要列出绑定模块信息

modinfo bonding

有两种方式,一个是命令行 nmcli 一个是图形界面nmtui

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

redhat 7 使用nmcli设置网卡绑定

一、创建组接口

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

CNAME 指代连接的名称,INAME 接口的名称,JSON(JavaScript Object Notation)指定所使用的处理器(runner)。

JSON语法格式如下

‘{“runner”:{“name”:“METHOD”}}’

METHOD 可以是 broadcast、activebackup、roundrobin、loadbalance、lacp 就是最上面说到的网卡绑定模式




例子:

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

二、向组接口中添加设备

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

例子:nmcli con add type team-slave con-name team0-port1 ifname eth0 master team0

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

三、配置IP地址

nmcli con mod team0 ipv4.addresses "192.168.1.24/24"

nmcli con mod team0 ipv4.gateway "192.168.1.1"

nmcli con mod team0 ipv4.dns "192.168.1.1"

nmcli con mod team0 ipv4.method manual

nmcli con up team0-port1

nmcli con up team0

查看状态

teamdctl team0 state 

列出team0的端口

teamnl team0 ports


当时使用mii-tool命令查看网卡速率确定是否为千兆

mii-tool -v ens33

或者使用 ethtool 命令查看网卡速率

etht00l ens33 

注意:

1。聚合链路需要依赖NetworkManager,因为首先必须保证NetworkManager服务的启动,最好设置为开机自启动模式

2。如果网卡已经启动并且添加了静态的IP地址,是无法进行链路聚合的,即使添加进去也不会生效,需要将其恢复到初始状态。因为在做链路聚合的过程当中,所有的网卡都是由NetworkManager统一调度和管理的。

3。一定要注意一台服务器只能有一个网关,否则会出各种问题。

4。echo ‘BONDING_OPTS=“fail_over_mac=1”’ >> /etc/sysconfig/network-scripts/ifcfg-team0#真实机子不用输这一行,虚拟机需要使用这一行实现模拟真实情况

参考链接:

https://blog.51cto.com/12092502/1930774

http://www.361way.com/nmcli-bond-teamd/4837.html

https://blog.****.net/wuweilong/article/details/39720571

https://www.jianshu.com/p/bb69c5eca756

https://www.cnblogs.com/yang-ning/p/6639311.html

https://community.hpe.com/hpeb/attachments/hpeb/hpsc-435/13622/1/深度分析Linux下双网卡绑定七种模式.pdf