HCIP:一次性搞定OSPF基础

news2024/11/15 9:37:21

OSPF

  • 一, OSPF基础
    • 1. 技术背景(RIP中存在的问题)
    • OSPF协议特点
    • OSPF三张表
    • OSPF数据表
      • 头部数据包内容:
      • hello
      • DBD(数据库描述报文)
      • LSR
      • LSU
      • LSack
    • OSPF工作过程
      • 1. 确认可达性,建立邻居
        • 2-way前,确认DR/BDR
      • 2. 摘要同步,开始建立邻接关系
      • 3. 完整信息同步,完全邻接关系的建立
    • OSPF状态机
    • LSDB的更新
  • 二, OSPF的区域划分
    • 区域产生背景
    • 分区好处
    • 区域类型
    • OSPF的路由器类型
  • 三, LSA
    • LSA头部
    • 6种类型的LSA
      • 1. type1-LSA
        • link-type
        • VEB标志位
      • 2. type2-LSA
      • 3. type3-LSA
      • type4-LSA
      • type5-LSA
      • 6. type7-LSA
  • 三, OSPF的网络类型
    • 定义:
    • 类型:
      • 1. NBMA(非广播对点可达网络)
      • 2. P2MP(点到多点网络)
      • 3. broadcast(广播网络)
      • 4. P2P(点到点网络)

一, OSPF基础

1. 技术背景(RIP中存在的问题)

  • RIP中存在最大跳数为15的限制,不能适应大规模组网
  • 周期性发送全部路由信息,占用大量的宽带资源
  • 路由收敛速度慢
  • 以跳数最为度量值
  • 存在路由环路可能性
  • 每隔30秒更新

OSPF协议特点

  • 没有跳数限制
  • 使用组播更新变化的路由和网络信息
  • 路由收敛快
  • 以cost作为度量值
  • 采用SPF算法有效避免环路
  • 每隔30分钟更新
  • 在互联网上大量使用,是运用最广泛的路由协议

OSPF传递的是拓扑信息和路由信息,RIP传递的是路由表

OSPF三张表

  • 邻居表:记录邻居状态和关系
  • 拓扑表:链路状态数据库(LSDB)
  • OSPF路由表:记录由SPF算法计算的路由,存放在OSPF路由表中

OSPF数据表

OSPF报文直接封装在IP报文中,协议号为89
请添加图片描述

头部数据包内容:

请添加图片描述

  • 版本(version):对于OSPFv2,该字段值恒为2
  • 类型(type):该OSPF报文的类型,该字段的值与报文类型的对应关系为:1-hello;2-DD;3-LSR;4-LSU;5-LSAck;
  • 报文长度(packet length):整个OSPF报文的长度(字节数)
  • 路由器ID(router identication):路由器的OSPF router-id
  • 区域ID(area identication):该报文所属的区域ID,这是一个32bit的数值
  • 校验和(checksum):用于校验报文有效性的字段
  • 认证类型(authentication type):指示该报文使用的认证类型
  • 认证数据(authentication data):用于报文认证的内容

hello

hello包携带自己的router id、被发现的邻居标识,用来周期保活的,发现,建立邻居关系
请添加图片描述

  • 网络掩码(network mask):一旦路由器的某个接口激活了ospf,该接口立即开始发送hello报文,该字段填充的是该接口的网络掩码。两台ospf路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码,否则影响邻居关系建立
  • hello间隔(hello interval):接口周期性发送hello报文的时间间隔(单位为s),两台直连路由器要建立ospf邻居关系,需要确保接口的hello interval相同,否则邻居关系无法正常建立。
  • 可选项(options):该字段一共8bit,每个比特位都用于指示该路由器的某个特定的ospf特性。options字段中某些比特位会被检查,这有可能会影响到ospf邻接关系建立(特殊区域标记)
  • 路由器失效时间(router dead interval):在邻居路由器无效前,需要等待收到对方hello报文的时间(单位为s)。两台直连路由器要建立ospf邻居关系,需要确保双方直连接口的router dead interval相同,否则邻居关系无法正常建立,缺省情况下,ospf路由器接口的router dead interval为该接口的hello interval的4倍。
  • 指定路由器(designated router):网络中DR的接口IP地址,如果该字段为0.0.0.0,则表示没有DR,或者DR尚未选举出来。
  • 备份指定路由器(designated router):网络中BDR的接口IP地址,如果该字段为0.0.0.0,则表示网络中没有BDR,或者BDR尚未选举出来。
  • 邻居(neighbor):在直连链路上发现的有效邻居,在此处填充的是邻居的router id,如果发现多个邻居,则包含多个邻居字段。

