当前位置: 移动技术网 > 科技>软件教程>网络通讯 > 路由基础知识 OSPF路由协议详细介绍

路由基础知识 OSPF路由协议详细介绍

2010年09月07日  | 移动技术网科技  | 我要评论
路由基础知识 OSPF路由协议详细介绍

本篇文档针对一些对ospf路由协议有一定的感性认识的技术人员,提供一些基于ospf报文格式的介绍,来达到了解ospf路由协议的特性和特有的一些概念的了解。

一.ospf的特性:

快速收敛;

能够适应大型网络;

能够正确处理错误路由信息;

使用区域,能够减少单个路由器的cpu负担,构成结构化的网络;

支持无类路由,完全支持超网,可变长子网等无类特性;

支持多条路径负载均衡;

使用组播地址来进行信息互通,减少了非ospf路由器的负载;

使用路由标签来表示来自外部区域的路由。

二.neighbor和adjacency的定义:

neighbor:

在网络中,ospf路由器可以发送hello报文来进行邻居寻找,当hello报文中的几个字段的内容是互相一致的时候,相邻的ospf路由器就会形成neighbor关系。

neighbor是保存在neighbor表里,需要有router id和ip地址信息。

router id的确定:

1. 选择ip地址最大的loopback接口的ip地址为router id;如果只有一个loopback接口,那么router id就是这个loopback的地址。

2. 如果没有loopback接口,就选择ip地址最大的物理接口的ip地址为router id,但是作为router id的物理接口,就不能运行ospf,也就是说这个接口无法发送接受ospf报文。

使用loopback的ip地址作为router id的好处:

a. loopback接口是逻辑接口,永远不会down,有利于ospf的稳定运行;

b. 便于控制ospf路由器的router id。

hello协议的特点:

1. 目的:

a. 用来发现ospf neighbor;

b. hello报文包含了多个需要ospf路由器协商的参数,以形成neighbor的关系;

c. 他可以用来维持邻居之间链接的存活;

d. 用来确定dr,bdr路由器的选择。

2. 报文内容:

a. router id

b. area id

c. ip地址和掩码

d. 认证方式和认证信息

e. hello interval和dead interval

f. router优先权

g. dr和bdr的router id

h. 五个字节的特性控制信息

i. 距上次hello报文后,在dead interval中,路由器的neighbor的router id列表

每个ospf路由器收到收到hello报文,将会协商上述信息,是否符合,如果不符合,hello报文会遭到丢弃。

并且当一个路由器收到一个hello报文,其中neighbor router id list里有它的router id时,就会进入2-way模式,一旦进入2-way模式,就会建立adjacency。

3. dr和bdr使用224.0.0.5(allspfrouter address)发送hello packet,而收到报文的路由器以224.0.0.6(alldrrouter address)发送确认报文,表示收到了hello packet。

4. point-to-multipoint:相当与多个点对点网络的集合,但是不会产生dr,bdr的选举,通过组播报文发送路由信息报文。

5. 只有nbma网络和采用虚拟链路的网络发送的是单播报文。

6. stub network:只有一个出口连接到路由器的网络,通常产生的报文的原地址和目的地址都是本网络中。

dr和bdr的选择,特性:

1. dr和bdr是接口的特性,和路由器本身无关。

2. dr和bdr和multiaccess网络中其他的路由器形成adjancency,但他们之间没有形成adjancency。

3. 每个接口上都会有优先级,如果优先级为0时,表示不参加选择dr,bdr。

adjacency:

是在ospf neighbor之间形成的虚拟的连接,这些连接有不同的性质,根据路由器连接的不同网络类型。

形成adjacency的步骤:

1. 邻居发现

2. 双向通信

3. 数据库同步

为了使路由器能够实现数据库的一致和同步,通过交换dd,lsr,lsu报文来达到数据库同步的目的。

4. 完全形成连接

master和slave的关系和选择

在exstart状态下,邻居之间进行协商,以决定由哪个路由器来控制database sychronization。

neighbor表项的数据结构:

neighbor表项中的信息是通过路由器从hello报文中学到的,关于邻居的一些信息。

1. neighbor id

2. neighbor ip address

3. area id

4. interface

5. neighbor priority

6. state

7. pollinterval

这是用于nbma网络的一个概念,由于nbma网络无法用组播来发送报文,也就是说无法自动发现邻居,如果当neighbor处于down的状态时候,hello报文每隔一个pollinterval时间就会发送一次,来发现和维护邻居关系。

8. neighbor option

9. inactivity time

10. dr

11. bdr

12. master/slave

13. dd sequence number

14. last received database description packet

15. lik state retransmission list

是指已经发送出去的lsa,但是还没有收到acknowledge的报文,如果超过rxmtinterval还没有收到,就会进行重传。

16. database summary list

在database synchronization时,所发送的lsa的表单。

17. link state request list

是指最新收到的在database description报文中所带的lsa清单,路由器会发送lsr到neighbor要最新的lsa,收到lsu后,会把list里的相应条目删掉。

三.neighbor状态机制

1. down

没有收到任何hello报文的时候,或是在deadinterval中,没有收到hello报文

2. attempt

只有在nbma网络里才有,手工进行neighbor的指定。

3. init

收到了hello报文

4. 2-way

当路由器看到自己的router id在邻居发来的hello报文里;在广播网络里,dr和bdr开始被选举。

5. exstart

决定master/slave关系,以初始化dd 报文序列号来交换database description报文

6. exchange

路由器开始交换dd报文的过程

7. loading

发送lsr报文已处在loading状态的报文,请求最新的通过exchange dd报文发现的未收到的lsa

8. full

完成了路由器和网络的lsa的交换

当路由器收到lsa后,会把lsa存到数据库中,然后会把收到lsa复制并从其它的ospf接口发送出去,直到整个网络区域的lsa database获得同步一致。然后每个路由器根据lsa database里的link信息进行spf运算,算出没有回路的最短路径。

四.database description报文

它是包含了路由器所有的lsa信息的报头,可以使路由器知道,neighbor上有多少lsa是自己不知道的,可以通过lsr报文来请求新的lsa。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网