概述:
- OSPF区域路由的计算主要是通过5类和4类LSA完成的。
- 其中5类LSA提供了目的网络地址,而4类LSA则提供了下一跳地址。
- 5类LSA可以在整个区域中泛洪,不遵循ABR的泛洪规则(水平分割),同时不需要进入Vlink,具体如何保证没有环路,则是通过1类、2类、3类和4类LSA完成。如果设备与ASBR不在同一区域,依靠4类LSA定位ASBR位置;如果有FA地址,在一些情况下通过三类LSA找到ASBR地址(在NSSA区域路由计算中说明);如果与设备与ASBR在同一个区域,则通过1类、2类LSA而非4类LSA辅助找到ASBR的具体位置。
区域外路由计算实验:
实验思路:
将RIP区域的路由重分发进入OSPF区域,并在R1所在的区域0中进行观察。
具体步骤:
在R1上查看5类LSA:
从5类LSA中我们可以得到的信息:LS id为外部的网络地址192.168.3.0和4.4.4.4,并且还带有相应的子网掩码,metric值始终为1,因为我们可以看出这是type2类型的路由条目(不在内部累加,外部metric值可以进行修改);如果是type1类LSA,metric值会在内部叠加。FA值我们之后进行相应的讨论,并且还有相应的tag字段。同时可以发现,5类LSA只知道发布者的RID,不知道如何到达此路由器。
补充:
Type 1外部路由:当外部路由的开销与自治系统内部的路由开销相当,并且和OSPF自身路由的开销具有可比性时,可以认为这类路由的可信程度较高,将其配置成Type1 External。
Type 2外部路由:当ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销时,可以认为这类路由的可信程度较低,将其配置成Type2 External。
这时候就需要四类LSA进行辅助了,在R1上查看4类LSA:
可以看到4类LSA其实很简单,LS id就是3.3.3.3,说明ASBR是3.3.3.3,adv rid是R2,含义就是如果想通过R3去外网,那么将信息发给R2即可,怎么到达R2,由于R2在区域内,通过1类,2类LSA就知道如何到达,这样就可以计算出相应的路由条目了。
这里我们需要注意,一个路由器只知道本区域中的其他设备的RID,并不知道其他区域中的RID,因为无论是3类还是5类都没有带有RID信息,只带有目的的网段信息。所以需要四类LSA进行相应的辅助。
5类LSA中FA地址:
五类LSA的FA地址在大部分情况下都是0.0.0.0,当满足下面三个条件时候则会出现非零的情况:
- 重分发条目下一跳的接口在OSPF路由域中(也就是对应接口开启了OSPF)。
- 连接外部路由的接口不是被动接口(不接收也不发送ospf报文)。
- 连接外部路由的接口必须是MA环境(NBMA、Brocast)。
我们只考虑正确的情况,也就是上图所示的,如果P2P等环节下就无法重定向了。
OSPF路由器收到外部路由时候,先看这条五类LSA是否携带FA,如果FA地址位非0则会根据FA地址进行迭代查询,如果可达则该五类LSA携带的路由可以加表,如果不可达则不加路由表,而不会使用通过SPF算计直接计算出的下一跳地址。
5类LSA的FA值实验:
实验背景:
在R2上将RIP重分发进入OSPF,并在R1上查看相应的现象。
实验分析:
正常情况下,如果没有FA位的话,R3上回环口的路由条目只能通过RIP重分发进入OSPF,OSPF中五类LSA的下一跳为R2的g0/0/0接口(ASBR),那么就会产生次优路径,没有直接选择同一网段的R3。
现在,R3和R2互相能学习到RIP的路由条目,R1和R2之间能够学习到OSPF的路由条目,并且在R2上将RIP通告进入OSPF,所以G0/0/0接口既通告进入了OSPF也通告进入了RIP,并且没有开启为被动接口,为broadcast环境,这样满足要求的三个条件。这时,FA位就变为了R3g0/0/0接口的IP地址(R2上学习到RIP路由的下一跳)。在R1收到R2发送的外部条目的时候,发现FA值不为0,为192.168.1.3,和自己同一网段,可达;所以去往3.3.3.3的下一跳就为AR3的g0/0/0地址,避免了次优路径。
实验验证:
我们在R1的路由表上查看:下一跳为192.168.1.3
在R2的g0/0/0接口处抓报文查看FA的字段:
可以看到FA值为192.168.1.3,与分析相符合。
参考资料:HCIE学习指南