DBD(数据库描述报文)

仅包含LSA摘要
请添加图片描述

  • 接口最大传输单元(interface maximum transmission unit):接口的MTU。
  • 可选项(options):路由器支持的ospf可选项。
  • DBD报文置位符:
    I:init位,I=1,这是发给对方的第一个DBD报文,是空报文
    M:more位。M=1表示后续还有DBD报文
    MS:master位,MS=1,表示本端为主
  • DBD序列号(DD sequence number):DBD报文的序列号,在DD报文交互的过程中,DD序列号被逐次加1,用于确保DD报文传输的有序和可靠性,值得注意的是,DD序列号必须由master路由器来决定,而slave路由器只能使用master路由器发送的DD序列号来发送自己的DD报文,主从角色根据RID大小决定,大为主。
    请添加图片描述
  • LSA头部(LSA header):当路由器使用DD报文来描述自己的LSDB时,LSA的头部信息被包含在此处,一个DD报文可能包含一条或多条LSA的头部。

LSR

请求自己没有的或自己更新的链路状态详情信息
请添加图片描述
链路状态类型,链路状态id,通告路由器——LSA三元组——通过这三个参数可以唯一的标识出一条LSA

LSU

链路状态更新信息
请添加图片描述
一个LSU报文可以包含多个LSA
当路由器感知到网络发生变化时,也可以触发LSU报文的洪泛,以便将该变化通知给网络中的其他ospf路由器。
在MA网络中,非DR,BDR路由器向224.0.0.6这个组播地址发送LSU报文,而DR及BDR会侦听这个组播地址,DR在接收LSU报文后向224.0.0.5发送LSU报文,从而将更新信息洪泛到整个ospf区域,所有的ospf路由器都会侦听224.0.0.5这个组播地址。
总结:
224.0.0.5所有运行ospf的接口会监听
224.0.0.6所有DR/BDR的接口会监听

LSack

对LSU的确认
请添加图片描述
报文中包含着路由器所确认的LSA的头部(每个LSA头部的长度为20byte)

OSPF工作过程

邻居:通过hello相互认识——2-way
邻接:邻居关系建立好后,进行一系列报文交互,最终形成完全邻接关系——full

1. 确认可达性,建立邻居

请添加图片描述
请添加图片描述

  • router id:标明的是路由器身份
  • 手工配置:ipv4地址格式
  • 自动选举:
    有环回口选环回口:IP地址大的优先
    无环回口选物理口:IP地址大的优先
2-way前,确认DR/BDR
  • 选举原因:广播网络中使用路由信息交换更加高速有序,可以降低需要维护的邻接关系数量
    请添加图片描述
  • 选举范围:每个网段都要选出一个DR和BDR(0-255)
  • 选举规则:
  1. 优先级大的优先,默认优先级是1
  2. router-id大的优先

注:DR/BDR的选举没有抢占性

  • 关系状态:
    DRother与DR建立邻接关系
    DRother与BDR建立邻接关系
    DR/BDR建立邻接关系
    DRother之间保持邻居关系

2. 摘要同步,开始建立邻接关系

  1. 向邻居发送DBD报文,此时报文中包含了LSA的摘要信息;
  2. 收到DBD后,与本地LSDB对比,向对方发送LSR,请求对方将自己没有的或者更新的LSA的完整信息发送过来;
  3. 对方需要的LSA的完整信息打包成一条LSU,发送给对方;
  4. 对方收到LSU后,回复LSack报文,确认自己已经收到LSU

