OSPF -1

开放式最短路径优先协议
开放式最短路径优先协议(open shortest path first ,OSPF)是一个链路状态协议。它使用SPF算法且是开放的。开放是指不属于任何组织。
像所有的链路状态协议一样,OSPF协议相比于距离矢量协议最大的有点就是它的快速收敛,这让OSPF协议可以支持更大型的网络,而且不容易受到有害路由选择信息的影响。
OSPF的其它特性:

  • 使用了区域的概念,这样可以有效的降低路由选择协议对路由器CPU和内存的占用,划分区域还可以减少路由协议的通信量。
  • 完全无类别路由协议。
  • 支持VLSM和CIDR技术。
  • 度量值无大小限制。
  • 支持等价负载均衡。
  • 使用组播地址更新。
  • 支持认证。
  • 使用可以跟踪外部路由的路由标记
    OSPF的基本原理与实现
    OSPF的工作过程:
    1.宣告OSPF的路由器从所有启动OSPF协议的接口上发送Hello数据包,如果2台路由器共享一条公共的数据链路,并且能够相互协商它们各自hello数据包中指定的某些参数,那么它们就成为邻居(neighbor)。
    2.邻接(adjacency)关系可以想象为一条点到点的虚链路。它是在一些邻居路由器之间形成的。OSPF定义了一些网络类型和一些路由器类型的邻接关系。邻接关系的建立是由交换Hello信息的路由器类型和交换hello信息的网络类型决定的。
    3.每一台路由器都会在形成邻接关系的邻居路由器之间发送链路状态通告(link state advertisement , LSA)。LSA描述了路由器的所有链路、接口、路由器的邻居以及链路状态信息。这些链路可以是到一个末梢网络的链路,可以是到其它OSPF路由器的链路,到其它区域网络的链路,或是到外部网络的链路。由于这些链路信息的多样性,OSPF定义了多种LSA类型。
    4.每一台接收到邻居LSA的路由器都会将LSA记录到自己的链路数据库中,并且该路由器会将LSA的拷贝发送给自己的所有邻居路由器。
    5.LSA通过洪泛扩散,使整个区域中每台路由器的链路状态数据库完全一致。
    6.当这些路由器的链路状态数据库一致时,每台路由器都会以自己为根,使用SPF算法计算出一个无环路的拓扑图,以描述它所知道的到达每个目的地的最短路径(最小路经代价)。这个无环拓扑就是SPF算法树。
    7.每一台路由器都将从自己的SPF算法树中构建自己的路由表。
    当所有的链路状态信息洪泛到区域的内的所有路由器上,并且邻居检验它们的数据库也相同(数据库同步),从而成功创建路由表时(收敛完成)。OSPF就会变成一个“安静”的协议。邻居之间通过每10s一次的hello包保活,并且每30min重传一次LSA(更新 MAX-AGE),如果网络拓扑稳定,那么网络中将不会再有其它的活动。
    邻居和邻接关系:
    在发送任何的LSA之前,OSPF路由器都必须先发现它们的邻居路由器,并建立邻接关系。路由器会将它的邻居路由器连同每一台邻居路由器所在的链路(接口)和维护邻居路由器的一些必要的消息和其它信息都被记录在一个邻居表中。
    在这里插入图片描述
    一台OSPF路由器对其它OSPF路由器的跟踪是通过每一台路由器提供的路由器ID完成的。
    路由器ID在OSPF区域内唯一的标识一台路由器。Cisco路由器通过以下方法获得自己的路由器ID:
    1.管理员通过router-id 命令手动配置。
    2.路由器从本地的配置的Loopback接口IP中选择最大的IP作为自己的路由器ID。
    3.路由器从自己的物理接口IP中选择一个最大的IP作为自己的路由器ID。注意,IP作为路由器ID的接口不一定要运行OSPF。
    手工配置最优先,物理接口IP最后。

Hello协议
Hello协议的作用如下:

  • 发现邻居并建立邻居关系

  • 在邻居之间担任keepalive角色

  • 宣告本地路由和邻居路由器之间必须相互认可的参数

  • 确保邻居之间的双向通信

  • 在广播网络和NBMA中指定DR和BDR
    宣告OSPF的路由器周期的从启动OSPF协议的每一个接口发送hello数据包,该周期性的时间段称为hello时间间隔,它的配置是基于OSPF的每一个接口的,在CISCO路由器中对于广播型网络的缺省时间为10s,NBMA网络的缺省时间为30s.

     #ip ospf hello- interval 用于修改hello时间间隔
    

