基于策略的路由的 Cisco 配置示例

网络工程 思科 cisco 命令 pbr
2021-07-17 19:22:04

我发现自己处于不久前所处的境地,但我不记得我是如何解决它的 :)

情景

我有一个带有 LAN 接口 (fa0/0) 和 WAN 接口 (fa0/1) 以及第二个 WAN 接口 (fa0/2) 的 Cisco IOS 路由器。

  • 假设有两个 LAN 子接口 fa0/0.10 和 fa0/0.20。
  • 有一条通过 fa0/1 的默认路由。但是,有一个到特定子网的静态路由,比如说 1.2.3.4/24 通过 fa0/2(fa0/2 更接近这个子网,但是更昂贵的 $$$ WAN 链接)

我所有的 fa0/0.10 用户都在访问 1.2.3.4/24,因此静态路由将他们从 fa0/2 (WAN2) 发送出去。对于所有其他目的地,fa0/0.10 用户通过我在 WAN1 接口 fa0/1 上收到的 DHCP 默认路由。

问题定义;

fa0/0.20 子网中的用户只能访问 Internet。我的 fa0/0.20 子网中没有用户真的需要访问远程 1.2.3.4/24 子网。但是他们很少这样做,在这种情况下,静态路由通过 fa0/2 发送它们。不过我不想要这个,我希望他们通过 fa0/1(默认 WAN 接口)访问 1.2.3.4/24。我相信我可以通过 PBR 实现这一点,但我似乎无法让它发挥作用?

这是我目前正在尝试的配置;

interface FastEthernet0/0.10
 description LAN1
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly

interface FastEthernet0/0.20
 description LAN2
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 ip policy route-map FORCE-LAN2-VIA-WAN1

interface FastEthernet0/1
 description WAN1
 ip address dhcp
 ip nat outside
 ip virtual-reassembly

interface FastEthernet0/2
 description WAN2 - Used for 1.2.3.4/24
 ip address 5.5.5.5 255.255.255.0

! Static route to route to a remote subnet via 2nd WAN link
ip route 1.2.3.4 0.0.0.255 5.5.5.6
! A default route is received on fa0/1 (WAN1) via DHCP from ISP
! for all other traffic
!
! NAT fa0/0.10 users when accessing the Internet via WAN1
ip nat inside source route-map ROUTE-WAN1 interface FastEthernet0/1 overload
!
! NAT fa0/0.20 users out via WAN1
ip nat inside source route-map FORCE-LAN2-VIA-WAN1 interface FastEthernet0/1 overload

route-map ROUTE-WAN1 permit 10
 match interface FastEthernet0/1

route-map FORCE-LAN2-VIA-WAN1 permit 10
 match interface FastEthernet0/0.20
 set default interface FastEthernet0/1

我正在尝试将基于策略的路由直接应用于 fa0/0.20 子接口,以强制所有流量通过 WAN1、fa0/1。我的理解是,因为有一条比 DHCP 在 FIB 中的 fa0/1 上接收到的默认路由更具体的路由,它会覆盖 PBR 并且从 fa0/0.20 到 1.2.3.4/24 的流量仍在使用 WAN2,fa0/ 2. 或者至少,我相信在使用“设置默认界面...”时就是这种情况。例如,如果我要使用“set ip next-hop”,这将强制 PBR 优先,但 WAN1、fa0/1 通过 DHCP 接收 IP,因此正在改变:)

作为旁注;实际上有很多通过 WAN2 的静态路由,所以我不想通过 WAN2 为特定子网扭转情况和策略路由 fa0/0.10。那里的配置比我说的要复杂,但无论是长还是短,改变它都是不可行的。此外,如果除了 PBR 之外还有更好的方法来解决这个问题,我也很听话。我正在与这种方法作斗争,因为它是我所知道的最佳解决方案。

更新添加了一个壮观绘制的拓扑图

拓扑

1个回答

我建议仅将路线图用于一个目的(一个用于 nat,另一个用于 pbr);混合使用会造成混乱。对于 NAT,match interface将应用路由后 - 方便进行条件 nat 条目。

PBR 的路由映射应该使用 ACL 来匹配来自 LAN2 的流量,然后将下一跳设置到所需的接口,set interface而不是set default- 否则set ip next-hop dynamic dhcp您将不知道实际的 gw 地址。这会绕过/覆盖任何路由逻辑,否则这些路由逻辑会将流量发送到昂贵的 WAN。