HCIP---OSPF总结

OSPF—开放式最短路径优先协议

OSPFv2和RIPv2对比

相同点
1、两者都是无类别路由协议—传播时携带真实掩码
2、两者的更新方式相同—组播
RIPv2—224.0.0.9
OSPFv2—224.0.0.5/6
3、两者均支持等开销负载均衡
不同点
RIPv2只能应用在小型网络中,OSPFv2可以应用在中大型网络环境中

OSPF区域划分—结构化部署

OSPF域(Domain)—将一系列的OSPF路由器组成的网络称为ospf域

OSPF多区域划分要求:

1、ospf要求域中所有的非骨干区域(区域id不为0的区域)都必须与area0相连
2、骨干区域不能被分割

假定没有“域中所有的非骨干区域(区域id不为0的区域)都必须与area0相连”这条规则—形成孤岛路由器
在这里插入图片描述
定义了ABR(区域边界路由器)设备—确保所有人遵循上述规则
为了避免区域间的路由形成环路,非骨干区域之间不允许直接相互发布区域间路由

假定没有“骨干区域不能被分割”这条规则—出环
在这里插入图片描述
ospf规定:从非骨干区域收到的路由信息,ABR能接收,但不会使用这条路由信息(ospf水平分割机制)

总结:
ospf有如下规则:
1、对于伪abr设备不允许转发区域间路由信息
2、对于真实abr而言
能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域
能够将自己直连的骨干区域的区域内路由信息传递给非骨干区域
能够将自己从骨干区域学习到的区域间路由信息传递给非骨干链路

OSPF路由器角色

在这里插入图片描述

OSPF数据包

在这里插入图片描述
RID配置方式:
1、手工配置
2、自动配置
默认最大环回IP地址,若没有则选择最大物理地址
注意:启动OSPF进程前,必须要有接口IP地址,若存在IP地址,则在第一次启动ospf进程时,会选取第一个配置的IP地址为RID。但是,若删除第一个配置的IP地址后,则恢复为上述规则
在华为设备中,若没有接口IP地址,则ospf启动后,rid为0.0.0.0;在思科设备中,启动失败
无论采用手工配置还是自动选择,一旦ospf进程启动,rid被确定,则无法变化,必须重启设备才生效

OSPF七大状态机

在这里插入图片描述
条件匹配

  • 设备接口名称
    DR—指定路由器
    BDR—备份指定路由器
    DRother—其他路由器
  • OSPF称为邻接关系的条件
    点到点—不用选举DR和BDR—直接开始建立邻接关系(加快收敛的方法)
    MA网络—在一个网络中,不限制节点数(会选举DR和BDR)
  • 选举规则
    接口优先级—>0-255—>优先级越大,为DR,次一级为BDR(默认为1)
    RID—越大越优先
  • 选举范围—一个广播进行一次条件匹配
  • 角色之间的关系
    DR和DRother—>邻接关系
    DR和BDR—>邻接关系
    BDR和DRother—>邻接关系
    DRother和DRother—>邻居关系
  • 非抢占性选举模式

选举过程

1.DR、BDR的选举是通过Hello报文来实现的,选举过程发生在2-way状态后
2.路由器将自己的接口的DR优先级填写在Hello报文中的“DR优先级”字段
3.在接口视图下可以修改DR优先级(若DR优先级修改为0,则代表不具备DR和BDR选举)
4.当路由器接口激活OSPF后,首先检查网络上是否已经存在DR设备,如果存在则接收DR角色。若不存在,则拥有最高DR优先级的设备称为DR(RID)
5.BDR的选举过程和DR选举过程相同,但是是在DR选举成功之后

OSPF工作状态

在这里插入图片描述

  • 启动OSPF配置完成后,OSPF将向本地所有运行OSPF协议的接口组播224.0.0.5发送hello报文;hello报文中携带有本地的RID以及本地已知的邻居RID;之后生成邻居表
  • 邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系;仅hello报文保活
  • 匹配成功的邻居将开始建立邻接关系
  • 首先使用未携带数据的DBD报文来进行主从关系选举;之后使用携带数据的DBD报文来共享数据库目录;之后本地使用LSR/LSU/LSAck报文来获取未知的LSA信息;
  • 完成本地数据库的建立—生成数据库表
  • 之后本地基于数据库生成有向图和最短路径树,之后计算本地到达拓扑中所有未知网段的最短路径,并将其添加到路由表中
  • 收敛完成,hello报文周期保活。每30min进行一次周期更新

