策略路由(PBR)配置的核心价值在于:打破传统路由表只能基于目的地址转发的局限,让网络流量调度更精细、更智能,无论是企业多线接入、业务隔离,还是成本优化,PBR 都能灵活实现,但配置不当极易引发路由黑洞、环路或性能下降,本文将从原理、配置到调优,给出可落地的解决方案。
PBR 到底是什么?
PBR(Policy-Based Routing,策略路由)不是替代路由表,而是在路由查找之前先匹配用户自定义策略,它根据源 IP、目标 IP、协议类型、端口、报文长度甚至应用特征,强制指定下一跳或出接口,典型场景包括:
- 多运营商线路选路:让不同源 IP 走对应运营商的出口,降低跨网延迟。
- 业务优先级调度:核心业务走高质量带宽,普通下载走廉价线路。
- 安全与合规:把敏感流量引向审计设备,或阻断特定来源。
PBR 配置前的关键决策
正确配置前,你必须明确三个问题,否则配置必出问题:
- 策略执行点:在入口路由器、出口防火墙还是核心交换机?通常建议在流量进入网络的第一个三层设备上配置。
- 目标指向:下一跳必须可达,且不能出现递归指向自己的情况,否则会产生路由环路。
- 未匹配流量的兜底:必须预留默认路由或明确定义“未匹配则走传统路由”,保证业务不中断。

典型 PBR 配置实例
华为设备配置
以华为 AR 路由器为例,实现“源 192.168.10.0/24 的流量走 10.0.0.2,其余按普通路由”:
acl number 2001 rule 5 permit source 192.168.10.0 0.0.0.255 # traffic classifier c1 if-match acl 2001 # traffic behavior b1 redirect ip-nexthop 10.0.0.2 # traffic policy p1 classifier c1 behavior b1 # interface GigabitEthernet0/0/0 traffic-policy p1 inbound
重点:华为设备里 PBR 通过 QoS 策略实现,方向通常是 inbound,指下次跳时注意 ensure 下一跳不在本接口内,避免环路。
Linux 系统配置
Linux 下使用 ip rule + ip route 组成独立路由表:
echo "201 PBR_Table" >> /etc/iproute2/rt_tables ip rule add from 192.168.10.0/24 lookup PBR_Table prio 100 ip route add default via 10.0.0.2 dev eth1 table PBR_Table
重点:必须启用 rp_filter 反向路径过滤,否则可能收到非对称路由导致丢包,建议设置为 0 或 2 模式,并开启 accept_local。
PBR 配置的隐藏雷区
根据我多年网络运维经验,以下三个问题最容易忽略:
- 路由泄漏与洪峰:PBR 将大量流量引到单一出口,未做带宽限制会瞬间拥塞。必须配合 QoS 队列或带宽保证。
- 下一跳检测机制缺失:如果下一跳设备故障,PBR 不会自动切换,应配置

NQA(网络质量分析)或 BFD(双向转发检测)
联动路由淘汰。 - 与防火墙会话状态冲突:PBR 改变路径后,防火墙的来回路径不一致会导致会话失效。关键业务必须启用会话保持或使用镜像模式。
酷番云场景下的 PBR 实战经验
以酷番云 高防云服务器 为例,用户常需要同时使用公网线路和专线备份,我们建议采用双路由表策略:
- 将主业务源 IP 段绑定首选线路,通过 PBR 指向内网网关;
- 高防流量走云盾清洗 IP,使用独立路由表;
- 对秒级故障场景配置 BFD,检测到专线失效时自动回退到默认路由。
实际案例:某电商客户将 API 调用流量与流量下载流量分离,API 走低延迟线路,下载走大带宽线路,通过酷番云控制台下发 PBR 规则后,API 平均延迟降低 42%,同时带宽成本减少约 30%,关键经验:先在测试环境用 tcpdump 抓包验证转发行为,再全量应用。
PBR 调优与可维护性
配置完成只是开始,运维中建议:
- 使用 命名路由表 而不是裸数字,方便排查。
- 定期审查策略命中次数:
display pbr statistics或ip rule show。 - 为重要策略增加 日志记录,但注意日志量太大可能冲击 CPU,建议抽样。
- 所有变更走版本管理,保存配置前先备份。

相关问答
问:PBR 和负载均衡有什么区别?
答:负载均衡通常指将流量按比例分配到多台服务器或链路,关注的是资源利用均衡。PBR 则是基于策略的选择路径,它可以是负载均衡的前置条件,但不做动态权重调整,比如你想让 30% 的流量走 A 线路、70% 走 B 线路,这不是 PBR 的长项,需要用负载均衡的链路协商功能,实际部署中,两者常配合使用:PBR 决定“哪些流量走哪个出口”,负载均衡再决定“这个出口下如何多链路分担”。
问:配置 PBR 后网速反而变慢,如何排查?
答:按顺序检查三步:
- 确认路由是否产生黑洞:用
tracert或mtr追踪路径,看是否出现重复跳或超时。 - 检查是否触发反向路径过滤:在 Linux 下查看
/proc/sys/net/ipv4/conf/all/rp_filter,如果为 1,可能丢弃非对称流量,临时改为 0 测速。 - 查看接口是否有错误包:
ip -s link show,若 Rx/Tx 出现大量 dropped,说明带宽或队列溢出,优先调整队列规则,而不是直接删除 PBR。
最后提醒一句:PBR 不是万能药,能用静态路由解决的就别用 PBR,它增加复杂性和故障点,只有在业务明确需要精细化选路时才值得引入,如果你在配置中遇到疑难,欢迎留言讨论,我们一起寻找最佳路径。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/698415.html

