Centos7/RHEL7双网卡绑定的方法

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.
# 再次创建新的连接并生成配置文件

[root@localhost ~]# nmcli conn add type ethernet con-name eno50332208 ifname eno50332208
Connection 'eno50332208' (eea2a115-63f8-4f33-be84-12559f02542c) successfully added.
[root@localhost ~]# nmcli conn add type ethernet con-name eno33554984 ifname eno33554984
Connection 'eno33554984' (32d2389e-4e82-4419-9d18-5aff8f0be003) successfully added.
 # 最后,查看下

[root@localhost ~]# nmcli con sh
NAME     UUID                 TYPE      DEVICE
eno16777736 51d00668-2cf5-41da-ad8d-5019d62e98ad 802-3-ethernet eno16777736
eno33554984 32d2389e-4e82-4419-9d18-5aff8f0be003 802-3-ethernet eno33554984
eno50332208 eea2a115-63f8-4f33-be84-12559f02542c 802-3-ethernet eno50332208

[root@localhost ~]# ll /etc/sysconfig/network-scripts/ifcfg-eno*
-rw-r--r--. 1 root root 394 Nov 26 05:59 /etc/sysconfig/network-scripts/ifcfg-eno16777736
-rw-r--r--. 1 root root 288 Dec 26 08:44 /etc/sysconfig/network-scripts/ifcfg-eno33554984
-rw-r--r--. 1 root root 288 Dec 26 08:44 /etc/sysconfig/network-scripts/ifcfg-eno50332208

网络连接和配置文件都成功生成了。 接下来通过eno33554984 和 eno50332208 使用teaming模式进行双网卡绑定

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
  # 查看team0的状态

[root@localhost ~]# teamdctl team0 st
setup:
 runner: roundrobin

4.1 roundrobin问题排查

第一次查看出现的是这样的结果,检查下配置:

  # 通过直接查看网卡发现team0并没有启动
[root@localhost ~]# ip a | grep team0
5: team0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN

  # 使用ifup 启动team0并没有成功,继续排查
[root@localhost ~]# ifup team0
[root@localhost ~]# ip a | grep team0
5: team0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN

直接sysetmctl restart network 也没有成功。

  # 发现team0-port1 team0-port2没有添加成功物理网卡,怎么回事呢?
[root@localhost ~]# nmcli con sh
NAME     UUID                 TYPE      DEVICE
team0-port2 ec96c1e1-d268-4ba1-a2f9-0133a9f02655 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 
  # 删除掉
[root@localhost ~]# nmcli con del team0-port1
Connection 'team0-port1' (22d3640e-f5c8-499c-b0dd-913c8970d800) successfully deleted.
[root@localhost ~]# nmcli con del team0-port2
Connection 'team0-port2' (ec96c1e1-d268-4ba1-a2f9-0133a9f02655) 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
eno33554984 32d2389e-4e82-4419-9d18-5aff8f0be003 802-3-ethernet eno33554984
eno50332208 eea2a115-63f8-4f33-be84-12559f02542c 802-3-ethernet eno50332208
[root@localhost ~]# nmcli con del eno33554984 eno50332208
Connection 'eno33554984' (32d2389e-4e82-4419-9d18-5aff8f0be003) successfully deleted.
Connection 'eno50332208' (eea2a115-63f8-4f33-be84-12559f02542c) 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
  # 再次将两张物理网卡添加到team
[root@localhost ~]# nmcli con add type team-slave con-name team0-port1 ifname eno33554984 master team0
Connection 'team0-port1' (0331ea43-95c0-4106-b388-8484d4c3940d) successfully added.
[root@localhost ~]# nmcli con add type team-slave con-name team0-port2 ifname eno50332208 master team0
Connection 'team0-port2' (880f2146-fe93-42dd-8d28-7d0dd50b4011) successfully added.
[root@localhost ~]# nmcli con sh
NAME     UUID                 TYPE      DEVICE
team0-port1 0331ea43-95c0-4106-b388-8484d4c3940d 802-3-ethernet eno33554984
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

现在成功将两张物理网卡绑定到了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.2 测试

