策略路由(PBR)是一种基于用户定义策略而非目的地址进行转发决策的机制。与传统路由(基于最长前缀匹配)不同,PBR 可根据源 IP、协议类型、报文长度、DSCP 值等条件,将流量引导至指定下一跳、出接口或服务链(如防火墙、WAN 优化设备)。在华为 VRP5 平台中,PBR 通过 Route-Policy + Traffic Policy 实现。
1. PBR 应用场景
注意:PBR 仅影响转发平面,不改变路由表(
display ip routing-table不可见)。
2. PBR 工作原理(VRP5)
匹配条件:通过 ACL 或 MQC(Multi-Queue Complex)分类器定义流量特征
执行动作:在 Route-Policy 中指定下一跳、出接口或缺省下一跳
应用位置:在入方向接口(inbound)调用策略
处理顺序:
若匹配 PBR 规则 → 按策略转发
若未匹配 → 回退到传统路由表转发
关键限制:
VRP5 的 PBR 不支持基于出接口应用(仅入接口)
不支持修改 DSCP、VLAN 等字段(仅转发决策)
3. 配置要素与命令速查
3.1 核心组件关系
ACL / MQC Classifier → Route-Policy (if-match + apply) → Interface (traffic-policy inbound)3.2 关键命令说明
注意:
apply ip-address next-hop是最常用动作出接口方式在以太网中不推荐(需代理 ARP,易失败)
4. 典型配置示例
4.1 场景:多 ISP 出口选路
需求
源地址 192.168.10.0/24 → 下一跳 203.0.113.1(电信)
源地址 192.168.20.0/24 → 下一跳 198.51.100.1(联通)
其他流量走默认路由
配置
# 步骤1:创建 ACL 匹配源网段
[Router] acl number 3000
[Router-acl-adv-3000] rule 5 permit ip source 192.168.10.0 0.0.0.255
[Router-acl-adv-3000] quit
[Router] acl number 3001
[Router-acl-adv-3001] rule 5 permit ip source 192.168.20.0 0.0.0.255
[Router-acl-adv-3001] quit
# 步骤2:创建 Route-Policy
[Router] route-policy MULTILINK permit node 10
[Router-route-policy] if-match acl 3000
[Router-route-policy] apply ip-address next-hop 203.0.113.1
[Router-route-policy] quit
[Router] route-policy MULTILINK permit node 20
[Router-route-policy] if-match acl 3001
[Router-route-policy] apply ip-address next-hop 198.51.100.1
[Router-route-policy] quit
# 步骤3:在内网接口应用 PBR
[Router] interface GigabitEthernet0/0/0 # 连接内网的接口
[Router-GigabitEthernet0/0/0] ip policy-based-route MULTILINK
[Router-GigabitEthernet0/0/0] quit验证:
从 192.168.10.10 执行
tracert 8.8.8.8,第一跳应为 203.0.113.1路由表中仍存在默认路由,但 PBR 优先级更高
4.2 场景:关键业务引流至防火墙
需求
所有访问服务器 10.1.1.100 的流量 → 先经过防火墙 192.168.100.2
配置
[Router] acl number 3002
[Router-acl-adv-3002] rule permit tcp destination 10.1.1.100 0 destination-port eq www
[Router-acl-adv-3002] rule permit tcp destination 10.1.1.100 0 destination-port eq 443
[Router-acl-adv-3002] quit
[Router] route-policy TO_FW permit node 10
[Router-route-policy] if-match acl 3002
[Router-route-policy] apply ip-address next-hop 192.168.100.2
[Router-route-policy] quit
[Router] interface GigabitEthernet0/0/1 # 用户接入接口
[Router-GigabitEthernet0/0/1] ip policy-based-route TO_FW
[Router-GigabitEthernet0/0/1] quit5. 高级特性:PBR 与 NQA 联动(链路健康检测)
VRP5 支持 PBR 与 NQA(Network Quality Analysis)联动,实现智能链路切换。
5.1 配置示例(主备链路)
# 步骤1:配置 NQA 测试实例
[Router] nqa test-instance admin isp1
[Router-nqa-test-admin-isp1] test-type icmp
[Router-nqa-test-admin-isp1] destination-address ipv4 203.0.113.1
[Router-nqa-test-admin-isp1] frequency 10
[Router-nqa-test-admin-isp1] start now
[Router-nqa-test-admin-isp1] quit
# 步骤2:在 Route-Policy 中引用 NQA
[Router] route-policy SMART_PBR permit node 10
[Router-route-policy] if-match acl 3000
[Router-route-policy] apply ip-address next-hop 203.0.113.1 track nqa admin isp1
[Router-route-policy] apply ip-address next-hop 198.51.100.1 # 备份下一跳
[Router-route-policy] quit工作逻辑:
当 NQA 检测到 203.0.113.1 不可达时,自动切换至 198.51.100.1
链路恢复后自动切回主路径
6. 注意事项
下一跳必须可达
PBR 不检查下一跳是否在路由表中,但若下一跳不可达,报文将被丢弃
建议确保下一跳有直连路由或静态路由
PBR 优先级高于传统路由
即使路由表中有更优路径,匹配 PBR 的流量仍按策略转发
不支持本地生成报文
路由器自身产生的流量(如 ping、SNMP)不受 PBR 影响
性能影响
PBR 需逐包匹配,可能增加 CPU 负载
建议使用硬件支持的设备(如 S5700-EI 及以上)
调试命令
[Router] display policy-based-route [Router] display ip policy-based-route statistics # 查看命中计数
7. 故障排查要点
最佳实践:
使用 高级 ACL(3000+) 精确匹配流量
为每个策略节点添加 描述性注释(通过
description)在生产环境部署前,先在测试节点验证
结合 NQA 实现高可用链路切换
通过合理配置 PBR,可实现灵活的流量工程,满足复杂网络环境下的业务需求。