结构突变
1.新增网段—直接在邻接关系的接口使用LSU进行更新,将内容告诉邻居,并需要邻居的ACK确认
2.断开网段—直接在邻接关系的接口使用LSU进行更新,将内容告诉邻居,并需要邻居的ACK确认
3.无法沟通—dead time—四倍的hello时间

OSPF报文格式

OSPF报文头部

在这里插入图片描述

  • 版本(version)
    对于ospfv2而言,该字段恒为2
  • 类型(type)
    描述ospf数据包的类型
    Hello—1
    DBD—2
    LSR—3
    LSU—4
    LSAck—5
  • 报文长度(length)
    整个ospf报文长度—单位字节
  • 路由器ID
    发出该报文的路由器的RID值
  • 区域ID
    发出该报文的接口所属于的区域的ID值
  • 校验和
    验证ospf整体数据报文的有效性
  • 验证类型
    指示该报文使用的认证类型
    不认证—0;简单认证—1;MD5认证—2;
  • 认证数据
    用于报文认证所对比的内容
    若认证类型为不认证,则该字段全用0填充

Hello包

在这里插入图片描述

  • 网络掩码(network mask) 该字段填充的是发送该报文的网络掩码
    两台OSPF路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码(点到点网络不需要对比该参数)
    注意:OSPF建立邻居关系需要对比子网掩码信息是华为独有,别的厂商没有
  • Hello间隔 两台直连路由器需要确保直连接口的Hello时间间隔相同,否则邻居关系无法建立
    缺省情况下,p2p和BMA类型下,为10s;P2MP和NBMA为30s 可选项(options)
    该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF特性
    而ospf邻接关系建立过程中,该字段中的某些比特位将会被检查,可能会影响OSPF邻居关系建立
  • 路由器优先级
  • 路由器失效时间
    两台直连路由器要建立OSPF邻居关系,需要保证双方接口的deadtime一致,否则邻居关系无法正常建立
    缺省时间为hello的4倍
  • 指定路由器
    网络中DR设备的接口IP地址
    若没有DR或DR选举没有选举出来,则填充0.0.0.0
  • 备份指定路由器
    网络中BDR设备的接口IP地址
    若没有DR或DR选举没有选举出来,则填充0.0.0.0
  • 邻居
    在直连链路上发现的有效邻居,此处填充的是邻居的RID值,如果发现多个邻居,则包含多个邻居字段
    在这里插入图片描述
限制邻居关系建立的参数

1、子网掩码
在R2上修改网络掩码后
R2会将与R3的状态立即修改为Down状态。而R3会在40s死亡时间之后进行转换
原因在于,R2在修改IP地址的掩码后,会认为之前的连接中断,需要重新建立连接,所有充值状态机
而R3则认为是无法沟通。故会等待死亡时间超时后才切换状态

并且,该情况在R3等待40s周期内,还会发送数据,形成路由黑洞

实验:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
R1在改的一瞬间就down了
R2等待dead时间过后才down

2.Hello时间
[r1-GigabitEthernet0/0/0]ospf timer hello 20
3.Dead时间
[r1-GigabitEthernet0/0/0]ospf timer dead 120
注意:修改hello时间,则死亡时间随之改变,而仅修改死亡时间,hello间隔时间不变。
4.OSPF特殊区域标记
跟修改掩码效果相同。
5.认证字段
两者均需要等待死亡时间超时,才会从full状态切换到down状态。

DBD包

  • 使用未携带数据的DBD报文进行主从关系选举
  • 使用携带数据的DBD报文进行目录信息共享
  • 使用未携带数据的DBD报文进行确认
    在这里插入图片描述
  • 接口最大传输单元(接口的MTU)
    • 华为将该值设置为0
    • 华为默认不对MTU值进行检测
    • [r1-GigabitEthernet0/0/0]ospf mtu-enable
    • 如果两边均开启该功能,则会进行MTU检测,并且进行检测时,若两边不同,则状态卡在
      exstart状态。
  • I位----主从关系选举
    • 如果该位置为1,则不会携带LSA头部。
  • M位----代表后续是否有多个DD报文
    • 置为1,则代表后续还有DD报文
    • 置为0,则代表该报文为最后一个DD报文
  • MS位----代表主设备
    • 该比特位置为1,则代表Master
    • 在主从关系选举完成之前,各个设备均会认为自己的master。
  • DD序列号
    • 用于确保DD报文传输的有序和可靠性。----DD序列号逐次加1。
    • DD序列号必须是由Master路由器决定,而从设备只能使用Master设备发送来的DD序列号来
      发送自己的DD报文。(隐性确认机制)
  • LSA头部
    • 当路由器使用DD报文来描述自己的LSDB时,LSA的头部信息被包含在内。
    • 一个DD报文可以包含一个或多个LSA头部信息。

