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

M9000防火墙会话异常

5天前提问
  • 0关注
  • 1收藏,143浏览
粉丝:0人 关注:0人

问题描述:

大家好,M9000系列防火墙查看防火墙会话时会有显示CPU0 到CPU4 的会话,有办法让会话不走某个CPU4 ,比如不走CPU4.

最佳答案

粉丝:31人 关注:1人

对于M9000系列防火墙,目前没有直接的配置命令可以让会话“不走”某个指定的CPU核心(如CPU4)

M9000作为高端分布式防火墙,其CPU核心处理会话的分配机制由系统底层自动管理。用户通常无法手动干预或排除特定核心。

📌 为什么无法直接指定?

这由M9000的“逐流转发”(per-flow)机制决定。系统会根据报文中的关键信息(如源/目的IP、端口、协议号等)通过哈希算法,将同一条流的全部报文固定分配给同一个CPU核心处理。这种设计保证了数据包的有序转发,其分配逻辑是系统底层行为,不提供“排除核心”的配置接口

🔧 你可以尝试的相关调整

虽然没有直接排除核心的命令,但可以调整负载均衡策略,这可能会间接影响会话在CPU间的分布:

  • 调整报文负载分担策略:通过 forwarding policy 命令,可以修改系统分配流到不同CPU的依据。例如,默认采用五元组(源/目的IP、源/目的端口、协议号),你可以改为基于三元组(源IP、目的IP、协议号)或仅基于源IP等。

    text
    <Sysname> system-view [Sysname] forwarding policy per-flow three-tuple

    注意:此命令只改变流的分类依据,并不能保证会话一定避开CPU4,只是可能改变其分布

📝 建议的排查步骤

如果怀疑CPU4存在性能瓶颈,建议按以下步骤排查,而不是试图绕过它:

  1. 观察CPU核心负载:使用 display cpu-usage 命令,查看所有CPU核心(包括CPU4)的实际使用率。确认CPU4是否真的负载过高,还是只是你的观察。

  2. 检查是否存在单核打满:如果确认某个核心负载异常高,使用 display cpu-usage task 等命令查看是哪个进程导致的。

  3. 检查会话表项:使用 display session table 命令查看会话数量是否正常,以及是否存在异常的单IP会话数过大等情况。

暂无评论

3 个回答
zhiliao_3tTC7C 知了小白
粉丝:0人 关注:0人

大家好,目前检查走CPU4的会话都存在问题,有什么办法屏蔽掉这个CPU4吗

暂无评论

粉丝:33人 关注:2人

# M9000 会话分散在多个 CPU 核,能不能强制不走某个 CPU(例如 CPU4)

>
> 现象:`display session table` 看到会话分布在 slot1 的 CPU4;**Comware V7 M9000(Blade IV/V 业务板)没有命令可以直接 “禁止某一个 CPU 核处理业务会话”**,**不能手动指定排除某个 CPU 核,会话是基于五元组哈希自动分发到各个业务 CPU 核**H3C。

## 一、先看懂你的输出

```
CPU 4 on slot 1:
Initiator:
Source IP/port: x.x.x.2/49269
Destination IP/port: x.x.x.0/2048
Protocol: ICMP(1)
Inbound interface: InLoopBack0
Source security zone: Local
```

这条会话来源是 **Local 域(防火墙本机发起的 ICMP 报文)**,不是业务流量,是设备本机产生的报文,会被调度到 CPU4。

>
> 业务流量(内网→外网)是硬件转发,会话表项会分布在各个业务 CPU;**本机报文(ping、NQA、IKE、L2TP 等)会由软件 CPU 处理,会落在某个 CPU 核**。

### 关键点

1. **`forwarding policy per-flow`(默认)**:**同一个五元组流固定落在同一个 CPU 核,不能人为把某条流强制挪到别的 CPU,也不能把某个 CPU 核从分发池剔除**H3C。
2. 没有命令:`exclude cpu 4` 这种配置。
3. 会话表显示的 CPU 号,代表**这条会话的会话表项存储在该 CPU 核**,不等于报文一定全部由这个 CPU 转发;硬件转发报文是芯片处理,会话表元数据在对应 CPU。

## 二、现场常见场景与处理方案

### 场景 1:CPU4 占用高,怀疑会话都跑 CPU4(业务流量)

