路由协议分类

按路由分类

按路由区分.png

按工作机制、算法分类

按工作机制、算法分类.png

按有类、无类分类

有类、无类.png

按工作区域分类

按工作区域分类.png

OSPF简介

无路由自环

支持等价负载

只可能在双向路由引入时成环(用TAG打标签可解决)

可适应大规模网络

无限广大网络协议

一个区域里最大255个路由器,但是可以有2的32次方个区域

路由变化收敛速度快

触发更新

支持区域划分

骨干区域和非骨干区域

骨干区域:Area 0

非骨干区域:除Area 0以外

支持等值路由

支持等价负载均衡 1:1

支持验证

可配置验证

支持以组播地址发送协议报文

Dothers使用:224.0.0.5

DR/BDR使用:224.0.0.6

也会使用单播

支持多种网络类型

1.广播型网络区域(MA)

2.非广播多路访问(NBMA)

3.点到点(P2P)

4.点到多点(P2MP)

两台路由器运行OSPF协议的路由器若希望建立邻居关系,则必须满足的条件:

  1. 区域号要一致

  2. 均不配置验证、若均配置验证,需密钥完全相同

  3. 两端的HelloDead Time时间间隔完全一致

常见优先级对比

Huawei

Cisco

直连

0

0

静态

60

1

OSPF 10

10

110

O_ASE 150

150

110

Loopback

1

0

宣告方式

辅助实验

https://www.iiisle.com/archives/QBbX8iet

OSPF进程下宣告

[R2]ospf 1 router-id 10.0.1.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.23.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.1.2 0.0.0.0

接口下宣告

必须先配置IP再宣告OSPF

