OSPF路由协议综述及其配置(1)

ZDNet软件频道 时间:2009-12-06 作者:IT168.com | IT168.com 我要评论()
本文关键词:路由协议 OSPF 路由器
本文描述了OSPF路由协议综述及其配置。

Defining OSPF Adjacencies

运行OSPF路由器通过交换hello包和别的路由器建立邻接(adjacency)关系,过程如下:

1.路由器和别的路由器交换hello包,目标地址采用多播地址

2.hello包交换完毕,邻接关系形成

3.接下来通过交换LSA和对接收方的确认进行同步LSDB.对于OSPF路由器而言,进入完全邻接状态

4.如果需要的话,路由器转发新的LSA给其他的邻居,来保证整个区域内LSDB的完全同步

对于点到点的WAN串行连接,两个OSPF路由器通常使用HDLC或PPP来形成完全邻接状态

对于LAN连接,选举一个路由器做为designated router(DR)再选举一个做为backup designated router(BDR),所有其他的和DR以及BDR相连的路由器形成完全邻接状态而且只传输LSA给DR和BDR.DR从邻居处转发更新到另外一个邻居那里.DR的主要功能就是在一个LAN内的所有路由器拥有相同的数据库,而且把完整的数据库信息发送给新加入的路由器.路由器之间还会和LAN内的其他路由器(非DR/BDR,即DROTHERs)维持一种部分邻居关系(two-way adjacency)

OSPF的邻接一旦形成以后,会交换LSA来同步LSDB,LSA将进行可靠的洪泛

OSPF Calculation

链路状态陆游协议使用Dijkstra算法来查找到达目标网络中的最佳路径.所有的路由器拥有相同的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,经过计算,路由器可以算出最佳路径.上图的右半部分实线所标即为最佳路径

LS Data Structures: LSA Options

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

如图可以看出当路由器收到一个LSA以后,先会查看它自己的LSDB看有没有相应的条目,如果没有就加进自己的LSDB中去,并反馈LSA确认包(LSAck),接着再继续洪泛LSA,最后运行SPF算法算出新的路由表

如果当它收到LSA的时候,自己的LSDB有该条目而且版本号一样,就忽略这个LSA;如果有相应条目,但是收到的LSA的版本号更新,就加进自己的LSDB中,发回LSAck,洪泛LSA,最后用SPF计算最佳路径;如果版本号没有自己LSDB中那条新,就反馈LSU信息给发送源

Types of OSPF Packets

OSPF包的5种类型如下:

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

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

协议号为89(EIGRP协议号为8,一些字段如下:

1.Version Number:当前为OSPF版本2

2.Type:定义OSPF包的类型

3.Packet Length:包的长度,单位字节

4.Router ID(RID):产生OSPF包的源路由器

5.Area ID:定义OSPF包是从哪个area产生出来的

6.Checksum(校验和):错误校验

7.Authentication Type:验证方法,可以是明文(cleartext)密码或者是Message Digest 5(MD5)加密格式

8.Data:对于hello包来说,该字段是已知邻居的列表;对于DBD包来说,该字段包含的是LSDB的汇总信息,包括RID等等;对于LSR包来说,该字段包含的是需要的LSU类型和需要的LSU类型的RID;对于LSU包来说,包含的是完全的LSA条目,多个LSA条目可以装在一个包里;对于LSAck来说,字段为空

OSPF Neighbor Adjacency Establishment

Hello协议用来建立和保持OSPF邻居关系,采用多播地址224.0.0.5,hello包包含的信息如下:

1.Router ID(RID):路由器的32位长的一个唯一标识符,选举规则是,如果loopback接口不存在的话,就选物理接口中IP地址等级最高的那个;否则就选取loopback接口

2.hello/dead intervals:定义了发送hello包频率(默认在一个多路访问网络中间隔为10秒);dead间隔是4倍于hello包间隔.邻居路由器之间的这些计时器必须设置成一样

3.neighbors:邻居列表

4.area ID:为了能够通信,OSPF路由器的接口必须属于同一网段中的同一区域(area),即共享子网以及子网掩码信息

5.router priority:优先级,选举DR和BDR的时候使用.8位长的一串数字

6.DR/BDR IP address:DR/BDR的IP地址信息

7.authentication password:如果启用了验证,邻居路由器之间必须交换相同的密码信息.此项可选

8.stub area flag:stub area是通过使用默认路由代替路由更新的一种技术(有点像EIGRP中的stub功能)


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134