• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

负载均衡怎么一份数据怎么会走两个接口

  • 0关注
  • 0收藏,117浏览
Yangyx 二段
粉丝:0人 关注:1人

问题描述:

链路1

Sending, interface = Vlan-interface4011

version = 4, headlen = 20, tos = 0

pktlen = 60, pktid = 61409, offset = 0, ttl = 58, protocol = 6

checksum = 55995, s = 102.106.126.226, d = 54.151.158.30

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Sending IP packet received from interface Route-Aggregation1 at interface Vlan-interface2011.

Payload: TCP

  source port = 58612, destination port = 443

  sequence num = 0xf1447b01, acknowledgement num = 0x00000000, flags = 0x2

  window size = 65535, checksum = 0xe5e1, header length = 40.

 

链路2

PACKET: (Vlan-interface2021-out-config) Protocol: TCP

102.106.126.226:57943 -   54.151.158.30:10354(VPN:    0) ------>

111.205.49.147:33573 -   54.151.158.30:10354(VPN:    0)

 

正常的数据匹配源后应该匹配链路1出去,为什么debug的时候能看到在其他接口上做的NAT转换。

 

4 个回答
粉丝:1人 关注:0人

  1. 正常现象:在配置了多出口负载均衡的设备上,看到不同会话的流量从不同接口流出并分别进行NAT转换,是完全正常的。这正是负载均衡工作的体现。
  2. 关键区分:请通过 五元组(源IP、源端口、目的IP、目的端口、协议) 来唯一标识一个会话。对比您提供的两条信息,它们的五元组不同,因此是独立的两个连接。
  3. 验证方法
    • 您可以尝试持续访问同一个固定的外网地址(如 54.151.158.30:443),然后抓包或查看会话表(使用 display session table 或类似命令),应该会发现该连接的所有数据包都稳定地从同一个接口(如 Vlan-interface2011)出去。
    • 同时,其他主机或连接则会根据负载均衡算法,被分配到其他接口。

简单来说,您的负载均衡功能工作正常。Debug信息显示了经过不同链路的多个独立网络会话的处理情况,并非同一份数据被复制到了两个接口。

暂无评论

Yangyx 二段
粉丝:0人 关注:1人

只要我匹配源,就走链路1.
这个是负载策略优先啊,不可能走链路2

暂无评论

粉丝:23人 关注:2人

华三 SecPath FW/LB 多出口链路负载均衡,同一五元组 debug 出现两条出口接口完整官方原理 + 故障根因
核心前置结论(官方研发标准逻辑)
正常业务稳定 TCP 会话只会固定走一条链路;你 debug 同时看到两条接口做 NAT 转发,分4 类场景,其中首包预探测复制报文、会话未建立是 90% 现场复现原因,不是业务真的双路同时发数据。
一、场景 1:出站链路负载均衡首包多链路预探测(最高发,匹配你的抓包现象)
底层原理(V7 防火墙链路负载均衡内置机制)
内网 TCP SYN 首包到达防火墙,无对应五元组会话表;
链路负载均衡(LLB)会复制首包 SYN 报文,向所有可用健康链路同时做 NAT 转换、转发探测;
设备同步探测每条链路的时延、丢包、连通性,根据选路算法(带宽比例 / 最小流量 / 最小时延)选出最优链路;
收到任意一条链路的服务器回包 SYN+ACK 后,立即基于该链路创建硬件会话表;
后续所有 TCP 报文只走选中的那条链路,其他链路复制的探测报文直接丢弃,不会转发后续载荷。
对应你日志现象解读
Vlan-interface4011(链路 1):SYN 首包复制探测报文;
Vlan-interface2021(链路 2):同一份 SYN 复制后的另一条探测报文,两条都做了 NAT 转换打印 debug;
真正建立会话后,只有链路 1 持续传输业务数据,链路 2 不会再出现同流报文。
关键区分:探测报文≠业务数据流
复制仅针对TCP 握手首包,数据传输阶段不会复制;debug 看到双出口只是首包探测行为,不会造成业务乱序、断流。
二、场景 2:负载均衡算法配置为per-packet逐包负载(不推荐,会出现持续双路转发)
机制
如果链路负载均衡选路策略配置为按报文分担(per-packet),而非默认按流分担(per-flow):
同一个五元组 TCP 流,每一个报文都会重新哈希选路;
报文交替从两条链路出口,每条报文独立 NAT 转换;
后果:TCP 报文跨链路乱序,服务器大量重传、业务卡顿。
查看 & 修复命令
plaintext
# 查看链路负载均衡选路模式
display load-balance outbound policy
# 修改为标准按流分担(推荐,同流固定一条链路)
load-balance outbound policy LB-OUT
mode per-flow

