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

模拟器上测试空节点不生效

4天前提问
  • 0关注
  • 0收藏,73浏览
粉丝:0人 关注:0人

问题描述:

1、配置策略可以生效,但是走默认路由时,不生效,rule 5 这条,没有走默认静态路由,

acl advanced 3000

 rule 5 deny ip destination 172.20.14.0 0.0.0.255

 rule 10 permit ip source 172.20.19.0 0.0.0.255

#

2、增加空节点也不生效,

policy-based-route fw permit node 10

 if-match acl 3000

 apply next-hop 172.20.9.5

#

policy-based-route fw permit node 20

 if-match acl 3003

#

#

acl advanced 3003

 rule 0 permit ip

#

4 个回答
粉丝:2人 关注:9人

空节点不生效通常是因为策略路由的匹配和执行逻辑问题。以下是排查步骤和关键命令:

排查步骤:
1. 检查策略路由应用接口:确保策略路由已正确应用到数据包的入接口。
display ip policy-based-route [ interface interface-type interface-number ]

2. 验证ACL匹配:确认ACL规则是否正确匹配预期流量。
display acl 3000

3. 检查路由可达性:确认下一跳地址`172.20.9.5`在路由表中可达。
display ip routing-table 172.20.9.5

4. 验证空节点配置:空节点(如`node 20`)应配置为`permit`且无`apply`动作,确保其仅用于放行流量走默认路由。
policy-based-route fw permit node 20

5. 检查策略路由顺序:策略路由按节点号从小到大顺序执行。确保空节点(如`node 20`)的节点号大于有`apply`动作的节点(如`node 10`),否则流量会先被空节点匹配并放行。

关键点:如果流量匹配了`node 10`(有`apply next-hop`),将执行策略路由指定的下一跳,不会走默认路由。只有未匹配任何有`apply`动作的节点,且被空节点放行时,才会走默认路由。

需要补充的信息:请提供完整的策略路由配置和其应用的接口。

暂无评论

粉丝:9人 关注:1人

核心原因很可能在于 PBR(策略路由)对 ACL deny 规则的处理机制,以及 PBR 的应用接口或路由表状态

1. PBR 如何处理 ACL 中的 deny 规则?

在你的配置中:

acl advanced 3000
rule 5 deny ip destination 172.20.14.0 0.0.0.255
 rule 10 permit ip source 172.20.19.0 0.0.0.255
当流量匹配 ACL 3000 时:
  • 如果目的 IP 是 172.20.14.0/24,则匹配 rule 5 deny

  • 在 PBR 的 if-match acl 中,匹配到 ACL 的 deny 规则等同于“不匹配该节点”,即 PBR 节点 node 10 判定为 不命中,继续向下检查下一个节点(node 20)。

2. 空节点 node 20 的预期行为

policy-based-route fw permit node 20
if-match acl 3003
 acl advanced 3003
 rule 0 permit ip
  • node 20 匹配了所有 IP 流量(acl 3003 的 permit ip)。

  • 该节点没有 apply 子句,根据 H3C 的 PBR 行为:匹配到没有 apply 的节点时,报文不再继续匹配后续 PBR 节点,直接进入普通路由表转发(即走你配置的默认静态路由)。

  • 理论上,去往 172.20.14.0/24 的流量应该先跳过 node 10,然后命中 node 20,最后走默认路由。

3. 为什么实际没有走默认路由?

既然逻辑正确,问题可能出在以下几个方面:

检查点 1:PBR 是否应用到了正确的接口和方向?

  • 执行 display current-configuration | include policy-based-route 查看 PBR 的全局或接口应用。

  • 常见错误:PBR 应用在了 出接口 或 错误的 VLAN,而不是流量的 入接口

  • 示例正确应用:

    interface GigabitEthernet0/1
    ip policy-based-route fw # 必须配置在流量进入路由器的接口上

 检查点 2:ACL 3000 的 rule 10 是否意外影响了测试流量?

  • 你的 rule 10 只允许源 IP 为 172.20.19.0/24 的流量通过。如果你的测试流量源 IP 不属于该网段,则 ACL 3000 整体匹配结果为 不匹配(因为 rule 5 是 denyrule 10 不满足),那么 node 10 同样会跳过。这没问题,node 20 依然能匹配。

  • 但如果你期望 所有去往 172.20.14.0/24 的流量(无论源 IP) 都不走 PBR 强制下一跳,建议将 acl 3000 简化:

    acl advanced 3000
    rule 5 deny ip destination 172.20.14.0 0.0.0.255
     rule 10 permit ip # 允许其他所有流量
  • 这样 node 10 会匹配除 172.20.14.0/24 之外的所有流量,并强制下一跳 172.20.9.5。而目的为 172.20.14.0/24 的流量跳过 node 10,再被 node 20 正常转发。

 检查点 3:默认静态路由是否存在且有效?

  • 执行 display ip routing-table | include 0.0.0.0 查看是否有默认路由。

  • 如果默认路由的下一跳不可达(比如直连链路 down),路由表不会加表,PBR 空节点转发时就会因为没有匹配路由而丢包。

 检查点 4:PBR 统计信息 – 确认节点命中情况

  • 清空统计:reset ip policy-based-route statistics

  • 触发测试流量,然后执行:

    display ip policy-based-route statistics interface <入接口>
  • 查看 node 10 和 node 20 的匹配报文计数。如果 node 20 计数为 0,说明流量根本没进入 PBR 处理流程(检查点1)或 ACL 3003 未匹配。


 推荐解决方案