如果路由器在一个称为路由器无效时间间隔的时间段内没有收到邻居的hello包,那么它将宣告它的邻居路由器无效。在cisco路由器中,无效时间间隔的默认是hello时间的4倍。

 	ip ospf dead - interval 修改无效时间间隔(修改hello时间dead时间也会乘4的改变,
 	改变dead时间,hello时间不变)

每一个hello数据包都包含如下信息:

  • 始发路由器的路由器ID
  • 始发路由器的接口区域ID
  • 始发路由器的接口掩码
  • 始发路由器的认证类型和认证内容
  • 始发路由器的hello时间和dead时间
  • 路由器优先级
  • DR和BDR
  • 标识可选性的5个标记位
  • 始发路由器的所有有效邻居的路由器ID。有效邻居指的是,在路由器无效时间间隔内能收到邻居hello数据包的邻居路由器。
    当一台路由器从它邻居路由器处收到hello数据包时,它会检测其中的Reter ID、AREA id、hello 时间、dead 时间、认证类型及内容、网络掩码以及可选项的数值这些参数是否匹配。如果它们不匹配,那么该数据包将被丢弃,而且邻居关系无法建立。
    如果所有的参数都匹配,那么这个Hello数据包就是有效的。而且,如果始发路由器的router-id 已经在本地的邻居表中(两台路由器已经是邻居关系)。那么路由器无效时间间隔就会被重置。如果始发路由器的router -id 还未添加到本地邻居表中,就把始发路由器的router - id 添加到邻居表中。
    无论何时,路由器发送一个hello数据包时,都会在这个数据包中列出传送该数据包的链路上所出现的所有邻居路由器ID。一台路由器收到一个有效hello数据包,并在hello数据包中发现有自己的router- id ,那么这台路由器就认为双向通信建立成功(进入2-way状态)。

网络类型:
OSPF协议定义了5中网络类型:
1.点到点网络:
该网络类型包括T1、DS-3、SONET链路。只连接一对路由器。点到点网络上有效的邻居总是能形成邻接关系。在这些网络中的数据包的目的地址为224.0.0.5。
2.广播网络:
如以太网、令牌环等链路的网络,也可以确切的定义为广播型多址网络,以便于区别NBMA。广播型的网络是多址的,因而它们可以连接多于2台的设备。而且由于它们是广播型的,所以连接在这种网络上的所有设备都可以接收到个别传送的数据包。
在广播型网络中,会选取一台指定路由器(DR)和一台备份指定路由器(BDR)。DR和BDR的所有数据包以及其它DRother路由器的Hello数据包都是利用保留组播224.0.0.5发送,而且数据帧的目的介质访问控制地址(MAC地址)是0100.5E00.0005.而DRother路由器的更新数据包等都以224.0.0.6为目的发送,使用的介质访问控制地址(MAC地址)位0100.5E00.0006。
3.非广播多路访问(NBMA):
NBMA 网络向X.25、帧中继、ATM等,可以连接2台以上的路由器但没有广播的能力。一台在NBMA网络上的路由器发送一个HELLO包将不能其它被与之相连的路由收到。因此,在这些网络上的路由器有必要增加另外的配置来获取它们的邻居。NBMA网络上的OSPF路由器需要选取DR和BDR。并且所有的OSPF数据包都是单播。
4.点到多点:
点到多点网络是NBMA的一个特殊配置。可以看作是一群点到点的集合。这些网络上不需要DR和BDR。OSPF数据包以单播方式发给每个已知邻居。
5.虚链路网络:
它被路由器认为是一个没有编号的点到点网络的一种特殊配置。在虚链路上的OSPF以单播发送。
所有的网络都可以归为下面两种简单的网络模式:
1.传送网络
与两台或两台以上路由器相连。这种网络传送“只需仅仅通过”的数据。这些数据的始发网络和目的网络都不同于当前网络。
2.末梢网络
只与一台路由器相连。数据包的源地址或目的地址属于这个网络。末梢网络中的所有数据包,要么起源于该网络中的某台设备,要么终止于该网络的某台设备。OSPF在末梢网络上通告的是主机地址,即/32位的。Loopback接口也可认为是末梢网络,当主机宣告。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值