在OSPF协议中,ASBR有通往域外的路由,会用LSA5通知其他区域的路由器,但由于LSA5的ADV ID是ASBR自己的RID,除了和ASBR同区域的路由器,其他区域的路由器并不知道这个RID究竟是谁,这个时候就要用LSA4来确定ASBR的位置。
图中,R1、R2、R3跑OSPF,R1和R3在13区域,R2和R3在骨干区域,R2重分布44.4.4.4的静态路由到OSPF。
R2的路由,有去往44.4.4.4的静态路由:
R1的路由,看到44.4.4.4已经重分布进来,且下一跳是R3,那么这个下一跳是怎么得出的呢?
R1的OSPF数据库,可以看到LSA5的条目,44.4.4.4路由的ADV ID是1.1.24.2(红框),但在R1的邻居中没有这个RID(因为不是同一个区域的路由器),如果让R1 ping 1.1.24.2(R2),肯定是ping不通的。
这时候LSA4就有用了,LSA4的这个条目(黄框)的意思是:要找RID是1.1.24.2的路由器,就先找ADV ID是1.1.23.3的路由器,而这台路由器就是R3(ABR),R3和R1是13区域的邻居关系,所以R1要先发送数据到R3,而R3又和R2是骨干区域的邻居关系,所以R3能够找到R2,这就是为什么R3是下一跳的原因。
至于在nssa和stub区域,因为有默认路由,所以不用LSA4和LSA5,只要把数据全部发给ABR就行了。