OSPF基础-进阶

简介: OSPF基础

动态路由协议的分类

按工作区域分类:

IGP(内部网关协议):RIP OSPF IS-IS

EGP(外部网关协议):BGP

按工作机制及算法分类:

距离矢量路由协议:RIP

链路状态协议:OSPF IS-IS

链路状态路由协议

LSA泛洪

链路状态路由协议通告的是链路状态而不是路由信息。

运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(链路状态通告)。

  • LSA描述了路由器接口的状态信息,例如接口的开销、连接的对象等。

LSDB维护

每台路由器都会产生LSA,路由器将收到的LSA放入自己的LSDB(链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑。

  • 路由器使用LSDB存储LSA
  • LSDB通常会存储多种不同类型的LSA,每类LSA所描述的信息不同

SPF计算(最短路径优先)

每台路由器基于LSDB,使用SPF计算出以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就知道了到达所有网段的优选路径。

  • 每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”

路由表生成

路由器将计算出来的优选路径,加载进自己的路由表。

  • 每台路由器根据SPF计算结果,将路由加载进路由表

链路状态路由协议总结

1、建立邻居关系

2、交互链路状态信息---LSDB(LSDB里有LSA)

3、使用SPF进行路径计算

4、计算出来的优选路径,生成路由表项

OSPF简介

优先级:10,150,组播地址:224.0.0.5 224.0.0.6,协议号:89

2种认证方式:接口认证、区域认证。(接口认证优于区域认证)

三张表:

1)邻居表:列出每台路由器全部已经建立邻接关系的邻居路由器。

  • OSPF的邻居关系通过交互Hello报文建立。

2)链路状态数据库(LSDB):列出网络中其他路由器的信息,由此显示了全网的网络拓扑。

3)路由表:通过SPF算法计算出到达每个网络的最优路径。

四种网络类型:

P2P:点到点链路 不选举DR hello报文发送时间10s

P2MP:点到多点链路 不选举DR hello报文发送时间30s

BMA:广播类型网络 选举DR hello报文发送时间10s

NBMA:非广播-多路访问网络 选举DR hello报文时间30s

hello报文死亡时间是发送时间的4倍

五种报文:

每个报文中都有相同的OSPF报文头部

Hello报文:周期性发送,用于发现和维持OSPF邻居关系。

  • 发现邻居

DD报文:交互链路状态数据库摘要,描述本地LSDB的摘要信息,用于两台路由器进行数据库同步。

  • 互相问对方你有没有某信息,需不需要

LSR报文:链路状态信息请求报文,向对方请求所需要的LSA。

  • 自身查看没有某信息,我需要某信息,我向对方请求发送某信息

LSU报文:链路状态信息更新报文,向对方发送其所需要的LSA或者泛洪自己更新的LSA。(发送详细的LSA)

  • 我知道了你没有某信息,互相向对方发送对方所需要的某信息

LSAck报文:链路状态确认报文,用于对收到LSU中的LSA进行确认。

  • 我收到了某信息,我确认一下

DD报文中的隐式确认   选举主从,交互摘要信息的过程

七种状态:

Down:没有收到Hello包。

Attempt:在帧中继网络中才会出现,表示的是网络是测试、唤醒状态。

Init:收到Hello包,但是收到Hello包中的邻居字段没有自己。

2-Way:收到Hello包的邻居列表中有自己,建立邻居关系。

Exstart:只发DD报文,不含摘要信息

Exchange:通过交换DD报文,交换LSA头部信息。

Loading:通过上述获得的LSA头部信息,来确定自己需要哪些LSA。

Full:LSDB同步完成,建立邻接关系。

OSPF基础术语

Router ID

Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。

Router ID选举规则如下:

  • 手动配置OSPF路由器的Router ID(建议手动配置)
  • 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
  • 如果没有配置Loopback,则路由器使用物理接口最大的IP地址作为Router ID
  • 华为设备中,先配哪个IP,就用哪个IP为Routerid

区域

  • OSPF Area 用于标识一个OSPF的区域。
  • 区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
  • OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。为了方便,采用十进制表示。
  • 几个例子:Area0.0.0.1等同于Area1,Area0.0.0.255等同于Area255,Area0.0.1.0等同Area256。许多网络厂商的设备同时支持这两种区域D配置及表示方式。

链路两端的区域不一致,则邻居建立不起来。比如R1的1号口连接R2的2号口,两个接口的区域必须一致,如果1号口属于区域1,2号口属于区域2,邻居就建立不起来。

度量值

  • OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的接口Cost=100Mbit/s / 接口带宽。
  • OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和。

推荐根据接口带宽大小手动配置cost值,而不是修改OSPF参考带宽

OSPF工作过程

  • hello报文发现直连链路上的邻居
  • 协商主从关系master、slave
  • 相互交互各自的LSDB(摘要信息)
  • 更新LSA,同步的LSDB
  • 运行SPF,计算路由

建立邻居关系

使用Hello报文发现和建立邻居关系

默认发送组播形式发送Hello报文(目的地址224.0.0.5)

OSPF中Hello报文中包含了路由器的Router ID、邻居列表等信息

当R1和R2建立邻居关系时,邻居状态为:

Down:初始状态,没有从邻居收到任何消息。

Init:从邻居收到了hello报文,但自己的router-id不在hello报文中。

2-way:从邻居收到了hello包,自己的router-id存在于hello报文中。邻居关系建立。

Hello报文的主要作用

  • 邻居发现:自动发现邻居路由器
  • 邻居建立:完成Hello报文中的参数协商,建立邻居关系

