ospf的操作:
第一步.起了ospf的路由器由它起了ospf的接口向外发hello包。假如两个路由器共享同一数据链路,并且hello包中指定参数达成一致,他们就会形成邻居。
第二步.邻接关系,可以穿越虚拟的点对点链路形成邻居。ospf定义了几种网络类型和路由器类型。邻居关系的建立取决于hello包在什么类型的路由器之间交换和hello包在什么网络类型里交换。
第三步.每个路由器向所有的邻居发LSA(链路状态通告)。LSA描述所有的路由器的链路或者接口和链路的状态。这些链路可以是末节网络(
没有和其他路由器相连的网络),其他的ospf路由器,其他区域中的网络,或者对外部网络(从其他路由进程中学到的网络)。因为有不同种类的的链路状态信息,OSPF定义了多种LSA类型。
第四步.每个路由器收到从一个邻居发来的LSA的记录,保存到自己的LSDB(链路状态数据库),并把LSA的一份复制发给他其他的邻居。
第五步.通过在一个区域中泛洪LSA,所有路由器讲建立同样的LSDB。
第六步.数据库同步之后,每个路由器都是用spf算法计算出以自己为根的无环的到每个已知的目的地的最短路径的表格。这个表格也叫最短路径优先树。
第七步.每个路由器通过SPF树建立自己的路由表。
$Hello协议
hello协议的几个目的:
+发现邻居。
+在两台路由器形成邻居之前公告出几个参数。
+hello包可以保持邻居之间的邻接关系(keepalive)。
+它保证邻居之间的双向通讯。
+它在广播和NBMA网络中选举DR和BDR。
起了ospf的路由器周期性地通过起了ospf的接口外发送hello包。这个发送周期叫做HelloInterval,cisco使用的默认hello间隔是10秒,在nbma网络中是30秒,这个值可以在接口下的ip ospf hello-intervall来更改.路由器在一定的时间内收不到hello包就认为邻居丢失了,这个时间间隔叫做RouterDeadInterval.
每个hello包中都包含以下的信息:
+发hello包的路由器的router-id。
+发hello包的路由器的area-id。
+发hello包的接口的地址和掩码。
+发hello包的接口的认证类型和认证信息。
+发hello包的接口的hello间隔。
+发hello包的接口的dead间隔。
+路由器的优先级。
+DR和BDR。
+5个flag位的标记选项。
+发hello包的路由器的邻居的router-id。这个列表仅包括还在死亡间隔之内的路由器。
网络类型
OSPF defines five network types:
Point-to-point networks,所有ospf包都是单播的。
Broadcast networks,使用组播224.0.0.5-allspfroute/224.0.0.6alldrrouter
Non-broadcast Multi-access (NBMA) networks,所有ospf包都是单播的。
Point-to-multipoint networks,使用组播224.0.0.5-allspfroute/224.0.0.6alldrrouter。
Virtual links,所有ospf包都是单播的
新闻热点
疑难解答