OSPF的优化
OSPF的优化实质是减少LSA的更新量,在我们学到的六种LSA中,一类和二类携带的都是拓扑信息,在区域内传播,这两类LSA不可缺少,而其他携带路由信息的LSA呢,这些LSA的都是必须的吗?
如果非骨干区域只保留一类和二类LSA,向内添加一条缺省指向骨干区域,向外将区域内路由信息发出,这样骨干区域具有所有网段的路由信息,当非骨干区域需要访问未知路由时由缺省将消息交由骨干转发,这样就可以减少非骨干区域的LSA更新量。而每个非骨干区域也可以将自己区域内的网段进行汇总后再发给骨干区域,这样将减少了骨干区域的LSA更新量。
总结:OSPF的优化就是通过缺省减少非骨干区域的LSA更新量,通过汇总减少骨干区域的LSA更新量。
汇总
OSPF的汇总实质上是区域汇总,是将这个区域的路由进行汇总后发布到其他区域,而区域汇总的实质是对传递路由信息的LSA进行汇总。OSPF不像RIP一样在接口发布汇总,因为OSPF的接口包含在拓扑信息中,只有路由信息才可以进行汇总。
域间路由汇总
域间指的是区域之间,实质上是在ABR上将区域间传递的路由信息进行汇总,将汇总后的路由信息发布到其他区域,减少了三类LSA的数量。
[r1]ospf 1
[r1-ospf-1]area 1 --- 进入需要汇总的区域
[r1-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.254.0 -- abr-summary 输入汇总后的网段和掩码
注意:
ABR上进行的区域汇总一定针对自己通过1类2类LSA计算出来的路由进行汇总操作。
汇总后路由的开销值为明细路由开销值中的最大值
域外路由汇总
域外路由汇总实质上是将在ASBR上通过重发布时导入的路由进行汇总,然后将汇总后的路由信息发布到OSPF域内,减少了五类LSA的数量。
[r1] ospf 1
[r1-ospf-1]asbr-summary 172.16.0.0 255.255.254.0 -- asbr-summary 汇总后的网段和掩码
在ASBR的OSPF进程中执行,这个汇总命令只能在ASBR设备上生效
域外汇总网段LSA中的开销值:
如果开销值类型为类型2,则汇总网段的开销值等于明细路由中的最大开销值+1。
如果开销值类型为类型1,则汇总网段的开销值等于明细路由中的最大开销值。
特殊区域
通过将非骨干区域配置为特殊区域,可以使骨干区域只保留一二类LSA,再通过一条缺省路由指向骨干区域。OSPF的特殊区域一共存在4中特殊区域,分为两大类,每一个大类可以再分为两小类。
末梢区域
第一大类特殊区域:末梢区域。成为末梢区域的条件:1.不能是骨干区域。2.区域中不能存在虚链路。3.不能存在ASBR。将一个非骨干区域配置为末梢区域后,这个区域将不再接受四类和五类LSA,同时它会自动生成一条指向骨干的三类缺省。
[r1]ospf 1
[r1-ospf-1]area 1 --- 进入需要成为末梢区域的区域
[r1-ospf-1-area-0.0.0.1]stub --- 该命令时使该区域成为末梢区域,本地属于该区域的接口发送hello时会携带特殊区域标记,如果本设备
·································是ABR的话,还会像向区域内发布一条三类缺省,并拒绝其他四类、五类进入。
- 注意:因为hello包在建立邻居关系的时候回去检测特殊区域标记,如果特殊区域标记对不上,则将导致邻居关系无法建立。所以,要求,配置成特殊区域内的所有设备都需要进行相同配置。
完全末梢区域
将某区域设置为末梢区域后依然会收到其他区域的三类LSA,既然区域内部已经有了缺省路由,三类LSA也不需要学习。完全末梢区域就是在末梢区域的基础上进一步拒绝学习3类LSA,仅保留3类缺省
[r1-ospf-1-area-0.0.0.1]stub no-summary -- 该命令只需在ABR设备上执行即可,配置后,ABR就会拒绝其他三类LSA进入
NSSA(非完全末梢区域)
第二大类特殊区域:要求:1,不能是骨干区域;2,区域中不能存在虚链路;3,存在ASBR。满足以上要求的区域我们可以将其配置成为NSSA(非完全末梢区域),如果一个区域成为NASS后,它会拒绝四类和五类LSA进入。了正常访问域外路由信息,NSSA区域也会自动生成一条指向骨干区域7类缺省。
NSSA区域拒绝四类和五类的进入,但NASS还需完成传递域外路由即传递五类LSA的任务,所以NSSA区域的内的ASBR在发布域外路由信息时是通过七类LSA承载的,这个七类LSA其实就相当于五类的马甲,除了名字不同,携带的信息都是相同的。NSSA区域的ABR收到七类LSA后会将七类转换成五类LSA后发布到骨干区域,该ABR就相当于一个ASBR,骨干区域内还可以减少一条四类LSA。
注意:在执行七转五时,如果七类LSA携带的路由信息可以通过一二类LSA验算得出,就不会执行七转五。
类型 | LS ID | 通告者 | 传播范围 | 携带的信息 |
---|---|---|---|---|
Type - 1LSA:Router | 通告者 | ospf域内所有运行ospf的设备的RID | 单区域 | 本地接口直连的拓扑信息 |
Type - 2LSA:Network | DR的接口IP | MA网路中的DR的RID | 单区域 | 单个MA网络的拓扑信息的补充 |
Type - 3LSA:Sum-net | 路由网段 | ABR,在经由其他ABR转发时会修改为新的ABR | 单区域 | 其他区域的路由信息 |
Type - 5LSA:External(ase) | 域外路由网段 | ASBR | ospf域内 | 域外路由 |
Type - 4LSA: Sum-Asbr(summary) | ASBR的RID | 和ASBR同区域的ABR,在经由其他ABR转发时修改为新的ABR | 除ASBR所在区域外的OSPF单区域 | ASBR的位置信息 |
Type - 7LSA:NSSA | 域外路由网段 | ASBR | NSSA单个区域 | 域外路由 |
[r4-ospf-1]area 2 --- 进入需要成为NASS的区域
[r4-ospf-1-area-0.0.0.2]nssa --- 将该区域配置为NSSA,特殊区域被的所有设备都需要配置,否则邻居关系无法正常建立
[r3]display ospf lsdb nssa 192.168.0.0 -- 查看一条七类LSA
OSPF Process 1 with Router ID 3.3.3.3
Area: 0.0.0.0
Link State Database
Area: 0.0.0.1
Link State Database
Type : NSSA
Ls id : 192.168.0.0 --- 域外路由网段
Adv rtr : 4.4.4.4 --- 通告者
Ls age : 70
Len : 36
Options : NP 注*
seq# : 80000002
chksum : 0x2a14
Net mask : 255.255.254.0 --- 子网掩码
TOS 0 Metric: 2 --- 种子度量
E type : 2 --- 度量类型
Forwarding Address : 4.4.4.4 注*
Tag : 1
Priority : Low
将一个区域配置为NSSA后,虽拒绝了四类和五类的进入,但本区域的ASBR发布的五类依然进入本区域,只是换了一个名字,这好像没有减少LSA的更新量,但其实NSSA主要拒绝的是从骨干区域传来的四类和五类。
LSA头部信息的特殊标记为(option):
E位 — 一般置1,代表支持5类LSA。如果是特殊区域,则将置0。
N位 — 一般置0,只有在NSSA区域中置1,代表支持7类LSA。
P位 — 如果置1,则代表该LSA信息支持7转5。
forwaing address:主要目的是为了应对选路不佳的情况。5类LSA在不存在选路不佳情况下,这个转发地址默认为0.0.0.0,7类LSA在默认不存在选路不佳的情况时,将携带ASBR的环回接口的最大IP地址。如果没有环回接口,则将使用物理接口的IP地址作为转发地址。
在上图中,R1和R3为一个AS,运行RIP;R2、R2、R4为一个AS,运行OSPF,R1通过RIP学习到R2的路由,在将之中重发布到OSPF中,R1发布一条五类LSA给R2;这条五类的通告者为R1,如果R2想找R3,它会将信息交由R1转发,但R1、R2、R3处于一个网段中,R1从G 0/0/0口收到R2的信息,然后从G 0/0/0口发出,造成了链路浪费。所以R1在发送给R2的五类LSA中携带转发地址为R3的接口IP,这样R2找R3的时候就不必要通过R1了。
Totally NSSA(完全的非完全末梢区域)
完全的NSSA区域可以进一步拒绝学习三类LSA,并生成一条指向骨干区域的三类缺省。
[r1-ospf-1-area-0.0.0.2]nssa no-summary --- 仅需在ABR设备上执行即可
完全的NSSA区域配置之后,将自动生成一条3类缺省,同时会保留NSSA区域生成的7类缺省。但因为3类LSA的优先级高于7类LSA,所以,加表时将选择3类缺省进行加表。