欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

OSPF路由协议概念解释和特性介绍

程序员文章站 2022-06-25 15:16:00
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里的相应条目删掉。