OSPF协议进阶+ospf域内路由计算(一、二类LSA)

一、路由协议的分类

三种分类方式

1.按工作范围分类:

  • IGP(内部网关路由协议)

    • 一个自治系统(AS)内的必须运行同一个路由协议

    • 用于计算和发现路由

    • RIP、OSPF、ISIS

  • EGP(外部网关路由协议)

    • 用于传递和控制路由
    • BGP
  • IGP和EGP关系:

igp egp.png

2.按照算法分类

  • 距离矢量协议

    • 传言式路由协议
    • RIP、BGP
  • 链路状态路由协议

    • 基于链路状态还原拓扑
    • OSPF、ISIS

3.按照是否协议掩码分类

  • 有类;
    • 按A,B,C类的默认掩码进行计算路由
    • 传递路由时不携带掩码
    • RIPv1
  • 无类
    • 传递路由时携带掩码
    • RIPv2、OSPF、ISIS、BGP

一个协议可以根据以上三种分类对号入座、从而知道一个协议的大概工作方式

OSPF属于IGP、链路状态协议、无类

二、OSPF工作流程

1.基本流程:

  1. 发现建立邻居
  2. 泛洪LSA(链路状态信息)
  3. 同步LSA数据库,执行SPF算法,还原区域内拓扑
  4. 计算最优路由

2.router id

作用

用于唯一标识ospf设备

格式

点分十进制 X.X.X.X

生成方式:
(1):手工配置

​ 全局下:

router id 1.1.1.1

​ 进程下指定

ospf 1 router-id 1.1.1.1

后续修改router-id,需要重置ospf进程才会生效

reset ospf process    //用户试图下
(2):自动选举

​ 根据loopback接口IP地址大的生成

​ 如果没有loopback接口,选择物理接口IP地址大的

IPv6下无法自动生成

优先级:

进程下 > 全局下 > 自动选举

  • 检查命令:
display ospf lsdb		//查看ospf LSDB数据库
display ip routing-table protocol ospf		//查看ospf路由条目

3.OSPF报文

  • 基于IP层,协议号89
  • 格式:
    • OSPF头部+OSPF报文内容

OSPF协议报文头部

每一个OSPF报文都会携带OSPF头部信息

ospf头部.png

  • 字段说明
    • Version :对于当前所使用的OSPFv2,该字段的值为2。
    • Type:OSPF报文类型。
    • Packet length:表示整个OSPF报文的长度,单位是字节
    • Router ID:表示生成此报文的路由器的Router ID
    • Area ID:表示此报文需要被通告到的区域
    • Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部
    • Auth Type:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证
    • Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同

1.HELLO报文:

hello报文.png

  • 发现邻居关系:组播224.0.0.5发送hello报文

  • 建立邻居关系,协商参数

  • 维护邻居关系,周期发送hello报文(hello时间+dead时间)

  • 协商参数

    1. router id不能一致
    2. 区域ID必须一致
    3. 认证,认证类型和认证密钥必须一致
    4. 接口掩码,在MA网络中必须一致
    5. hello时间必须一致
    6. 区域类型(N位、E位)
      • N=0 E=1:普通区域
      • N=1 E=0:NSSA区域
      • N=0 E=0:STUB区域
    • hello报文特殊字段.png
    1. NBMA网络只能跟NBMA网络建立(单播建立邻居)
  • 邻居建立过程:
    • DOWN:未启用OSPF协议
    • INIT:收到hello报文,邻居列表不存在自身router id
    • 2-way:收到hello报文,邻居列表存在自身router id
    • 邻居建立完成
display ospf error		//查看无法建立邻居关系的原因