方案一:修正 ACL 3000 的逻辑(最清晰)

acl advanced 3000
rule 5 deny ip destination 172.20.14.0 0.0.0.255
 rule 10 permit ip
这样:
  • 去往 172.20.14.0/24 的流量 → 跳过 node 10 → 匹配 node 20 → 正常转发(默认路由)。

  • 其他流量 → 匹配 node 10 → 强制下一跳 172.20.9.5

方案二:合并为一个 PBR 节点(更简洁)

如果你只想让特定目的网段走正常路由,其他走下一跳,可以用一个节点配合高级 ACL:

acl advanced 3000
rule 5 permit ip destination 172.20.14.0 0.0.0.255
 rule 10 permit ip policy-based-route fw permit node 10
 if-match acl 3000
 apply next-hop 172.20.9.5
但注意这样所有流量都会被强制下一跳,不满足你的原始需求。所以方案一更合适。

方案三:去掉空节点,利用 PBR 的默认行为

实际上,如果 node 10 不匹配,且没有后续节点,PBR 会自动让报文走普通路由表。你可以直接删除 node 20,只要确保 node 10 的 ACL 正确区分了需要强制下一跳和不需要的流量即可。


暂无评论

没匹配上吧,策略路由优先级比默认路由优先级高,所以不会走默认路由。

暂无评论

粉丝:7人 关注:2人

一、你现在的配置 2 个致命错误

错误 1:策略路由 默认只处理 “匹配上并 PERMIT” 的流量

你写的:
plaintext
acl 3000 rule 5 deny 172.20.14.0/24 rule 10 permit 172.20.19.0/24
deny 的流量,策略路由直接不处理,走系统路由表。
但你希望:
172.20.14.0 不走策略路由,走默认路由
这部分逻辑是对的。

错误 2(核心):空节点 node 20 根本不会生效

你写:
plaintext
policy-based-route fw permit node 20 if-match acl 3003 # 没有 apply
华三 Comware 策略路由规则:

空节点(只有 if-match、没有 apply)= 不执行策略 = 继续匹配下一个节点 ≠ 强制走系统路由

所以你 node 20 等于白写,不会让流量走默认路由。

二、你真正想要的效果(我帮你翻译)

  1. 172.20.19.0/24 → 走策略路由 172.20.9.5
  2. 其他所有流量 → 不走策略,走默认路由

三、正确配置(复制直接用)

1. 先把 ACL 写成 “只匹配需要策略路由的流量”

plaintext
acl advanced 3000 rule 10 permit ip source 172.20.19.0 0.0.0.255

2. 策略路由只留一个节点(匹配就走策略,不匹配就自动走默认)

plaintext
policy-based-route fw permit node 10 if-match acl 3000 apply next-hop 172.20.9.5

3. 接口调用策略(你肯定已经配了)

plaintext
interface Vlan-interface xx ip policy-based-route fw

四、为什么这样就生效了?

华三策略路由默认行为(非常重要):

流量 → 匹配节点 → 执行策略

流量 → 不匹配任何节点 → 直接走系统路由表(默认路由)

所以:
  • 172.20.19.0 → 匹配 node10 → 走下一跳
  • 172.20.14.0 → 不匹配 → 直接走默认路由
  • 其他所有流量 → 不匹配 → 直接走默认路由

五、你之前的空节点为什么不生效?

plaintext
node 20 if-match acl 3003(permit all) 无 apply
→ 华三理解:
匹配成功,但没有动作 → 跳过该节点 → 继续往下匹配(没有下节点了)→ 最终还是走系统路由
等于啥也没干。

六、最终结论(最简单一句话)

策略路由不需要空节点!不需要空节点!不需要空节点!

不匹配的流量,默认就走默认路由!


七、你现在只要做 2 步就好

  1. 删除 node 20
  2. 删除 acl 3000 里的 rule 5 deny

就正常了。

暂无评论

编辑答案

你正在编辑答案

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

分享扩散:

提出建议

    +

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

确定

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

对根叔社区有害的内容

×

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

不规范转载

×

举报说明