Microsoft Network Adapter Multiplexor Protocol(微软网络适配器多路复用协议)是一种用于Windows系统的网络协议。它的主要作用是支持网络接口的绑定或聚合,这通常用于增加网络连接的带宽、提供容错和提高网络的冗余性。 在网络中,绑定或聚合接口意味着将两个或更多的网络接口组合在一起,以提供更高的带宽或更大的可靠性。
Microsoft Network Adapter Multiplexor Protocol(MNAMP,微软网络适配器多路复用协议)完整解构
重要前置澄清:MNAMP 不是独立内核驱动文件,它是NDIS MUX 中间驱动的协议绑定标识层;配合 LBFO(Load Balancing/Failover,lbfo.sys) 共同实现 NIC Teaming(网卡组合)。日常在网卡属性里看到的「Microsoft Network Adapter Multiplexor Protocol」,是 NDIS 绑定路径中的协议过滤器标记,仅在组建 Team 时自动启用;单网卡勾选无实际作用,极易引发网络异常。
一、底层原理
1. 技术定位
- 对外向上暴露单个虚拟微型端口(Team 虚拟网卡)
- 对内向下绑定多个物理网卡 Miniport
- 上层 TCP/IP、应用只识别虚拟 Team 网卡;底层由 MUX 层完成流量分发、故障检测、链路切换。
2. 核心设计目标
- 多物理网卡抽象为单一逻辑网卡,上层协议栈无感知;
- 流量调度:基于五元组 / MAC 哈希,将出站流量分发至不同物理成员网卡;
- 链路故障检测与故障转移(Failover):物理网卡断连时自动迁移流量;
- 支撑三种 Teaming 模式:交换机独立模式、静态聚合、LACP (802.3ad);
- 维护统一 MAC/IP 对外呈现,上层应用无需感知多链路存在。
3. 关键运行机制
- 出站方向:数据包到达虚拟 Team 适配器 → MUX 层计算哈希 → 选择成员网卡发送;
- 入站方向:任意物理网卡收到帧 → 上送 MUX 层 → 统一转发给上层 TCP/IP 栈;
- 链路健康探测:NDIS 介质状态事件(MediaConnectStatus)监控物理网卡链路;
- 绑定规则强制约束:物理网卡只能绑定 MNAMP,不能直接绑定 TCP/IP;TCP/IP 仅绑定在 Team 虚拟网卡上。
极易混淆概念区分
- LBFO.sys:内核 MUX 中间驱动,真正实现流量负载均衡、故障转移;
- MNAMP(多路复用协议):NDIS 协议绑定组件,负责构建虚拟网卡 ↔ 物理网卡的内部绑定关系;
- SET(Switch Embedded Teaming):Hyper-V 虚拟交换机内置聚合,不使用 LBFO/MNAMP。
二、依赖文件清单
1. 内核核心驱动(强依赖)
ndis.sysNDIS 框架底层,所有网络驱动通信基础,MUX 驱动注册、数据包调度依赖。lbfo.sysLBFO MUX 中间驱动,NIC Teaming 核心内核实现(MNAMP 功能载体)。tcpip.sysTCP/IP 协议栈,上层流量收发终点。netio.sysWindows 网络 I/O 子系统,数据包过滤、转发基础支撑。
2. 用户态配置组件
ncpa.cpl:网络连接面板,可视化协议勾选入口netcfgx.dll:网络组件安装、协议绑定管理器ncl.dll:网络连接通知对象(MUX Notify Object,管理虚拟网卡绑定关系)- ServerManager 二进制、NetTCP PowerShell 模块:Team 创建管理前端
3. INF 驱动安装文件
lbfo.inf:LBFO 驱动安装清单,定义 MNAMP 协议注册、虚拟微型端口创建规则。4. 注册表持久化存储
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}Team相关子项:成员网卡列表、聚合模式、负载均衡算法;Bindings:NDIS 上下层绑定路径(MNAMP 控制物理网卡与虚拟网卡的内部绑定);HKLM\SYSTEM\CurrentControlSet\Services\LBFO:LBFO 驱动服务参数。
5. 日志载体
C:\Windows\INF\setupapi.dev.log:MNAMP 协议安装、虚拟网卡创建、NDIS 绑定日志;
Microsoft-Windows-LBFO 提供网卡组合运行事件。三、依赖关系梳理
1. 驱动栈自上而下依赖链路
应用程序 → tcpip.sys(TCP/IP协议栈)
↓
MNAMP绑定层(虚拟Team适配器)
↓
lbfo.sys(LBFO MUX中间驱动)
↓
ndis.sys(NDIS框架)
↓
物理网卡Miniport驱动(e1q62x64.sys/rt64win7.sys等)
↓
以太网硬件
2. 绑定依赖硬性规则
- 组建 Team 后:物理网卡只能绑定 MNAMP 协议,自动解除 TCP/IP 绑定;
- TCP/IP、DHCP、Winsock 等协议仅绑定在 Team 虚拟网卡上;
- 删除 Team 时,系统自动清理 MNAMP 绑定,恢复物理网卡直接绑定 TCP/IP。
3. 服务依赖
4. 硬件 & 交换机依赖约束
- LACP 模式:交换机必须启用链路聚合组;
- 交换机独立模式:无需交换机配置,但入站流量无法负载均衡;
- 无线网卡不支持 NIC Teaming,无法加入 Team;
- RDMA 网卡加入 Team 后,RDMA 功能失效(LBFO 不支持硬件卸载穿透)。
四、完整逻辑链路
链路 1:创建 NIC Team(MNAMP 协议初始化链路)
服务器管理器 / PowerShell New-NetLbfoTeam
↓
netcfgx.dll / ncl.dll 调用NDIS配置API
↓
注册lbfo.sys MUX中间驱动
↓
创建【虚拟Team适配器】
↓
修改NDIS绑定路径:
物理网卡 → 仅绑定 MNAMP
MNAMP向上暴露虚拟网卡 → 绑定TCP/IP
↓
注册表写入Team成员列表、聚合策略
↓
lbfo.sys初始化内部绑定通道,持续监控各物理网卡介质状态
【MNAMP协议正式激活】
链路 2:数据包出站(发送流程)
应用发出报文 → tcpip.sys → Team虚拟网卡
↓
MNAMP将数据包转交lbfo.sys
↓
LBFO根据五元组/MAC哈希选择成员物理网卡
↓
ndis.sys下发至对应物理网卡驱动 → 硬件发送
链路 3:数据包入站(接收流程)
物理网卡收到以太网帧 → Miniport驱动 → ndis.sys
↓
lbfo.sys接收,剥离内部MUX封装信息
↓
统一上送虚拟Team适配器
↓
tcpip.sys递交给上层应用
链路 4:故障转移链路
物理网卡网线断开 → 网卡驱动上报MediaDisconnect事件
↓
ndis.sys通知lbfo.sys
↓
LBFO标记该链路失效,后续流量不再调度至此网卡
↓
无需上层TCP/IP重置连接,实现无感知故障切换
链路 5:删除 NIC Team,销毁 MNAMP 绑定
Remove-NetLbfoTeam
↓
解除虚拟网卡与LBFO驱动绑定
↓
恢复物理网卡绑定清单(移除MNAMP,重新绑定TCP/IP)
↓
注销虚拟Team适配器,卸载lbfo.sys实例
五、MNAMP + NIC Teaming 生命周期模型
【阶段1:初始状态】
多张物理网卡,各自独立绑定TCP/IP;MNAMP协议未启用,无内部绑定关系。
↓
【阶段2:创建Team(激活MNAMP)】
执行新建网卡组合;系统自动安装、启用MNAMP多路复用协议;
重构NDIS绑定路径;生成虚拟Team适配器;注册表持久化聚合策略。
【状态:MUX多路复用就绪,流量开始统一调度】
↓
【阶段3:正常运行】
lbfo.sys持续监控成员网卡链路状态;
出站流量哈希分发;故障链路自动隔离;
上层所有应用仅识别Team虚拟网卡IP/MAC。
↓
【阶段4:运行时变更(添加/移除成员网卡)】
重新调整内部绑定关系,刷新注册表;动态更新流量调度成员列表。
↓
【阶段5:链路故障事件(可选分支)】
成员网卡离线 → LBFO标记链路失效;流量迁移至其他正常网卡;
链路恢复后,根据策略决定是否重新纳入调度池。
↓
【阶段6:删除Team(生命周期终止)】
销毁虚拟适配器;清除MNAMP协议绑定;
物理网卡恢复直连TCP/IP;lbfo.sys释放实例。
六、配套链
1. 用户态管理配套工具
- PowerShell NetLbfo 模块(主力管理接口)
New-NetLbfoTeam
Get-NetLbfoTeam
Remove-NetLbfoTeam
- 服务器管理器 → 本地服务器 → NIC 组合图形界面
ncpa.cpl网络连接面板(查看 MNAMP 协议勾选状态)netsh trace:NDIS 数据包追踪,排查 Teaming 流量分发异常
2. 虚拟化配套区分(重要边界)
- LBFO+MNAMP:物理服务器 NIC Teaming,裸金属使用;
- SET(Switch Embedded Teaming):Hyper-V 虚拟交换机内置聚合,不使用 lbfo.sys、不依赖 MNAMP 协议,二者不能混用。
3. 企业运维配套链
- 组策略:网络适配器绑定策略,管控 NDIS 协议绑定顺序;
- 监控体系:SCOM/Zabbix 监控 LBFO 链路状态、成员网卡在线状态;
- 交换机配套:LACP 动态聚合、静态端口通道配置;
- 故障诊断配套:
wevtutil读取 LBFO 事件日志、WPR 抓取 NDIS 流量追踪。
4. 同类竞品配套参考(历史淘汰方案)
七、运维高频风险要点
- 禁止在单网卡手动勾选 MNAMP 协议,没有 Team 环境下会直接断网;
- 修改网卡绑定顺序、安装 VPN / 防火墙 NDIS 过滤器,极易破坏 MNAMP 绑定路径;
- 不能同时启用 LBFO Teaming 与网卡厂商私有聚合驱动;
- 虚拟机直通网卡组建 Team 场景,宿主机不可叠加二层虚拟化聚合;
- Team 虚拟网卡不支持直接抓取单成员网卡流量,抓包需要在物理网卡层面操作。
Mermaid NIC Teaming(LBFO + MNAMP)完整栈架构流程图
flowchart TD
APP[上层应用程序] --> TCPIP[tcpip.sys TCP/IP协议栈]
TCPIP --> TEAM_VADAPT[Team虚拟适配器<br/>MNAMP多路复用绑定层]
TEAM_VADAPT --> LBFO[lbfo.sys LBFO MUX中间驱动]
LBFO --> NDIS[ndis.sys NDIS核心框架]
NDIS --> NIC1[物理网卡1 Miniport驱动]
NDIS --> NIC2[物理网卡2 Miniport驱动]
NDIS --> NIC3[物理网卡3 Miniport驱动]
NIC1 --> HW1[以太网硬件端口1]
NIC2 --> HW2[以太网硬件端口2]
NIC3 --> HW3[以太网硬件端口3]
subgraph 用户态配置层
PSH[PowerShell NetLbfo]
SM[服务器管理器GUI]
NCPA[ncpa.cpl网络连接面板]
end
subgraph 配置持久化
REG[HKLM\SYSTEM\...\LBFO & Class网卡注册表]
end
PSH --> REG
SM --> REG
NCPA --> REG
REG -.-> LBFO
%% 流向标注
noteOut[出站:哈希分发至成员网卡] -.-> LBFO
noteIn[入站:多链路流量汇聚上送协议栈] -.-> LBFO
noteFault[链路故障检测&流量自动迁移] -.-> LBFO
配置持久化
用户态配置层
上层应用程序
tcpip.sys TCP/IP协议栈
Team虚拟适配器
MNAMP多路复用绑定层
lbfo.sys LBFO MUX中间驱动
ndis.sys NDIS核心框架
物理网卡1 Miniport驱动
物理网卡2 Miniport驱动
物理网卡3 Miniport驱动
以太网硬件端口1
以太网硬件端口2
以太网硬件端口3
PowerShell NetLbfo
服务器管理器GUI
ncpa.cpl网络连接面板
HKLM\SYSTEM...\LBFO & Class网卡注册表
出站:哈希分发至成员网卡
入站:多链路流量汇聚上送协议栈
链路故障检测&流量自动迁移
二、NIC Teaming 标准故障排查流程
阶段 1:基础状态核验
- 执行
Get-NetLbfoTeam确认 Team 存在、成员网卡全部 Up - 查看
Get-NetLbfoTeamMember确认成员状态、管理模式、负载均衡算法 - 核对聚合模式:
- LACP:交换机端口必须开启 LACP 动态聚合
- 静态聚合:交换机配置静态 PortChannel
- 交换机独立:无需交换机配置
- 检查网卡属性:物理网卡仅绑定 MNAMP,TCP/IP 仅绑定在 Team 虚拟网卡
阶段 2:绑定与驱动校验
- 确认
lbfo.sys正常加载:fltfilters/ 设备管理器查看系统驱动 - 核查 NDIS 绑定顺序,不存在第三方防火墙 / VPN 驱动阻断 MUX 路径
- 禁止手动勾选单网卡 MNAMP 协议,极易造成断网
- 事件查看器 →
Microsoft-Windows-LBFO读取运行日志,定位链路掉线事件
阶段 3:连通性与流量测试
- 持续 ping 网关,手动拔插单成员网卡,验证故障转移是否生效
- 流量分发验证:多流并发测试,观察流量是否分散到多张物理网卡
注意:单条 TCP 流永远固定走同一条链路(五元组哈希机制)
- 抓包定位:
- 虚拟网卡抓包:汇总全部流量
- 物理网卡抓包:观测单链路收发情况
阶段 4:典型故障判定与修复
| 故障现象 | 根因 | 处理方案 |
|---|---|---|
| 创建 Team 失败 | 网卡存在第三方驱动冲突;无线网卡不支持 Teaming;RDMA 网卡限制 | 移除冲突 NDIS 过滤器;更换有线网卡 |
| 成员网卡频繁掉线 | 网线 / 交换机端口不稳定;速率双工不匹配 | 核查物理链路、强制速率双工 |
| 带宽无法叠加 | 单会话受哈希限制;模式为交换机独立(入站无法分担) | 多并发流测试;必要切换 LACP 模式 |
| 删除 Team 后网络异常 | NDIS 绑定未自动恢复 | 手动移除 MNAMP,重新给物理网卡绑定 IPv4/6 |
阶段 5:深度追踪
- 使用
netsh trace start capture=yes抓取 NDIS 完整报文 - Windows Performance Recorder (WPR) 录制网络栈、LBFO 运行追踪
- 清理方案:删除 Team → 重启网卡 → 重建 Team
三、NetLbfo 常用运维命令清单
需要管理员 PowerShell 执行
1. 查询类
# 查看所有网卡组合
Get-NetLbfoTeam
# 查看Team成员详情
Get-NetLbfoTeamMember
# 查看负载均衡算法、聚合模式
Get-NetLbfoTeam | Select Name,TeamingMode,LoadBalancingAlgorithm
# 查看Team端口通知、LACP状态
Get-NetLbfoTeamNic
2. 创建 Team
# 交换机独立模式,基于哈希负载均衡
New-NetLbfoTeam -Name "Team01" -TeamMembers "Ethernet0","Ethernet1" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm HyperVPort
# LACP动态聚合模式
New-NetLbfoTeam -Name "LACP_TEAM" -TeamMembers "Ethernet0","Ethernet1" -TeamingMode LACP -LoadBalancingAlgorithm HyperVPort
- TeamingMode:
SwitchIndependent/Static/LACP - LoadBalancingAlgorithm:
HyperVPort/TransportPorts/MacAddresses
3. 调整成员
# 添加网卡至Team
Add-NetLbfoTeamMember -Name "Team01" -InterfaceAlias "Ethernet2"
# 从Team移除网卡
Remove-NetLbfoTeamMember -Name "Team01" -InterfaceAlias "Ethernet2"
4. 删除网卡组合
Remove-NetLbfoTeam -Name "Team01"
5. 配套辅助排查命令
# 查看网卡绑定协议(确认MNAMP绑定状态)
Get-NetAdapterBinding -InterfaceAlias Ethernet0
# 查看网卡介质状态
Get-NetAdapter | Select Name,Status,LinkSpeed
# 导出LBFO事件日志
Get-WinEvent -ProviderName Microsoft-Windows-LBFO | Export-Csv C:\lbfo_log.csv
|
在网络中,绑定或聚合接口意味着将两个或更多的网络接口组合在一起,以提供更高的带宽或更大的可靠性。这在服务器和数据中心环境中非常常见,因为它可以帮助提高网络性能和可用性。 作用
用例
安全性和性能一般来说,启用这个协议并不会显著影响安全性。然而,配置和管理不当可能会导致网络问题。因此,正确设置网络接口聚合非常重要。 结论Microsoft Network Adapter Multiplexor Protocol 是一种有用的工具,特别是在需要高带宽和高可靠性的网络环境中。不过,通常只在高级网络设置或专业环境中使用。如果您的网络环境需要更高的性能和可靠性,并且您知道如何正确配置和管理网络接口聚合,那么这个协议可能会对您有帮助。 |
|
MNAMP的实现涉及到多个系统资源,包括 DLL 文件、API 接口、注册表项以及其他配置文件和日志文件,这些资源共同支持MNAMP的配置、管理和执行。 |
|
1. 绑定(Teaming)MNAMP 允许将多个网络适配器绑定在一起,以便在一个逻辑接口上实现更高的带宽和容错。这可以用于负载平衡、链路聚合和冗余。 2. 负载平衡绑定多个网络适配器后,MNAMP 可以将网络流量分配到不同的物理接口上,以实现负载平衡。这可以在数据包级别或流级别进行负载平衡,从而提高网络吞吐量。 3. 冗余和容错通过绑定多个网络适配器,MNAMP 可以提供冗余和容错能力。如果一个适配器发生故障,其他绑定的适配器可以继续提供网络服务,从而确保网络的高可用性。 4. 配置和管理MNAMP 可以通过 Windows 网络配置工具进行配置和管理。这包括使用 "网络和共享中心" 或 "Windows PowerShell" 来配置绑定接口、选择负载平衡策略和配置容错特性。 5. 网络协议栈MNAMP 在底层实现时,依赖于 Windows 的网络协议栈和 NDIS(网络驱动程序接口规范)。通过 NDIS,MNAMP 可以与底层网络驱动程序通信,以实现数据包的分配、负载平衡和冗余。 6. 绑定策略MNAMP 支持多种绑定策略,例如:
7. 事件处理MNAMP 处理网络适配器事件(如连接、断开等),并在适配器状态变化时调整绑定策略。这是实现容错和冗余的关键。 8. 相关驱动和服务MNAMP 的实现依赖于一系列系统驱动程序和服务,包括 NDIS、TCP/IP 协议栈和网络适配器驱动程序。这些组件共同协作,以确保 MNAMP 的正确运作。 MNAMP 的底层原理基于绑定、负载平衡和冗余,通过 Windows 网络协议栈和相关驱动程序来实现。其目标是提高网络的带宽和可靠性,并提供灵活的配置和管理选项。 |
|
在 Windows 操作系统中,配置和管理 网络和共享中心
Windows PowerShellWindows PowerShell 提供了许多命令来管理网络适配器和绑定配置。
Netsh 命令Netsh 是 Windows 的命令行网络配置工具。虽然它不是直接用于配置 MNAMP 的,但可以用于查看和配置网络设置。
其他
这些命令和工具提供了多种方式来配置和管理 MNAMP 以及网络适配器绑定。请注意,配置网络绑定和 Multiplexor Protocol 可能需要管理员权限,因此在执行相关操作时,请确保您具有适当的权限。 |
|
这些功能使得 MNAMP 能够在企业网络环境中发挥重要作用,提供高性能、高可用性的网络服务,并具有灵活性和可管理性。 |
|
MNAMP 的应用场景广泛,涉及到网络性能、可靠性和可用性等多个方面。根据企业或数据中心的具体需求,可以灵活配置 MNAMP 的特性和功能。 |
|
MNAMP 是一个复杂而强大的网络协议,通过分析其模型设计、算法和策略、网络拓扑结构、管理和配置、性能和可靠性等方面,可以更好地理解和优化 MNAMP 的应用。 |
|
MNAMP 协议层次结构从网络适配器绑定、负载平衡、冗余与容错等方面提供了丰富的功能,并在操作系统的网络堆栈中扮演着关键角色。正确配置和管理 MNAMP 可以显著提高网络性能和可靠性。 |
|
1. 协议栈交互
2. 适配器绑定
3. 负载平衡策略
4. 冗余与容错
5. 配置和管理
6. 网络安全
7. 兼容性与互操作性
8. 监控与诊断
总结MNAMP的这些组块共同构成了一个强大的网络适配器绑定和管理系统。通过这些组块的协作,MNAMP能够提供高性能、高可靠性的网络连接,并满足不同应用场景的需求。 |

浙公网安备 33010602011771号