2.DD报文

  1. 描述数据库报文

    • 不携带LSA头部,开头第一个报文,确定主从关系,保证后续DD报文可靠传输
      • DD报文第一个.png
    • 携带LSA头部,减少LSA泛洪,节省性能
      • DD报文后续.png
  2. 详细内容

    1. MTU:默认填充为0,表示不协商

    2. Flag位(DB Description):

      DD报文第一个.png

      1. I位:代表是否为第一份DD报文(第一份DD报文是用于选举主从)
      2. M位:代表后续是否还有DD报文
      3. M/S位:代表主从

      I位等于0,标志状态由ExStart进入exchange状态

      I位、M位等于0,标志着由exchange状态进入loading状态

    3. DD序列号(DB Sequence):用于隐形确认,有序传输

  3. LSA header

    LSA头部.png

    • LS Type:LSA的类型
  • LS ID:LSA内容

    • ADV:LSA通告者

    以上是唯一标识一条LSA的三要素(LSA Request报文中包含)

    • LS Age:LSA的老化时间,范围0~3600s ,越小越新
    • (LS sequence)序列号:越大越优,0x8000000–0x7FFFFFF
    • 这是一个闭环型的计数方式
    • 校验和:越大越优

    标识一条LSA的新旧程度:序列号>校验和>LS Age

    LSA的周期更新时间为1800s

    收到LS Age为3600s的LSA,代表要删除该LSA

3.LSR报文

LSA报文.png
只包含LSA三要素
针对缺少的LSA进行请求

携带LSA三要素

4.LSU报文

  • 携带详细LSA信息
    • 用于承载LSA头部+LSA内容
  • LSU的发送时间
    • 收到LSR请求
    • LSA的周期1800s更新时
    • 触发更新(路由信息发生变化时发送)

LSU报文.png

5.LS ACK报文

用于对LSU报文的确认

携带LSA头部进行确认

LSACK报文.png

问:什么时候标志着一台设备已经完成数据库同步?

答:LSR的重传列表为空时

  • 一台设备LSR的重传列表中包含该设备对比完成其他设备发来的DD报文后,需要想其他设备请求的LSA信息,当收到对应的包含LSA信息的LSU报文,就会删除重传列表中相应的信息

②.OSPF网络类型

网络类型.png

1.广播类型(BMA)

①底层链路为以太网链路,默认时BMA网络类型

一个接口下可以存在多个邻居

③hello报文时间:10s dead时间:40s

④支持广播、组播发送发送hello报文、ospf报文,以单播方式发送DD、LSR报文

⑤选举DR/BDR

⑥互联网接口需要在同一网段

2.点到点(P2P)

①底层链路为串行链路,底层协议为PPP,HDLC时,默认为P2P网络类型

②一个接口只能存在一个邻居

③hello报文时间:10s dead时间:40s

④支持广播、组播发送hello报文、ospf报文

⑤不选举DR/BDR

3.点到多点(P2MP)

①没有底层链路默认时P2MP网络类型

②一个接口只能存在一个邻居

③hello报文时间:30s dead时间:120s

④支持广播、组播发送hello报文、ospf报文

⑤不选举DR/BDR

⑥适用于中心到站点的网络

4.非广播多路访问网络(NBMA)

①底层链路为串行链路,底层协议为FR、ATM时,默认为NBMA网络类型

②一个接口下可以存在多个邻居

③hello报文时间:30s dead时间:120s

④不支持广播、组播发送hello报文、ospf报文,只能人工指定单播发送

⑤选举DR/BDR

通过peer命令手工建立邻居关系

NBMA.png

