OSPF笔记-进阶篇
前言
本章主要介绍OSPF如何计算区域内路由,内容主要包括如何使用Router-LSA和Network-LSA描述拓扑信息和路由信息,以及如何构建最短路径树。
链路状态和LSA的理解
OSPF作为链路状态路由协议,不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由。所有路由器各自维护一个链路状态数据库。邻居路由器间先同步链路状态数据库,再各自基于SPF(Shortest Path First)算法计算最优路由,从而提高收敛速度。
所谓的Link state(链路状态)指的是路由器的接口状态,在OSPF中路由的某一接口的链路状态包含:
1、该接口的IP地址与掩码;
2、该接口的带宽(开销);
3、该接口的邻居;
4、链路类型;
OSPF路由器同步的是最原始的链路状态信息,而且对于邻居路由器发来的链路状态信息,仅作转发。最终所有路由器都将拥有一份相同且完整的原始链路状态信息。
LSA头部理解
LSA(Link State Advertisement)是路由器之间链路状态信息的载体。LSA是LSDB的最小组成单位,也就是说LSDB由一条条LSA构成的。所有的LSA都拥有相同的头部,关键字段的含义如下:
LS age:表示生存时间,单位为秒,3600S为老化时间,从lsdb链路状态数据库清除,通告时候从0开始增长,到1800s更新一次(通过LSU维护更新状态);
LS type:标识LSA的格式和功能,常用LSA总共有5种类型;
Link State ID:该LSA所描述的那部分链路标识,例如router ID;
Advertising Router:产生该LSA路由的router ID;
LS sequence number:检测旧的和重复的LSA,32位有符号数 默认从0x80000001开始 最大0x7fffffff
如何标识唯一一条LSA
LS type,Link State ID和Advertising Router的组合共同标识一条LSA
如何比较一条LSA的新旧
1、如***越大越新;
① 当路由器生成一条新的LSA时,使用***0x80000001做为该LSA的初始***,此后,每次更新该LSA,***加1。
2.比较checksum 越大越新;
3.比较age 越小越新;
① 如果age=max age即3600s认为该条lsa是最新的立即更新。
② 每条LSA都有一个年龄字段,LSA驻留在OSPF的数据库中,已经LSA的传播过程中年龄字段不断增加。OSPF有一个MaxAgeDiff的值,如果两条LSA的***相同,而年龄不同,如果年龄差值超过MaxAgeDiff值,那么认为是不同的两条LSA,将进行更新过程。如果小于MaxAgeDiff值,那么认为是相同的LSA,将丢弃后续收到的那条LSA;
③ OSPF还有一个MaxAge的值,如果LSA的年龄超过该值,那么这条LSA会被从数据库中清除,并将该老化的LSA扩散出去,导致从所有的路由器数据库中清除;
LSRefeshTime是LSA的定期刷新定时器,该定时器控制定期刷新LSA;
MaxAgeDiff 15分钟;
MaxAge 1小时;
LSRefeshTime 30分钟;
OSPF更新机制
定时更新
OSPF为每个LSA条目维持一个老化计时器(3600s),当计时器超时,此LSA将从LSDB中删除。
为了防止LSA条目达到最大生存时间而被删除,OSPF通过定期更新(每1800s刷新一次)机制来刷新LSA。OSPF路由器每1800s会重新生成LSA,并通告给其他路由器。
触发更新
当链路状态发生变化后,路由器立即发送更新消息,其他路由器收到更新消息后立即进行路由计算,快速完成收敛。
OSPF的SPF算法
在同一个区域当中,OSPF使用的SPF算法来实现波坏环路和最优的路径计算,其中在一个OSPF区域里面会有Router-LSA(LSA-1)和Network-LSA(LSA-2)泛洪,Router-LSA(LSA-1)由每台运行OSPF的路由器为每个区域产生的一份LSA,Network-LSA(LSA-2)由MA网络的DR产生。
Router-LSA(LSA-1)
描述P2P网络
每台OSPF路由器使用一条Router_LSA描述本区域的链路状态信息。
LSA头部的三个字段描述:
Type:LSA类型,Router代表LSA-1
LS id:链路状态ID(也就是该LSA产生的Router id)
Adv rtr:产生此Router-LSA的路由器Router ID
一条Router-LSA可以描述多条链路,每条链路描述信息由Link ID,Data,Link Type和Meteric组成:
Link Type:链路类型,Router-LSA描述类型有4种;
Point-to-Point:描述一个从本路由到邻路由之间的点到点链接,属于拓扑信息;
TransNet:描述一个从本路由到一个TransNet网段(例如MA网络或NBMA网络)的链接,属于拓扑信息;
StubNet:描述一个从本路由到一个StubNet网段(例如Lookup 0 )的链接,属于拓扑信息;
Link ID:此链接的对端标识,不同的链路类型的Link ID表示的意义也不同;
Data:用于描述此链接的附加信息,不同的链路类型所描述的信息也不同;
Metric:描述此链接的开销;
描述MA网络
在描述MA网络类型的Router-LSA中,Link ID为DR的接口IP地址,Data为本机的接口IP地址,RTB、RTC、RTE之间通过以太链路互连,以RTC产生的LSA为例,Link ID为DR的接口IP地址(10.1.235.2),Data为本地路由器连接此MA网络的接口IP地址(10.1.235.3),LInk Type为TransNet,Metirc表示为到达DR的开销值,TransNet描述的链接中包含与DR的连接关系及开销,没有网路号/掩码及共享链路上其他路由的任何信息。
Network-LSA
MA网路或NBMA共享网段中网络号/掩码及路由器间的链接关系,可以通过Network-LSA来呈现,在Network-LSA中的关键字的含义如下:
① Type:LSA类型,Network-LSA是二类LSA
② LS id:DR的接口IP地址
③ Adv rtr:产生此Network-LSA的路由器Router ID,即DR的Router ID
④ Net mask:该网段的网络掩码
⑤ Attached Router:连接到该网段的路由器列表,呈现了此网段的拓扑信息
基于上述字段表达的信息,Ls id和Net mask做与运算,即可得出该网段的IP网络号,另外,从DR路由器到其所连接的路由器的开销为0,从Attached Router部分可以看出,2.2.2.2、3.3.3.3、5.5.5.5共同连接到该共享MA网段中,DR路由器为2.2.2.2,网络号10.1.235.0,掩码255.255.255.0
实战演练
计算最短路径树-物理拓扑
由LSDB描述的有向图
描述RTA的LSA计算完的SPF树
最终的最短路径树
转载:https://blog.51cto.com/13817711/2490540