邻居建立过程:
请添加图片描述

请添加图片描述

3. 完整信息同步,完全邻接关系的建立

完全邻接关系建立,LSDB表与OSPF路由表的形成

OSPF状态机

请添加图片描述

  • down:关闭状态(稳定状态),这种情况处于手动指定邻居的情况下,发送hello包后进入下一个状态
  • init:初始化状态,收到对方的hello报文(第二个hello),但没有收到对方的hello确认报文(第三个hello包)
  • attempt:一般不会出现,只出现在NBMA网络中,发出hello。但收不到对方的hello包
  • 2-way(稳定状态):双方互相发现,邻居状态稳定,并确认了DR/BDR的角色:当选举完毕后,就算出现一台优先级更高的路由器,也不会替换成新的DR/BDR;需要原DR/BDR失效,或者重置OSPF进程才会成为新的DR/BDR;
  • exstart:交换开始状态;发送第一个DD报文,但不发送LSA摘要,仅用于确定LSDB协商主从,router-id大的成为master
  • exchange:交换状态;发送后续DD报文,用于通告LSDB摘要
  • loading:读取状态,进行LSA的请求,加入和确认
  • full:邻接状态(稳定状态),两端同步LSDB;

2-way的前提:

  • router-id无冲突,修改router-id需要重置ospf进程使生效
  • 掩码长度一致(MA网络中)
  • 区域id一致
  • 验证密码一致;
  • hello-time一致
  • dead-time一致
  • 特殊区域类型一致;

full前提:

  • 两端MTU一致,否则可能卡在exstart/exchange状态

能够计算路由的前提:

  • 两端网络类型一致,否则邻居状态full,但无法学习路由

LSDB的更新

请添加图片描述

二, OSPF的区域划分

区域产生背景

  • OSPF路由器在同一区域中洪泛LSA,为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。
  • 如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题

分区好处

  • 减少LSA洪泛范围
  • 减小路由表规模
  • 提高网络扩展性,有利于组建大规模的网络;

区域类型

请添加图片描述
后边还有特殊区域,…
邻居关系过多缺点:

  • 大量产生hello包,消耗CPU性能
  • 产生重复路由通告,消耗CPU性能
  • 产生任何一台路由器的路由变化都会导致多次传递,浪费带宽资源

多区互连原则:

  • 非骨干区域与非骨干区域不能直接相连;
  • 所有非骨干区域必须与骨干区域相连;
  • 此设计是为了防止区域间环路

OSPF的路由器类型

请添加图片描述

  • 区域内路由器(IR):所有接口在同一区域
  • 边界路由器(BR):连接多个区域的路由器
  • 区域边界路由器(ABR):连接骨干区域和非骨干区域
  • 自治系统边界路由器(ASBR):连接外部自治系统并引入外部路由

三, LSA

LSA是OSPF的一个核心内容,如果没有LSA,OSPF是无法描述网络的拓扑结构及网段信息的,也无法传递路由信息,更无法正常工作。

LSA头部

在OSPFV2中,需要我们掌握的主要有6种:
请添加图片描述
LSA头部一共20byte,每个字段的含义如下:

  • 链路状态老化时间(link-state age):指示该条LSA的老化时间,即它存在了多长时间,单位为秒;
    1800s周期归0,触发当下归0
    max age——3600s——当一条LSA的老化时间达到最大老化时间时,将被认定失效,将从本地的LSDB中删掉
  • 可选项(options):每一个比特位都对应了OSPF所支持的某种特性,和hello包一样,包含特殊区域标记
  • 链路状态类型(link-state type):指示本条LSA的类型,每种LSA用于描述OSPF网络的某个部分,所有LSA类型都定义了相应的类型编号
  • 链路状态id(link-state id):LSA的标识。不同的LSA类型,对该字段的定义是不同的
  • 通告路由器(advertising router):始发路由器,产生该LSA的路由器的router-id
  • 链路状态序列号(link-state sequence number):该LSA的序列号,该字段用于判断LSA的新旧或是否存在重复
  • 链路状态校验和(link-state checksum):校验和会参与LSA的新旧比较。当两条LSA三元组相同,并且序列号也相同时,则可以使用校验和比较,和大的认定为新
  • 长度(length):一条LSA的总长度

