OSPF(开放式最短路径优先协议)

目录

  • OSPF介绍
  • 工作原理
  • OSPF特性
  • OSPF报文类型
  • OSPF的划分区域
  • 邻居和邻接关系的建立
  • Router ID介绍
  • DR与BDR选取
  • 最短路径优先算法(SPF)
  • OSPF相关配置

OSPF介绍

OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。这里路由域是指一个自治系统(AS),它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
Ip头协议字段——88eigrp 89ospf

工作原理

  1. 路由器之间相互发送hello包,建立邻居关系
  2. 然后发送LSA(链路状态通告,包含了路由器已知的接口IP地址,掩码,开销和网络类型等信息),告诉邻居自己相连链路的状态。
  3. 收到LSA的路由器根据LSA建立自己的链路状态数据库(LSDB),形成拓扑表。
  4. 在拓扑表的基础上运行SPF算法,选出到达目标网络的最优路由,并加入到路由表中。

OSPF特性

  1. 可适应大规模网络
  2. 收敛速度快
  3. 无路由环路
  4. 支持VLSM和CIDR(无类别域间路由)
  5. 支持等价路由
  6. 支持区域划分
  7. 提供路由分级管理
  8. 支持简单口令和MD5认证
  9. 以组播方式发送协议报文(224.0.0.5 224.0.0.6)
    224.0.0.6指代一个多路访问网络中DR和BDR的组播接收地址,
    224.0.0.5指代在任意网络中所有运行OSPF进程的接口都属于该组,于是接收所有224.0.0.5的组播数据包。
  10. 管理距离为110
  11. 采用cost作为度量标准
  12. 维护邻居表、拓扑表和路由表

OSPF报文类型

OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。

  1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。
  2. DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
  3. LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。
  4. LSU报文:用来向对端路由器収送所需要的LSA。
  5. LSACK报文:用来对接收到的LSU报文进行确认。

OSPF的划分区域

OSPF(开放式最短路径优先协议)_第1张图片如图所示:OSPF和EIGRP分别为一个自治系统。其中:
Area0为骨干区域,为了避免区域间环路,非骨干区域之间不允许直接相互发布路由信息。因此每个区域必须连接到骨干区域。
AB为主干路由器(BR)
EF为区域边界路由器(ABR)
GH为常规路由器
C为自治系统边界路由器(ASBR)
划分区域的好处:
1、减少路由表的路由条目
2、拓朴发生改变时,只影响本区域的数据库
3、每隔30分钟泛数据库信息(周期和触发更新),划分区域后,只在本区域泛洪
4、网络设计灵活

邻居和邻接关系的建立

OSPF(开放式最短路径优先协议)_第2张图片1.Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
2. Attempt:此状态只在NBMA(非广播多路访问网络)网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval 。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为 Down状态。
3. Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未和邻居建立双向通信关系 。
4. 2-Way:在此状态下,双向通信已经建立,但是没有和邻居建立邻 接关系。这是建立邻接关系以前的最高级状态。
5. ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的 ,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。
6. Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD 报文,描述本地LSDB的内容。
7. Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。
8. Full:路由器的LSDB已经同步
邻居和邻接的解释
邻居(Neighbor): OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现邻居。收到Hello报文的OSPF路由器会检查报文中所定义的一些参数, 如果双方的参数一致,就会彼此形成邻居关系。
邻接(Adjacency): 形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。 只有当双方成功交换DD报文,并能交换LSA之后,才形成真正意义上的邻接关系

Router ID介绍

Router ID是一个32位的值,它唯一标识了一个自治系统内的路由器,可以为每台运行OSPF的路由器上可以手动配置一个Router ID,或者指定 一个IP地址作为Router ID。如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为Router ID;如果没有配置逻辑接口, 则路由器使用物理接口的最大IP地址作为Router ID。在为一台运行 OSPF的路由器配置新的Router ID后,可以在路由器上通过重置OSPF 迚程来更新Router ID。通常建议手动配置Router ID,以防止Router ID 因为接口地址的变化而改变。

DR与BDR选取

DR和BDR可以减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。 一个既不是DR也不是BDR的路由器只能与DR和BDR形成邻接关系并交换链路状态信息以及路由信息
DR:指定路由 BDR:备份指定路由
选取原则
首要因素是时间
其次是接口优先级(多路访问网络的接口优先级为1,点到点网络接口优先级为0。

 ip ospf priority 可以修改接口优先级,若为0则不参与DR选举

再次是路由器ID:先比环回接口,再比物理接口
DR与BDR选取是非抢占的,以下情况会重选
重启ospf进程或路由器
参与的路由器都执行clear ip ospf process命令
DR故障

注:为了维护网络上邻接关系的稳定性,如果网络中已经存在DR和BDR, 则新添加进该网络的路由器不会成为DR和BDR,不管该路由器的 Router Priority是否最大。如果当前DR发生故障,则当前BDR自动成为新的DR,网络中重新选举BDR;如果当前BDR发生故障,则DR不变, 重新选举BDR。这种选举机制的目的是为了保持邻接关系的稳定,使拓扑结构的改变对邻接关系的影响尽量小。

最短路径优先算法(SPF)

metric值=所有目的地址到达本地路由器的入接口的cost值之和
metric值=所有本地路由器到达目的地址的路由器的出接口的cost值之和

cost=10^8/BW(接口带宽) 
当然也可以使用命令sh ip ospf interface loopback 0 查看接口的cost值 
修改接口cost值
Router(config)#int f0/0
Router(config-if)#ip ospf cost 1

OSPF相关配置

单区域

Router(config)#router ospf process-id
Router(config-router)#network address wildcard-mask area area-id

负载均衡
路径必须为等价路径,默认最多可在路由表中加入4条等价路径
可更改特殊链路的开销以实现负载均衡

Router(config-if)#ip ospf cost 5

身份认证
(1)配置明文认证

R1(config-if)#ip ospf authentication-key ccie   设置明文密码,两端口密码要一致
R1(config-if)#ip ospf authentication     开启接口认证
R1(config)#router ospf 1
R1(config-router)#area 1 authentication  开户区域认证

(2)配置密码认证

   R1(config-if)#ip ospf message-digest-key 1 md5 ccie
   R1(config-if)#ip ospf authentication 

(3)配置区域认证

R1(config-if)#ip ospf message-digest-key 1 md5 ccie
R1(config-router)#area 1 authentication message-digest 

验证OSPF的配置

查看是否配置ospf:sh ip protocols 
查看邻居表:sh ip ospf neighbor 
查看链路状态数据库(拓朴表):sh ip ospf database
查看路由表:sh ip route /sh ip route ospf
查看ospf进程及相关信息:sh ip ospf
查看运行ospf接口的信息:sh ip ospf interface f0/0

关于OSPF手工汇总
1、区域间路由汇总必须在ABR上完成
2、外部路由汇总必须在ASBR上完成
3、“no-advertise”参数阻止传递汇总路由

你可能感兴趣的:(计算机网络)