LSR包

基于DBD报文请求本地未知LSA信息。
在这里插入图片描述
链路状态类型、链路状态ID、通告路由器-----LSA三原则。—通过三个参数唯一标识一条LSA。

LSU包

在这里插入图片描述

LSACK包

在这里插入图片描述

OSPF的接口网络类型

在这里插入图片描述

广播型多路访问类型(BMA)

OSPF在BMA网络类型的接口上通常以组播的方式发送hello报文、LSU报文和LSACK报文。以单播
形式发送DD报文和LSR报文

点到点类型(P2P)

OSPF在网络类型为P2P的接口上以组播的方式(224.0.0.5)发送所有的协议报文。并且OSPF在P2P类
型的网络中不会选举DR和BDR。
该接口类型信息中,缺少了在BMA网络中看到的DR优先级、DR和BDR的描述信息。

环回接口(虚拟接口)

Type----P2P-----在思科中有专门定义的Loopback类型作为环回接口的类型,而华为中没有定义,使用
P2P来填充(没有意义)。
所有通过OSPF学习到的环回接口的路由掩码信息都是32位,这是因为环回接口是一个模拟的接口,
它实际上并没有连接用户,所以没有其余的IP地址存在于环回接口之下,只有一个可用的IP地址,故而
使用32位掩码来直接标识环回接口。保证路由信息的精确性。----避免产生环路或者路由黑洞。
[r1-LoopBack0]ospf network-type broadcast //修改网络类型为BMA
State:Waiting
原因在于环回接口此时并没有邻居,也就无法进行正常的DR和BDR选举,当时间超时后,环回接口会
认为自己就是DR,并将相应信息填充到该接口信息中。

P2MP接口类型

OSPF在P2MP类型的接口上通常以组播的方式发送hello报文,以单播的方式发送其它报文。
P2MP类型无法由设备自动生成,必须由管理员手工更改。
P2MP类型网络不需要选举DR和BDR。

非广播型多路访问类型(NBMA)

在NBMA场景中,为了让OSPF路由器之间能够正确建立邻居关系,需要使用单播邻居的方式来发送
OSPF报文。双向配置。

OSPF的不规则区域

1.使用tunnel隧道
在R2和R3之间构建一条隧道,之后,将这个隧道宣告到Area0,相当于将R3这个非法的ABR设备合法
化。

使用vpn隧道解决不规则区域的问题:

  1. 可能产生选路不佳
  2. 可能造成重复更新
  3. 因为虚拟链路的存在,R2和R3之间也需要建立邻居。导致他们之间维护的周期性数据将穿越
    Area1,导致中间区域的资源消耗过大。

2.虚链路—Vlink
专门为了解决OSPF不规则区域所诞生的技术。是一种虚拟的、逻辑的链路。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
虚链路的配置条件:只能穿越一个区域。
Vlink链路实际上全部使用单播报文来描述信息。
Vlink被视为骨干区域的一段延伸----vlink永远属于Area0。

使用vlink解决不规则区域的问题:

  1. 因为虚拟链路的存在,R2和R3之间也需要建立邻居。导致他们之间维护的周期性数据将穿越
    Area1,导致中间区域的资源消耗过大。
  2. 只能穿越一个区域。
    实际上,vlink不仅仅应用在我们上述两种不规则区域,还可以用来修复一些次优路径或者骨干区域不健
    壮问题

3.使用多进程双向重发布
重发布
把一种路由信息以另一种路由协议的方式发布出去。
[r3-ospf-1]import-route ospf 2 —将OSPF进程2的路由导入到OSPF进程1
[r3-ospf-2]import-route ospf 1

OSPF的LSA详解

LSA头部

在这里插入图片描述

  • 链路状态老化时间(Link-State Age)
    • 16bit,单位S
    • 当该LSA被始发路由器产生时,该值被设置为0,之后随着该LSA在网络中被洪泛,老化时间逐
      渐累积。
    • 最大老化时间----3600S-----当到达该时间后,该LSA会被本地路由器删除。
    • 在OSPF网络中,只有始发路由器能够提前使该LSA老化,并删除全网该LSA信息。
    • 组步调计时器----cisco----240S
  • 可选项
    • 内容与hello包相同
  • 链路状态类型(Link-State Type)**
    • 指代该条LSA的类型
  • 链路状态ID
    • 用来标识LSA的,不同类型的LSA,对该字段的定义不同。
  • 通告路由器
    • 产生该LSA的路由器的RID
  • 链路状态序列号
    • 32位bit,逐次加一
    • 起始:0X80000001;截止:0X7FFFFFFF
    • 序列号空间
      • 线性序列号空间
      • 循环序列号空间
      • 棒棒糖序列号空间
  • 校验和
    • 会参与到LSA的新旧关系对比