6种类型的LSA

请添加图片描述

1. type1-LSA

  • 定义:router LSA
    描述区域内部与路由器直连的链路信息(链路类型、开销至等)
    仅在区域内部传输
    每台路由器都会产生type1 LSA

命令:[R1]dis ospf lsdb router 查看Type1 LSA的具体信息
请添加图片描述

  • LS ID:发出该LSA的路由器的router-id
  • Adv Rtr:始发路由器,产生该LSA的路由器的router-id
  • 链路ID:不同的链路类型,对链路id值的定义是不同的
  • 链路数据(link data):不同的链路类型对链路数据的定义是不同的
  • link-type:链路类型,描述该接口的二层类型
  • VEB标志位
link-type

transnet:

  • 类型:广播网络或者NBMA
  • link-id:本网络的DR的IP地址
  • data:本路由器在该网段的IP地址

P2P:

  • 类型:ppp
  • link-id:该网段对端路由器的router-id
  • data:本路由器在该网段的与对端路由器相连的接口的IP地址

stubnet(末梢网络)

  • 类型:p2p/环回口
  • link-id:该网段的网络地址
  • data:该网段的子网掩码

virtual(虚链路)

  • 类型:虚链路
  • link-id:虚链路邻居的router id
  • data:去往该虚连接邻居的本地接口的IP地址
VEB标志位
  • V位(Virtual Link Endpoint Bit):如果该比特位被设置为1,则表示该路由器位Virtual Link的端点
  • E位(External Bit):如果E比特位被设置为1,则表示该路由器为ASBR。在stub区域中,不允许出现E比特位被设置为1的type-1 LSA,因此stub区域内不允许出现ASBR
  • B位(Border Bit):如果B比特位被设置为1,则表示该路由器为两个区域的边界路由器,字母B意为边界

2. type2-LSA

  • 定义:
    network LSA
    描述区域内部的MA网络(广播网络,NBMA网络)链路的路由及掩码信息
    仅在区域内部传输
    只有DR才会产生type2-LSA

  • 命令:
    [R1]dis ospf lsdb network 查看Type2 LSA的具体信息

  • 内容:
    LS ID:该网段的DR的IP地址
    adv rtr:该网段DR的router id
    network mask:该网段DR的IP地址的子网掩码的信息

3. type3-LSA

  • 定义:
    summary LSA(聚合LSA)
    在整个OSPF域内,描述其他区域的链路信息
    以子网形式传播,类似直接传递路由
    只有ABR会产生type3-LSA

  • 命令:
    [R1]dis ospf lsdb summary 查看Type3 LSA的具体信息

  • 内容:
    LS ID:其他区域某个网段的网络地址
    adv rtv:通告该LSA的ABR的router-id
    net mask:该网段的子网掩码

  • 注:3类LSA的传递范围在ABR相邻的单区域中进行,跨区域传递时,需要进行通告者的转换,通告者变了,则将不是同一条LSA

type4-LSA

  • 定义:
    ASBR-summary LSA
    描述ASBR的信息
    只有ABR才会产生type4 LSA

  • 命令:
    [R1]dis ospf lsdb asbr 查看Type4 LSA的具体信息

  • 内容:
    LS ID:ASBR的router-id
    adv rtv:通告描述该ASBR的ABR的router id

  • 注:在ASBR本区域的内部路由器,不会产生到达该ASBR的4类LSA

type5-LSA