修改命令
interface g0/0/2
ospf network-type p2p/NMBA
  • 问题:一边为BMA网络类型,一边为P2P网络类型
    • 是否可以建立邻居关系? -----可以 (hello报文中没有字段说明时属于什么网络类型
    • 是否可以同步数据库? -----可以
    • 路由计算是否正常? ------不正常(不同网络类型还原拓扑的结构不一样)

③.OSPF开销

两种方式确认开销

1.通过带宽参考值计算

默认参考带宽值=100Mbit/s
开 销 值 = 带 宽 参 考 值 / 带 宽 实 际 值 开销值=带宽参考值/带宽实际值 =/
参考带宽值越大,开销越准确

修改带宽参考值:

bandwidth-reference 1000
2.直接指定接口开销

修改接口开销值

​ 开销值范围是1~65535,默认为1

interface g0/0/2
ospf cost 20

开销只在路由接收时,进行累加(即只计算接收端口的路由开销)

ospf cost.png

④.DR/BDR

在MA网络中一个接口可以有多个邻居

1.作用:

减少MA网络的邻接关系

从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。

在描述拓扑时,充当伪结点

还原拓扑:

DR1.png

实际拓扑:

DR2.png

2.选举规则:

先比较端口优先级,默认为1,可调范围0~255(优先级为0表示放弃选举),越大越优。

优先级一致则比较router-id,越大越优

  • 选举过程
    • 标准机制中,当邻居状态到达2-way时,开始选举,等待40s的while time时间
    • 华为机制中,当接口发出第一份hello报文时,开始选举,等待40s的while time时间
3.设备角色

①DR:和该MA网络下的所有设备建立FULL的邻接关系(监听224.0.0.6和224.0.0.5)

②BDR:和该MA网络下的所有设备建立FULL邻接关系(监听224.0.0.6和224.0.0.5)

③DR other:只和BR/BDR建立邻接关系,DR other和DR other之间只建立two way邻居关系(监听224.0.0.5)

微信截图_20201115235312.png

一个拓扑中可以没有BDR,但是不能没有DR,有且只有一个

DR/BDR监听地址:224.0.0.6

注意
  • DR选举完成后、不允许抢占

  • 在two-way之后开始选举DR/BDR(华为设备是在第一个hello报文发出后开始选举)

  • DR监听224.0.0.6进行收集LSU信息,以224.0.0.5向外发布信息

三、OSPF区域内路由计算

  1. 还原区域内拓扑,需要使用:
    • 1类LSA(ROUTE-LSA)
    • 2类LSA(NETWORK LSA)

1.一类LSA (route LSA)

  • 产生者: 每台OSPF设备为每个区域产生一条1类LSA

  • 泛洪范围:在区域内泛洪

  • 描述内容: 描述区域内的拓扑信息和路由信息

    微信截图_20201115235629.png

    • 1类LSA存在4种 LINK TYPE(P2P,Stubnet、TransNet、Vritual)

      1. P2P链路类型(拓扑信息)
      • LINK ID : 对端的router id
        • LINK DATA:自身连接对端的接口IP地址
    • Link Type:链路类型

      • Metric:到对端的开销

      1类LSA P2P.png

  1. Stubnet链路类型(路由信息)

    • LINK ID:网络前缀
      • LINK DATA:掩码
  • Link Type:链路类型

    • Metric:到对端的开销

    1类LSA STUB.png

    路由信息.png

当接口被宣告,但是没有邻居关系时,也会采用stub net进行描述

P2P链路类型+STUB链路类型可以描述P2P的网络拓扑图

  1. TransNet (拓扑信息)

    微信截图_20201116000206.png

    • LINK ID:DR的接口IP(伪节点)

    • LINK DATA: 自身连接DR的接口IP地址

    • Link Type:链路类型

    • Metric:到对端的开销

      1类LSA trans.png

dis ospf lsdb router X.X.X.X

/查看一类LSA的详细内容

2.二类LSA (network LSA)

  • 产生者:DR为一个MA网络产生一条

  • 泛洪范围:区域内

  • 描述内容:MA网络的路由信息和拓扑信息

  • 重要字段:

    • LS ID: DR的接口IP地址(伪节点)
    • LS ADV: DR的router ID
    • MASK: MA网络的掩码
    • Attcher router:MA网络下连接的路由器

    二类LSA.png

  • LS ID +MASK = 路由信息

  • Attcher router=拓扑信息

dis ospf lsdb network X.X.X.X		     //查看二类LSA

问题

问题1:如果同区域的设备出现router-id一致时,能否建立邻居关系,会出现什么问题?

queation1.png

  • R1和R3会一直产生序列号+1的route—lsa 进行覆盖

  • 一段时间后,其中一台设备会修改自身的router-id

LSA1类在更新时,一般不会利用 3600s 进行删除,采用序列号+1进行覆盖

因为LSA1类包含路由和拓扑信息,不能轻易删除

问题2:设备什么时候会停留在一下状态

  • 2-way

    • DR other 之间
  • exstart

    • 开启MTU协商,但协商不通过

      queation2.png

  • exchange

    • 没有开启MTU协商,并且MTU不匹配,发送的DD报文过大(带LSA头部信息)
  • loading

    • 没有开启MTU协商,并且MTU不匹配,发送的DD报文过大(带LSA头部信息)
posted @ 2020-11-16 00:13  dragon's  阅读(255)  评论(0编辑  收藏  举报