OSPF

melody0812   2016-8-24

ospf hello包格式如下图所示:

Hello报文中记住以下信息:

1.始发路由器的RID;
2.始发路由器的AreaID;
3.认证类型和认证信息;
4.互联接口的掩码;
5.Hello间隔和死亡时间;
6.路由器的优先级;
7.Options字段(区域类型是在这个字段中被标记的)

邻居起不来的原因:

1.两台路由器的RID相同;
2.两台路由器的AreaID不同;
3.两台路由器的Area类型不同;
4.认证信息要一致;
5.Hello Interval,Dead Interval要一致;
6.点到点线路如果掩码不一致是可以起来邻居关系的,MA网络不一致邻居关系起不来。

邻接关系的建立

1.Down;
2.Init;
3.2-way;
4.ExStart;
5.Exchange;
6.Loading;
7.Full。

我们来看下一DBD报文格式:

ExStart会确定主从关系,谁的RID高谁就是Master,Master决定了DBD数据包的序列号。如果协商不好,则会卡在这个阶段。我们看一下DBD数据包包含哪些重要的信息:

I初始位;M更多位;MS主从位。注意此时接口的MTU值包含在DBD报文

DBD报文中是如何对LSA进行描述的呢,我们LSA Header的信息:

总共有三点标识一条LSA:

1.LSA类型;
2.链路状态ID;
3.通告路由器。

对于一台路由器可能会收到同一个LSA的多个拷贝,此时路由器就会比较Sequence Number字段,越大越优先。相同,则比较校验和,越大越优先。然后再比较年龄,越大越优先,当老化时间小于15min,此时则认为两份LSA相同。
1.最大的序列号;
2.最大的无符号校验和;
3.最大的老化时间。(由3600s减小到0)

LSA序列号:
序列号范围从:0x80000001-0x7FFFFFFF。
第一个:
0x80000001
0x80000002
。。。
0xFFFFFFFFF
0x00000001
。。。
0x7FFFFFFFF

当一条LAS的序列号到达最大序列号,始发路由器发送一个生存时间为最大值得LSA,让其他路由器从LSDB中清除这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。

LSA条目的老化时间为1小时,ospf每隔30minflood一次LSA来维持LSDB的同步。

当路由器收到邻居发送的DBD包后,此时路由器发现自己LSDB中没有这条LSA,就会向对方发送LSR数据包,已请求完整的LSA。

我们看一下LSR的数据包格式:

注意DBD包仅限于在建立邻接关系的时候会传输,当临街关系建立完毕,此后如果有网络拓扑发生改变,此时路由器就会主动发送LSU,并向邻居泛洪。

LSA数据包格式:

DR/BDR的选举:

路由器能参与DR、BDR的选举必须要满足一个条件:路由器的接口优先级不能为0(范围:0~255,优先级为0的时候不具有资格)

当一个接口在MA网络上有效时,它将它的DB和BDR地址设置为0.0.0.0.同时将等待计时器(wait timer)设置为路由器无效时间间隔(RouterDeadInterval)。

开始选举的时候,具有选举资格的路由器首先在建立三个集合,分别是:DR{}、BDR{}、DRothers{}

此时由于所有路由器都没有宣称自己是DR或者DBR,此时只有DRothers{}集合里有包含所有具有选举资格的路由器。

此时DRothers{}集合中路由器都宣告自己是DBR,选举具有最高优先级的邻居路由器被选举为BDR,优先级相同的条件下,具有最高RID的邻居路由器被选做BDR路由器。此时没有DR,则BDR会晋升为DR。

如果在一个MA网络中发现有多台具有选举资格的路由器宣称自己是DR、BDR,那么则具有最高路由优先级的路由器被选举为DR、BDR,优先级相同,具有最高优先级的路由器成为DR、BDR。

224.0.0.6(DR、BDR在这个组内)224.0.0.5(DRothers在这个组内)

LSA类型

Type1:Router LSA(路由器LSA)

路由器LSA是最基本的LSA通告累出了路由器所有的链路和接口,并指明了它们状态和沿每条链路方向出站的代价。

Type2:Network LSA(网络LSA)

每一个多路访问网络中的DR将会产生网络LSA通告,用来描述一个多路访问网络和与之相连的所有路由器。注意和路由器LSA不同,网络LSA中没有度量字段,因为从LSA中表示的伪节点到任何相连的路由器的代价永远为0。

Type3:Network Summary LSA(网络汇总LSA)

由本区域的ABR产生,告诉在与之相连的区域内的内部路由器它所能到达的目的路由。

Type4:ASBR Summary LSA(ASBR 汇总LSA)

本区域的ABR产生,所通告的LSA目的地是一台ASBR路由器,而不是一个网络。注意:通告的还有到达ASBR路由器的cost值。

Type5:Auto Sys Exter LSA(自主系统外部LSA)

始发于ASBR路由器,用来通告到达OSPF自主系统外部的目的。

OSPF特殊区域

1.Stub(完全末梢区域)

通过阻塞5类和4类LSA传播到一个区域的方法来节省内存

Stub区域的路由器发送的Hello包中E-bit置0;
Stub区域内不能有ASBR路由器;

2.Totally Stub(完全末梢区域)

不仅阻塞5类和4类LSA,也阻塞掉所有汇总LSA,除了通告缺省路由的那一条类型3的LSA。

3.NSSA(非纯末梢区域)

允许外部路由通告到OSPF自主系统内部,而同时保留自主系统其余部分的末梢区域特性。

NSSA外部LSA在它的头部有一个称为P-bit位的标志。NSSA ASBR路由器可以设置或清除这个P-bit位。如果一台NSSA ABR路由器收到P-bit设置为1的类型7的LSA的数据包,那么它将这条7类的LSA转换成5类的LSA。如果P位被设置0,那么将不会转换这条7类的LSA,那么这条7类的LSA携带的目的地址也不能通告到这个NSSA区域的外部。

 

posted @ 2016-08-24 20:37  melody0812  阅读(334)  评论(0编辑  收藏  举报