https://blog.51cto.com/youdong/1963416

选择模式4,并且layer选择3+4,交换机要配置LAG

一.传统的bond方式

(1)bond几种主要模式介绍

ü mode 0

load balancing (round-robin)模式 ,需要交换机端支持,支持多端口负载均衡,支持端口冗余,slave接口的mac相同

ü mode 1

active-backup模式,最大支持两个端口,一主一备,同一时间只有一块网卡工作,不支持抢占

ü mode 4

采用IEEE802.3ad方式的动态协商机制聚合端口,需要交换机开启lacp,并且配置为主动(active)模式

ü mode5和mode6

类似mode1的主备模式,不常用

(2)bond配置

ü 需要关闭NetworkManager服务

[root@docker ~]# systemctl stop NetworkManager
[root@docker ~]# systemctl disable NetworkManager
 

ü 查看内核是否加载bounding

[root@docker ~]# lsmod|grep bonding
bonding 141566 0
 

如果没有加载bonding可以通过以下命令加载

modprobe --first-time bonding

ü 配置bonding驱动

[root@docker ~]# vi /etc/modprobe.d/bond.conf  //没有的话手动创建
[root@docker ~]# cat /etc/modprobe.d/bond.conf
alias bond0 binding
options bond0 miimon=100 mode=0 //miimon是用来进行链路监测的,后面指定的是检查的间隔时间,单位是ms
 

ü 配置bond接口

cat /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Bond
BOOTPROTO=none
ONBOOT=yes
USERCTL=no //USERCTL:是否允许普通用户控制此设备
DEVICE=bond0
IPADDR=192.168.0.221
PREFIX=24
NM_CONTROLLED=no //NetworkManger服务的参数,配置修改后无重启立即生效
BONDING_MASTER=yes
 

ü 配置slave接口

cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
 

其他slave网卡与此配置相同

ü 重启network服务,并检查

