这是本文档旧的修订版!
在默认情况下,操作系统使用路由表决定某个IP数据包的下一跳。而使用路由表只能基于数据包的目的地址来决定路由。 一些防火墙实现支持将匹配到的数据包置于指定的路由,而不遵循系统的路由表。由于防火墙软件支持十分详尽的规则来匹配数据包,这样相比使用路由表更加灵活。这种路由方式称为基于策略的路由(Policy Based Routing)。
考虑以下场景
某个路由器有一个内网( LAN)接口 rl0,IP 地址为 192.168.120.1/24,以及两个用作外网(WAN)用途的网络接口 bge0 和 bge1,其IP地址分别为 10.1.101.12/24 和 172.18.10.220/20。访问私有和公开网络资源都通过接口 bge0 使用路由器 10.1.101.1 作为默认路由。而因为某些不明所以的原因,需要将来自 LAN 访问 172.24.0.0/16 的 TCP 22 端口的数据包的下一跳路由改为 172.18.8.1。
使用以下规则来实现:
pass in quick route-to bge1:172.18.8.1 on rl0 proto tcp from 192.168.120.1/24 to 172.24.0.0/16 port = 22