OSPF特殊区域及其他特性
前言
我们前面已经学完了OSPF域内域间路由计算过程以及相关LSA的作用,以及简单的学习了外部路由的计算过程。这时候一个相对简单完整的OPSF区域基本就部署完成了,但是呢我们学习的网络环境是非常简单的,而实际的以太网环境使用的设备只会越来越多,哪怕我们分了区域后,依然有大量的LSA信息存入每个设备的LSDB中。对于我们骨干区域中的设备来说这些LSA都是路由寻路的基础,因此不能省略,但是对于非骨干区域中的设备来说,有许多的LSA信息都是没有必要的,我们完全可以进一步缩减LSDB中的LSA信息,来减轻非骨干区域中设备的压力。
特殊区域
那么我们首先先看一个拓扑图,也是本次学习的网络环境
网段与RID的划分依旧与我们前几次相同:
网段:R1-R2 192.168.12.0/24,R2-R3 192.168.23.0/24以此类推,PC1-R6 192.168.1.0/24,PC2-R6 192.168.2.0/24 ,PC3-R6 192.168.3.0/24
RID:R1 1.1.1.1 , R2 2.2.2.2 以此类推
这里的外部路由我使用静态的方式引入三个PC网段,并在R6上配置一条默认路由。
配置完成后我们来看下R1上的路由表
基于我们上次所学,通过OSPF学到的三条路由23,34,45网段的开销为2,3,4与我们上次看到的一致,而下一跳都为R2。但是通过外部路由引入的开销居然都是1,这就是我们上次讲到的引入路由时设置的开销类型,默认为2,即不考虑内部开销,只考虑外部开销。我们可以在引入路由的时候修改他的开销类型为1即可。
这时候就正常了,到达外部路由的开销为R1到达ASBR的开销+ASBR到达外部路由的开销。
然后我们来看下R1维护的LSDB条目
我们可以看到R1处于area 1区域内,并且只是IR(区域内部路由器),但是在正常的OSPF区域中它依旧要维护所有已知的LSA,因为这些LSA是它去往该网段的依据,这时候我们划分骨干区域与非骨干区域所产生的作用好像不顶用了,虽然缩减了1类,2类LSA的条目,但是取而代之的是各种3类LSA,还有引入的5类LSA,并没有缩减LSA条目呀。这么说并不完全正确,虽然R1要维护的LSDB依旧是很多,但是除了1类,2类LSA是需要自己计算的,其他的都是从ABR哪里获取得知的,因此最辛苦的还是我们非骨干区域内的ABR,什么活都要干,既要生成本区域内的SPF树并生成路由条目,还要将区域间的LSA转换成3类LSA发给我们区域内的设备,最后还有外部路由引入也要经过我们的ABR,还得ABR生成一个4类LSA泛洪给区域内部,真的是啥活都干。
因此我们在组网时选定的ABR或者ASBR的设备性能要求高性能,然而非骨干区域内的IR根据成本原因有可能就会使用性能非常差的设备。例如我们eNSP中使用的AR1220,AR2200等。ABR的LSA条目我们无法进行缩减,ABR作为我们区域内到其他区域的必经设备,一旦ABR都找不到路了,那么我们区域之间的网络也就断了。
因此我们需要找到的方法是能够在不影响基本传输的基础上进一步缩减IR的LSA条目。
Stub区域
配置了Stub区域的ABR不再向Stub区域内部发布4类,5类LSA,Stub区域内IR只维护1类,2类,3类LSA。配置命令即在区域下输入命令stub即可
在配置Stub时要注意下列规则:
1、骨干区域不能被配置为Stub区域。
2、如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置成Stub路由器。
3、Stub区域内不能存在ASBR,自治系统外部路由不能在本区域内传播。
4、虚连接不能穿越Stub区域建立。
如图所示,我们将area 1配置成了Stub区域,之前查看R1的LSDB发现R1维护了所有已知的LSA条目,那我们现在再来看下R1的LSDB跟没配置Stub时有什么区别:
我们可以看到除了1类、2类、3类LSA,4类和5类LSA都已经不再LSDB中,也就是说我们的R1只需要维护域内与域间的LSA。那么如果我们的R1想要去往外部路由该怎么走,毕竟我们已经将4类,5类LSA从LSDB中删除了,R1也不清楚如何到ASBR了。
我们这里可以看到,Stub区域会自动生成一条默认的3类LSA,且是一条默认路由。我们R1要访问外部路由就通过这条默认的LSA,发给ABR,再由我们的ABR发给ASBR再到外部路由。这就是我们Stub区域的作用,在不影响正常传输的基础上缩减我们非骨干区域内IR的LSDB条目。
这里我们可以看下R1的路由表:
可以看到除了域内与域间的路由条目外,还有一条默认路由,下一跳为ABR。因此我们的R1要访问外部路由的流量都会匹配上这条默认路由经过ABR传给ASBR来访问外部路由,而我们R1的LSDB维护的条目也少了,皆大欢喜。
Totally Stub区域
随着我们的以太网环境的增长,单纯的Stub区域能缩减的LSA有限,我们OSPF包含的设备增多的话,同样会导致R1上的3类LSA增多。因此就需要Totally Stub区域进一步帮我们缩减3类的LSA。Totally Stub区域在Stub区域的基础上进一步缩减了LSA的条目,注意这里指的是缩减IR的3类LSA,ABR的LSA我们是删不得的。
配置Totally Stub区域的命令即在区域下输入命令Stub no-summary
注意同样是全部区域内的设备都要配置。
我们这时候再看下R1的LSDB条目:
是不是在之前Stub的基础上又删减了3类LSA,但是呢Totally Stub区域还是会生成一条默认的3类LSA,用来让R1访问ABR。而R1去往其他区域就通过ABR来进行中转。
这时候我们再看下R1的路由表:
真是简单的过分,不过我喜欢。除了自己直连的网段外,只有一条默认路由,所有去往外面,不管是区域间也好,外部路由也好,都直接通过我们的ABR来中转。ABR:心里有句MMP但不知该不该讲。。这时候我们的R1的负担就被缩减到最小了。哪怕你拿个AR201都能跑得动,反正R1现在除了维护自己区域内的LSA,其他的都不关R1的事了。当然你说你一个区域内部设备也很多呢,那就没办法了。老老实实加钱升级设备吧。
Stub区域的特殊情况
当给area 1配置了Stub或Totally Stub区域,但是网络环境如下所示时:
OSPF有两处引入外部路由的地方,一个是R3,一个是R1,但是呢R1配置成了Stub区域,我们在配置Stub时有说到Stub区域配置的规则,其中有一条为Stub区域内不能有ASBR。
就算配置完引入,R1去往外部路由依旧会走哪里?会交由ABR-ASBR然后才到外部路由是吧,路径为R1-R2-R3-R6,但是呢我们看都能看出来当前网络环境最优的R1前往外部路由的方式直接走R1-R6即可。而由于Stub区域导致外部路由的LSA我们R1根本没有,因此这里就需要一个特殊区域:NSSA区域。
NSSA区域
我们之前说了Stub区域能削减4类5类的LSA条目,而NSSA与Stub区域很类似,它同样也是削减4类与5类LSA,那么就有问题了我R1如何引入外部路由呢要是没有4类5类LSA的话?这里就出现一个特殊的LSA,我们的7类LSA,NSSA LSA。
7类LSA只在NSSA区域内生效,用来在NSSA区域内引入外部路由信息。配置了NSSA区域后,之后收到7类也就是自己区域ASBR引入的外部路由,其他区域引入的外部路由5类LSA并不会收到。那么这时候R1去往外部路由就会走R1-R6。
配置NSSA区域命令为在区域视图下输入命令nssa
然后我们查看下R1的LSDB:
可以看到没有4类5类LSA,但取而代之的是7类NSSA LSA。
因此NSSA区域用来既想削减外部路由信息条目又想保留本区域引入外部路由的能力时使用。
Totally NSSA区域
同样的NSSA区域没有削减3类LSA,因此还有Totally NSSA区域,用来在NSSA基础上进一步削减3类LSA。配置与Totally Stub很像,只用在配置NSSA时后面加一个no-summary
配置完后,我们来看下R1的LSDB情况:
同样配置完Totally后会生成一条默认的3类LSA用来指向ABR。
而NSSA配置完会生成一条默认的7类LSA用来指向其他自治区域。
然后我们在R1上执行下tracert PC1
可以看到R1去往PC1走的是R1-R6,最优路径,且LSDB削减了3类4类5类LSA条目,并保留了自己引入外部路由的能力。
LSA总结
区域学完后,OSPF的基本内容也快完了。我们也学完了大部分的LSA作用,最后来梳理一遍LSA的作用:
LSA类型 | 通告路由器 | LSA内容 | 传播范围 |
---|---|---|---|
Router LSA(Type-1) | OSPF Router | 拓扑信息+路由信息 | 本区域内 |
Network LSA(Type-2) | DR | 拓扑信息+路由信息 | 本区域内 |
Network-summary-LSA(Type-3) | ABR | 域间路由信息 | 非(Totally)STUB区域 |
ASBR-summary-LSA(Type-4) | ABR | ASBR’s Router ID | 非(Totally)STUB区域 |
AS-external-LSA(Type-5) | ASBR | 路由进程域外部路由 | (非STUB区域)OSPF进程域 |
NSSA LSA(Type-7)ASBR | NSSA | 域外部路由信息 | (Totally)NSSA区域 |
OSPF其他特性
路由汇总
我们上面讲的各种特殊区域针对的是我们的IR也就是区域内部路由器,这样我们区域内部路由器的负担减少了,但是可怜的ABR却依旧负担累累,那么有没有办法帮助我们ABR减少负担呢?削减LSA是不能削减的,那么能不能把LSA条目进一步汇聚呢,就像我们之前学的CIDR无间域路由的作用一样。将ABR发布的多条LSA汇聚成一条LSA放入LSDB中。这种方式叫路由汇总,根据OSPF中的网络环境,设备多的话这样做就能大幅削减了ABR的负担。同样的我们削减了ABR的负担,还有我们ASBR呢,外部路由的信息量也是非常恐怖的,因此我们在ASBR上也可以进行路由汇总。
ABR上的路由汇总
在ABR上执行命令abr-summary 后接汇聚后的网段信息。
这样就能在发布时只发布这么一条对外的信息,而其他区域的设备想要访问里面的详细网段时匹配上这条汇总信息后发往我们的RTB后经RTB交给RTD,然后RTD查看路由表再发完指定网段。
ASBR的路由汇总
同样的ASBR也可以进行汇总,将外部引入的多条路由条目汇总成一条,且除了普通区域的ASBR还有NSSA区域的ASBR也可以进行汇总。并且如果设备既是NSAA区域的ASBR又是ABR,则可在将七类LSA转换成五类LSA时对相应前缀进行汇总。
定时更新与触发更新
为了保证LSA的准确性和可靠性,OSPF为每个LSA设置了老化时间,默认为3600S,也就是说过了3600s后该条LSA就会从LSDB中删除,而为了确保LSA信息存活,OSPF设置了一个定时更新机制,每1800s更新一次LSA,但是单纯的定时更新太慢了,完全不符合OSPF快速收敛的特性,因此又有一个触发更新的机制,一旦发现链路状态发生改变就立马更新LSA,快速完成收敛。
认证机制
我们之前在学习OSPF基础时讲到OSPF的特点之一就是有认证,认证确保了OSPF区域内设备的安全性,使得只有认证通过的设备能接入我们的OSPF网络环境,而没有进行认证的设备就不允许接入。
在OSPF中认证分为了接口认证和区域认证,支持的认证模式分为null(不认证)、simple(明文)、MD5以及HMAC-MD5。当两种认证方式都存在时优先选择接口认证方式。