-定义:
AS extantl LSA:传递域外路由信息
描述AS外部引入的路由信息,会传递到所有区域(特殊区域除外)
只有ASBR才会产生type5 LSA

  • 命令:
    [R1]dis ospf lsdb ase 查看Type5 LSA的具体信息

  • 内容:
    LS ID:外部路由的目的网络地址
    adv rtv:引入该网络路由的ASBR的ABR的router-id
    net mask:引入的该目标网段的子网掩码

6. type7-LSA

  • 定义:
    NSSA LSA
    描述在NSSA区域引入的AS外部路由信息
    只会出现在NSSA和totolly NSSA区域,不能进入area 0
    7类LSA生成路由信息的标记位O_NSSA,优先级150

  • 内容:
    LS ID:外部某个网段的网络地址
    adv rtv:引入该网络路由的ASBR的ABR的router-id

三, OSPF的网络类型

定义:

  • 对于不同的二层链路类型的网段,OSPF会生成不同的网络类型
  • 不同的网络类型,DR/BDR选举,LSA细节,协议报文发送形式会有所不同

类型:

1. NBMA(非广播对点可达网络)

  • 非广播多点可达网络,帧中继默认网络类型
  • 单播发送协议报文(天生不支持广播和组播),需要手动指定邻居(邻居变动需要重新配置)
    命令:[r2-ospf-1]peer 192.168.1.1 (邻居IP地址)
  • 需要选举DR/BDR,为了减少LSA的洪泛,减少网络负担
  • hello time是30秒,dead time是120秒

2. P2MP(点到多点网络)

  • 点到多点网络,由其他网络型手动更改
  • 模拟组播发送协议报文(帧中继建立子接口模拟组播发送报文),需要手动指定邻居;
  • 不选举DR./BDR,因为设备少,所以不选举
  • hello time 30s,dead time 120s

3. broadcast(广播网络)

  • 广播网络,以太网默认的网络类型
  • 组播发送协议报文
  • 需要选举DR/BDR,224.0.0.5是所有运行OSPF的接口会监听的,224.0.0.6是所有DR/BDR的接口会监听的
  • hello-time 10s,dead-time 40s

4. P2P(点到点网络)

  • 点到点网络,ppp默认网络
  • 组播协议发送报文
  • 不选举DR/BDR,直接形成邻接关系
  • hello-time 10s,dead-time 40s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2113836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合,结果不去重 3. collect_set 收集并形成set集合,结果去重 案例演示 1. 每个月的入职人数以及姓名 炸裂函数 概述 案例演示 1. 数据准备 1)表…

接口自动化三大经典难题

目录 一、接口项目不生成token怎么解决关联问题 1. Session机制 2. 基于IP或设备ID的绑定 3. 使用OAuth或第三方认证 4. 利用隐式传递的参数 5. 基于时间戳的签名验证 二、接口测试中网络问题导致无法通过怎么办 1. 重试机制 2. 设置超时时间 3. 使用模拟数据 4. 网…

nmon服务器监控工具使用

nmon:是一个分析linux服务器性能的免费工具,可以用来帮助我们整体性的分析服务端的CPU,内存,网络,IO,虚拟内存等指标 下载nmon.jar包及分析文件:百度网盘 链接: 提取码: 0000 一、nmon配置及使…

JavaScript (变量,var,Let,Const)

目录 JavaScript 变量 JavaScript 变量 JavaScript 标识符 声明(创建) JavaScript 变量 JavaScript Let 全局作用域 函数作用域 块作用域(Let) 重新声明变量 JavaScript Const 在声明时赋值 JavaScript 变量 JavaScript 变量 Jav…

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码结果

2024国赛C题参考论文https://download.csdn.net/download/qq_52590045/89718370网盘链接形式,在里更新 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/89718367 网盘链接形式,在里更新 2024国赛D题参考论文https://download.…

数据库面试题学习

B树和B树 B树 排好序的 节点内部有多个元素 B树 排好序的 节点内多个元素 叶子节点有指针(双向指针) 非叶子节点冗余了一份在叶子节点 mysql定义B树 InnoDB B树是B树的升级版~ InnoDB b树是怎么产生的 mysql 页 目录 16KB 自增id uuid 一页最多可以存储…