[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address  192.168.1.1 255.255.255.0
[R1-GigabitEthernet0/0/1]ospf enable 1 area 0
[R1-GigabitEthernet0/0/1]quit

使用情景区分

  1. 在初次部署OSPF时,建议在进程配置模式下进行路由宣告,因为此时可以同时指定Router-ID、VPN-Instance等关键参数,实现一次性配置。

  2. 当后续需要扩展网络时,例如新增接口需要加入现有OSPF进程,则推荐在接口配置模式下进行宣告,这种方式能够有效减少操作步骤,实现命令最小化。

开销值计算

单个接口的OSPF开销值计算方法

华为设备计算单个接口的OSPF开销值,遵循以下默认公式:接口Cost值 = 参考带宽 / 接口带宽

cost = 10^8 / BW

参考带宽(Reference Bandwidth)

  • 定义:这是一个基准值,用于标准化不同带宽接口的成本计算。

  • 华为默认值100 Mbps

  • 查看命令display ospf [process-id]在输出信息中查找 Bandwidth-reference

接口带宽(Interface Bandwidth)

  • 定义:这是接口的物理带宽手动配置的带宽

  • 单位:Mbps。

  • 注意:接口的带宽值可以通过 display interface [interface-name]查看。有时需要手动使用 bandwidth命令配置,因为某些接口(如以太网接口)的默认带宽可能不准确。

计算规则与限制

  • 结果取整:计算结果是小数时,直接取整(不是四舍五入)。

  • 最小值限制:计算出的Cost值不能小于1。如果 参考带宽/接口带宽 < 1,则Cost值取1。这是为了防止高速接口(如10G、100G)的Cost值变为0。

计算示例

假设使用默认参考带宽100 Mbps。

  1. 100 Mbps 以太网接口:Cost = 100 Mbps / 100 Mbps = 1

  2. 10 Mbps 以太网接口:Cost = 100 Mbps / 10 Mbps = 10

  3. 1.544 Mbps T1 接口:Cost = 100 Mbps / 1.544 Mbps ≈ 64.76 → 取整为 64

  4. 10 Gbps (10000 Mbps) 接口:Cost = 100 Mbps / 10000 Mbps = 0.01 → 因为小于1,所以取1

从这些例子可以看出,接口带宽越高,Cost值越低,路径越优。

如何修改OSPF开销值(三种方法)

在实际网络中,经常需要手动调整Cost值来影响路由选择。

方法1:修改接口带宽(不推荐用于控制Cost)

在接口视图下修改带宽值,这会直接影响Cost计算。

 [Huawei] interface GigabitEthernet 0/0/0
 [Huawei-GigabitEthernet0/0/0] bandwidth 1000   # 将带宽值改为1000 Mbps

注意:这只会改变OSPF计算用的带宽参数,并不会改变接口的实际物理带宽。通常不建议用这种方法来控制Cost,因为它可能影响其他依赖带宽特性的协议(如QoS)。

方法2:直接配置接口的OSPF Cost值(最常用、最推荐)

这是最直接、最可靠的方法。在接口视图下直接指定该接口在OSPF中的Cost值。

 [Huawei] interface GigabitEthernet 0/0/0
 [Huawei-GigabitEthernet0/0/0] ospf cost 50   # 直接将该接口的OSPF Cost设置为50

优先级最高:手动配置的Cost值会覆盖所有自动计算的值。

方法3:修改OSPF进程的参考带宽(用于高速网络)

当网络中存在大量高速接口(如10G、40G、100G)时,如果使用默认参考带宽100 Mbps,所有高速接口的Cost都会是1,无法区分优劣。此时可以增大参考带宽。

在OSPF进程视图下修改:

 [Huawei] ospf 1
 [Huawei-ospf-1] bandwidth-reference 1000   # 将参考带宽修改为1000 Mbps (1 Gbps)

修改后

  • 10G接口Cost = 1000 Mbps / 10000 Mbps = 0.1 → 取1

  • 1G接口Cost = 1000 Mbps / 1000 Mbps = 1

注意一个OSPF域内所有路由器的参考带宽必须设置为相同值,否则会导致路由计算错误。

特殊接口的开销

  1. Loopback接口:默认开销为1,且不受参考带宽和接口带宽影响。但可以手动修改。

  2. VLANIF接口:其Cost值取决于其物理接口的Cost值。

总结

场景

推荐操作

标准网络,链路带宽差异明显

使用默认参考带宽(100 Mbps)和自动计算。

需要为某条链路指定特定开销

使用 ospf cost 命令在接口下直接配置。

网络中存在大量高速链路(>1G)

在OSPF进程下统一修改参考带宽(如1000或10000),确保域内一致。

需要实现负载分担

手动调整并行链路的Cost值,使其相等。

扩展

计算Cost值时,看的是自己出口的Cost值。

OSPF协议概述

  • OSPF属于【内部网关路由协议】

  • 用于单一自治系统【Autonomous System一AS】内决策路由

自治系统的概念

  1. 运行在同一个AS内用于决策路由的协议称之为内部网关协议

  2. 用来连接不同的AS,使之能够相互通信的协议被称之为外部网关协议

  3. 执行统一路由策略的一组网络设备组成的环境称之为一个自治系统(AS)

  • 为了适应大型的网络,OSPF在AS内划分多个区域,每个OSPF路由器只维护所在区域的完整链路状态信息

  • OSPF是链路状态路由协议,链路状态路由协议中的路由器了解OSPF网络内的链路状态信息

  • 链路状态路由协议中,直连的路由器之间建立邻接关系,互相【交流】链路信息,来【绘制】出完整的网络结构

  • Router ID:在OSPF区域内唯一标识一台路由器的IP地址

Router lD选取规则

  1. 若管理员手工指定,则使用指定的P地址

  2. 若没有手工指定,则路由器选取它所有Loopback接口上数值最高的lP地址

  3. 若不存在Loopback接口,就在所有物理端口中选取一个数值最高的P地址

OSPF建立并维护的3张表项

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

  2. 链路状态数据库【LSDB】:列出每台路由器的信息,由此显示了全网的网路拓扑

  3. 路由表:列出通过SPF算法计算出的到达每个相连网络的最佳路径

具体过程

  1. 通过直连链路发送Hello包,建立邻居关系,将邻居的信息放入邻居表中

  2. 再通过直连的邻居学会全网的网络结构,放入LSDB

  3. 在全网网络结构中通过SPF算法计算出最佳路径

OSPF的关系

  • 邻居关系(2-Way)

  • 邻接关系(Full)

OSPF建立关系需要使用7种状态和五种报文:

  • 7种状态:Down Init 2-Way ExStart Exchange Full(全毗邻)

  • 5种报文:Hello DBD LSR LSU LSAck

报文汇总表

报文名称

报文功能

Hello

周期性发送,用来发现和维护OSPF邻居关系

Database Description

描述本地LSDB的摘要信息,用于两台设备进行数据库同步

Link State Request

用于向对方请求所需要的LSA。设备只有在OSPF邻居双方成功交换DD报文 后才会向对方发出LSR报文

Link State Update

用于向对方发送其所需要的LSA

Link State ACK

用来对收到的LSA进行确认

OSPF建立邻接关系的全过程

初始发现与双向通信(Down → Init → 2-Way)​​

  • Down(关闭状态)​​:这是起点,表示尚未与任何邻居进行通信。

​Init(初始化状态)​​:当路由器从其接口收到一个OSPF Hello报文时,会进入此状态。这表示它发现了邻居,但还需要确认对方是否也发现了自己。(自身的Router-ID并不在所收到的Helo报文的邻居列表中)

  • 2-Way(双向通信状态)​​:当路由器在自己收到的Hello报文中,发现邻居的「邻居列表」里包含了自己的Router ID时,就表明双向通信已经建立。此时,双方成为「邻居」(Neighbor)。在广播或NBMA网络中,所有路由器会在此阶段选举DR(指定路由器)​​ 和 ​BDR(备份指定路由器)​,以优化邻接关系数量。之后,只有DRBDRDROther之间才会继续建立更紧密的「邻接」关系。(存在自身的 Router ID)

​数据库同步的核心协商(ExStart → Exchange)​​

  • 2-Way状态开始,需要建立邻接关系的路由器会进入数据库同步过程。

  • ExStart(交换启动状态)​​:双方会像谈判一样,通过交换空的DD(数据库描述)报文来选举一个「主」设备​(Master)。Router ID较大的通常会成为主设备,负责管理后续DD报文的发送序列,确保交换过程有序。(在此状态下发送的DBD报文不包含链路状态描述)

  • Exchange(交换状态)​​:主从关系确定后,双方开始正式交换包含LSA(链路状态通告)头部信息的DD报文。这些摘要就像书籍的目录,让对方快速了解自己数据库里有哪些网络拓扑信息,从而找出彼此缺失的部分。

​最终同步与完全邻接(Loading → Full)​​

  • ​Loading(加载状态)​​:根据交换得到的「目录」,路由器会使用LSR(链路状态请求)​​ 报文向邻居请求自己缺失的、具体的LSA详情。邻居则用LSU(链路状态更新)​​ 报文来回应这些请求,请求方在收到后会回复LSAck(链路状态确认)​​ 进行可靠确认。这个过程会持续到所有缺失的LSA都被补全。

  • Full(完全邻接状态)​​:当双方的链路状态数据库(LSDB)​​ 完全同步一致时,就达到了Full状态。此时,邻居关系正式升级为邻接关系(Adjacency)​。此后,它们就可以基于完全相同的网络拓扑地图,独立地计算出最优的路由路径了。(路由器已经完成了与邻居的LSDB同步,准备进行SPF计算,生成RIB【路由表项】)

「邻居」不等于「邻接」​​

  • 所有达到Full状态的路由器都是「邻接」,但「邻居」可能只停留在2-Way状态(如广播网络中的两台DROther路由器之间)

流程图

时间间隔

网络类型​

Hello间隔​

​Dead间隔​

是否需要选举DR/BDR​

典型建立时间(稳定网络)​​

广播 / 点对点​

10秒

40秒

广播需要,点对点不需要

30 - 40秒​

NBMA / 点对多点​

30秒

120秒

NBMA需要,点对多点不需要

​90 - 120秒

网络类型

对应的二层网络

是否选举DR/BDR

Hello/Dead 时间

Others

广播型网络

以太网

10s / 40s

组播/单播

非广播多路访问网络

Frame Relay

30s / 120s

需手动配置(单播)

点到点网络

PPP

10s / 40s

组播

点到多点网络

Null

30s / 120s

组播/单播

DBD报文部分字段解释

  • I【Init】:当发送连续多个DBD报文时,若这是第一个DBD报文,则置位为1,否则置位为0

  • M【More】:当发送连续多个DBD报文时,若这是最后个DBD报文,则置位为0,否则为1,表示后续还有其它的DBD报文

  • MS【Master/Slave】:当两台OSPF路由器交换DBD报文时,首先需要确定双方的主从关系,Router-lD较大的一方会成为Master;当该值为1时,表示发送方为Master

  • DBD报文序列号(DBD Sequence Number):主/从双方利用序列号来保证DBD报文传输的可靠性与完整性

实验拓扑如图所示:

抓包分析:

备注:

  • 显式确认:会发一种独立的报文用于对接收到的消息做确认

  • 隐式确认:通过发送另一种报文把确认报文包含在其中发送

在OSPF中:

  1. DBD为隐式确认

  2. LSU、LSAck为显式确认

验证:

R2发给R1的报文:

此时的R1和R2在协商主从,R2的Router ID更大,故R2为DR。

R1给R2的回包:

可见,Seq值变为了R2的Seq值,完成了隐式确认,确认R2为DR。

模拟器验证

[R1]dis ospf peer 

	 OSPF Process 1 with Router ID 10.1.1.1
		 Neighbors 

 Area 0.0.0.0 interface 10.1.1.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 10.1.1.2         Address: 10.1.1.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 10.1.1.2  BDR: 10.1.1.1  MTU: 0    
   Dead timer due in 31  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:03:08     
   Authentication Sequence: [ 0 ] 
  1. R2开始向R1发送LSR报文,请求那些在Exchange状态下通过DBD报文发现的,且在本地LSDB中没有的链路状态信息

  2. R1向R2发送LSU报文,LSU报文中包含了哪些被请求的链路状态的详细信息;R2在完成LSU报文的接收,且没有其它待请求的LSA后,会将邻居状态从Loading转变为Full状态

  3. R2向R1发送LSAck报文,作为对LSU报文的显示确认

思考:主从设备谁先发起LSR

  1. 主从选举的核心目的​:在Exchange状态,主设备(Master)负责控制DD(Database Description)报文的序列号,从而管理摘要信息的交换过程,确保其可靠性和有序性​。这好比一个会议中需要确定一个主持人来控制发言顺序。需要注意的是,选举主从时比较的是Router ID,而选举DR/BDR时先比较优先级,这是两个独立的过程

  2. ​LSR的触发时机​:当双方路由器在Exchange状态完成DBD报文(其中包含LSA的头部摘要信息)的交换后,都会进入Loading状态。此时,​每一台路由器都会将收到的对端LSA摘要与自身的LSDB进行对比​。一旦发现存在自己数据库中没有的LSA,或者对端的LSA比自己的更新(通过序列号等判断),该路由器就会立即主动向对方发送LSR报文,请求完整的LSA数据

  3. ​关键交互​:收到LSR的一方会使用LSU(链路状态更新)报文来回应,携带对方所请求的完整LSA信息。请求方在收到LSU后,会回复LSAck报文进行确认,确保传输的可靠性

​Master/Slave角色管的是「目录」(DBD摘要)的交换顺序,而LSR的发起则是每台路由器根据「目录」对比自家「藏书」(LSDB)后,自主决定需要借阅哪本「书」(LSA)的行为。

Options字段中各关键字解析

  1. DN:用来避免在MPLS VPN中出现环路;当PE向CE发送3类、5类与7类LSA时需要设置DN位,其它PE路由器从CE接收到该LSA时,不能够在它的OSPF路由计算中使用该LSA

  2. O:该字段指出始发路由器支持Ppaque LSA【类型9、类型10与类型11】

  3. DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置

  4. N位:N=1表明路由器支持7类LSA;N=O表明该路由器将不接收与发送NSSA LSA

  5. P位:只用在NSSA LSA;该位将告诉NSSA区域的ABR路由器将7类LSA转换为5类LSA

  6. MC位:当始发路由器支持转发组播数据包的能力时,该位将被置位

  7. E位:当始发路由器具有接收AS-external-LSA【Type-5LSA】的能力时,该位被置位;在所有5类LSA与始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发于末节区域的SA中,该位置为0。若Hllo报文中该位被置位则表明该接口具有接收与发送5类LSA的能力

  8. MT位:表示始发路由器支持多拓扑OSPF

  9. Do Not Age Flag:LSA不老化标志位,该置于1,则表示该LSA不老化,此情况只在DC【虚电路】中应用

备注:华为设备默认是不开启端口MTU检测的,故抓包中MTU值为0。

但是在接口中可以查看,MTU为默认值1500。

[R1]dis ip interface 
GigabitEthernet0/0/0 current state : UP 
Line protocol current state : UP
The Maximum Transmit Unit : 1500 bytes
input packets : 230, bytes : 15776, multicasts : 225
output packets : 226, bytes : 15412, multicasts : 219
Directed-broadcast packets:
 received packets:            0, sent packets:            0 
 forwarded packets:           0, dropped packets:           0 
ARP packet input number:           3
  Request packet:                  2
  Reply packet:                    1
  Unknown packet:                  0
Internet Address is 10.1.1.1/24 
Broadcast address : 10.1.1.255
TTL being 1 packet number:       230
TTL invalid packet number:         0
ICMP packet input number:          0
  Echo reply:                      0
  Unreachable:                     0
  Source quench:                   0
  Routing redirect:                0
  Echo request:                    0
  Router advert:                   0
  Router solicit:                  0
  Time exceed:                     0
  IP header bad:                   0
  Timestamp request:               0
  Timestamp reply:                 0
  Information request:             0
  Information reply:               0
  Netmask request:                 0
  Netmask reply:                   0
  Unknown type:                    0

扩展

  • 选举时是先选BDR

  • 从设备先向主设备要LSA

  • 只有DR,没有BDR,可以正常通信

  • 若无SPF算法,路由器和路由条目的数量应该为:路由条目数= [n*(n-1)]/2,其中n为路由器数量,默认全连接

  • 若两个路由器同时启动OSPF,则会在2Way状态下卡40s,此时在选举DR/BDR

辅助实验

https://www.iiisle.com/archives/YDengwsA

OSPF的LSA介绍

LSA的基本概念

  1. LSA是OSPF进行路由计算的关键依据

  2. OSPF的LSU报文可以携带多种不同类型的LSA

  3. 各种类型的LSA拥有相同的报文头部

LSA汇总表

LSA类型

名称

产生者

泛洪范围

核心功能描述

Type 1

Router LSA(路由器LSA)

所有 OSPF 路由器

本区域内

描述路由器自身的直连链路状态、接口开销和邻居关系。每个路由器都会为它所在的每个区域产生一条Type-1 LSA。

Type 2

Network LSA(网络LSA)

指定路由器(DR)

本区域内

描述广播或NBMA等多路访问网络中所连接的所有路由器(包括DR自身)。减少了网络中路由器两两通告邻接关系的开销。

Type 3

Network Summary LSA(网络汇总LSA)

区域边界路由器(ABR)

区域间(整个OSPF自治系统)

ABR将某个区域内的网段路由信息进行汇总后,以Type-3 LSA的形式通告到其他区域,实现区域间路由。

Type 4

ASBR Summary LSA(ASBR汇总LSA)

区域边界路由器(ABR)

区域间(整个OSPF自治系统,除ASBR所在区域)

它不描述路由,而是描述ASBR的位置。当ASBR不在某个区域时,该区域的ABR会产生Type-4 LSA,告知本区域内的路由器如何到达那个ASBR。

Type 5

AS External LSA(自治系统外部LSA)

自治系统边界路由器(ASBR)

整个OSPF自治系统(Stub/NSSA等特殊区域除外)

用于通告到达OSPF自治系统外部的路由(例如,从RIP或BGP学习到的路由)。这是实现跨协议路由引入的关键。

Type 7

NSSA External LSA(NSSA外部LSA)

NSSA区域内的ASBR

仅在始发的NSSA区域内

用于在NSSA(非完全末梢区域)这种不允许Type-5 LSA存在的特殊区域内通告外部路由。NSSA的ABR会将其转换为Type-5 LSA再注入骨干区域。

扩展

唯一LSA的三要素

  1. 类型(Type):用于标识哪种LSA(常见的6种,例如:Router LSA为类型1)

  2. 链路状态标识(LSID):用于描述连接信息(如:Router ID、网络地址等,不同的LSA类型连接的内容也不一样)

  3. 产生者Router ID(Adv Router):标识该LSA由哪台设备产生

用于标识LSA新旧程度的三要素

LSA并不是永久使用的,有老化时间,默认为3600s,从0开始递增

LSA是周期性更新的,每隔1800s更新一次,重新刷新老化时间

对于收到的LSA需要进行判断新旧,新的可以接收,旧的则丢弃,同时回复一份最新的给对方

  1. seq(序列号):越大越优

  2. chksum(校验和):越大越优

  3. maxage(老化时间):

  • 3600s最优先(用于撤销路由)

  • 如果两者相差大于15min(900s),越小越优

  • 如果两者相差小于15min(900s),则一样新,都可以使用

示意图
情景一

情景二

老化时间
OSPF

LSA:从0增加到3600s

IS-IS
  • LSP:LSP的老化时间从1200s【20m】递减,刷新周期为900s【15m】,递减至0老化

  • 一条LSP的老化除了要等待20m外,还要等待60s的零老化时延

  • LSP重传计时器为5秒

特别注意
  1. OSPF中seq/chksum/metric三个参数确定唯一的LSA,其中可以依靠metric值进行选路。

  2. 每到1800s,seq值会+1

  3. OSPF的LSA中的Link-ID描述的是本设备到达DR的接口地址

  4. OSPF的LSA中的Date描述的也是本设备到达DR的接口地址

  5. OSPF的LSA中的Priority描述是这条路由在LSA更新时是稍后更新或者优先更新,只有Medium和Low两种。华为路由器中的环回口默认是Medium。

LSA头部信息

老化时间

可选项

类型

链路状态ID【Link-ID】

通告路由器【ADV Router】

校验和

长度

加粗部分为唯一LSA的三要素

LSA同步过程

流程图

常见LSA详解

https://www.iiisle.com/archives/Peus7vTs

SPF算法

创建并维护以下3张表项

UnKnown List

Tentative List [Candidate List]

Paths List [Known List]

开始所有节点均属于该列表

当前考虑的所有节点均属于该列表

已经计算出最短路径的节点属于该列表

重复执行以下3步N次

  1. 从Tentative List的所有路由器中寻找距离自身【根节点】最近的网络节点,并将其从Tentative List中移动至Paths List中

  2. 发现此节点通告的所有前缀,并将其安装至RB【路由表项】中

  3. 发现此节点的所有邻居,并将其移动至Tentative Listr中

注:Dijkstra:迪杰斯特拉算法【是由荷兰计算机科学家狄克斯特拉于1959年提出的】

具体计算过程举例

OSPF的区域类型

特殊区域汇总表

区域类型

定义与核心特点

允许的LSA类型

不允许的LSA类型

默认路由来源

典型应用场景

骨干区域 (Backbone Area)

区域ID为Area 0,是所有非骨干区域互联的中心枢纽,负责区域间路由信息的交换。

1, 2, 3, 4, 5

7(通常)

不自动生成

网络核心,连接所有其他区域。

标准区域 (Standard Area)

默认的区域类型,没有特殊限制。

1, 2, 3, 4, 5

7(通常)

不自动生成

需要学习全部OSPF路由(域内、域间、外部)的网络部分。

末梢区域 (Stub Area)

不接收来自其他自治系统(AS)的外部路由,以减小路由表规模。

1, 2, 3

4, 5

ABR自动生成一条Type 3 LSA描述的默认路由。

网络边缘,只有一个出口通往其他区域,不需要了解具体外部拓扑。

完全末梢区域 (Totally Stub Area)

在Stub区域基础上,进一步阻挡其他区域的汇总路由(Type 3 LSA)。

1, 2

3, 4, 5

ABR自动生成一条Type 3 LSA描述的默认路由。

对路由表精简要求极高的边缘区域,只需默认路由访问外部。

非纯末梢区域 (NSSA)

类似Stub区域,但允许在本区域内引入外部路由(产生Type 7 LSA),同时拒绝来自其他区域的外部路由(Type 5 LSA)。

1, 2, 3, 7

4, 5

ABR会生成一条Type 7 LSA的默认路由(某些厂商实现可能需要手动配置)。

需要引入外部路由(如连接RIP网络)但又希望减少LSA的Stub-like区域。

完全NSSA区域 (Totally NSSA)

在NSSA区域基础上,阻挡其他区域的汇总路由(Type 3 LSA)。

1, 2, 7

3, 4, 5

ABR会同时生成Type 3和Type 7默认路由(通常优选Type 3)。

既需要引入外部路由,又希望最大程度减少来自其他区域路由信息的边缘区域。

区域划分

  1. 骨干区域【Area0】

  2. 非骨干区域

非骨干区域根据能够学习到的路由种类又可划分为

  1. 标准区域:学习本区域的内部路由、学习域间路由、学习外部路由。【包含的LSA Type-1、2、3、4、5】

  2. 未节区域【Stub】:学习本区域的内部路由、学习域间路由,不学习外部路由,不包含ASBR,与外部通讯完全依靠自动创建的缺省路由。【包含的LSA Type-1、2、3】

  3. 完全末节【Totally Stubby】区域:仅学习本区域内部路由,不学习外部路由,不学习域间路由,与外部通讯完全依靠自动创建的缺省路由。【包含的LSA Type-1、2】

  4. 非纯末节区域【NSSA】:学习域内路由,学习域间路由,学习本区域自身引入的外部路由【但引入的外部路由的LSA类型为Type-7】,不学习其它区域引入的外部路由。【包含的LSA Type-1、2、3、7】

  5. 非纯完全末节区域:学习域内路由,学习本区域自身引入的外部路由【但引入的外部路由的LSA类型为Type-7】,不学习域间路由,不学习其它区域引入的外部路由。【包含的LSA Type-1、2、7】

注:NSSA区域是OSPF RFC的补遗,定义了特殊的LSA类型7;提供类似以Stub Area与Totally Stubby Area的优点,可以包含ASBR

Q:有些特殊区域不学习外部路由,故没有外部的明细路由,那还能与外部通信吗?

A:ASBR不能将外部路由注入到OSPF的网络中;ABR不会将其它区域的路由发送到Area1中,而是使用一条缺省路由。故这些特殊区域会通过ABR下发的缺省路由与外部通信。

辅助实验

https://www.iiisle.com/archives/8BVHRiOJ

VLink虚链路

虚链路的作用

不规则区域的连接

骨干区域被分割

无骨干区域

解决次优路由及增强网络健壮性

  1. 避免R1和R2之间链路故障导致骨干区域被分割

  2. 让R3和R4互访可以走最优路径,让X和Y网段互访可以直接走R3和R4之间的链路

辅助实验

https://www.iiisle.com/archives/bLvQhiML

DR与BDR选举

  1. DR是基于接口的路由器优先级的值进行选举的

  2. 取值范围:0-255,默认值为1

  3. 优先级为O表示不参与DR与BDR的选举

  4. 若优先级相同,则比较各个路由器的Router-ID

注:先选BDR,再选DR

流程图示

最终:(从下到上选)

  • DR是AR5

  • BDR是AR3

  • Drothers 是AR1

扩展

前提是两套设备已经先选举完,后并在一起

Q:假设左右半拓扑分别选举完成后,用一个交换机连接两端设备,最终的DR和BDR是哪些设备?

A:此时的两套设备会在分别在当前已有的DR与BDR候选者中选举,DR中AR6的Router-ID更大,故AR6成为最终的DR。同理,AR4成为最终的BDR。Drothers为AR1/AR2/AR3/AR5。

交换机连接前:

  • DR是AR5 AR6

  • BDR是AR3 AR4

  • Drothers 是AR1 AR2

交换机连接后:

  • DR是AR6

  • BDR是AR4

  • Drothers 是AR1 AR2 AR3 AR5

OSPF的路径类型

路径选择

OSPF选择路径的优先级顺序是:路由类型优先级 > 区域类型优先级 > 路径开销优先级。

  1. 区域内路径【Intra-area path】:在路由器所在的区域内就可以到达目的地的路径

  2. 区域间路径【Inter-area path】:目的地在其它区域,但还在OSPF自治系统内的路径

  3. 类型1的外部路径【Type I external path, E1】:目的地在OSPF自治系统外部的路径

  4. 类型2的外部路径【Type2 external path, E2】:目的地在OSPF自主系统外部的路径,但在计算外部路由的度量时不再计入到达ASBR路由器的路径代价

举例说明

RTA有两条到达外部目的网络202.106.0.20的路径

示意图

E1类型

路径A-B-D的代价是35【5+20+10】

路径A-C-D的代价是50【30+10+10】

E2类型

路径A-B-D的代价是30【20+10】

路径A-C-D的代价是20【10+10】

OSPF常见故障

https://www.iiisle.com/archives/dRNqDQo4