深度解析OSPF(开放最短路径优先协议)

深度解析OSPF(开放最短路径优先协议)

OSPF基本概念

协议号:89
ospf head长度:24
ospf hello长度:20
组播地址:

  • 224.0.0.5
  • 224.0.0.6

泛洪时间:30分
老化时间:60分

路由器类型

  • IR——内部路由器
  • ABR——区域边界路由器
  • BR——骨干路由器
  • ASBR——自治系统边界路由器

邻接状态的建立

OSPF七种状态

  • Down——没有给邻居发送任何报文,也没有收到邻居报文
  • Init——向外发送hello并收到了邻居的hello,并且这个hello的邻居表中包含了自己的RID,此时双向通信还未建立
  • Two-way——邻居收到一个hello包,在hello包中看到了自己的RID,说明之前曾交互过hello报文,此时一个双向通信已经建立
  • Exstart——选举主从,并确定DBD包的序列号
  • Exchange——主路由器带动从路由器交互描述整个链路状态的DBD报文,本地路由器会发送最新状态请求包给他的邻居路由器,用来请求最新的LSA
  • Loading——根据交互的DBD报文可以得知双方的LSA信息,更新自己没有的LSA信息
  • Full——最终状态,链路状态请求列表为空,邻接建立完成

邻接建立条件

RID的选举

  1. 如果有使用router-id命令手工配置RID,则最优先使用RID
  2. 如果没有手动配置,则选取环回口(loopback)口上数值最高的IP地址
  3. 如果并没有配置环回口,则选取路由器上物理IP地址最高的地址作为RID——作为RID的接口不一定非要运行ospf协议

报文头部中匹配字段

  • 版本需要一致
  • RID不能冲突——若冲突ospf会因为无法选择出主从而停留在Exstart/Exchange状态
  • 一条链路的两端必须在同一个区域
  • 区域类型和认证类型一致

Hello包中匹配的字段

  • 掩码必须一致
  • hello时间和dead时间需要一致
  • option中的E位和N位必须要一致
  • NBMA(非广播多路访问网络)中要对邻居指peer,双方要互指
  • 建立邻居的接口不能是静默接口
  • Router priority字段——优先级为0则没有资格进行DR/BRD的选举

DBD报文中要匹配的字段——MTU需要一致,需要根据数据库的大小来确定包的大小

DR与BDR的选举细节

Designated Router(DR):指定路由器
Backup Designated Router(BDR):备份指定路由器
DR/BDR的作用:减少LSA流量的泛洪

  • 网络中先选出BDR,如果发现网络中并没有DR时,BDR会将自己变成DR,之后再选出BDR
  • 非抢占性,当网络中存在DR和BDR时,如果加入一台优先级更高的路由器时,为保持稳定性,DR和BDR并不会重新选取。

虚链路

虚链路是指再通过一个非骨干区域连接骨干区域的链路,简单讲就是区域0要跨过区域1通往区域2的时候,需要在ABR路由器做一条虚链路,让路由器打通一条逻辑链路。
配置虚链路要注意:

  • 虚链路必须配置在两台ABR路由器之间
  • 配置虚链路经过的区域必须拥有所有路由选择信息
  • 传送区域不能是末梢区域

虚链路的存在增加了网络的复杂性,所以一个网络中虚链路的永久存在是一个比较糟糕的网络标记。
在这里插入图片描述注:R2环回口2.2.2.2,R3环回口3.3.3.3

虚链路配置

R2#configure t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#router ospf 100
R2(config-router)#area 1 virtual-link 3.3.3.3
R2(config-router)#end
R3#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#router ospf 100
R3(config-router)#area 1 virtual-link 2.2.2.2
R3(config-router)#end

OSPF常见六种LSA(链路状态数据库)

1号、路由器LSA(Router LSA)

每台路由器都会产生Router LSA,这个最基本的LSA通告列出了路由器上所有的链路或者接口。
作用:用来描述区域内部与路由直连链路信息
在这里插入图片描述
在这里插入图片描述Age-length(LSA头部)
Link state ID:路由器本身ID
Advertising router:通告自己的RID
Flags:用于指明自己的身份

  • (V)Virtual link endpoint:虚链路端点
  • (E)AS boundary Router:ASBR
  • (B)Area border router:ABR

2号、网络LSA(Network LSA)

每一个多路访问网络的指定路由器(DR)将会发出此LSA,其作用是用来描述广播型网络信息。
在这里插入图片描述
在这里插入图片描述Link State ID:DR的接口IP
Advertising Router:DR的RID
A’t’r’t

3号、网络汇总LSA(Network Summary LSA)

此LSA是由ABR始发,用来发送网络汇总LSA到一个区域,用来通告该区域外的目的地址。其作用是:描述区域间信息。
在这里插入图片描述
在这里插入图片描述

4号、ASBR汇总LSA(ASBR Summary LSA)

此LSA是由ABR始发,ASBR汇总LSA目的是一台ASBR路由器,除此之外和其他网络汇总LSA都是一样的。
作用:描述ASBR可达信息。
在这里插入图片描述
在这里插入图片描述

5号、自主系统外部LSA

始发于ASBR,用于通告OSPF自主系统外部目的地,其作用是描述外部引入路由。
在这里插入图片描述
在这里插入图片描述

7号、NSSA外部LSA

其作用是在NSSA区域描述引入外部路由

路由认证

  • 明文认证
  • 暗纹认证——MD5
  • 区域认证——全接口开认证
  • 接口认证——接口配置密钥、接口区域进程开启认证、虚链路认证

末梢(Stub)区域

stub区域
stub是整个OSPF的边界,也是拓扑的边界,区域中不能存在ASBR,stub区域不接受LSA5,以一条缺省路由代替
完全stub区域
是OSPF的边界不接受LSA3、LSA4、LSA5,以缺省路由代替
NSSA区域
stub的扩展,OSPF的边界,但是不是拓扑的边界,过滤了LSA3、LSA4、LSA5但是存在LSA7,把外部路由汇总为LSA7,只存在于NSSA内部区域,并在ABR上将LSA7转化为LSA5。

OSPF数据包格式

Hello包
hello包是主要用来建立和维持邻接关系,既然要维持邻接关系,那hello包中的某些参数需要一致。在OSPF稳定之后,hello包将作为keeplive每隔30分钟重新泛洪一次。
在这里插入图片描述Network Mask:子网掩码
Hello Interval:hello时间间隔
Router Priority:路由器优先级
Router Dead Interval:路由无效时间间隔
DR:指定路由器
BDR:备份指定路由器

DBD包
DBD包用来描述正在建立连接的邻接关系,主要是整合始发路由器数据库中的一些或者全部LSA信息。

在这里插入图片描述Interface MTU::接口MTU
Options:可选项

LSR(LS Request)

在数据库同步的时候,如果收到自己数据库中没有的LSA,此时就会触发更新,将自己未拥有的LSA列表放入LSR中进行请求。
在这里插入图片描述
Link State Type:链路状态类型
Link State ID:链路ID
Advertising Router:通告路由器

LSU(LS update)

在收到LSR之后会触发更新,将LSA条目放入LSU以泛红扩散的方式发送。一个LSU可以携带一条或者多条LSA,但是这些LSA只能传送到始发路由器的直连邻居。收到LSA的邻居路由器在负责更新数据包中重新封装相关LSA,从而进一步泛洪扩散到他的邻居。
在这里插入图片描述Number of LSAs:LSA数量
LSA名与长度

LSACK

路由器在收到邻居路由器收到的每一个LSA都必须在链路状态中进行明确的确认。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACHAI:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值