***
OSPF的LSA
LSA --- 链路状态通告 --- OSPF协议在不同网络环境下产生的,用于携带和传递不同的信息。
LSDB --- 链路状态数据库
OSPFV2版本要求必须掌握的LSA类型一共有六种
TYPE --- 类型 --- 代表的是LSA的类型
LinkState ID --- 链路状态标识符 --- 作用就是标记一条LSA信息,就相当于这条LSA的名称。
AdvRouter --- 通告路由器 --- 发送这条LSA信息的路由器的RID。
以上三个参数被称为LSA三元组,通过这三个参数可以唯一的标定出一条LSA信息。
查看某一条LSA --- display ospf lsdb <type> <linkstate id>
LSA头部
TYPE
LinkState ID
AdvRouter
Ls age --- 单位S --- 老化时间 --- 当LSA被始发路由器产生时置为0(并不是加入LSDB之后计时),之后,该LSA在网络中传播,LSA的老化时间也会一直累加。--- 正常情况下,LSA老化时间不会超过1800S。 --- MAX AGE --- 3600S。
SEQ --- 序列号 --- 一台路由器每发一条相同的LSA都会携带一个序列号,并且,这个序列号会逐次加1,是判断LSA新旧的重要参数。
直线型序列空间 --- 优点,新旧关系很好确认;缺点,当序列号空间使用完毕后将无法比较新旧关系。
循环型序列空间 --- 优点,序列号空间可以循环使用;缺点,当两个序列号差别过大时,将无法判断新旧关系
棒棒糖型序列空间 --- OSPF采用的是棒棒糖序列空间,但是,为了避免进入循环空间后导致新旧关系无法判断,所以,OSPF要求不能进入循环(相当于采用的是直线型序列空间 --- 取值范围相当于从0X80000001 - 0X7FFFFFFE)
OSPF刷新序列号空间的方法 --- 当一条LSA信息的序列号达到最大值时,设备发送该LSA信息的同时会将这条LSA的老化时间置为最大老化时间 --- 3600S,邻居收到这条LSA信息后,因为序列号为最新的序列号,将会替换掉本地对应的LSA信息,之后,又因为老化时间为3600S,则将把该LSA信息删除。本端设备将再发送一条相同LSA,且序列号为0X80000001,邻居收到后将最新的LSA信息存入数据库中,实现序列号空间的刷新。
Chksum --- 校验和 --- 这个校验和也会参与LSA的新旧判断,当两条LSA的序列号相同时,则比较校验和,校验和大的为新。
OSPF的周期更新 --- 每条LSA老化时间达到1800S时,将进行周期更新。
组步调计时器 --- 300S --- 当有LSA老化时间达到1800S时,不立即进行周期更新,而是再等待300S,当达到2100S时,将同时更新所有达到1800S的LSA信息。(优化机制,并不是默认)
类型 | LS ID | 通告者 | 传播范围 | 携带的信息 |
Type -1LSA Router | 通告者的RID | 网络中每台运行OSPF协议的路由器的RID | 单区域 | 本地接口直连拓扑信息 |
Type -2 LSA Network | DR接口的IP地址 | 单个MA网络中DR对应的路由器的RID | 单区域 | 单个MA网络的补充信息 |
Type - 1 LSA --- 整个网络每条设备都会发送1类LSA,并且只发送一条。
LINK --- 描述路由器接口的连接情况,一个接口的连接信息可以通过多条LINK来进行描述
类型 --- 链路类型,主要是通过接口的网络类型来判断我们的接口连接在一个什么样的网路之中。
Type - 2 LSA --- 因为1类LSA无法完整的表示出MA网络的完整信息,所以,需要引入2类LSA对缺失的信息进行补充说明。
2类LSA是一个MA网络只有DR对应的设备发送一条即可。因为,2类LSA中描述的都是公共部分信息,所以,多次发送将造成重复更新。
所有路由信息必须可以通过拓扑信息(1类和2类LSA)进行验算。 --- 所谓的验算指的是必须通过1类
Type - 3 LSA --- 传递的是域间的路由信息,需要注意的是3类LSA中携带的开销值,指的是通告者到达目标网段的开销值。而加表的路由的开销值需要使用携带的开销值再加上本地到达通告者的开销值。
类型 | LS ID | 通告者 | 传播范围 | 携带的信息 |
Type -1LSA Router | 通告者的RID | 网络中每台运行OSPF协议的路由器的RID | 单区域 | 本地接口直连拓扑信息 |
Type -2 LSA Network | DR接口的IP地址 | 单个MA网络中DR对应的路由器的RID | 单区域 | 单个MA网络的补充信息 |
Type - 3LSA Sum-Net(summary) | 域间路由的网络号 | ABR,在通过下一个ABR时,将修改为新的ABR | ABR设备相邻的单区域 | 域间路由信息 |
Type - 5 LSA External(ase) | 域外路由的网络号 | ASBR | 整个OSPF范围 | 域外路由信息 |
Type - 4 LSA Sum-Asbr | ASBR的RID | ASBR所在区域的ABR设备,再通过下一个ABR时,将修改为新的ABR | 除了ASBR所在区域外的单区域 | ASBR的位置信息 |
Type - 7 LSA NSSA | 域外路由的网络号 | ASBR,离开NSSA区域时需要转换成5类 | 单个NSSA区域 | 域外路由信息 |
Type - 3 LSA --- 传递的是域间的路由信息,需要注意的是3类LSA中携带的开销值,指的是通告者到达目标网段的开销值。而加表的路由的开销值需要使用携带开销值再加上本地到达通告者的开销值。
因为OSPF区域
OSPF的优化 --- 减少LSA的更新量
汇总 --- 减少骨干区域的LSA数量
做特殊区域 --- 减少非骨干区域的LSA数量
Type - 5 LSA
Metric --- 5类LSA中携带的是域外的路由信息,通过重发布导入到OSPF网络中,因为不同协议对开销值的度量标准不同,所以,在路由导入之后,我们将直接舍弃该路由在原网络中的开销,之后,给路由赋予一个规定值 --- seed mertic 种子度量值。OSPF默认的种子度量值为1,这个值可以在重发布过程中进行修改。
[OSPF视角]import-route rip 1 cost 2
E type --- 一个标记位,有0和1两种变化,对应两种不同开销值类型。
TYPE 1 --- 如果E位置0,则代表使用类型1。如果使用的是类型1,则所有设备到达域外目标网段的开销值为本地到达发出
TYPE 2 --- 如果E位置1,则代表使用类型2。默认使用类型2。如果使用类型2,则域内所有设备到达域外目标网段的开销值都等于种子度量值。
开销值类型也可以在重发布时修改
[ospf视角]import-route <协议> type <>
Forwarding Address --- 转发地址 --- 为了应对选路不佳的情况,如果出现选路不佳的情况,则将把最佳的下一跳携带
Tag --- 路由标签 ---
OSPF的优化 --- 减少LSA的更新量
汇总 --- 减少骨干区域的LSA数量
做特殊区域 --- 减少非骨干区域的LSA数量
1、汇总 --- OSPF是不支持接口汇总(类似RIP的汇总方式),因为,OSPF只有在区域之间才会传递路由信息,所以,OSPF的汇总被称为区域汇总。
1、域间路由汇总 --- 域间指的是OSPF区域之间,实质是在ABR设备上将区域之间传播的3类LSA进行汇总。(注意,域间路由汇总只能针对ABR设备自己通过1类和2类LSA计算出了路由信息进行汇总,而不能将别人发来的3类LSA进行汇总。)
2、域外路由汇总 --- 其实质是在ASBR上,通过重发布,对导入的5类/7类LSA进入OSPF域时,进行汇总。
[ospf进程]asbr-summary <网段> <掩码> --- 在ASBR上配置,汇总域外路由。
域外汇总网段的开销值
如果开销值类型为type 2,则汇总网段的初始度量值等于明细网段的度量值中的最大值+1。
如果开销值类型为type 1,则汇总网段的初始度量值等于明细网段的度量值中的最大值。
[ospf进程号]asbr-summary <> <掩码> cost <开销值> --- 修改汇总网段的初始度量值。
2、特殊区域
OSPF的特殊区域一共存在两大类,四小类。
第一大类的特殊区域 ---- 1,不能是骨干区域;2,不能存在虚链路;3,不能存在ASBR
1)我们将满足以上条件的区域称为末梢区域(STUB)
如果,将一个区域配置成为末梢区域,则其效果是该区域将拒绝接收4类和5类LSA信息。但是,因为依然存在访问域外网段的需求,所以,配置完特殊区域后,ABR设备将会自动下发一条指向骨干的3类缺省。
[ospf区域视角]stub --- 将区域配置成stub
注意,特殊区域在进行配置的时候,必须区域内所有设备都要做相同的配置,否则,将导致邻居关系建立失败。
2)完全的末梢区域 --- Totally stub --- 完全的末梢区域的效果是在普通的末梢区域的基础上,进一步拒绝接受3类LSA,但是需要保留3类缺省。
[ospf区域视角]stub no-summary --- 注意,这个命令只需要在ABR设备上配置即可。
第二大类的特殊区域 --- 1,不能是骨干区域;2,不能存在虚链路;3,存在ASBR
1)满足以上条件的区域我们可以将其配置成为非完全末梢区域(NSSA)。
如果,将一个区域配置成为非完全末梢区域,则其效果是该区域将拒绝接收4类和5类LSA信息。因为,ASBR设备需要将域外路由信息通过5类LSA传递到OSPF网络中,但是,NSSA区域拒绝5类LSA,所以,域外路由信息在NSSA区域中将通过7类LSA来进行携带。之后,在传递到其他区域通过ABR设备时,将会在把7类LSA转换成5类LSA进行传递。同时,为了保证可以正常访问外部网段,所以,也会自动生成一条指向骨干区域的7类缺省。
[ospf区域视角]nssa
特殊区域标记
E位 --- 一般置1,代表该区域支持5类LSA
N位 --- 一般置0,只有在NSSA区域时置1,代表该区域支持7类LSA
P位 --- 如果P位置1,则代表支持7转5
7类LSA中的转发地址默认携带的是ASBR设备的环回地址,如果ASBR设备没有配置环回接口,则将使用ASBR设备的物理接口地址。
2)完全的非完全末梢区域(Totally NSSA) --- 完全的NSSA区域 --- 在普通的非完全末梢区域上进一步拒绝接受3类LSA,并生成一条3类缺省指向骨干。
[ospf区域视角]nssa no-summary
注意 --- 在配置完完全的NSSA区域后,将会自动生成一条3类缺省,但是,普通的NSSA区域会生成一条7类缺省,导致数据库中存在两条缺省,最终,因为3类优于7类的原则,我们将使用3类LSA生成的缺省路由。
总结 --- OSPF网络优化时,为了避免环路的产生,需要保证我们自动生成的缺省方向和手工添加的缺省方向一致。
OSPF的拓展配置
1、OSPF的手工认证 --- 认证就是在OSPF邻居间所有数据包中携带口令,两边口令相同意味着身份合法。
接口认证 --- 邻居接口上配置,两端若口令不一致,则将无法建立邻居关系。
[接口视角]ospf authentication-mode md5 <key id> cipher <password>
区域认证 --- 其实本质和接口认证是一回事,相当于同时将
[区域视角]authentication-mode md5 <key id> cipher <password>
虚链路认证 --- 在建立链路的时候进行认证 --- 本质差不多。
[区域视角]vlink-peer <rid> md5 <key id> cipher <password>