[root@docker network-scripts]# systemctl restart network
[root@docker network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0 Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ff:31:80
Slave queue ID: 0 Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ff:31:8a
Slave queue ID: 0
[root@docker network-scripts]#
 

二.NetworkManager服务的nmcli方式

(1)查看网络设备状态

[root@compute ~]# nmcli dev
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
eth1 ethernet connected Wired connection 1
lo loopback unmanaged --
[root@compute ~]#
 

(2)查看网络连接状态

[root@compute ~]# nmcli con sh
NAME UUID TYPE DEVICE
Wired connection 1 d75d7715-1098-353e-bb11-4b718e51ff38 802-3-ethernet eth1
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
[root@compute ~]#
 

(3)创建team0(也就是bond接口)

按照下面的语法,用 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

下面以“roundrobin”为例:

[root@compute ~]# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"roundrobin"}}'
Connection 'team0' (64021ca5-85c3-429d-b930-56802dc0ccc4) successfully added.
[root@compute ~]#
 

设置team0的ip,gateway,dns

[root@compute ~]# nmcli con modify team0 ipv4.address "192.168.0.222/16" ipv4.gateway "192.168.0.1"
[root@compute ~]# nmcli con modify team0 ipv4.dns "223.5.5.5"
[root@compute ~]#
 

设置team0的属性为手动(manual)

[root@compute ~]# nmcli con modify team0 ipv4.method manual
 

添加slave网卡

[root@compute ~]# nmcli con add type team-slave con-name team-port2 ifname eth1 master team0
Connection 'team-port2' (df74a4c7-f8ff-4ae3-b04f-3dd1210598cd) successfully added.
[root@compute ~]# nmcli con add type team-slave con-name team-port1 ifname eth0 master team0
Connection 'team-port1' (757648c4-114f-439f-b022-5bcf63ae0cb3) successfully added.
[root@compute ~]#
 

启动team0网口,并检查

[root@compute ~]# nmcli con up team0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@compute ~]# teamdctl team0 sta
setup:
runner: roundrobin
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eth1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
[root@compute ~]#
 

常见故障:

启动team0网口,team0仍旧为down

[root@compute network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4f:fd:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.222/16 brd 192.168.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe4f:fd82/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4f:fd:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.160/16 brd 192.168.255.255 scope global dynamic eth1
valid_lft 7191sec preferred_lft 7191sec
inet 192.168.0.159/16 brd 192.168.255.255 scope global secondary dynamic eth1
valid_lft 6300sec preferred_lft 6300sec
inet6 fe80::86d1:12d7:5a7c:2d88/64 scope link
valid_lft forever preferred_lft forever
4: team0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
 

排错:

1.检查网络连接状态,发现team-port1和team-port2以及team0没有连接到网卡设备

 [root@compute network-scripts]# nmcli con sh
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
eth1 22a287d8-6206-4d10-bdd9-5299b063300e 802-3-ethernet eth1
team-port1 757648c4-114f-439f-b022-5bcf63ae0cb3 802-3-ethernet --
team-port2 df74a4c7-f8ff-4ae3-b04f-3dd1210598cd 802-3-ethernet --
team0 64021ca5-85c3-429d-b930-56802dc0ccc4 team --
 

2.删除eth0和eth1的连接

[root@compute network-scripts]# nmcli con del eth0 eth1
 

3再次查看发现team0及slave接口正常连接到设备

[root@compute ~]# nmcli con sh
NAME UUID TYPE DEVICE
team-port1 757648c4-114f-439f-b022-5bcf63ae0cb3 802-3-ethernet eth0
team-port2 df74a4c7-f8ff-4ae3-b04f-3dd1210598cd 802-3-ethernet eth1
team0 64021ca5-85c3-429d-b930-56802dc0ccc4 team team0
 

4.查看team0接口状态并测试连通性

[root@compute ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
link/ether 00:0c:29:4f:fd:82 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
link/ether 00:0c:29:4f:fd:82 brd ff:ff:ff:ff:ff:ff
4: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:4f:fd:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.222/16 brd 192.168.255.255 scope global team0
valid_lft forever preferred_lft forever
inet6 fe80::ac47:e724:cd16:c5ca/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::acce:9394:eafe:57bb/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::e1a2:77fd:6148:c7c6/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
[root@compute ~]# ping baidu.com
PING baidu.com (111.13.101.208) 56(84) bytes of data.
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=1 ttl=52 time=30.6 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=1 ttl=52 time=30.7 ms (DUP!)
^C
--- baidu.com ping statistics ---
1 packets transmitted, 1 received, +1 duplicates, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 30.684/30.696/30.708/0.012 ms
[root@compute ~]#
 

注意测试中出现以下状况是由于交换机端没有做端口聚合配置造成

[root@compute ~]# ping baidu.com
PING baidu.com (111.13.101.208) 56(84) bytes of data.
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=1 ttl=52 time=28.2 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=1 ttl=52 time=28.2 ms (DUP!)
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=2 ttl=52 time=29.2 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=2 ttl=52 time=29.2 ms (DUP!)
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=3 ttl=52 time=29.8 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=3 ttl=52 time=29.9 ms (DUP!)
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=4 ttl=52 time=27.7 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=4 ttl=52 time=27.7 ms (DUP

Centos7网卡绑定的两种方法的更多相关文章

  1. Centos7破解密码的两种方法--技术流ken

    Centos7忘记密码   在工作或者自己练习的时候我们难免会大意忘掉自己的root密码,有些同学忘掉密码竟然第一选择是重装系统,工作中可万万使不得! 本篇博客将讲解两种最常用的破解centos7忘掉 ...

  2. DropdownList绑定的两种方法

    动态绑定方法一:动态绑定数据库中的字段. SqlConnection conn = UtilitySqlClass.OperateDataBase.ReturnConn();string strSQL ...

  3. centos7安装nginx的两种方法

    第一种方式:通过yum安装 直接通过 yum install nginx 肯定是不行的,因为yum没有nginx,所以首先把 nginx 的源加入 yum 中 运行下面的命令: 1.将nginx放到y ...

  4. 【get√】golang中实现从腾讯云CVM查询网卡流量的两种方法

    公众号文章链接 主要参考了以下位置的资料: 云服务器监控接口 腾讯云go-sdk example 方法一:使用腾讯云go-sdk go.mod文件中增加这样一行: github.com/tencent ...

  5. Centos7上安装Nginx两种方法

    源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...

  6. Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法

    在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...

  7. WinForm中DataReader绑定到DataGridView的两种方法

    在WinForm中,DataReader是不能直接绑定到DataGridView的,我想到了用两种方法来实现将DataReader绑定到DataGridView. SqlCommand command ...

  8. windows下获取IP地址的两种方法

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  9. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

随机推荐

  1. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_03 过滤器_2_FileNameFilter过滤器的使用和Lambda表达式

    复制一份上一节的代码 匿名内部类的形式 FilenameFilter 只有一个Accept方法.这样我们就可以使用lambda表达式 lambda表达式的前提条件 参数类型和,返回的大括号 都可以省掉 ...

  2. Matplotlib字体大小设置

    参考:https://blog.csdn.net/henkekao/article/details/72871882 ax = plt.subplot(111) # 设置刻度字体大小 plt.xtic ...

  3. 基于Quartz.net 的任务调度平台Weiz.TaskManager

    Weiz.TaskManager https://github.com/weizhong1988/Weiz.TaskManager 任务管理平台 系统简介 Quartz.net是一个开源的任务调度工具 ...

  4. Appium-入门实例1

    参考:(https://blog.csdn.net/zh175578809/article/details/76862590) 第一步:启动虚拟设备 在运行App之前,首先需要创建一个Android模 ...

  5. 【BASIS系列】SAP 批量锁住用户和TCODE的方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[BASIS系列]SAP 批量锁住用户和TCOD ...

  6. mysql5.7密码登录的那些坑

    mysql5.7密码策略及修改技巧 繁著 关注 2017.08.18 22:41* 字数 522 阅读 10184评论 0喜欢 4 mysql升级5.7版本以后,安全性大幅度上升. MySQL5.7为 ...

  7. PyTorch笔记之 squeeze() 和 unsqueeze()

    1.squeeze() 函数 squeeze() 用来去掉向量的一个维度,只有维度为 1 的那一维才能去掉 example: 初始化1个向量shape为(1,2,3)的向量 import torch ...

  8. 无法打开内核设备"\\.\Global\vmx86":系统找不到指定的文件. 是否在安装 VMwareWorksation 后重新引到 ? 问题解决

    节前正常使用的工作环境, 过完春节后, 上班第一天就不正常工作了, 难不成机器也要放假休息, 虚拟机打不开了, 没办法办公可是不行的. 上网查原因, 解决问题. 上网看了很多关于此问题的解决办法, 很 ...

  9. PPT制作,数据图等画图

    1. mathcad  画图简单不错 2.三维图 matlab不错 3.PPT  学术ppt,美观明了,思路清晰,数据可视化 学术PPT: http://mp.weixin.qq.com/s/TPYW ...

  10. CodeForces.1174D.ArraySplitting.(后缀和数组 + 贪心)

    题目链接 参考代码: #include <cstdio> #include <algorithm> using namespace std; typedef long long ...