PPPoE配置学习笔记

企业内网和运营商网络如上图所示,中间交换机模拟运营商传输设备。公网IP段:12.1.1.0/24。内网IP段:192.168.1.0/24。PPPoE拨号采用CHAP认证,用户名:admin 密码:admin123 实验要求: 将R1设置为…

基于STM32的多功能车位锁设计

本设计基于STM32的多功能车位锁,该系统主要包括:测距模块、光强采集模块、主控芯片模块、显示模块、摄像模组等。系统以STM32单片机作为主控芯片用来对系统中的外设进行控制并且对传输过来的数据进行处理。通过K210模块来实现图像识别的功能检测车牌是否…

Zookeeper基本原理

1.什么是Zookeeper? Zookeeper是一个开源的分布式协调服务器框架,由Apache软件基金会开发,专为分布式系统设计。它主要用于在分布式环境中管理和协调多个节点之间的配置信息、状态数据和元数据。 Zookeeper采用了观察者模式的设计理念,其核心…

kaggle竞赛宝典 | Mamba模型综述!

本文来源公众号“kaggle竞赛宝典”,仅用于学术分享,侵权删,干货满满。 原文链接:Mamba模型综述! 型语言模型(LLMs),成为深度学习的基石。尽管取得了令人瞩目的成就,Tra…

物联网之PWM呼吸灯、脉冲、LEDC

MENU 前言原理硬件电路设计软件程序设计analogWrite()函数实现呼吸灯效果LEDC输出PWM信号 前言 学习制作呼吸灯,通过LED灯的亮度变化来验证PWM不同电压的输出。呼吸灯是指灯光在单片机的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。 原理 脉冲宽…

【Unity小技巧】URP管线遮挡高亮效果

前言 在URP渲染管线环境下实现物体遮挡高亮显示效果,效果如下:Unity URP遮挡高亮 实现步骤 创建层级,为需要显示高亮效果的物体添加层级,比如Player 创建一个材质球,也就是高亮效果显示的材质球找到Universal Render…

固态硬盘装系统有必要分区吗?

前言 现在的新电脑有哪一台是不使用固态硬盘的呢?这个好像很少很少了…… 有个朋友买了一台新的笔记本电脑,开机之后,电脑只有一个分区(系统C盘500GB)。这时候她想要给笔记本分区…… 这个真的有必要分区吗&#xf…

springboot流浪天使乐园管理系统

基于springbootvue实现的流浪天使乐园管理系统(源码L文ppt)4-039 第4章 系统设计 4.1 总体功能设计 一般个人用户和管理者都需要登录才能进入流浪天使乐园管理系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者…

【VUE】Vue 组件详解

📝个人主页🌹:个人主页 ⏩收录专栏⏪:VUE 🌹🌹期待您的关注 🌹🌹,让我们共同进步! 文章目录 一、Vue 组件的基础概念1.1 什么是组件?1.2 组件的作…

Unity教程(十五)敌人战斗状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

u盘显示需要格式化才能用预警下的数据拯救恢复指南

U盘困境:需要格式化的紧急应对 在数字信息爆炸的时代,U盘作为便携的数据存储介质,承载着我们工作、学习乃至生活中的大量重要资料。然而,当U盘突然弹出“需要格式化才能用”的提示时,这份便捷瞬间转化为焦虑与不安。这…

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保…

通信工程学习:什么是AM标准调幅

AM标准调幅 AM标准调幅,即Amplitude Modulation(振幅调制),是一种在电子通信中广泛使用的调制方法,特别是在无线电载波传输信息方面。以下是关于AM标准调幅的详细解释: 一、AM标准调幅的定义与原理 AM标准…

机器视觉硬件选型根据某项目相机镜头

一 项目总需求 1、大视野检测需求: (1)大视野: ①产品尺寸15.6寸屏幕,产品大小:350mm x 225mm; ②产品料盘尺寸大小:565mm x 425mm; ③工作距离:880mm;检测精度:500μm&#xff…