1. 先区分:是**业务会话**还是**本机 Local 报文**(NQA、ping、IKE、VPN、攻击检测)

```
# 看每个CPU的会话数量
display session table cpu ?
# 看CPU4的会话明细
display session table cpu 4
# 看CPU利用率
display cpu-usage
```

- 如果是**本机 Local 域报文(NQA、IKE、L2TP)**:这部分是软件处理,会落到某个 CPU,这是正常现象。
- 如果大量业务会话集中在 CPU4:**是五元组哈希算法结果,无法人工指定避开 CPU4**。

>
> 补充:`forwarding policy per-flow enhance`增强模式,会把同一条流的入 / 出报文分散到不同 CPU,会改变分发结果,但**仍然不能排除指定 CPU**H3C。

### 场景 2:CPU4 上跑大量 Local 域会话(NQA 探测、IKE、L2TP)

>
> 你的截图里就是 Local 源域 ICMP 会话,这是设备本机发起探测报文。

1. NQA 探测任务,会在 CPU 上产生会话;NQA 任务可以**调整 NQA 的调度 CPU**,但不是直接修改会话分发。
2. 大量 VPN/IKE/L2TP 报文,属于 Local 域软件报文,会占用某一个业务 CPU。

### 场景 3:想做 CPU 隔离,不让业务流量使用 CPU4

>
> M9000 防火墙业务板(Blade IV/V)**不支持隔离单个业务 CPU 核用于业务会话**;CPU 隔离功能只用于 MDC 虚拟化 / DPDK 场景,普通防火墙业务模式不可用H3C。

## 三、可以做的优化手段(替代 “禁止 CPU4”)

1. **调整报文分发模式(per‑flow enhance)**

```
system-view
forwarding policy per-flow enhance
```

>
> 增强流分担,改变五元组哈希分发结果,会改变会话落在哪个 CPU 核,**但无法保证完全避开 CPU4**,只能改变分布概率。

2. 排查 CPU4 高占用根源

```
display cpu-usage
display process cpu
```

看 CPU4 高是**会话表处理、NQA、IKE、攻击防范、还是业务流量**。

- 如果是 NQA 探测过多:减少 NQA 探测数量,或者拆分探测任务;
- 如果是 IKE/L2TP:检查 VPN 会话数量,是否有大量异常的 VPN 连接。

3. 查看会话来源,区分硬件转发业务会话 vs Local 本机会话

```
display session table verbose
```

看`Source security zone`:

- `Trust/Untrust`:业务流量,硬件转发,会话表分布是哈希结果;
- `Local`:设备本机报文,软件处理,必然落在某个 CPU。

4. 清除会话,让会话重新哈希分配

>
> 当老会话全部老化,新建会话会重新哈希,有可能不再落在 CPU4。

```
reset session table slot 1 cpu 4
```

⚠️会断开对应 CPU4 上所有现有会话,业务窗口操作。

## 四、重要结论

1. ❌**没有命令可以直接 “禁止 CPU4 处理会话”,不能把某个 CPU 从会话分发池剔除**。会话基于五元组哈希自动分配。
2. 你的截图这条会话是**Local 域本机 ICMP 报文**(防火墙自己发出的 ping),属于软件报文,不是业务流量。
3. 可使用`forwarding policy per‑flow enhance`改变分发算法,改变会话落 CPU 的概率,但无法 100% 规避某个 CPU。
4. 若 CPU4 负载高,优先排查:是否大量 NQA、IKE、L2TP、攻击检测这类 Local 软件任务。

### 快速排障命令清单

```
# 查看slot1各个CPU会话数量
display session table slot 1

# 查看CPU4上全部会话明细
display session table slot 1 cpu 4

# 看CPU占用、进程
display cpu-usage
display process cpu

# 切换增强流分担模式
system-view
forwarding policy per-flow enhance

# 清空CPU4会话(业务窗口执行)
reset session table slot 1 cpu 4
```

>
> 补充:M9000 的`display session table`显示的 CPU 编号,**代表会话表项存放的 CPU,不等于报文转发一定由该 CPU 完成**;大部分业务流量是硬件芯片转发,CPU 只维护会话元数据。

暂无评论

粉丝:174人 关注:11人

屏蔽不了

暂无评论

编辑答案

你正在编辑答案

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

分享扩散:

提出建议

    +

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

确定

亲~检测到您登陆的账号未在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. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

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

不规范转载

×

举报说明