您的位置:首页 > 其它

3.HCNP-R&S-IERN——OSPF协议报文和链路状态通告

2015-04-17 21:39 357 查看
本次介绍OSPF协议报文和链路状态通告。包括协议报文头部,报文类型和LSA类型等

学习目标:

1. 理解OSPF报文头和报文类型

2. 理解链路状态通告类型




OSPF是直接运行在IP协议上的协议,使用的IP协议号为89。

OSPF有五种报文类型,但是OSPF报文头部格式都是相同的。




所有的OSPF报文使用相同的OSPF报文头部。

Version填2,Type有五种,Packet Length指出OSPF报文总长度,包括报文头部。单位是字节。

Router ID是生成此报文的路由器的Router ID。

Area ID是此报文需要被通告的区域。

AuType是验证此报文所应当使用的验证方法。

Authentication是验证此报文时所需要的密码等信息。




验证一个OSPF报文头部是否合法包括:

1. version为2

2. Area ID应当满足下列两种情况之一:(1)和接收端口所属区域的Area ID一致

(2)不一致的话,但是值为0,表示该报文属于骨干区域,而且是在一个虚连接商发送的。

3. AuType字段必须与该区域配置的AuType一致。

4. Authentication为验证信息,内容与AuType字段相关。

只有通过验证的OSPF报文才能被接收,否则将不能正常建立邻居关心。VRP支持两种验证方式:区域验证方式和接口验证方式。当两种验证方式都存在时,优先使用接口验证方式。






OSPF共有五种报文类型。

Hello报文用于发现和维护邻居关系,在广播型网络和NBMA网络上Hello也用来选举DR和BDR。

DD报文通过携带LSA头部信息来描述链路状态的摘要信息。

LS Request报文用于发送下载LSA的请求信息,这些被请求的LSA是通过接收DD报文发现的,但是本路由器上没有的。

LS Update报文通过发送详细的LSA来同步链路状态数据库。

LS Ack报文通过泛洪确认信息确保路由信息的交换过程是可靠地。

除了Hello报文外,其他所有报文只在建立了邻接关系的路由器之间发送。




除Hello报文外,其他的OSPF报文都携带LSA信息。

LS age:表示LSA已经生存的时间,单位是秒。

LS type:标识了LSA的格式和功能,常用的LSA类型有五种

Link State ID:表示该LSA所描述的那部分链路的标识,例如Router ID等

Advertising Router:产生此路由器的Router ID。

LS sequence number:用于检测旧的和重复的LSA。

其中,LS type,Link State ID和Advertising Router的组合共同标识一条LSA。




Router-LSA和Network-LSA用于计算区域内路由,这两类LSA描述的是具体的链路状态信息。




每台路由器都会向外发布Router-LSA。只有DR向外发布Network-LSA。




Network-Summary-LSA用于计算区域间路由信息。这类LSA描述的是精简的路由信息,而不是详细的链路状态信息。

默认路由也可以通过Network-Summary-LSA发布。




去往网段N1的路由通过Router-LSA发布到ABR,ABR将链路状态抽象成路由信息,通过Network-Summary-LSA发布到其它区域。




第四类用于描述如何到达ASBR,第五类由ASBR描述如何到达AS外部某网段,这两类LSA配合起来用于计算AS外部路由。




ASBR使用第五类LSA描述外部路由,这些第五类LSA在整个AS内部泛洪。

当ABR向其它区域通告所接收到的第五类LSA时,同时为该区域生成一条第四类LSA描述如何到达ASBR。第四类LSA只能在一个区域内泛洪,第五类LSA每泛洪到一个区域,相关的ABR就要为该区域重新生成一条新的第四类LSA。




Link State ID是该LSA所描述链路的标识,对于不同类型的LSA,其含义也不同。




LS type,Link State ID和Advertising Router的组合唯一标识一条LSA,但是对于一条LSA,有可能同时存在多个实例。LS sequence number用于检查哪一个实例更新。

LS sequence number是一个32位的有符号整数,用于检测过期和重复的LSA。由于LS sequence number是32位有符号整数,因此数值0x80000000,也就是2^-31是最小的int数值,但此数值是被保留的,协议可用的最小数值为0x80000001。

当路由器生成一条新的LSA时,使用序列号0x80000001作为该LSA的初始序列号,此后,每次更新该LSA,序号加1.序列号越大表示该LSA实例越新。




LS Age:此数值的单位是秒,在LSDB中的LSA的LS age随时间而增长。一条LSA在向外泛洪之前,LS age的值要增加InfTransDelay(该值可以在端口上设置,缺省为1秒,表示在链路上传输的延迟)。

如果一条LSA的LS age达到了LSRefreshTime(30分钟),这条LSA的生成者需要重新生成一个该LSA的实例,如果一条LSA的LS Age达到了MaxAge(1小时),这条LSA就要被删除。

LS age数值越小表示LSA越新。

如果路由器希望从网络中删除一条自己此前生成的LSA,则重新生成该条LSA的一个实例,将LS Age设置为Max Age即可。

如果路由器收到一条LS Age设置为Max Age的LSA,则从LSDB中删除此LSA(如果LSDB中存在此LSA)。

问题:

1. 如何检查OSPF报文是否合法?

答:检查版本,Area ID,验证方法和验证信息。

2. 如何配置OSPF的报文的认证?

答:有区域验证和接口验证两种方式。使用区域验证时,一个区域中所有路由器在该区域下的验证模式和口令必须一致;接口验证方式用于在相邻的路由器之间设置验证模式和口令,优先级高于区域验证方式。

3. OSPF的LSA类型有哪些?

答:Router-LSA,Network-LSA,Network-Summary-LSA,ASBR-Summary-LSA和AS-External-LSA。

4. 如何检测LSA的新旧?

答:使用LS Sequence Number和LS Age,Sequence Number越大表示LSA越新,如果Sequence Number一致,则比较LS age,LS age越小表示LSA越新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: