当前位置:文档之家› SPF路由协议综述

SPF路由协议综述

OSPF路由协议综述

OSPF是链路状态路由协议(link-state routing protocol),属于内部网关路由协议。

链路状态路由协议具有以下基本特征:

1.对网络发生的变化能够快速响应(快速响应网络变化)。

2.当网络发生变化的时候发送触发式更新(triggered update)(被动更新链路状态)。

3.发送周期性更新(链路状态刷新),间隔时间为30分钟(定时主动更新链路状态)。

OSPF工作原理介绍

链路状态路由协议只在网络拓扑发生变化以后产生路由更新.当链路状态发生变化时候,检测到变化的设备创建LSA(link state advertisement),通过使用组播地址传送给所有的邻居设备,然后每个设备拷贝一份LSA,更新它自己的链路状态数据库(link state database,LSDB),接着再转发LSA给其他的邻居设备。这种LSA的洪泛(flooding)保证了所有的路由设备在更新自己的路由表之前更新它自己的LSDB。最总利用SPF算法根据LSDB得到路由表。

工作原理总结:

链路变化--→检测到变化的设备创建LSA(link state advertisement)----→组播传送给所有邻居设备---→邻居收到LSA拷贝一份用来更新自己本地的链路状态数据库LSDB(link state database),然后转发LSA给其他邻居设备-→整个网络LSDB的同步更新LSDB ---→ SPF算法(shortest path firth)---→到达目的网络的最佳路径---→ SPF Tree ----→选出最佳路径----→加入路由表

OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域” (Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。

OSPF的网络设计要求是双层层次化(2-layer hierarchy),包括如下2层:

1. transit area(backbone或area 0)

2. regular areas(non-backbone areas)

transit area负责的主要功能是IP包快速和有效的传输。transit area互联OSPF其他区域类型,一般这个区域里不会出现端用户(end user)。

regular areas负责的主要功能就是连接用户和资源。这种区域一般是根据功能和地理位置来划分,一般一个regular area不允许其他区域的流量通过它到达另外一个区域。regular area 之间的数据必须穿越transit area。

注意:area 1和area 2或3之间的连接是不允许的,它们都必须通过backbone area 0进行连接.Cisco建议每个区域中路由器的数量为50到100个。构建area 0的路由器称为骨干路由器(backbone router,BR),如上图,A和B就是BR;区域边界路由器(area border router,ABR)连接area 0和nonbackbone areas.如图,C,D和E就是ABR.ABR通常具有以下特征:

1.分隔LSA洪泛的区域

2.是区域地址汇总的主要因素

3.一般做为默认路由的源头

4.为每个区域保持LSDB

理想的设计是使每个ABR只连接2个区域,backbone和其他区域,3个区域为上限。

OSPF Calculation

链路状态路由协议使用Dijkstra算法(典型的SPF算法)来查找到达目标网络中的最佳路径.所有的路由器拥有相同的LSDB后,把自己放进SPF tree中的root里,然后根据每条链路的耗费(cost),选出耗费最低的做为最佳路径,最后把最佳路径放进forwarding database(路由表)里,形成路由表。

下图就是一个SPF计算的例子:

1.LSA遵循split horizon原则,H对E宣告它的存在,E把H的宣告和它自己的宣告再传给C和G;C和G再和之前类似,继续传播开来……

2.X有4个邻居:A,B,C和D,假设这里都是以太网,每条网链路的耗费为10,经过计算,路由器可以算出最佳路径.上图的右半部分实线所标即为最佳路径

LSA Options

关于LSA的操作流程图如下:

Types of OSPF Packets

OSPF包的五种类型如下:

1.hello:用来建立邻居关系的包

2.database description(DBD):用来检验路由器之间数据库的同步

3.link state request(LSR):链路状态请求包

4.link state update(LSU):特定链路之间的请求记录

5.link state acknowledgement(LSAck):确认包

OSPF Packet Header Format

五种OSPF包都是直接被封装在IP包里的而不使用TCP或UDP.由于没有使用可靠的TCP协议,但是OSPF包又要求可靠的传输,所以就有了LSAck包.如下图所示就是OSPF包在IP包里的形式:

Data字段解释:

1. 对于hello包来说,该字段是已知邻居的列表;

2. 对于DBD包来说,该字段包含的是LSDB的汇总信息,包括RID等等;

3. 对于LSR包来说,该字段包含的是需要的LSU类型和需要的LSU类型的RID;

4. 对于LSU包来说,包含的是完全的LSA条目,多个LSA条目可以装在一个包里;

5. 对于LSAck来说,字段为空。

相关主题