在R1上有一条静态的路由,192.168.1.0/24,但是R3,R3,R4,R5都还没有。如何让AS内部也有去往网络网络的信息呢?
在R1上做路由引入
在OSPF的进程下,去引入路由表中的静态路由。
这个时候,这条外部路由,就会以类型5的LSA的方式产生。
跟之前遇到的type 1, type 2, type 3 不同的是:type 5 的并没有放在区域里面,而是单独用了一个AS External Database 来放type 5 的。 -- 五类LSA没有区域的限制
display ospf lsdb ase # 查看类型5的LSA可以设置引入时的开销
现在R1产生的一类LSA中,因为有执行引入的动作,R1就会说自己是ASBR。
因此跟ASBR在同一个区域的路由器,肯定也知道R1是这个区域的ASBR。
因此R2作为这个区域的路由器,会直接算出一条到达ASBR的路由。
如何计算到达ASBR的路由
R1是通过一类LSA说自己是ASBR的,在区域1中的路由器都通过这个一类的LSA都知道R1是ASBR。肯定能算出到ASBR的路由。
但是区域0跟区域2是没法通过一类的LSA算出到ASBR的路由的。
R1产生的一类只能在区域1泛洪,对于R3,R4,R5来讲,他们是并不知道R1的存在的。
R1有这条外部路由的五类LSA,R5也有这条外部路由的五类LSA。
R1跟R5上的这条五类LSA其实是同一条,也就是说这个五类的LSA在整个AS内传递过程中并没有变化。
思考:R2怎么算这条外部路由
查看R2的拓扑数据库
当R2在区域1感知到R1是ASBR后,R2就在他的区域0产生一条Sum-Asbr的LSA。
查看四类LSA
在R5上查看lsdb
R5知道1.1.1.1是ASBR,但是R5同时也知道1.1.1.1这个ASBR不在区域2里面,跟R5不在一个区域,因为如果在同一个区域,一定会有1.1.1.1产生的一类LSA。
现在R3要到R1的下一跳和开销就很简单了。R3到ABR的开销 + ABR到ASBR的开销。 -- 跟三类的路由计算一样。
这就是为什么三类跟四类LSA前面都会有Sum,因为他们路由计算的逻辑是一样的。
三类的只是计算路由信息,计算出的是一个网段,而四类的是计算出一台路由器(ASBR)的信息。计算的对象不一样,但是算法逻辑是一样的。
R2产生一条四类LSA传递到R4,R4也会向区域2产生四类LSA。
OSPF外部路由的类型开销
疑问
有五类的LSA,并不一定有四类的LSA,因为如果是单区域,就只有一个区域0,然后引入外部路由,只要产生五类的就够了,这个时候就不需要四类的,因为是单区域的。
有四类的LSA也不一定就有五类的LSA,因为执行引入命令,不一定会有路由被引入。如果把静态路由删掉了,(现在静态路由在路由表中就没有了)但是执行的引入动作这条命令还有,
只要执行了import-route的命令,这个R1就是ASBR了,所以并不需要产生五类LSA就说自己是ASBR。
现在这个五类的就是R5产生的。 所以R2依然感知到ASBR的存在,于是R2还是会产生四类LSA。
所以四类也可以单独存在。
四类LSA防环以及选路机制
结论一:
R3引入外部路由192.168.1.0/24
在R3产生的一类LSA中,会说自己是ASBR。
R3在区域1里面也会说自己是ASBR。
现在R2这台路由器通过区域1中的R3产生的一类能知道区域1中的ASBR是R3,通过R3在区域0中产生的一类也能知道在区域0中有个ASBR,也是R3。
如果开销值相同的话,一般正常的想法就是做负载分担。
现在R2到这两个ASBR的开销是一样的。
这个时候R3上会产生五类LSA。
在R2上查看路由,发现并没有做负载分担,(引入的时候按照开销类型是1的方式引入 -- 默认type就是2)
现在R2上计算路由算出来的开销是3,并且下一跳是10.1.12.1
现在把R2的g0/0/0口Down掉
在R2上查看路由表
路径切换了
现在恢复R2的g0/0/0口
现在流量又切回到了区域1去走
所以即使开销一样,但是并没有做负载分担。
现在把R2中的g0/0/0中的链路的开销改大。
这个时候流量又切回到了区域0
结论二:
结论三:
ABR如果在区域0有邻居的时候,就不用非骨干的三类,现在一样的道理,在计算外部路由的时候,如果区域0中没有邻居 ,才用非骨干区域的四类计算外部路由。
现在R4引入外部路由,假设是Y,现在R4就是ASBR了,对于R2来讲,就会产生一条四类的传到R3,对于R3来讲,去算到R4的开销时,通过依赖的可以算出来,通过非骨干区域的四类也可以算出来。只有在R3没有区域0邻居的时候,才会用区域1中四类的LSA计算到ASBR的开销。
R3在计算4.4.4.4的时候,优先用的是区域0。区域1中到ASBR的路并没有在ospf的abr-asbr的这张表中出现。
现在把R3在g0/0/1接口Down掉
R3这个时候在区域0就没有邻居了,没有邻居了才会用非骨干区域的四类
结论四:
在R1上引入外部路由,R2会产生四类的传到R3,那么R2通过区域0走到R1的开销是3,
R3在区域 1中通过一类LSA可以直接算出到R1(ASBR),如果把一类的开销改大,就会用四类的。
这一点跟三类不一样,一类的始终优于三类的
现在R3到R1(ASBR)走的是区域1中的一类的
现在把R3到达R1的开销改大。