存在以下拓扑:
Cisco ASA 是我们的互联网防火墙,也是 VPN 网关,可终止 VPN 连接。ASA 执行 RRI,将这些 VPN 路由添加到 OSPF 域中。ASA 和 MLS 都在 OSPF 进程 2 区域 0 中,并交换路由。OSPF 设置正确。
RRI 的默认行为是将生成的静态路由的下一跳设置为应用加密映射的 ASA 接口的默认网关(在我们的示例中为外部)。在我们的例子中,它是 xx.xx.192.21,它是 MLS 的接口。因此,ASA 上的路由如下所示:
S xx.xx.202.13 255.255.255.255 [1/0] via xx.xx.192.21, outside
这些路由通过 中的redistribute static
命令重新分配到 OSPF中router ospf 2
。
然而,在 MLS 中,路由在数据库中,但不在路由表中。类型 5 LSA 如下所示:
Routing Bit Set on this LSA
LS age: 1887
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: xx.xx.202.5 (External Network Number )
Advertising Router: xx.xx.192.20
LS Seq Number: 80000001
Checksum: 0x8147
Length: 36
Network Mask: /32
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 20
Forward Address: xx.xx.192.21
External Route Tag: 0
因此,ASA 将转发地址设置为外部接口的下一跳。根据Cisco 文档,如果满足以下条件,则会设置非零转发地址:
在 ASBR 的下一跳接口上启用 OSPF 并且 ASBR 的下一跳接口在 OSPF 下是非被动的并且 ASBR 的下一跳接口不是点对点的并且 ASBR 的下一跳接口不是点对多点的并且 ASBR 的下一跳接口地址属于router ospf 命令指定的网络范围。
由于我们需要 ASA 和 MLS 参与 OSPF 路由,如果我理解正确的话,我们不能禁止 ASA 设置转发地址。
然而,MLS 不会将 LSA 安装到路由表中,因为转发地址不是 OSPF O 或 O IA 路由,它是它自己的接口。
ASA 的配置
router ospf 2
! External Routing Process
router-id xx.xx.192.20
network xx.xx.192.0 255.255.255.224 area 0
area 0 authentication message-digest
log-adj-changes
redistribute static subnets route-map STATIC->OSPF2
route-map STATIC->OSPF2 permit 10
match ip address prefix-list STATIC->OSPF2
! Both prefixes are used in the VPN pools
prefix-list STATIC->OSPF2 seq 5 permit xx.xx.202.0/24 ge 32
prefix-list STATIC->OSPF2 seq 15 permit xx.xx.37.0/24 ge 32
crypto dynamic-map VPN-dynamic 10 set reverse-route
crypto map VPN 111 ipsec-isakmp dynamic VPN-dynamic
crypto map VPN interface outside
那么现在的问题是:如何解决这种情况,让MLS将路由加入路由表?