Windows 双网卡链路聚合解决方案_windows双网卡聚合-程序员宅基地

技术标签: 网络  Windows  

链路聚合

指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。

方案1:Metric

介绍

  • 在任务管理器中看到两个网卡都有数据流量,这并非说明操作系统支持自动带宽叠加,这是默认策略导致的。

  • 例如操作系统会发送简单的请求以判断网络连接的可用性。这就可能导致看到两个网卡都有少量的数据流量。

  • 在默认情况下,无论路由优先级(Metric)如何,所有的操作系统都会优先访问对应网卡默认网关所在的网段。例如网卡1的默认网关是192.168.1.1,网卡2的默认网关是10.10.10.1,而子网掩码都是255.255.255.0,此时我们访问10.10.10.2,则系统默认直接由网卡2进行访问。这就是路由表的默认规则。因此我们设置外网使用哪个网卡,就是设置到指定网关地址Metric最低的网卡即可。

  • 在windows操作系统中,如果两个网卡速率相同,设置相同跃点数的方案可以实现负载均衡和外网带宽叠加,但是点对点速率不会有提升。例如内网传输文件到NAS的速度不会有叠加,但是在迅雷下载的时候速度会有明显提升。如果希望内网传输文件到NAS的速度进行叠加,可以在NAS和win10中同时启用SMB3.0实现多通道负载均衡。

操作

  • 首先在本地电脑查看路由信息,拿win10系统举例子,在左下角开始菜单,点击右键,打开命令窗口。
    在这里插入图片描述

  • 在命令窗口输入:route print 查看它的跃点数,如果两个数不一样,说明电脑只是用了一个网卡。我的一个是55,一个是25。
    在这里插入图片描述

  • 修改成相同的跃点数,系统就让两个网卡一起工作,带宽叠加使用,网速起飞。

    • 右击鼠标属性;
    • 选择internet版本协议IPv4;
    • 再点击属性;
    • 弹窗选择高级;
    • 取消勾选;
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 同样的方法,把第二个网卡跃点数也改成跟之前网卡相同的跃点数即可。

  • 再次命令窗口输入:route print 查看它的跃点数,两个网卡的就会相同。

  • 在任务管理器中查看性能,有线和WIFI在同时工作。

在这里插入图片描述
在这里插入图片描述

方案2:NetSwitchTeam

介绍

  • NetSwitchTeam是实现链路聚合的推荐方案。同样的,该方案不会叠加内网点对点传输的速率。

操作

  • 通过Windows PowerShell(管理员),执行Get-NetAdapter查看当前网卡列表详情。
  • 创建一个NetSwitchTeam:
New-NetSwitchTeam -Name "SwitchTeam01" -TeamMembers "Ethernet 2","Ethernet 3"

Ethernet 2和Ethernet 3就是Get-NetAdapter得到的Name值,可以是中文,例如以太网 4。
在这里插入图片描述

  • 此时访问网络连接状态,可以看到SwitchTeam01的速度是2.0Gbps。
    在这里插入图片描述

  • 此时通过外网测速能够看到明显的叠加效果。
    在一个SwitchTeam以内的两个网卡是自动相互协助的,不需要再点击切换到Team。

  • 删除聚合使用

Remove-NetSwitchTeam –Name "SwitchTeam01"

方案3:NIC