因为这里是虚拟机环境,只能通过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状态。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Centos 7.2中双网卡绑定及相关问题踩坑记录

    前言 最近工作中在做线上服务器,安装centos7.2 x64最小化安装,需要做链路聚合,双网卡绑定.在centos 6.x 和 centos 7上测试都OK,于是直接开搞. 说明下,以下环境是在虚拟机中实现的: 系统: centos7.2 x64 最小化安装. 为了方便演示,这里共有三张网卡: eno16777736 : 桥接网卡:10.0.0.11/24 剩下的两张网卡准备做绑定: eno33554984 eno50332208 [root@bogon ~]# nmcli con sh NA

  • 详解centos7 下双网卡如何配置静态IP

    北网通,南电信的问题是很让人郁闷的一件,这也是河蟹社会的一种特色吧.为了解决这个问题,我考虑过三种方案: 1,双网卡,双IP:或者单网卡,双IP. 这种方案,成本低,但是维护挺麻烦,并且速度比后面二个要慢. 2,BGP双线机房. BGP的费用要比第一种方案要高,但是全国真正是BGP机房的到底有多少,应当就那么几家.其他假的比较多.用这种方案就 不用在搞双IP了,一个IP就OK. 3,CDN加速 CDN的价格是最高,买的是dell r410的服务器,拖管在机房,带宽160元/m/月,还是熟人才拿到

  • Centos7/RHEL7双网卡绑定的方法

    1. 简要 双网卡绑定技术在centos7中使用了teaming技术,而在rhel6/centos7中使用的是bonding技术,在centos7中双网卡绑定既能使用teaming也可以使用bonding,这里推荐使用teaming技术,方便与查看和监控. 2. 原理 这里介绍两种最常见的双网卡绑定模式: (1) roundrobin - 轮询模式 所有链路处于负载均衡状态,这种模式的特点增加了带宽,同时支持容错能力. (2) activebackup - 主备模式 一个网卡处于活动状态,另一个

  • linux 使用bond实现双网卡绑定单个IP的示例代码

    双网卡绑定单个IP 地址 为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断. bond在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性. 实现双网卡绑定的方法有两种: bond和team 这里先记下bond的绑定方法 bond支持的模式 共支持bond[0-6]共七种模式,常用

  • Linux双网卡绑定脚本的方法示例

    linux运维及配置工作中,常常会用到双网卡绑定,少数几台服务器的配置还好,如果是需要配置几十甚至上百台,难免会枯燥乏味,易于出错,我编写了这个双网卡绑定的辅助脚本,可傻瓜式地完成linux双网卡绑定工作,当然,该脚本主要还是用于小批量的系统配置,如需配置大量的服务器,可提取脚本中的bonding函数,稍作修改即可,你值得一试! 1.适用范围 该shell脚本可在以下linux系统创建多个绑定网卡,用于生产环境没问题的: Redhat 5.x CentOS 5.x Kylin 3.x KUX 2

  • Linux双网卡绑定实现负载均衡详解

    Linux双网卡绑定实现负载均衡,供大家参考,具体内容如下 系统环境:CentOS release 6.9 (Final) Linux centos6 2.6.32-696.10.1.el6.x86_64 Ubuntu系统下使用ifenslave进行网卡配置,方法大同小异. 关闭NetworkManager # service NetworkManager stop # chkconfig NetworkManager off 创建bond0接口配置文件 # cd /etc/sysconfig/

  • Linux 系统双网卡绑定配置实现

    系统版本 [root@ ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@ ~]# uname -r 2.6.32-642.6.1.el6.x86_64 网卡说明 eth0   192.168.1.8(服务器外网卡) eth1 eth2 两块服务器网卡(内网) 关闭防火墙 [root@ ~]# /etc/init.d/iptables stop [root@ ~]# chkconfig iptables off 关闭seli

  • linux 双网卡绑定网络设置方法

    设置linux主机的主机名和域名 /etc/hosts 例子 127.0.0.1 localhost.localdomain localhost 一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开.其中#号开头的行做说明,不被系统解释. 第一部份:网络IP地址: 第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain 第二部份:主机名(主机名别名) ,其实就是主机名: 当然每行也

  • Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定的方法

    本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名以及Linux下多网卡绑定的知识 一.网卡高级命令 在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令.在这里将补充一些Linux系统下有关网卡的一些高级命令. ①mii-tool 命令 mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等 [root@xiaoluo

  • Linux下双网卡Firewalld的配置流程(推荐)

    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firewall与传统Linux使用的iptable工具有不小的区别,接下来通过博客来记录一下firewalld的配置流程. 1.Firewall服务的简介: firewalld提供了一个 动态管理的防火墙,用以支持不同网络区域的规则,分配对一个网络及其相关链接和界面一定程度的信任.它具备对 IPv4 和 I

随机推荐