链路-状态更新报文用于把LSA发送给它的相邻节点。这些更新报文是用于对LSA请求的应答。有5种不同的LSA报文类型。这些报文类型用从1到5的类型号标识。
注意由于OSPF通常把链路-状态广播看作LSA,因此会存在潜在的混淆。然而,实际上用于更新路由表的机制为链路-状态更新报文—简记为LS U.还有另一个报文结构,链路-状态应答报文,简写为LSA;由于一些不可知的原因,这种报文称为链路-状态应答,而LSA通常是指更新报文。
这些报文类型及其LSA号,如下所述:
●Rauter LSA (路由器LSA ) (类型1 )—路由器LSA描述了路由器链路到区的状态和耗费。所有这样的链路必须在一个LSA报文中进行描述。同时,路由器必须为它属于的每个区产生一个路由器LSA.所以,区边界路由器将产生多个路由器LSA,而区内的路由器只需产生一个这样的更新。
●Network LSA (网络LSA ) (类型2 )—网络LSA与路由器LSA相似,它描述的是连接进网络的所有路由器的链路状态和耗费信息。二者的区别是网络LSA是网络中所有链路-状态和耗费信息的总和。只有网络的指定路由器记录这个信息,并由它来产生网络LSA.
●Summary LSA-IP Network (汇总LSA - I P网络) (类型3 )—使用汇总LSA - I P这个名字有些不灵活,因此OSPF的设计者采用了编号策略来记LSA!只有OSPF网络中的区边界路由器能产生这种LSA类型。使用这种LSA类型把一个区的汇总路由信息和OSPF网络中相邻区路由器信息进行交换。它经常汇总缺省的路由而不是传播汇总的OSPF信息至其他网络。
●Summary LSA-Autonomous System Boundary Router(汇总LSA -自治系统边界路由器) (类型4 )—类型4与类型3 LSA的关系密切。二者的区别是类型3描述区内路由,而类型4描述的是OSPF网络之外的路由。
●S -外部LSA (类型5 )—第5个LSA是自治系统外部LSA.正如其名,这种LSA用于描述OSPF网络之外的目的地。这些目的地可以是特定主机或是外部网络地址。作为和外部自治系统相联系的ASBR OSPF节点负责把外部路由信息在它属于的整个区中传播。
这些LSA类型用于描述OSPF路由域的不同方面,它们直接寻址到OSPF区中的每一个路由器并同时传输。这样的洪泛确保OSPF区中的所有路由器关于网络的5个不同方面( LSA类型)有一样的信息。路由器完整的LSA数据存储在链路-状态数据库中。当D i j k s t r a算法应用于这些数据库的内容时会得到OSPF路由表。表和数据库的区别是数据库含有原始数据的完整集合,而路由表包含通过特定路由器接口到已知目的地的最短路径列表。
不必研究每种LSA类型的结构,只需研究它们的头就足够了。
1. LSA头
所有的LSA使用一个通用的头格式。这个头20字节长并附加于标准的2 4字节OSPF头后面。LSA头惟一地标识了每种LSA.所以,它包括关于LSA类型、链路-状态I D及通告路由器I D的信息。下面是LSA头域:
●LS年龄—LSA头中的前两个字节包含LSA的年龄。这个年龄是自从LSA产生时已消逝的时间秒数。
●OSPF选项—下面的字节由一系列标志组成,这些标志标识了OSPF网络能提供的各种可选的服务。
●LS类型—1字节LS类型指出5种LSA类型中的一种。每种LSA类型的格式是不同的。因此,指出何种类型的数据附加在头后面必不可少。
● 链路-状态I D—链路-状态I D域4字节长用于指明LSA描述的特定网络环境区域。这个域与前面提及的LS类型域关系紧密。实际上,这个域的内容直接依赖于LS类型。比如,在路由器LSA中,链路-状态I D包含产生了这个报文的OSPF路由器I D——通告路由器I D.
●S顺序号—OSPF路由器会递增每个LSA报文的序列号。所以,接收到两个相同LSA事例的路由器有两种选择来决定哪一个是最新的报文, LS顺序号域4字节长。检查这个域可以确定LSA在网络中已传输了多久。从理论上讲,一个新的LSA年龄比一个老的LSA年龄大是有可能的,特别是在大型复杂的OSPF网络中。所以,接收路由器比较LS顺序号。大号的LSA是最新生成的,这种机制不会因动态路由的变迁而受到损坏,而应认为其是一种更可靠的确定LSA时间的方法。
●LS校验和—3字节的LS校验和用于检查LSA在传输到目的地的过程中是否受到破坏。校验和采用简单的数学算法。它的输出结果依赖于其输入,并且有高度的一致性。给定相同的输入,校验和算法总是给出相同的输出。LS校验和域使用部分LSA报文内容(包括头,不包括LS年龄和校验和域)来生成校验和值。源节点运行F l e t c h e r算法并把结果存于LS校验和域中。目的节点执行相同的算法并把结果与存储在校验和域中的结果比较,如果两个值不相同,就可以认为报文在传输过程中被破坏。之后,产生一个传输请求。
●LS长度—LS长度域用于通知接收方LSA的长度(以字节为单位),这个域1个字节长。
LSA报文体的剩余部分包含一个LSA的列表。每个LSA描述OSPF网络5个不同方面中的一个。所以,路由器LSA报文会广播区内已知存在的路由器信息。
2. 处理LSA更新
OSPF路由表与其他路由表的本质区别是它的更新并不直接被接收站点所使用。从其他路由器接收到的更新包含“从发送路由器角度看”网络得到的信息。所以,在使用和解释接收到的LSA数据之前必须由D i j k s t r a算法,把它转化为自己本身的信息。
表面上讲, LSA的传输是因为一个路由器检测到了链路状态变化。所以,在接收到任何类型的LSA之后,OSPF路由器必须把LSA的内容和自身路由表的对应部分进行比较。只有通过S P F算法,使用新数据形成新的网络视图之后才能进行比较, S P F算法输出的结果是得到网络的新视图。这些结果与已存在的OSPF路由表相比较,看是否它的路由受到了网络状态变化的影响。
如果由于状态变化必须改变一条或多条路由,就要使用新的信息建造一个新的路由表。
3. 复制LSA
考虑到LSA在整个OSPF区内洪泛,就有可能同时存在多个相同LSA类型的事例。因此,OSPF网络的稳定性要求路由器能够识别多个LSA中的最新者。收到两个或多个相同LSA类型的路由器会检查LSA头中的LS年龄、LS顺序号以及LS校验和域。只有包含在最新LSA中的信息才被接受,并且要经过前面一节中描述的处理过程。
【相关文章】