介绍

  • 此方案仅支持 Windows Server 平台

  • 什么是NIC组合
    简单来讲,NIC组合就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。 微软NIC组合,也称为负载平衡/故障转移 (LBFO),允许多个网络适配器组合成一个,这样做的目的可以带来带宽聚合、解决网络连接失败过程中的故障转移;它应用于Windows Server 2012的所有版本中,包括核心版和图形界面完全版;NIC组合在 Windows 8 中是不可用的,但是 NIC组合的用户界面和 NIC组合的 Windows PowerShell Cmdlet命令行 都可以运行 Windows 8, 以便于 Windows 8 PC 可以用于管理一个或多个 Windows Server 2012主机上的NIC组合。利用NIC组合技术,除了可以提高网络速度以外,还可以实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。如图所示,NIC实现的具体功能:
    1)带宽聚合提高网络速度并在不同网卡之间进行负载均衡
    2)进行流量故障转移,以防止在网络组件发生故障时失去连接。
    在这里插入图片描述

  • NIC组合要求:
    NIC 组合允许多个网络适配器组合成一个,该适配器可以用于分离使用 VLAN 的流量,对于集群服务器可支持多组(比如业务组和私网心跳组)。通过故障转移提供故障保护的所有模式都至少需要两个以太网网络适配器。Windows Server 2012 在一个组中可支持多达 32 个网络适配器

  • 成组模式:

    • 静态成组(IEEE 802.3ad draft v1):此模式配置交换机和主机之间需要哪种链接组合形式,由于这是一个静态配置的解决方案有任何附加协议,所以就不会因为交换机或主机因为电缆的插入错误或其它错误而导致组合的形成。此种模式中,网卡可以工作于不同的速度,就是说可以用不通速度的网卡建立组合, 但同样要求交换机完全支持IEEE 802.3ad 标准,一般情况下,服务器级别的交换机通常支持此模式。

    • 交换机独立:这是配置时的默认值,此模式不要求交换机参与组合配置,由于独立模式下的交换机不知道网卡是主机上组合一部分,网卡可以连接到不同的交换机。

    • LACA动态组合(IEEE 802.1ax, LACP):LACA动态组合是到同一台交换机的链路聚合,只不过不是静态配置的,而是动态构成(也就是自动协商)的。它是通过一种智能的链路协商协议LACP (Link Aggregation Control Protocol)来实现的。LACP原本用于交换机和交换机之间的链路聚合,启用了LACP协议的2台交换机会相互发送LACP的协商报文,当发现2者之间有多条可用的链路的时候,自动将这些链路组合成一条带宽更大的逻辑链路,从而利用负载均衡来实现加宽交换机间链路带宽的目的。

  • 负载平衡模式:

    • 地址哈希:默认,这是一个基于哈希算法的处理负载平衡的模式。
      可以指定哈希函数的输入包括以下组件:
      源和目的MAC地址
      源和目标IP地址
      源和目的TCP端口和源IP和目的IP地址、
      启用该方式后,数据包到达Teaming后,会根据目的地址信息(MAC地址,IP地址和端口号)执行哈希算法,通过算法的结果,NIC Team决定由哪块物理网卡发送数据包。这种方式无法控制流量的走向,如果有大量数据是流向一个目标地址,那么只会通过一块物理网卡来发送。

    • Hyper-v端口:
      由于虚拟机有独立的 MAC 地址,它的MAC地址或端口可以根据流量将它连接到的Hyper-V交换机,使用这个方案的虚拟化还有一个优势,因为相邻的交换机总是能看到一个特定的MAC地址对一个且只有一个连接的端口,交换机将基于目标 MAC (VM MAC) 地址的多个链路上分发入口负载(通信量从交换机到主机),如果主机只有几台虚拟机,当虚拟机的队列(VMQs)被用作一个队列可以放置在特定的达到流量预期NIC上,这是特别有用的,此模式对负载平衡来说,十分精确。这种模式也总是将限制在一个单独的 VM (亦即,从单个交换机端口的通信量) 到一个单一的界面上的可用带宽。Windows Server 2012以Hyper-V 交换机端口作为标识符,而不是源MAC地址,在某些情况下,在交换机上的端口上,虚拟机可以使用一个以上的MAC地址。
      Hyper-V的模式,与无法控制的地址哈希相比,这种方式效率更高,数据会通过绑定虚拟网卡的不同物理网卡传输,同时这种绑定是基于每个虚拟网卡,而不是每台虚拟机的。如果是使用Hyper-V外部虚拟交换机建议选择这种方式。

    • 动态
      这种方式是在Windows Server 2012 R2中新引入的方式,也是最优化的方式,数据会被平分到所有的成员网卡上,最大效率的利用带宽。
      其它属性——备用适配器:
      可以让其中的一个网卡当备用网卡;也可以让所有网卡都处于活动状态。

