网络基础——OSPF路由

前言:这是最为常见和常用的路由,也是动态路由的一种,它在前面的路由上再次优化

背景

rip是动态路由不错,但是却是存在大的缺陷,那就是不适用于大型网络,并且防止环路的机制会造成一定的后果

相关名词

  • ospf:开放式最短路径优先协议,是基于IP的,协议号是89
  • area:区域,可以分为骨干区域和非骨干区域,其中非骨干区域又可以分为特殊区域和非特殊区域。骨干区域固定为0,取值范围为0-4294967295,特殊区域又分为stub区域、完全stub区域、nass区域、完全nass区域
  • router-ID:是运行了ospf协议的路由器的唯一标识,可以手工指定、如果没有手工指定,那么就是时看loopback地址,如果没有配置loopback接口,那么就是设备最大的IP地址,ps:华为设备的特性是route-ID冲突会自己修改
  • process:进程号,范围是1-65535,不同进程号就是相当于不同的路由协议,不会互相影响
  • DR:指定路由器,会和所有路由建立邻居角色。广播网络和NBMA网络中必须要选举DR
  • BDR:是DR的备份
  • IR:区域内路由器,在ospf中只要在区域内都是该路由器角色
  • BR:骨干路由器,就是有一个接口属于骨干区域
  • ABR:区域边界路由器,同时连接两个或者两个以上的路由器,其中一个区域要是骨干区域
  • ASBR:自治系统边界路由器,只要引入外部路由,那么就是该路由器角色
  • LSA:链路状态通告,是ospf用于交互的信息
  • LSDB:数据库,里面存放着LSA信息

原理

报文

hello报文

  • 发现、维护ospf邻居,同时里面有一个字段(Rtr Pri)用来选举DR,发送方式是广播,目的地址是224.0.0.5
  • DR选举规则:先比较优先级,范围为0-255,默认为1,优先级大的为DR;当优先级相同时,比较router-ID,大的优先。但是在实际中,那台设备先启动,那么就是DR
  • 如果优先级为0,那么就不参与选举,但是如果都为0 ,那么在广播网络中会出现错误,同时DR和BDR不具备抢占性
  • DR和BDR是针对接口来说的,就是说一个广播网段,就要选举一个BR

DD报文

  • 协商主从、确定主从关系、同步LSDB
  • 重要的字段:I(当发送连续多个DD报文时,如果这是第一个DD报文,则置为1, 否则置为0)、M(当发送连续多个DD报文时,如果这是最后一个DD报文,则置为 0,否则置为1,表示后面还有其他的DD报文)、MS(确定主从关系,置位为1表示为主)
  • router-id大的会成为主设备

LSR报文

  • 如果当LSDB同步过程,发现自己缺少的LSA信息,那么就会使用该报文,请求缺少的LSA信息

LSU报文

  • 收到LSR报文,会发送该报文,把所有的LSA全部发送给对方

LSACK报文

  • 确认是否收到LSU数据包,有两种确认方式,分别是显示确认和隐式确认
  • 显式确认:就是直接回复LSACK报文,进行确认
  • 隐式确认:不回复LSACK,而是将LSA进行二次封装,向目的地址224.0.0.5发送,DRother收到后,会看做为隐式确认
  • 条件是必须是DR other,且网络类型是广播型网络

LAS类型

  • 名称作用产生者泛洪区域携带信息
    router LSA(路由器LSA)计算区域内路由所有路由器本区域内拓扑+路由
    network LSA(网络LSA)计算区域内路由,对一类进行补充DR本区域内路由信息
    network summary LSA(网络LSA)计算域间路由ABR区域间路由信息
    ASBR summary LSA(网络汇总LSA)告知ASBR所在的位置ABR除了ASBR所在的位置拓扑信息
    external LSA(外部LSA)计算外部路由ASBR整个区域路由信息
    NSSA LSA(NSSA外部LSA)计算特殊区域外部路由NSSA中的ASBR在NSSA区域路由信息

状态机

down:是最开始的状态,没有收到任何的报文