判断LSA的新旧关系
链路状态序列号、老化时间、校验和

  1. 具备较高序列号的LSA信息更优
  2. 具备相同序列号的LSA,选择拥有较大校验和的LSA
  3. 具备相同序列号和校验和,如果某条LSA的老化时间被设置为最大老化时间,则认为该LSA最新。
  4. 具备相同序列号和校验和,没有任何一条LSA的老化时间为最大老化时间,会对比两个LSA的老化
    时间之差。
    1. 当差值大于15min(MaxAge Diff:一个LSA实例从始发设备发出,直到被洪泛到整个AS边
      界所需要的最长时间
      ),会认为两条LSA是不同的,选择较小的LSA
    2. 当差值小于等于15min,会认为两条LSA相同,选择随机一个

在这里插入图片描述

Type-1 LSA----Router

  • 对于一类LSA,网络中所有设备都会发送,并且只发送一条
  • 同属一个区域的接口共同使用一个一类LSA信息进行描述。
    • 若存在多个区域,路由器会为每个区域单独产生一个一类LSA,并且每个LSA只描述接入该区
      域的接口。
      在这里插入图片描述

Type-2 LSA----Network

  • 在一个网络中,只需要一台设备发送
  • 该LSA仅存在于MA网络中,由DR设备产生
  • 链路状态ID为DR的接口IP地址
    在这里插入图片描述

Type-3 LSA—Sum-Net

  • 通告者均为ABR设备
  • 每一条路由项都使用单独的一条LSA信息进行描述
  • 该LSA中的开销值,指的是通告者到达目的网段的开销值
  • 设备在接收到3类LSA之后,需要根据一类LSA和二类LSA计算的拓扑信息来寻找三类LSA的通告
    者。
  • 如果,通告者是所在区域的ABR设备,那么自然而言,设备可以通过一类和二类LSA找到通告者;
    若不是本区域的ABR设备通告的,则需要转换通告者。
    在这里插入图片描述

Type-5 LSA----External

  • 通告者—ASBR
  • LS ID----域外路由信息的目标网络号
  • 传播范围----整个OSPF域
  • 五类LSA中携带的是域外路由信息,通过重发布导入OSPF网络,因为不同协议对开销值的算法标准
    不同,所以,在路由导入之后,将直接舍弃原本的开销值,之后给路由赋予一个规定值-----种子度
    量值
    • OSPF的种子度量值为1
    • [r4-ospf-1]import-route rip 1 cost 5
  • E位:
    • 表示外部路由使用的度量值类型,OSPF定义了两种外部路由度量值类型,分别为MetricType-1(E=0)、Metric-Type-2(E=1)
    • Type-1:所有设备到达域外目的网段的开销值为本地到达ASBR的开销值+种子度量值
    • Type-2:域内所有设备到达域外目的网段的开销值等于种子度量值;OSPF默认使用类型2.
    • [r4-ospf-1]import-route rip 1 cost 5 type 1
  • 外部路由标记
    • 一个只有外部路由才能携带的标记,经常被用于部署路由策略或策略路由。
    • 在华为路由器上,缺省时,该字段值被设置为1。
  • 转发地址—FA
    • FA字段默认为0.0.0.0;则到达该外部网段的流量会被转发引入到发送这条LSA的ASBR设备。
    • 而若FA字段不为0.0.0.0,则流量会被发送给这个FA字段所表示的地址。
    • 作用:解决次优路径问题-----与ICMP中的重定向报文具有相同效果。
    • FA字段被设置为其余数值的条件:
      • 引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF协议。
      • 该接口的网络类型为BMA或者NBMA。
      • 该接口的IP地址属于OSPF协议配置network命令范围。
      • 该接口没有被配置为静默接口。

在这里插入图片描述

Type-4 LSA------ Sum-Asbr

  • 链路状态ID------ASBR的RID值
  • 度量值----填写的是该通告者到达ASBR的Cost值
  • 四类LSA的任务就是在辅助五类LSA完成验算过程,找到ASBR的位置,里面只携带一个开销值。

Type-7 LSA----NSSA

  • E位----表示允许洪泛五类LSA信息,如果做成特殊区域,则E位为0
  • N位—属于opention字段,允许处理七类LSA
  • P位—不属于opention字段,代表支持7转5操作。
  • 在7类LSA中,在不存在选路不佳的情况下,一般会使用通告者(ASBR)设备的环回接口地址作为
    转发地址
    • 如果存在多个环回接口,则使用最先宣告的环回接口地址作为转发地址。
    • 如果没有环回接口,则使用武力接口的地址作为转发地址。
    • 华为逻辑-----cisco—选择最后一个宣告的IP。

