OSPF状态机与数据包及链路状态通告LSA联系

状态机

  • Down:这是一个邻居会话的初始状态,一旦发出hello包将进入下一个状态

  • init:收到来自邻居路由器的hello包,但是双向通讯仍然没有建立。

  • 2-way:表明本地路由器已经在来自邻居路由器的hello包中看到了自己路由器的ID,也就意味着,一个双向通信的会话成功建立。

  • 匹配条件
    点到点网络直接进入下一个状态,
    MA网络先选DR/BDR:非DR/BDR间不能进入下一状态

  • Exstart:在这一状态下,本地路由器和他的邻居将建立主/从关系,并确定数据库描述包的序列号,以便为数据库描述包的信息交互做准备。

    主从选举DBD不包含LSA信息;主从选举规则:最大的 router-id,主用于控制 LSA 交互(交互的速度等)保证双方没有进行确认。

  • Exchange:在这一状态,本地路由器将向他的邻居路由器发送可以描述它整个链路状态数据库信息的数据库描述数据包(DBD)。同时,在这个状态下,本地路由器也会发送LSR给它的邻居路由器,用来请求最新的LSA。

    主从选举完成,发送LSA头部信息进入同时进行隐形确认,使用正真的DBD包共享数据目录,需要ACK确认。

  • loading:在这一状态下,本地路由器将会向它的邻居路由发送LSR,用来请求最新的LSA通告,虽然在exchange状态已经发现了这些最新的LSA通告,但是本地路由器还没有收到这些LSA通告。

    对链路状态数据库和收到的DBD的lsa头部进行比较,发现自己数据库中没有的LSA就会发送LSR,向邻居请求LSA;邻居收到LSR之后,回应LSU;收到邻居发来的LSU,储存到自己的链路状态数据库,发送LSack确认。

  • Full:在这一状态下,邻居路由器之间将建立起完全的邻接关系

    对端邻居,产生的请求列表和重传列表都清空,意味着LSDB同步完成

结论

1. 在点到点网络中,肯定存在1类LSA,是否存在其他LSA得看实际情况。若在建立邻居时,邻居已经建立过邻居那么邻居数据库中有几类LSA就发几类LSA。
2. 在MA网络中,一定存在1类LSA,若存在DR必定有2类LSA。是否存在其他LSA得看实际情况。若在建立邻居时,邻居已经建立过邻居那么邻居数据库中有几类LSA就发几类LSA。
3. 1类LSA为路由器LSA,所有路由器产生,OSPF区域内的所有路由器都会有的LSA,可以判断在所有的状态机都有其参与 2类LSA为网络LSA,此类LSA只会在MA/NBMA网络中并且选举到DR之后才会出现,可以判断,该LSA会出现在选举到DR之后的2-way 状态 3类LSA为网络汇总LSA,宣告者是BDR,也就意味着这条LSA会出现在选举到BDR的2-way状态中 4类LSA是ASBR汇总LSA,通告者是ABR,该条LSA会出现在更新数据库信息的状态中即exchange、loading和full状态中 5类LSA是自制系统外部LSA,通告者是ASBR,该条LSA会出现在更新数据库信息的状态中即exchange、loading和full状态中 7类LSA是NSSA外部LSA,通告者是ASBR ,是在非纯末梢区域的5类LSA,该条LSA会出现在更新数据库信息的状态中即exchange、 loading和full状态中

OSPF DBD 报文格式

两台路由器在邻接关系初始化时,用BDB报文来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA头部就可以判断出是否已有这条LSA。在两台路由器交换机DBD报文的过程中,一台为master,另一台为slave。由master规定起始序列号,没发送一个DBD报文序列号加1,slave方使用master的序列号作为确认

BDB报文格式

OSPF状态机与数据包及链路状态通告LSA联系_第1张图片

字段 长度 含义
interface MTU 16比特 在不分片的情况下,此接口最大可发出的ip报文长度
options 8比特 可选项:E:允许Flood AS-External-LSAs;MC:转发IP组播报文;N/P:处理Type-7 LSAs;DC:处理按需链路。
I 1比特 当发送连续多个dbd报文时,如果这是第一个dbd报文,则置1,否则置为0.
M(more) 1比特 当发送连续多个DBD报文时,如果这是最后一个DBD报文,则置为0。否则置为1,表示后面还有其他的DBD报文。
M/S(master/slave) 1比特 当两台OSPF路由器交换DBD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number 32比特 DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSA Headers 可变 该DD报文中所包含的LSA的头部信息。

常见的六种LSA

常用的LSA共有6中:Router-LSA、Network-LSA、Summary-LSA、ASBR-Summary-LSA、和
External-LSA、NSSA-LSA

所有的LSA都有相同的报文头
OSPF状态机与数据包及链路状态通告LSA联系_第2张图片

字段 长度 含义
LS age 16比特 LSA产生后所经过的时间,以秒为单位。无论LSA是在链路上传送,还是保存在LSDB中,其值都会在不停的增长。
Options 8比特 可选项:E:允许泛洪AS-External-LSA;MC:转发IP组播报文;N/P:处理Type-7 LSA;DC:处理按需链路。
LS type 8比特 LSA的类型:Type1:Router-LSA Type2:Network-LSA Type3:Network-summary-LSA Type4:ASBR-summary-LSA Type5:AS-External-LSA Type7:NSSA-LSA
Link State ID 32比特 与LSA中的LS Type和LSA description一起在路由域中描述一个LSA。
Advertising Router 32比特 产生此LSA的路由器的Router ID。
LS sequence number 32比特 LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
LS checksum 16比特 除了LS age外其它各域的校验和。
length 16比特 LSA的总长度,包括LSA Header,以字节为单位

你可能感兴趣的:(CCIE)