链路状态路由协议OSPF

  • 路由信息传递与路由计算分离
  • 基于SPF算法(最短路径计算法)
  • 以“累计链路开销”作为选路参考值

分类

自治系统(AS)

内部网关协议(IGP)

外部网关协议(EGP)

OSPF工作过程

建立邻接关系---->学习链路状态信息---->链路状态数据库---->Dijkstra算法---->最短路径树---->路由表

OSPF区域




ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_网络


  • 为了适应大型的网络,OSPF在AS内划分多个区域
  • 每个OSPF路由器只维护所在区域的完整链路状态信息

区域ID

区域ID可以表示成一个十进制的数字或者表示成一个IP

骨干区域Area 0

负责区域之间路由信息传播

非骨干区域

  • 末梢区域
  • 完全末梢区域
  • 非纯末梢区域
  • 完全非纯末梢区域

Router ID

OSPF区域内唯一标识路由器的IP地址

Router ID选取规则

  • 选取路由器loopback接口(回环口)上数值最高的IP地址
  • 如果没有loopback接口,在物理端口中选取IP地址最高的
  • 也可以使用router-id命令指定Rouer ID

DR和BDR

更快的建立邻接关系,建立更少的邻接关系


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_Powered by 金山文档_02


(该图表示 所有路由器在一个局域网,类似的图都表示一个局域网)


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_OSPF_03


指定路由器(DR)


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_智能路由器_04


所有人把信息都给D,然后D再把所有信息会发给所有人

其他路由器(DRothers)只和DR及BDR形成邻接关系


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_OSPF_05


最开始BDR会建立邻接关系,但不会汇总;DR挂了之后BDR才会汇总

DR和BDR的选举方法

自动选择DR和BDR

  • 网段上Router ID最大的路由器选举为DR,第二大的选举为BDR

手动选举DR和BDR

  • 优先级范围0-255,数值越大,优先级越大
  • 如果优先级相同,则需要比较Router ID
  • 如果路由器优先级被设置为0,他将不参加DR和BDR选举

DR和BDR的选举过程

路由器的优先级可以影响一个选举过程,但是不能强制改变已经存在的DR或者BDR

OSPF的组播地址

普通路由器通过224.0.0.6向DR、BDR通告自己的网络状态信息

DR会通过224.0.0.5向所有成员发送整合后的信息

OSPF的度量值为COST

COST=10^8^/BW

最短路径时基于接口指定的代价(cost)的计算


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_智能路由器_06


OSPF数据包类型

承载在IP数据包内,使用协议号89,而RIP使用的协议号为1

OSPF的包类型


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_Powered by 金山文档_07


成员发:LSR、LSU

DR、BDR发:LSAck、DBD

OSPF邻接关系的建立


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_Powered by 金山文档_08


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_Powered by 金山文档_09


OSPF的应用环境

网络规模大

特点


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_邻接关系_10


OSPF和RIP的比较


ospf在域内用来传递路由控制路由计算路由发现路由 ospf区域间路由计算_Powered by 金山文档_11