路由撤销

一类LSA撤销

  • 一类LSA实质是是在通过:序列号+1;校验和不变;老化时间=0的新LSA来覆盖掉老的一类LSA。

二类LSA撤销

  • 与一类LSA玩法相同

三类LSA撤销

  • 三类LSA的撤销方式:seq不变,校验和不变,老化时间设置为3600S
  • 若采用seq+1,校验和不变,老化时间不变的方式撤销,当需要撤销的三类LSA数量较大时,会导
    致路由器会消耗大量计算资源。

五类与七类LSA撤销

  • 三类LSA的撤销方式:seq不变,校验和不变,老化时间设置为3600S
  • 若采用seq+1,校验和不变,老化时间不变的方式撤销,当需要撤销的三类LSA数量较大时,会导
    致路由器会消耗大量计算资源。

OSPF优化

主要目的----减少LSA的更新量以及数量。

  1. 路由汇总(减少骨干区域的LSA更新量)
  2. OSPF特殊区域(减少非骨干区域的LSA更新量)

OSPF路由汇总(路由聚合)

  • OSPF路由汇总是由手工部署的
  • OSPF的汇总称为----区域汇总,因为OSPF在区域之间才传递路由信息,并且是对路由进行汇总而非
    LSA信息。
    • 域间路由汇总
    • 域外路由汇总

域间路由汇总

在这里插入图片描述
[GS-R2-ospf-1-area-0.0.0.1] abr-summary 192.168.0.0 255.255.224.0
[GS-R3-ospf-1-area-0.0.0.2]abr-summary 192.168.32.0 255.255.224.0
只要站点内这条汇总路由所涵盖的所有明细路由中有一条是有效的,则ABR就会通告该汇总路由,而
当所有的明细路由全部失效时,ABR设备才不会继续通告该汇总路由。

汇总并不会影响ABR设备自身的明细路由。
汇总会抑制明细路由的发送。
域间路由汇总只能汇总ABR设备自身通过一类LSA和二类LSA信息学习到的路由条目。

域外路由汇总

在这里插入图片描述
[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0
5类LSA汇总之后的开销值计算方法:

  • Type-2------汇总网段的开销值等于所有明细路由开销值中的最大值+1
  • Type-1------汇总网段的开销值等于所有明细路由开销值中的最大值

OSPF的特殊区域

第一大类-----1、不能是骨干区域;2、不能存在虚链路;3、不能存在ASBR设备

末梢区域(Stub Area)

在这里插入图片描述

  • 如果将一个区域配置成末梢区域,则这个区域将不再学习4类和5类LSA。-----ABR设备将不会在给
    该区域转发4类和5类LSA信息。
  • 该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该区域ABR设
    备,会自动生成一条指向骨干区域的3类LSA缺省路由。
    [r5-ospf-1-area-0.0.0.2]stub
    [r1-ospf-1-area-0.0.0.2]stub
    注意:一旦做特殊区域,则所有区域内的设备都必须做特殊区域。

完全末梢区域(Totally Stub Area)

在末梢区域的基础上,进一步拒绝学习3类LSA,仅保留3类缺省即可。
[r1-ospf-1-area-0.0.0.2]stub no-summary 该命令仅需要在ABR设备上配置即可
第二大类特殊区域----1、不能是骨干区域;2、不能存在虚链路;3、存在ASBR设备。

非完全末梢区域(NSSA)

在这里插入图片描述

  • 如果将一个区域配置成非末梢区域,则这个区域将不再学习4类和5类LSA。-----ABR设备将不会在
    给该区域转发4类和5类LSA信息。
  • 该区域依然需要将域外路由信息导入,但因为该区域拒绝5类LSA,所以,只能以7类LSA的形式来
    继续传递域外路由信息。
    • 之后,在7类LSA信息离开NSSA区域后,需要再转换成5类LSA进行传输。
  • 该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该区域ABR设
    备,会自动生成一条指向骨干区域的7类LSA缺省路由。
    [r5-ospf-1-area-0.0.0.2]nssa
    [r1-ospf-1-area-0.0.0.2]nssa

O_NSSA ------7类域外路由信息的标记,默认优先级也是150。

完全的非完全末梢区域(Totally NSSA)

在NSSA的基础上,进一步拒绝学习3类LSA,产生一条3类缺省LSA。
[r1-ospf-1-area-0.0.0.2]nssa no-summary

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值