网络基础——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就这些命令

相关推荐
Diamond技术流4 分钟前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
Spring_java_gg18 分钟前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
方方怪1 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
weixin_442643422 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川3 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
FeelTouch Labs4 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议
长弓三石6 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu5436 小时前
反向代理模块
linux·开发语言·网络·git
follycat6 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
xiaoxiongip6667 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip