自定义策略路由
什么是自定义策略路由?
show router policy 和 get router info routing-table all,同样是策略路由,两者有何不一样呢?
在 FortiGate 防火墙中,show router policy 和 get router info routing-table all 虽然都与路由相关,但功能和应用场景完全不同。以下是两者的核心区别:
1. show router policy
- 作用:查看 手动配置的策略路由(Policy Route),即管理员自定义的流量转发规则。
- 功能特点:
- 基于源/目的IP、接口、协议等条件 强制修改流量的下一跳或出口。
- 优先级高于普通路由表(静态路由/动态路由)。
- 常用于实现流量分流(如VPN分流、多运营商负载均衡)。
- 输出内容:bash
config router policy edit 1 set input-device "port1" set src "192.168.1.0/24" set dst "10.0.0.0/8" set gateway 172.16.1.1 # 强制指定下一跳 set output-device "port2" next end - 典型场景:
- 将特定源IP的流量强制导向VPN隧道。
- 多WAN环境下,指定某些流量走特定运营商线路。
2. get router info routing-table all
- 作用:查看 系统的完整路由表(包括静态路由、动态路由、直连路由等)。
- 功能特点:
- 显示所有已知路由条目及其来源(如OSPF、BGP、静态配置)。
- 基于 最长前缀匹配 原则自动选择最优路径。
- 不包含策略路由的强制规则(策略路由生效后会覆盖路由表的结果)。
- 输出内容:bash
Codes: K - kernel, C - connected, S - static, R - RIP, O - OSPF, B - BGP * - candidate default S* 0.0.0.0/0 [10/0] via 203.0.113.1, port1 # 默认静态路由 C 192.168.1.0/24 is directly connected, port2 O 10.1.0.0/16 [110/10] via 192.168.1.2, port2 # OSPF动态路由 - 典型场景:
- 诊断流量转发路径是否按预期选择。
- 检查路由协议(如OSPF、BGP)学习到的路由是否正常。
3. 核心区别总结
| 维度 | show router policy (策略路由) | get router info routing-table all (路由表) |
|---|---|---|
| 配置方式 | 手动配置(config router policy) | 自动生成(静态/动态路由协议+直连路由) |
| 优先级 | 高于普通路由表 | 低于策略路由 |
| 决策依据 | 基于源/目的IP、接口、协议等复杂条件 | 基于目标IP的最长前缀匹配 |
| 典型用途 | 流量工程(如分流、负载均衡) | 常规流量转发 |
| 是否影响NAT | 可能影响(可指定出口接口) | 不影响 |
4. 协同工作流程
流量到达防火墙:
- 首先匹配
策略路由(如果条件符合,直接按策略路由规则转发)。 - 若无匹配的策略路由,再查询
路由表决定下一跳。
- 首先匹配
示例:
- 若策略路由规定
源IP 192.168.1.100 的流量走 port3,即使路由表中有更优路径,也会强制从port3转发。 - 若策略路由无匹配,则按路由表的
0.0.0.0/0默认路由从port1转发。
- 若策略路由规定
5. 诊断命令推荐
- 检查策略路由是否生效:bash
diagnose router policy list # 查看策略路由的匹配计数 - 验证实际流量路径:bash
diagnose sniffer packet any "host 8.8.8.8" 4 # 抓包分析流量出口
如果需要分析您的具体配置,可以提供 show router policy 的输出,我会协助解读策略路由的逻辑!
优化建议一:
一、配置分析:冗余与潜在问题
1. 策略路由(Policy Route)冗余
策略
edit 1和edit 2- 禁止
wifi与office网段互访,但防火墙策略中已有类似规则(edit 17和edit 18)。 - 建议:删除策略路由的这两条规则,直接用防火墙策略控制(避免双重过滤,降低复杂度)。
- 禁止
策略
edit 11(已禁用)- 将办公网流量强制导向
port2(电信WAN),但状态为disable。 - 建议:若无需此规则,直接删除。
- 将办公网流量强制导向
策略
edit 7和edit 10(已禁用)- 禁止监控段(
port12)和办公网访问监控段,但状态为disable。 - 建议:确认是否需保留,否则删除。
- 禁止监控段(
2. 防火墙策略冗余
策略
edit 21和edit 16- 两者均控制办公网访问监控段,但
edit 21指定了具体主机,edit 16限制为jiankong-server。 - 建议:合并为一条策略,使用地址组统一管理。
- 两者均控制办公网访问监控段,但
策略
edit 15和edit 23- 均允许监控段通过不同WAN口(
port1/port2)访问外网,但未限制目的地址(dstaddr "all")。 - 风险:监控设备可能滥用外网权限。
- 建议:限制目的地址(如仅允许NTP、视频云平台IP)。
- 均允许监控段通过不同WAN口(
二、port12 能访问外网的原因
关键机制:防火墙策略 + NAT + 默认路由
防火墙策略允许
- 策略
edit 15明确允许port12的jiankong-server访问port1的所有目标(action accept+dstaddr "all")。
- 策略
NAT 生效
- 策略
edit 15启用了set nat enable,将监控段流量源IP转换为port1的接口IP,确保外网可回包。
- 策略
默认路由导向 WAN
- 路由表中存在默认路由:bash
0.0.0.0/0 [10/0] via 183.23.155.6, port1 # 流量默认从 port1 出站 - 监控段流量未被策略路由拦截(如
edit 7已禁用),因此匹配默认路由。
- 路由表中存在默认路由:
策略路由的作用?
- 您的策略路由中 没有阻止
port12访问外网的生效规则(edit 7已禁用),因此流量由防火墙策略和默认路由决定。 - 若需强制监控段走特定WAN口,可启用策略路由(如
edit 9的模板)。
三、优化建议
1. 清理冗余配置
- 删除所有
status disable的策略路由(无实际作用)。 - 合并功能重复的防火墙策略(如办公网访问监控段的规则)。
2. 收紧监控段外网权限
修改策略 edit 15:
bash
edit 15
set dstaddr "NTP服务器IP" "视频平台IP" # 仅允许必要地址
set service "DNS" "NTP" "HTTP" "HTTPS" # 仅允许必要协议
set logtraffic enable # 减少日志量(避免all)
next3. 显式配置监控段出口
若需强制监控段走 port1,可启用策略路由:
bash
edit 100
set input-device "port12"
set srcaddr "jiankong-server"
set dstaddr "all"
set output-device "port1"
next四、总结
port12通外网的主因:防火墙策略允许 + NAT + 默认路由。- 策略路由的影响:当前未生效(因相关规则禁用),若需流量工程(如分流)需显式配置。
- 核心风险:监控段外网权限过大,需按最小化原则收紧。
建议先清理冗余配置,再针对性优化监控段规则。如果需要更具体的调整方案,可提供网络拓扑细节!
优化建议二:
关于是否启用策略路由 edit 11 的分析与建议
1. 当前策略路由 edit 11 的配置
bash
edit 11
set input-device "办公网1"
set srcaddr "all"
set dstaddr "all"
set gateway 222.178.157.65 # 电信WAN口的网关
set output-device "port2" # 电信WAN接口
set status disable # 当前已禁用
next- 作用:强制将所有来自
办公网1的流量通过port2(电信WAN)转发。
2. 启用后可能的影响
(1)与现有防火墙策略的冲突检查
- 防火墙策略
edit 3(office-net2)bashset srcintf "办公网1" set dstintf "port2" # 允许办公网访问port2(电信WAN) set action accept set nat enable # 已启用NAT- 结论:无冲突。防火墙策略已允许流量从
办公网1到port2,且启用NAT。
- 结论:无冲突。防火墙策略已允许流量从
(2)与默认路由的优先级
- 默认路由:bash
0.0.0.0/0 [10/0] via 183.23.155.6, port1 # 移动WAN(默认出口) - 策略路由优先级高于默认路由。
- 启用后,
办公网1的流量会忽略默认路由,强制走port2(电信WAN)。
- 启用后,
(3)与其他策略路由的冲突
- 当前无其他策略路由覆盖
办公网1的流量,因此不会冲突。
3. 是否建议启用?
适用场景
- 需要办公网流量固定走电信WAN(如电信线路质量更优,或移动WAN用于其他业务)。
- 多运营商负载均衡:通过策略路由分流(如办公网走电信,监控走移动)。
注意事项
- 备份线路失效问题:
- 若电信WAN故障,流量不会自动切换到移动WAN(需配置SD-WAN或链路健康检查)。
- NAT 一致性:
- 确保
port2的NAT地址池配置正确(防火墙策略edit 3已启用NAT,无需额外操作)。
- 确保
- 监控段流量不受影响:
- 监控段(
port12)的流量仍会按原有策略路由(如edit 9)或默认路由转发。
- 监控段(
4. 启用后的验证步骤
- 启用策略路由:bash
config router policy edit 11 set status enable next end - 测试办公网流量路径:
- 在办公网设备上执行 traceroute 或 ping 测试,确认出口IP为电信WAN的地址。
- 使用命令监控策略路由匹配情况:bash
diagnose router policy list
- 检查链路冗余:
- 手动断开电信WAN,验证办公网流量是否自动切换(若无备份配置,会丢包)。
5. 更优方案建议
如果目标是 多运营商负载均衡+故障切换,推荐改用 SD-WAN 配置:
bash
config system sdwan
set status enable
config members
edit 1
set interface "port1" # 移动WAN
set gateway 183.23.155.6
next
edit 2
set interface "port2" # 电信WAN
set gateway 222.178.157.65
next
end
config service
edit 1
set name "Office-to-WAN"
set src "office" # 办公网地址组
set dst "all"
set priority-members 2 # 优先走电信
set failover enable # 故障时切换
next
end
end优势:
- 自动故障切换,避免单点故障。
- 更灵活的流量调度(基于应用、服务质量等)。
最终结论
- 可以安全启用
edit 11,但需注意电信WAN单点故障风险。 - 推荐替代方案:使用 SD-WAN 实现更智能的多路径管理。
- 启用后监控重点:
- 电信WAN的稳定性。
- 策略路由的匹配计数(
diagnose router policy list)。
如果需要进一步调整其他配置,请提供更多需求细节!

