G Z H : 数通那点事 一起分享数通ia,ip,ie相关资料
在Hcia阶段,我们简单介绍了OSPF的5种报文,分别是Hello报文,DD报文,LSR报文,LSU报文,LSACK报文。今天,我们主要是对这5种报文进行详细的介绍。
下图是为了介绍各报文,简单搭设的ospf网络,具体配置为Hcia的内容,在这里不在赘述。
Hello报文:
在邻居建立过程中,hello包会有两种形式,一种是端口刚宣告进OSPF协议中时,一种是端口发现对应的端口时。两者只有细微的差别。我们先看第一种hello报文:
图中区域1为OSPF报文头部:
version:表示版本号,其中2表示IPv4版本,3表示IPv6版本;
message type:表示报文类型,图中显示改报文为hello报文;
packet length:表示OSPF的报文长度;
source ospf router:表示生成该报文的源路由是谁:
area id:表示OSPF的区域号;
checksum:表示校验值;
auth type:表示验证类型,null表示没有验证;
auth date:表示验证的数据。
图中区域2为OSPF报文的hello包:
network mask:表示发出这个报文接口的网络掩码;
hello interval:表示hello时间,中括号内为单位-秒,OSPF每隔10秒发送一个hello包,以确认邻居是否健在;
options:表示一种标注,里面的(E)表示OSPF的区域类型,为1时表示为普通区域,为0时表示为特殊区域。(可以先这样理解,后面讲到Nssa区域时会有些不同)(N)表示OSPF区域是否为Nssa区域,1表示该区域为Nssa区域,0表示为非Nssa区域;
router priority:表示路由的优先级;
router dead interval:表示路由老化时间,一般为4倍的hello时间,超过40秒没有收到邻居发送的hello包,则认为邻居消失;
designed router:表示DR,0.0.0.0表示为空;
backup designed router:表示BDR,0.0.0.0表示为空。
当接口发现邻居时,hello报文会增加一个active router的信息,表示邻居路由ID,同,通过hello报文选举DR,BDR,如下图:
DD报文:
DD报文主要用于选举主从路由器,并发送LSA摘要。
用于选举的DD报文:
OSPF报问头部不再叙述,其DD报文里的要素依次为:
interface MTU:表示发送接口的MTU值,两个接口的这个值要相等,华为默认为0,不考虑MTU值;
options:同hello报文内options含义相同;
DB Description:用于选举主从路由器,其中:
(I)为1表示,该报文用于选择主从路由,为0表示不用于选举;
(M)为1表示数据未发送完,还有后续报文,为0表示没有后续报文;
(MS)为1表示该路由为主路由,为0表示该路由为从路由;
DD Sequence:校验值,用于进行隐式确认。
在选举完主从路由器后,从路由会发送包含LSA摘要的DD报文。如下图:
此时,DB Description中的各参数均为0,同时将本路由的LSA摘要(在最底部)放入DD报文中,用于邻居进行LSA的对比更新。
LSR报文:
用于请求LSA的详细信息,意思是告诉对方,我没有的Lsa条目如下,你需要给我发过来。具体报文如下图:
OSPF报头各要素和其他报文一致,LSR报文内各要素分别为:
LS Type:表示LSA的类型;
Link state ID:表示网络编号。
advertising router:表示产生该LSA条目的路由Id。
LSU报文:
当收到LSR请求报文后,路由器会通过LSU报文将LSA的详细条目进行发送。
方框内包含了LSA的详细信息,分别是类型(type)、网络号(ID)、掩码(data)、度量值(metric)。
LSAck报文:
当路由将Lsdb数据库更新完毕后,会发送LSAck报文进行通告。