Skip to content

自定义策略路由

什么是自定义策略路由?

show router policy 和 get router info routing-table all,同样是策略路由,两者有何不一样呢?

在 FortiGate 防火墙中,show router policyget 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. 协同工作流程

  1. 流量到达防火墙

    • 首先匹配 策略路由(如果条件符合,直接按策略路由规则转发)。
    • 若无匹配的策略路由,再查询 路由表 决定下一跳。
  2. 示例

    • 若策略路由规定 源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 1edit 2

    • 禁止 wifioffice 网段互访,但防火墙策略中已有类似规则(edit 17edit 18)。
    • 建议:删除策略路由的这两条规则,直接用防火墙策略控制(避免双重过滤,降低复杂度)。
  • 策略 edit 11(已禁用)

    • 将办公网流量强制导向 port2(电信WAN),但状态为 disable
    • 建议:若无需此规则,直接删除。
  • 策略 edit 7edit 10(已禁用)

    • 禁止监控段(port12)和办公网访问监控段,但状态为 disable
    • 建议:确认是否需保留,否则删除。

2. 防火墙策略冗余

  • 策略 edit 21edit 16

    • 两者均控制办公网访问监控段,但 edit 21 指定了具体主机,edit 16 限制为 jiankong-server
    • 建议:合并为一条策略,使用地址组统一管理。
  • 策略 edit 15edit 23

    • 均允许监控段通过不同WAN口(port1/port2)访问外网,但未限制目的地址(dstaddr "all")。
    • 风险:监控设备可能滥用外网权限。
    • 建议:限制目的地址(如仅允许NTP、视频云平台IP)。

二、port12 能访问外网的原因

关键机制:防火墙策略 + NAT + 默认路由

  1. 防火墙策略允许

    • 策略 edit 15 明确允许 port12jiankong-server 访问 port1 的所有目标(action accept + dstaddr "all")。
  2. NAT 生效

    • 策略 edit 15 启用了 set nat enable,将监控段流量源IP转换为 port1 的接口IP,确保外网可回包。
  3. 默认路由导向 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)
next

3. 显式配置监控段出口

若需强制监控段走 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)
    bash
    set srcintf "办公网1"
    set dstintf "port2"  # 允许办公网访问port2(电信WAN)
    set action accept
    set nat enable       # 已启用NAT
    • 结论:无冲突。防火墙策略已允许流量从 办公网1port2,且启用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用于其他业务)。
  • 多运营商负载均衡:通过策略路由分流(如办公网走电信,监控走移动)。
注意事项
  1. 备份线路失效问题
    • 若电信WAN故障,流量不会自动切换到移动WAN(需配置SD-WAN或链路健康检查)。
  2. NAT 一致性
    • 确保 port2 的NAT地址池配置正确(防火墙策略 edit 3 已启用NAT,无需额外操作)。
  3. 监控段流量不受影响
    • 监控段(port12)的流量仍会按原有策略路由(如 edit 9)或默认路由转发。

4. 启用后的验证步骤

  1. 启用策略路由
    bash
    config router policy
        edit 11
            set status enable
        next
    end
  2. 测试办公网流量路径
    • 在办公网设备上执行 traceroute 或 ping 测试,确认出口IP为电信WAN的地址。
    • 使用命令监控策略路由匹配情况:
      bash
      diagnose router policy list
  3. 检查链路冗余
    • 手动断开电信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)。

如果需要进一步调整其他配置,请提供更多需求细节!

九万字
九万字
黄诗扶
九万字
九万字
黄诗扶