操作

* 默认情况下,NIC组合是禁用的,如下:

wKiom1f44aqCcGl7AABNuG9Chug638.jpg

wKiom1f44aqCcGl7AABNuG9Chug638.jpg

  • 将其启用,然后进行新建NIC组合

wKioL1f44gnj7rycAAAp2uqNLok615.jpg

  • 点击组中“任务”—新建。选择需要组合的网卡,其他属性中,设定交换机独立及哈希地址。

wKioL1f44pWD72cuAACBJzfQdxM566.jpg-wh_50

  • 配置成功后:

在这里插入图片描述

  • 我们再来看一下网络连接情况:两个以太网变成了 NEW NIC,即NIC组合。

在这里插入图片描述

  • 然后再设置NEW NIC的IP地址、掩码和网关等信息就可以正常通信联网了。
    另外Windows Server 2012 R2 中的网卡捆绑还能用于虚拟机。这样虚拟机即可通过虚拟网络适配器连接到多个 Hyper-V 交换机,就算该交换机下的一个网络适配器断开也能维持连接。在使用单根 I/O 虚拟化(SR-IOV)等功能时,这一特性尤为重要,因为 SR-IOV 通讯并不通过 Hyper-V 交换机传输,因此无法受到 Hyper-V 交换机中网卡捆绑的保护。通过对虚拟机本身进行捆绑,管理员可设置最多两个 Hyper-V 交换机,每个连接到一个支持 SR-IOV 的专用网络适配器。这样即可实现:

    • 每个虚拟机通过支持 SR-IOV 的一个或多个网络适配器安装虚拟 Function,随后一旦有网络适配器断开,虚拟机依然可从主要虚拟 Function 故障转移到后备虚拟 Function。

    • 或者虚拟机可通过一个网络适配器获得一个虚拟 Function,并通过非虚拟 Function 网络适配器连接到其他交换机。如果关联虚拟 Function 的网络适配器断开,通讯即可不断开直接故障转移到其他交换机。

  • 备用适配器下,默认为“无(所有网络适配器处于活动状态,即active-active)”
    如果管理员希望网络接口具有VLAN功能,则点击“默认VLAN”以打开VLAN对话框以便选择相应的VLAN ID

  • 最后就是使用Windows PowerShell也可以创建NIC Teaming

    • 以管理员身份打开Windows PowerShell
    • 使用“Get-NetAdapter”查询当前主机所有网卡信息

在这里插入图片描述

- 使用“New-NetLbfoTeam”命令将NIC1和NIC2添加到NIC组“AppNIC”中

在这里插入图片描述

- 使用“Get-NetLbfoTeam”查看NIC Teaming信息

在这里插入图片描述

- 使用“Set- NetLbfoTeam”修改NIC Teaming成组模式

在这里插入图片描述

- 使用“Set- NetLbfoTeam”修改NIC Teaming负载平衡模式

在这里插入图片描述

- 使用一下命令设置NIC Teaming的模式为交换机独立模式,负载平衡模式为Transporports(地址哈希)

在这里插入图片描述

- 使用“Get-NetLbfoTeammember”查看NIC Teaming网络适配器状态,当前显示的active-active

在这里插入图片描述

- 使用“Set-NetLbfoTeammember”修改NIC为standby模式

在这里插入图片描述

方案4:Intel PROSet

* 右键网卡的属性,打开配置,点击分组,进行设置-模式的话一般选择下面的三个选项:
   1.负载均衡(次选)英文名称为Load Balance   
   2.动态链路聚合(优选)英语:Dynamic Link Aggregation
   3.静态链路聚合

* 选择好模式之后,选择主设备和副设备,然后确定即可。

    设置好分组之后,要更新对应网卡英特尔官网驱动。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lizongti/article/details/135477086

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签