参数协商例如:掩码,DR,BDR,区域,特殊区域

  • 邻居保持:通过周期性的发送和接收,检测邻居运行状态

建立邻接关系

Exstart:路由器向邻居发送DD报文,不包含摘要信息。router-id大的作为Master设备。(采用一样的序列号发送DD报文)

Exchange:发送包含摘要信息的报文。

Loading:相互向对方发送对方所需要的LSDB。

Full:完成LSDB同步。

影响邻居建立原因

router-id要不同

链路两端区域号要一致

认证类型(md5、明文)要相同    ------------OSPF报文头部

hello dead间隔时间不一致

MA网络中无DR

mtu要相同

MA网络子网掩码要相同

接口未设置silent-interface

区域内网络类型要相同  网络类型不同,不影响邻居建立,但会影响路由的计算。

DR与BDR的作用

减少全网连接量       不然n*(n-1)/2

DR与BDR、DRother之间建立邻接关系

DRother之间只建立邻居关系

先选BDR,后选DR。

DR/BDR的选举是非抢占式的

  • 比如已经有了DR/BDR,后面又新增了一台路由器,优先级比现在DR/BDR要更优,为了网络稳定,新增路由器不会去抢占DR/BDR。

DR/BDR的选举是基于接口的(路由器的每个接口角色都不一样,有可能一台路由器的两个接口分别是DR或BDR)

  • 接口的DR优先级越大越优先
  • 接口的DR优先级相等时,Router ID越大越优先。

在一个广播网络当中,至少有一个DR优先级不能为0。如果都为0,则不能建立邻接,无法交互LSA。

像这样的广播网络,如果DR优先级都是0,由于没有DR,不能建立连接邻接关系,无法正常工作。

DR选举规则:

1、OSPF优先级最大,为DR(缺省情况下,所有OSPF路由器优先级都为1)。如果优先级都相同,则选择Router-ID最大的路由器选举为DR(Router-ID选举:手工配置>Loopback>接口IP)。

2、BDR是优先级仅次于DR的路由器,选举为BDR。

3、如果路由器优先级为0,表示改路由器不参与选举DR/BDR,称为DRother。

OSPF几个需要注意的地方:

1)当hello时间不同时是永远起不来邻居的

2)当hello时间不同时会停留在Init状态

3)如果路由的优先级都改成了0,会停留在2-way状态

4)当MTU值不同时会停留在ExstartT或Exchange状态

OSPF 使用两个组播地址

224.0.0.5---All OSPF Routers.

224.0.0.6---All DR Routers(DR+BDR)

相关文章
|
11天前
|
负载均衡 网络协议 算法
|
3天前
|
存储 网络协议 算法
OSPF基本概念解析:从零开始理解
OSPF基本概念解析:从零开始理解
10 0
|
6月前
|
网络协议 程序员 网络架构
最全OSPF路由协议基础(OSPF基本配置),2024年最新Python高级面试
最全OSPF路由协议基础(OSPF基本配置),2024年最新Python高级面试
最全OSPF路由协议基础(OSPF基本配置),2024年最新Python高级面试
|
网络协议 算法 数据库
第三章OSPF原理
第三章OSPF原理
105 0
|
负载均衡 网络协议 算法
第二章OSPF配置
第二章OSPF配置
120 0
|
网络协议 算法 数据库
OSPF动态路由协议基础知识
OSPF动态路由协议基础知识
214 1
OSPF动态路由协议基础知识
|
网络协议 算法 网络架构
动态路由四大天王:OSPF、RIP、IS-IS、BGP,收藏这篇文章足矣!
动态路由四大天王:OSPF、RIP、IS-IS、BGP,收藏这篇文章足矣!
263 0
|
网络协议 安全 数据安全/隐私保护
OSPF 配置实战
拓扑中的 IP 地址段采用:172.8.AB.X/24 其中 AB 为两台路由器编号组合,例如:R2-R3 之间的 AB 为 23,X 为路由器编号,例如 R3 的 X=3 R1/R4/R6 之间的网段为:172.8.146.X/24,其中 X 为路由器编号。 R4/R5/R6 之间的网段为:172.8.100.X/24,其中 X 为路由器编号。 所有路由器都有一个 Loopback 0 接口,地址格式为:X.X.X.X/32,其中 X 为路由器编号。
327 1
OSPF 配置实战
|
网络协议 算法 网络架构
OSPF高级配置——学习OSPF路由协议的高级应用
在一个大型的网络中会存在很多问题,如新建区域没有和骨干区域相连,路由条目过多,L.SDB过大,OSPF和其他路由协议之间如何通信等问题,需要进一步解决和优化。通过本章的学习可以解 决上面提到的OSPF网络中存在的一些问题,本章将介绍OSPF路由协议的NSSA区域的概念和配置以及一些OSPF路由协议的高级应用(路由重分发、地址汇总、虚链路等)的原理和配置。
216 0
OSPF高级配置——学习OSPF路由协议的高级应用
|
网络协议 算法 数据库
网络实战ospf多区域原理与实战
OSPF多区域原理与配置 楔子 其实网路算得上是底层的原理了 根据tcp/ip 七层协议就可以看出 系统原理和网络是不可分割的一部分。 生成OSPF多区域的原因 改善网络的可扩展性 快速收敛 OSPF区域的容量 划分多区域后,每个OSPF区域里到底可以容纳多少台路由器?单个区域所支持的路由器数量的范围大约是30-200。
1420 0