Centos7 / RHEL 7 双网卡绑定
http://www.cnblogs.com/hukey/p/6224969.html
1. 简要
双网卡绑定技术在centos7中使用了teaming技术,而在rhel6/centos7中使用的是bonding技术,
在centos7中双网卡绑定既能使用teaming也可以使用bonding,这里推荐使用teaming技术,方便与查看和监控。
2. 原理
这里介绍两种最常见的双网卡绑定模式:
(1) roundrobin - 轮询模式
所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力。
(2) activebackup - 主备模式
一个网卡处于活动状态,另一个处于备份状态,所有流量都在主链路上处理,当活动网卡down掉时,启用备份网卡。
3. 基础环境
系统:centos7
在centos7中,关闭虚拟机添加网卡,再开启虚拟机,系统是不会自动生成网卡的配置文件:
在centos7中要生成网卡配置文件的方法很简单,使用如下命令:
# 查看物理网卡信息
[root@localhost ~]# nmcli dev
DEVICE TYPE STATE CONNECTION
eno16777736 ethernet connected eno16777736
eno33554984 ethernet connected Wired connection 1
eno50332208 ethernet connected Wired connection 2
lo loopback unmanaged --
上面的信息可以看到,一共有四张网卡,其中lo是本地回环网卡,另外三张为物理网卡。
# 查看网卡连接信息
[root@localhost ~]# nmcli con sh
NAME UUID TYPE DEVICE
Wired connection 2 9a1314bf-d273-406a-930a-dc4160dee4ec 802-3-ethernet eno50332208
Wired connection 1 47eef4a3-7fa4-4a73-83ef-1485bda9b950 802-3-ethernet eno33554984
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736
上面的信息可以查看到一共有3个连接,其中两个有线连接,表示没有设置过的网卡连接,还有一个enoxx连接。接下来要修改两个有线连接的命名方法,并生成网卡配置文件:
# 首先,删除两个无用的有线连接
[root@localhost ~]# nmcli con del 9a1314bf-d273-406a-930a-dc4160dee4ec
Connection 'Wired connection 2' (9a1314bf-d273-406a-930a-dc4160dee4ec) successfully deleted.
[root@localhost ~]# nmcli con del 47eef4a3-7fa4-4a73-83ef-1485bda9b950
Connection 'Wired connection 1' (47eef4a3-7fa4-4a73-83ef-1485bda9b950) successfully deleted.
4. roundrobin模式:
roundrobin模式也称为轮询模式,它 基于每一个包 ,当某一台服务器的两张网卡设置为roundrobin模式teaming,此时服务器发出的数据包,就会在两个物理
网卡上进行轮询,即第一个数据包走一张网卡,第二个数据包走第二张网卡,依次轮询。
注意:
(1)roundrobin具有容错性,当一张网卡down掉,数据包依然发送成功。
(2)在使用roundrobin模式必须要在交换机上做以太通道,不然会出现网络无法连通。
实际操作:
# 使用nmcli命令操作,创建team接口team0,同时设置teaming模式为roundrobin
[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name": "roundrobin"}}'
Connection 'team0' (9dc48bd6-54b9-48db-b7dd-ecf34ae9196f) successfully added.
# 给接口team0设置ip地址
[root@localhost ~]# nmcli con modify team0 ipv4.address '10.0.0.2/24' ipv4.gateway '10.0.0.1'
# 设置为手动模式,取消DHCP
[root@localhost ~]# nmcli con modify team0 ipv4.method manual
# 将两张物理网卡加入到team中
[root@localhost ~]# nmcli con add type team-slave con-name team0-port1 ifname eno33554984 master team0
Connection 'team0-port1' (22d3640e-f5c8-499c-b0dd-913c8970d800) successfully added.
[root@localhost ~]# nmcli con add type team-slave con-name team0-port2 ifname eno50332208 master team0
Connection 'team0-port2' (12660d2a-0e1f-41e6-96b2-53de4fc6b78c) successfully added.
[root@localhost ~]# nmcli con sh
NAME UUID TYPE DEVICE
team0-port2 12660d2a-0e1f-41e6-96b2-53de4fc6b78c 802-3-ethernet --
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736
team0-port1 22d3640e-f5c8-499c-b0dd-913c8970d800 802-3-ethernet --
team0 9dc48bd6-54b9-48db-b7dd-ecf34ae9196f team team0
eno33554984 32d2389e-4e82-4419-9d18-5aff8f0be003 802-3-ethernet eno33554984
eno50332208 eea2a115-63f8-4f33-be84-12559f02542c 802-3-ethernet eno50332208
现在成功将两张物理网卡绑定到了team组中
# 现在查看team0的状态就出现了,模式是:roundrobin
[root@localhost ~]# teamdctl team0 st
setup:
runner: roundrobin
ports:
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eno50332208
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
这样,team模式的roundrobin搭建成功。
总结:
在做链路聚合的时候,所要使用到的物理网卡不能独立存在连接,也就是在nmcli con sh查看时,不能独立存在,否则就无法绑定到team模式中。
4.1 测试
因为这里是虚拟机环境,只能通过down掉网卡进行查看。
[root@localhost ~]# teamdctl team0 st
setup:
runner: roundrobin
ports:
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eno50332208
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
两张网卡同时在线,现在down掉其中一张网卡,
[root@localhost ~]# nmcli con del team0-port1
Connection 'team0-port1' (0331ea43-95c0-4106-b388-8484d4c3940d) successfully deleted.
[root@localhost ~]# nmcli con sh
NAME UUID TYPE DEVICE
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736
team0 9dc48bd6-54b9-48db-b7dd-ecf34ae9196f team team0
team0-port2 880f2146-fe93-42dd-8d28-7d0dd50b4011 802-3-ethernet eno50332208 [root@localhost ~]# teamdctl team0 st
setup:
runner: roundrobin
ports:
eno50332208
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
这样就发现eno33554984网卡已经down掉了。
[root@localhost ~]# nmcli con add type team-slave con-name team0-port1 ifname eno33554984 master team0
Connection 'team0-port1' (59acd6bf-affc-4994-a050-83c45816859a) successfully added.
[root@localhost ~]#
[root@localhost ~]# teamdctl team0 st
setup:
runner: roundrobin
ports:
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eno50332208
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
虚拟机环境就这样测试了吧,至于生产环境就直接拔网线,ping测试。
资料有说linux下roundrobin具有容错的效果,为了测试是否有容错的效果,虚拟机做了下更改来验证:
这一次网卡全部改成桥接模式,为了更好的测试是否具有容错性。
roundrobin已经配置完毕。接下来我们down掉一张网卡检查是否具有容错性。
通过虚拟机测试,容错性是存在的。
5. 双网卡绑定activebackup的实现
[root@localhost ~]# nmcli con sh
NAME UUID TYPE DEVICE
team0-port2 2a1aa534-e021-4452-bb0a-2002dabcbc08 802-3-ethernet eno50332208
team0-port1 9a10c9ef-ee9c-4151-9a47-59b4668e8934 802-3-ethernet --
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736
team0 c2278f3f-5c6b-4e1d-b925-514d3c3832b6 team team0
[root@localhost ~]# nmcli con del team0 team0-port1 team0-port2
Connection 'team0' (c2278f3f-5c6b-4e1d-b925-514d3c3832b6) successfully deleted.
Connection 'team0-port1' (9a10c9ef-ee9c-4151-9a47-59b4668e8934) successfully deleted.
Connection 'team0-port2' (2a1aa534-e021-4452-bb0a-2002dabcbc08) successfully deleted.
[root@localhost ~]# nmcli con sh
NAME UUID TYPE DEVICE
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736 # 以上操作就删除了roundrobin模式,恢复到初始状态。
# 添加逻辑网卡team0,并启用activebackup模式
[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
Connection 'team0' (f0794e59-419d-4c2a-96b9-464610b6321a) successfully added. # 绑定ip
[root@localhost ~]# nmcli con modify team0 ipv4.address 192.168.118.122/24 ipv4.gateway 192.168.118.1
[root@localhost ~]# nmcli con modify team0 ipv4.method manual # 添加物理网卡到activebackup模式
[root@localhost ~]# nmcli con add type team-slave con-name team0-port1 ifname eno33554984 master team0
Connection 'team0-port1' (52656904-6e85-4a04-98b4-2b19773fa290) successfully added.
[root@localhost ~]# nmcli con add type team-slave con-name team0-port2 ifname eno50332208 master team0
Connection 'team0-port2' (44d96e3a-014a-481f-9122-4ca2d3be9f7a) successfully added.
[root@localhost ~]# teamdctl team0 st
setup:
runner: activebackup
ports:
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eno50332208
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: eno33554984
成功,处于活动中的网卡为 eno33554984
5.1 测试
通过down掉活动网卡测试网络是否仍然处于连通状态
测试成功。
注意: 在做网卡绑定的时候,如果发现物理网卡总是无法绑定到team0,请检查该物理网卡是否处于up状态。
Centos7 / RHEL 7 双网卡绑定的更多相关文章
- Linux下双网卡绑定(bonding技术)
Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的 ...
- Linux 双网卡绑定技术
bond技术是在linux2.4以后加入内核. 一般步骤是1.把bonding模块加入内核, 2 编辑要绑定的网卡设置,去除地址设定 3 添加bond设备,设置地址等配置 4 重启网络 5 在交换机 ...
- Centos 7.2 双网卡绑定之踩坑
线上服务器,安装centos7.2 x64最小化安装,需要做链路聚合,双网卡绑定.在centos 6.x 和 centos 7上测试都OK,于是直接开搞. 说明下,以下环境是在虚拟机中实现的: 系统: ...
- CentOS 6.X 双网卡绑定配置
相关环境 主机:Dell PowerEdge R720服务器(背板有4个GE网口) 操作系统:CentOS(RHEL)6.X 网线连接 使用6类网线 将Dell R720 GE网口 0,与交换机A相连 ...
- cnetos 网卡绑定 eth0+eth1做双网卡绑定到bond0
1.网卡绑定:eth0+eth1做双网卡绑定到bond0 二.网络配置 网卡绑定1./etc/sysconfig/network-scripts/目录下建立ifcfg-bond0文件,内容如下DEVI ...
- Linux下双网卡绑定bond0
一:原理: linux操作系统下双网卡绑定有七种模式.现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑 ...
- Linux 双网卡绑定
Linux 双网卡绑定 Linux 双网卡绑定双网卡绑定的常用模式:mode1:active-backup 模式,即主备模式.mode0:round-broin 模式,即负载均衡模式(需要交换机配置聚 ...
- (转)深度分析Linux下双网卡绑定七种模式
现在一般的企业都会 使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在 网卡产商也会出一些针对window ...
- Linux双网卡绑定和解除绑定的实现
双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作.根据交换机可支持的功能不 ...
随机推荐
- Swift GCD
var queue: dispatch_queue_t = dispatch_get_main_queue()// 主线程 queue = dispatch_get_global_queue(DISP ...
- Android Studio单独生成apk
/********************************************************************* * Android Studio单独生成apk * 说明: ...
- (转)如何转载CSDN的文章
前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间 ...
- nodejs返回接口给前端
1.修改app.js文件,将其中的user路由去掉. 2.在index路由中配置如下: router.all('*', function(req, res, next) { res.header( ...
- 【剑指offer】08二叉树的下一个节点,C++实现
原创博文,转载请注明出处! # 题目 父节点指向子节点的指针用实线表示,从子节点指向父节点的指针用虚线表示. # 思路 如果节点有右子节点,则右子节点的最左节点是该节点的下一个节点.例如,寻找b的下一 ...
- 类中的__slots__方法与__dict__方法相排斥
类的 __slots__ 列表 作用: 限定一个类创建的实例只能有固定的属性(实例变量) 不允许对象添加列表以外的属性(实例变量) 防止用户因错写属性的名称而发生程序错误 说明: 1. __slots ...
- Redis安全性配置
最近Redis刚爆出一个安全性漏洞,我的服务器就“光荣的”中招了.黑客攻击的基本方法是: 扫描Redis端口,直接登录没有访问控制的Redis 修改Redis存盘配置:config set dir / ...
- C# 根据日期计算星期几
region 根据年月日计算星期几(Label2.Text=CaculateWeekDay(,,);) /// <summary> /// 根据年月日计算星期几(Label2.Text=C ...
- 设置checkbox不能选中,复选框不能选中
Web开发:设置复选框的只读效果 在Web开发中,有时候需要显示一些复选框(checkbox),表明这个地方是可以进行勾选操作的,但是有时候是只想告知用户"这个地方是可以进行勾选操作的&qu ...
- Codeforces 382E Ksenia and Combinatorics 【组合计数】*
Codeforces 382E Ksenia and Combinatorics Ksenia has her winter exams. Today she is learning combinat ...