我们的网络在思科硬件上为IPv4运行OSPF。下面的图像显示了相关的拓扑:

我们有一个思科ASA防火墙,这也是VPN网关进入VPN连接。如前所述,我们正在运行OSPF作为内部路由协议。ASA为VPN客户端执行反向路由注入(RRI),这意味着它为每个VPN连接创建一个静态的VPN路由。然后将这些/32路由重新分配到OSPF域中。
右边的路由器是我们运行BGP的周边路由器。中间有一个多层交换机(Cat6500 w/ Sup720-3B和IPServices)也在运行OSPF。问题是,这些/32路由器在MLS和路由器的OSPF数据库中都是可见的,但是没有插入到MLS的路由表中。然而,在路由器上,它们在路由表中。
有两个这样的子网(两个不同的VPN配置文件),分别是xx.x.37.0/24和xx.x.202.0/24。由于这些/32路由器被重新分配到OSPF中,它们在路由域中的其余部分显示为LSA类型5,但是它们没有被注入到MLS的路由表中。
我们可以在数据库中看到这些LSA:
show ip ospf database external | i xx.xx.202.
Link State ID: xx.xx.202.5 (External Network Number )
Link State ID: xx.xx.202.6 (External Network Number )
Link State ID: xx.xx.202.8 (External Network Number )如果我们查看特定的LSA,我们还可以看到路由位被设置,因此LSA有资格使用OSPF路由:
show ip ospf database external xx.xx.202.5
OSPF Router with ID (xx.xx.207.4) (Process ID 2)
Type-5 AS External Link States
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此外,调试OSPF进程的SPF显示,接收和处理了部分更新,没有发现错误(调试ip ospf ):
Feb 2 16:17:40.537: OSPF: Schedule partial SPF - type 5 id xx.xx.202.5 adv rtr xx.xx.192.20
Feb 2 16:17:40.537: OSPF: Service partial SPF 0/1/0
Feb 2 16:17:40.537: OSPF process partial spfQ entry
Feb 2 16:17:40.537: OSPF process partial spfQ entry
Feb 2 16:17:40.537: OSPF process partial spfQ LSA id xx.xx.202.5: mask 255.255.255.255, type 5 adv_rtr xx.xx.192.20, age 1, seq 0x80000001 (Area dummy area)
Feb 2 16:17:40.537: OSPF: Start partial processing Type 5 External LSA xx.xx.202.5, mask 255.255.255.255, adv xx.xx.192.20, age 1, seq 0x80000001, metric 20, metric-type 2
Feb 2 16:17:40.537: Add path: next-hop xx.xx.192.21, interface Vlan511
Feb 2 16:17:40.537: OSPF: insert route list LS ID xx.xx.202.5, type 5, adv rtr xx.xx.192.20
Feb 2 16:17:40.537: OSPF process partial spfQ entry但是,路由没有插入到路由表中。作为一项工作,我们使用/24子网添加了一个静态路由。然而,这并不是/32子网没有被放置到表中的原因。当AD较低时(1静态路由对110 OSPF外部路由),首先评估最长的前缀匹配规则,因此应该添加/32子网。
有趣的是,在MLS后面的路由器上,/32路由按预期的方式添加到路由表中。
MLS是思科6500底盘w/ Sup720-3B (MSFC3) SUP,运行“s 72033-ipservicesk9-mz.122-33.SXI14.bin”软件。路由器是一个思科ASR1001-F路由器,运行"asr1000rp1-advipservicesk9.03.04.06.S.151-3.S6.bin“软件.
没有路由过滤器到位,OSPF配置的设备是相当基本的。OSPF邻接是OK,所有其他路线或OK。
MLS的OSPF配置:
router ospf 2
router-id xx.xx.207.4
log-adjacency-changes
auto-cost reference-bandwidth 100000
area 0 authentication message-digest
passive-interface default
no passive-interface ...
network 0.0.0.0 255.255.255.255 area 0OSPF配置路由器:
router ospf 2
router-id xx.xx.207.1
auto-cost reference-bandwidth 100000
area 0 authentication message-digest
traffic-share min across-interfaces
passive-interface default
no passive-interface ...
default-information originate always metric-type 1经过一些进一步的故障排除后,我可能已经发现了这个问题,但是,我不知道如何解决它。查看防火墙,生成的静态路由如下所示:
S xx.xx.202.13 255.255.255.255 [1/0] via xx.xx.192.21, outsideRRI的默认行为是将生成的静态路由的下一跳设置到应用密码映射的ASA接口的默认网关(在我们的示例中是在外部)。在我们的例子中,它是xx.x.192.21,它是MLS的接口!
根据思科文档,如果满足以下条件,则设置非零转发地址:
在ASBR的下一跳接口上启用OSPF,而ASBR的下一跳接口在OSPF下是非被动的,ASBR的下一跳接口不是点对点,ASBR的下一跳接口不是点对点,ASBR的下一跳接口地址在路由器ospf命令中指定的网络范围内。
所有这些条件都满足了,因为我们需要在OSPF中启用外部接口(这是下一跳),因为它是指向MLS的接口。
如前所述,MLS的LSA包含xx.x.192.21的转发地址,它是MPLS和ASA之间子网中MLS的地址。根据上面链接的文档,转发地址需要被称为内部OSPF路由。这是在路由器上给出的,路由条目被添加到路由表中。然而,在司法协助中并没有这样做。
为什么路由没有添加到路由表中?我很感激你的任何想法。
发布于 2015-03-10 12:38:39
正如DanielDib所指出的,问题是在5类型的LSA中设置了错误的前向地址。
根据思科文档,如果RRI生成的静态路由的下一跳接口参与OSPF路由过程,则基本设置前向地址。进一步的详细信息可以在链接的文档中找到。
RRI静态路由的下一跳设置为应用密码映射的ASA接口的默认网关,在本例中是指向MLS的外部接口。这个下一跳IP是MLS接口的IP .
在MLS中,LSA的前向地址(xx.x.192.21)是它自己接口的IP地址。由于foward地址需要称为内部OSPF路由,因此不考虑将路由添加到路由表中。因此,解决方案可以是具有正确的前向地址,或者在需要时压制转发地址。这个问题可能包含有关此解决方案的更多详细信息。
https://networkengineering.stackexchange.com/questions/16461
复制相似问题