attempt:是只在NBMA 环境中存在,没有收到邻居发的任何包,但是自己已经周期性发送hello报文了

init:开始收到hello报文,但是此时的hello报文中只是携带自己的router-ID,没有对方的

2-way:邻居双方都收到了hello报文,此时的DR和BDR也已经选举完成,是邻居建立成功的标志

EX-start:开始进行LSDB同步过程,这里还会进行主从选举

EX-change:会发送自己的LSA摘要信息

loading:等待对方发送缺少的LSA信息

full:表明邻接起来,ospf完全建立成功


过程

  • 首先是发送hello报文,里面携带自己的router-ID,向组播地址224.0.0.5发送,此时的状态是init
  • 当对端设备收到hello报文后,解析获得对端的router-ID,并且加入自己的邻居列表,此时的状态是2-way(可能存在单向的2-way状态)
  • 此时邻居关系已经建立完成,只有邻居关系建立好,才能建立邻接
  • 发送第一份DD报文,开始选举主从,此时的DD报文中没有携带摘要的LSA信息,状态是EXstart,注意当主从选举完成后,序列号以主设备的序列号为起点
  • 会发送第二份DD报文,开始进行LSDB同步,状态是EXchange
  • 如果发现LSA缺少的话,那么就会发送LSR报文进行请求,此时的状态是loading
  • 当收到LSR报文时,那么就会发送LSU,发送完整的LSA信息给请求的设备,此时的状态还是loading
  • 后面设备会回复一个LSACK,表示对LSU进行回复,此时的状态是full

定时器

  • hello time:是hello周期发送的时间,为10秒
  • 超时时间:在规定时间没有收到来自邻居设备的hello报文,会认为邻居出现故障,就会断开邻居关系,时间是hello时间的4倍
  • 可以修改这两个定时器:ospf time hello 时间/ospf time dead 时间(都是在接口视图下修改)

邻居关系建立失败原因

  1. 直连设备的区域ID不一样
  2. router-ID一致
  3. hello time时间和dead时间不一致
  4. 如果配置了认证,那么用户名和密码需要不一致
  5. 掩码不一致

防环机制

区域外防环

  • 就是非骨干区域一定要和骨干区域相连
  • 从骨干区域发出的三类LSA不能再次发回到骨干区域
  • ABR设备从非骨干区域收到的三类LSA不能用作路由计算

区域内防环

  •  本身的算法保证区域内无环 

特殊区域

stub区域

  • 隔离4类LSA以及5类LSA的进入
  • stub区域访问外部路由的方法是通过,stub区域的ABR设备产生一条缺省的三类LSA

totally stub区域

  • 隔离3类、4类、5类LSA的进入
  • totally stub区域访问外部路由的方法是,通过totally stub区域的ABR设备产生一条缺省的三类LSA

NSSA区域

  • 隔离4类LSA以及5类LSA的进入
  • 可以存在ASBR设备,在这个区域引入的外部路由,都是以七类LSA的方式泛洪
  • 访问外部路由的方式是,通过下发一条缺省的七类LSA
  • 其他区域想要访问NSSA区域,需要进行七转五的操作,条件是角色必须是ABR设备,同时N/P字段必须置位

totally NSSA区域

  • 隔离3类、4类、5类LSA的进入
  • 可以存在ASBR设备,也可以正常引入外部路由
  • 访问外部路由的方式是,通过下发一条缺省的七类LSA和缺省的三类LSA

实验

实验拓扑

抓包实例

第一个DD报文

DD报文(可以看出谁是主设备)

最后一个DD报文

hello报文和头部

代码

ospf 1 router-ID 1.1.1.1//进入OSPF视图并且配置router-ID
 area 0.0.0.1 //配置区域ID
  network 10.0.24.0 0.0.0.255 //宣告网段进入OSPF
  network 192.168.1.0 0.0.0.255

ospf enable area 1//在接口视图下启用OSPF,两种宣告2选1

reset ospf process //这是重置进程号,如果需要修改router-ID,那么就要先重新配置,在重启进程

ps:这上面是OSPF的常用命令,但是并不是说OSPF就这些命令

  • 63
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值