三、场景 3:会话老化 / 会话表异常,会话断裂重建,两条链路分别承载新旧会话
原有 TCP 会话老化超时、CPU 过高会话表被冲刷、链路健康状态切换;
旧会话走链路 2,会话失效后客户端重新发起 SYN,新会话匹配策略走链路 1;
debug 同时捕获旧会话残留报文 + 新建首包探测报文,看起来同流双出口;
验证:查看会话表,会存在两条同源目五元组、不同出接口的会话(一条老化待删除,一条新建)。
四、场景 4:策略路由 / 静态默认路由与链路负载均衡叠加冲突(路由优先级混乱)
同时配置了:出站链路负载均衡 + 普通策略路由 / 多静态默认路由;
路由优先级冲突:首包匹配 LLB 复制探测,部分报文匹配静态路由从第二条链路转发;
双重选路逻辑叠加,同一流量出现两个出口 NAT。
五、配套验证命令(区分是探测复制还是真的双路转发)
查看当前五元组会话,确认出接口唯一
plaintext
display session table source 102.106.126.226 destination 54.151.158.30

正常只会出现一条会话,出接口为 Vlan-interface4011;若出现两条会话则是会话重建 / 路由冲突。
2. 查看链路负载均衡选路模式
plaintext
display load-balance outbound policy

确认 mode 为per-flow(按流),不是 per-packet。
3. 关闭首包多链路探测(测试验证,业务不推荐长期关闭)
plaintext
load-balance outbound policy LB-OUT
disable multi-link-probe

关闭后再 debug,只会出现一条出口报文,即可验证是首包复制探测导致。
六、极简总结
你当前现象绝大多数是LLB 首包多链路复制探测:仅 SYN 握手首包复制到所有链路做 NAT 探测,建会话后所有业务报文固定走最优链路(链路 1),属于设备正常机制,无需处理;
若业务传输阶段持续出现双出口报文,排查两点:①选路模式为 per-packet 逐包分担;②路由 / 策略路由与 LLB 叠加冲突;
会话老化重建也会短暂出现新旧会话分走两条链路,可缩短会话空闲超时缓解。

暂无评论

粉丝:25人 关注:1人

根据你提供的 Debug 信息,数据包“走两个接口”的现象,很可能不是同一个数据流被同时复制到了两条链路上,而更像是“异步路由”问题:即去程和回程的数据包走了不同的路径

Debug 信息也证实了这一点:左侧是链路1(Vlan-interface4011)的原始报文,右侧是链路2(Vlan-interface2021)上经过 NAT 转换后的报文。这说明一个方向的流量走了链路1,而另一个方向的流量(很可能是回程)走了链路2。

这通常是由以下几个原因共同导致的:

⚙️ 核心原因一:出方向负载均衡策略的“全匹配”特性

当你配置了出方向链路负载均衡后,设备会创建一个特殊的“全0虚服务”(0.0.0.0/0。它的作用是匹配所有从内到外的流量,并按照负载均衡算法将其分发到不同的外线链路。

这个策略本身没问题,但关键在于它会“一视同仁”地处理所有流量。当外部主动发起的访问(比如你 Debug 中看到的 54.151.158.30 这个外网 IP 访问内网)到达设备时,也会错误地匹配到这个“全0虚服务”,导致设备试图将它也进行负载均衡,从而可能将其从非预期的链路转发出去

🔄 核心原因二:缺少“源进源出”机制

与上述原因相伴的是,出方向负载均衡默认只关心流量从哪个接口出去,不保证这个流量是从哪个接口进来的。这就导致了“来回路径不一致”(即“异步路由”)

  • 现象:外部流量从链路1进入设备,但设备在回包时,根据负载均衡策略或路由表,可能选择从链路2发送出去

  • 结果:这就出现了你的 Debug 中看到的,去程和回程的 NAT 转换出现在不同接口上的情况。

✅ 如何解决:配置“源进源出”

要解决这个问题,关键是在设备上启用“源进源出”(也叫“保持上一跳”)功能。这个功能会强制要求:数据包从哪个接口进来,它的响应数据包就必须从同一个接口出去

配置方法如下(以 Comware V7 系统为例):

  1. 在系统视图下,开启全局“保持上一跳”功能

    bash
    [H3C] ip last-hop hold

    这条命令通常就能解决问题

  2. (可选)在接口下单独开启
    如果全局命令不生效,或只想对特定接口生效,可以进入相应的外网接口视图:

    bash
    [H3C-Vlan-interface2021] ip last-hop hold

🔍 其他可能性排查

如果配置了“源进源出”后问题依旧,还可以检查以下几点:

  • 检查负载均衡策略配置:查看是否创建了过于宽泛的“负载均衡类”或“动作”,意外地匹配了本不该匹配的流量

  • 检查NAT配置:如果对外发布了服务器,确保每个外网接口都正确配置了对应的 nat server 映射

  • 检查是否存在策略路由(PBR):策略路由的优先级高于普通路由,可能会强制流量从特定接口转发,覆盖掉负载均衡或“源进源出”的设置。

  • 检查会话表:登录设备,使用 display session table 命令,根据源或目的 IP 查找该会话的详细信息,确认其状态和转发路径是否符合预期。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明