双 WAN 访问 - Cisco PBR 默认下一跳

网络工程 思科 路由 pbr
2022-03-04 21:42:08

在充当网络核心的 Cisco 3850 上,我有一个带有单个默认下一跳的全局路由表:

S*    0.0.0.0/0 [1/0] via 20.2.2.254

在 3850 上,我有 2 个接口 VLAN,例如:

interface Vlan1
 ip address 10.1.1.1 255.255.255.0

!
interface Vlan2
 ip address 20.2.2.2 255.255.255.0

VLAN2 使用默认路由访问广域网。

我希望 VLAN1 使用不同的默认路由 (10.1.1.254) 来访问另一个 WAN。

我尝试使用ip default next-hop设置 PBR来执行此操作。

根据 Cisco.com的说法,“set ip default next-hop 命令验证路由表中是否存在目标 IP 地址,并且……

  • 如果目的IP地址存在,该命令不对报文进行策略路由,而是根据路由表转发报文。
  • 如果目标 IP 地址不存在,则命令策略通过将数据包发送到指定的下一跳来路由数据包。

配置是这样的:

access-list 100 permit ip 10.1.0.0 0.0.0.255 any
!
route-map VLAN1-Traffic permit 10
 match ip address 100
 set ip default next-hop 10.1.1.254
!
interface vlan 1
 ip policy route-map VLAN1-Traffic

理论上,如果 VLAN1 试图到达 VLAN2,它应该可以通过使用路由表(连接的路由)来做到这一点。对于任何其他 IP 地址,应使用 PBR 将其路由到下一跳 10.1.1.254。

但是,当我在 3850 上应用该配置时,VLAN1 和 VLAN2 之间的连接丢失,好像只应用了 PBR 路由。

当我删除该路线图时,连接已恢复。

关于这个问题我有什么遗漏吗?

1个回答

理论上,如果 VLAN1 试图到达 VLAN2,它应该可以通过使用路由表(连接的路由)来做到这一点。对于任何其他 IP 地址,应使用 PBR 将其路由到下一跳 10.1.1.254。

否。在这种情况下,匹配“访问列表 100”的所有流量都会被策略路由。

因此,问题出在您的 PBR 上access-list 100您需要拒绝 VLAN 1 和 VLAN 2 之间的流量,以便从 VLAN 1 到 VLAN 2 的流量不会被策略路由,而是遵循正常的路由表:

access-list 100 deny ip 10.1.1.0 0.0.0.255 20.2.2.0 0.0.0.255
access-list 100 permit ip 10.1.1.0 0.0.0.255 any

=====

我还注意到您的接口 VLAN 1 和 2 分别使用 IP 地址 10.1.1.1(子网掩码 /24)和 20.2.2.2/24(子网掩码 /24),因此在“访问列表 100”中,你应该有10.1.1.0 0.0.0.255and 20.2.2.0 0.0.0.255, NOT 10.1.0.0 0.0.0.255