数通之OSPF技术

学习 数通

数通之OSPF

OSPF(Open Shortest Path First)开放式最短路径优先,使用基于带宽的度量值;采用SPF算法计算路由,从算法上保证了无路由环路;通过邻居关系维护路由,避免了定期更新对带宽的消耗;更新效率高,网络收敛快;

工作原理

基本协议模型

  1. 建立邻居-通过 Hello探测和发现邻居,形成OSPF邻居表
  2. 发起路由-描述直连网段和直连拓扑,发起LSA,存放到自己的LSDB
  3. 传播路由-LSA洪泛,区域内路由器的LSDB达到一致
  4. 计算路由-以自己的LSA 1为根进行SPF计算,算出路由

基本概念

  • Router ID:32比特无符合整数,在唯一标识一台路由器,若要运行OSPF则必须存在Router ID。可以自动生成,也可手动配置
  • LS :路由器周边的链路状态。直连接口状态通过接口网段和接口状态感知,用网段、掩码、接口开销描述直连网段;直连拓扑状态通过OSPF邻居和邻居状态感知,用邻居Router ID、连接接口、接口开销描述直连拓扑;接口开销为OSPF参考带宽(默认为100Mbps)/接口带宽(Loopback接口默认为1)
  • LSA:链路状态通告,按一定格式封装后的链路信息。LSA 1为路由器链路状态通告,每台路由器都会发起自己的LSA1;LSA 2为传送网络链路状态通告
    2025-07-03T11:58:50.png
  • LSDB:链路状态数据库,每台OSPF路由器都有一个LSDB,用于存储LSA。同一个区域中的OSPF路由器的LSDB一致。LSA封装在LSU报文中,在区域内洪泛,最终达到区域内LSDB一致。LSA在洪泛过程中内容保持不变。
  • SPF:OSPF路径开销计算。以自己LSA为根,进行SPF计算,各OSPF路由器单独计算互不影响。计算以自己为根,到目标网段的出接口开销和。OSPF度量值为cost(开销),以链路的接口带宽为依据。计算方法:10 的8 次方除以带宽。
  • 网络类型:Broadcast广播多路访问:以太网接口;NBMA(on-Broadcast Multi-Access,非广播多点访问网络):帧中继接口;P2MP(Point-to-MultiPoint,点到多点);P2P(Point-to-Point,点到点):PPP HDLC接口
  • 报文类型与封装

    OSPF 报文类型作用
    Hello建立并维护邻居关系
    Database Description(DD)数据库内容的汇总(仅包含LSA头部)
    Link State Request(LSR)请求自己没有的或者比自己更新的链路状态详细信息
    Link State Update(LSU)链路状态更新信息(LSA头部和内容)
    Link State Acknowledge(LSAck)对LSU的确认

    OSPF报文直接封装于IP报文中,协议号89,组播地址224.0.0.5/6

    | 链路层帧头 | IP Header | OSPF Packet | 链路层帧尾 |

  • 邻居状态:DOWN、Init、two-way、Exstart、Exchange、Loading、Full
    2025-07-03T12:00:00.png
    2025-07-03T12:00:17.png
    2025-07-03T12:00:30.png
    当在规定时间内没有收到回应,认为包丢失,重发包,协议包具备序列号接收方对重复包不做处理

    当有新的LSA生成或收到时,这条新的LSA应当被洪泛。洪泛新的LSA时,只需要使用LS Update报文和LS Ack报文。以上图为例,当RTA中若有一条新的LSA需要洪泛时,只需要向RTB发送一条LS Update报文,报文中包含新的LSA,RTB接收该条LS Update后向RTA发送一条LS Ack报文进行确认。当处于完全邻居状态的两台路由器(状态均为Full),洪泛新的LSA时邻居关系不受影响

  • 各种报文中的LSA信息

    Packet类型LSA信息
    Database DescriptionLSA头部信息:包括LS Type, LS ID, Advertising Router和LS Sequence Number
    LS Request只有LS Type, LS ID和Advertising Router简化LSA头部
    LS Update完整的LSA信息,包括LSA头部和具体的链路状态信息
    LS AckLSA头部信息:包括LS Type, LS ID, Advertising Router和LS Sequence Number

邻居关系建立失败的原因

参数配置要点
Router id每台OSPF路由器的router id必须唯一
area id同一网段的所有端口应配置在同一区域
Interface network-type同一网络接口的类型要相同,即hello时间与hellodown时间双方要一致
network mask除了点到点网络之外,同一网段的所有端口应当配置相同的掩码
authentication type同一区域的验证类型必须一致
authentication data同一网段的验证码必须一致
extern option配置stub区域或者NSSA时,区域内的所有路由器都需要指定stub特性或者NSSA特性
peerNBMA网络上的邻居需要手动指定

基本配置

启动OSPF

Router(config)# router ospf <进程号> 

配置Router ID

Router(config-router)# router-id <A.B.C.D>  #手动配置Router ID

Router(config)# interface loopback0
Router(config-if)# ip address <RID> 255.255.255.255  #通过环口自动生成

宣告直连网段

Router(config-router)# network <网络地址> <通配符掩码> area <区域号>

调整OSPF参数

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip ospf cost <自定义值>  ! 默认值基于带宽  #修改接口开销

Router(config-router)# passive-interface <接口名>  #配置被动接口(不发送OSPF报文),常用于连接用户的接口

多区域划分

单区域存在LSDB庞大,占用内存大,SPF计算开销大;LSA洪泛范围大,拓扑变化影响范围大;路由不能被汇总,路由表庞大,查找路由开销大

基本概念

区域分类

骨干区域:Area 0,OSPF的Area 0必须是连续的,不能被分割。
非骨干区域:必须和Area 0直接相连,非骨干区域之间不能直接交换路由信息,必须通过Area 0。
特殊区域:具有特殊性质的区域

LSDB

多区域链路状态数据库,每个区域都有自己独立的LSDB,SPF计算独立运行。LSA洪泛和LSDB同步只在区域内进行。

ABR

OSPF对区域间路由信息的描述,OSPF只知道本区域的拓扑结构,并不知道其他区域的拓扑结构,其他区域的路由信息,依靠本区域的ABR来描述。
ABR先计算区域内的LSA 1、2,并为计算出来的路由向其他区域发起LSA 3,而且为Area 0中的LSA 3向其他区域重新发起LSA 3。

ASBR

OSPF通过ASBR来描述外部路由的可达性,ASBR为外部路由发起LSA5,在整个OSPF路由域中洪泛。

LSA分类

名称发起路由器洪泛范围作 用LSA描述Link state ID
1Router LSA(路由器LSA)OSPF路由器区域内描述路由器的直连拓扑信息每一个路由器都会生成。这种LSA描述某区域内路由器端口链路状态的集合。只在所描述的区域内泛洪。生成这条LSA的路由器的Router ID
2Network LSA(网络LSA)DR区域内描述多路访问网络DR邻接的一组路由器由DR生成,用于描述广播型网络和NBMA网络。这种LSA包含了该网络上所连接路由器的列表。只在该网络所属的区域内泛洪。所描述网段上DR的端口IP地址
3Summary LSA(汇总LSA)ABR区域内描述区域间的路由信息由区域边界路由器(ABR)产生,描述到AS内部本区域外部某一网段的路由信息,在该LSA所生成的区域内泛洪所描述的目的网段的地址
4ASBR LSAABR区域内描述区域间ASBR的可达性由区域边界路由器(ABR)产生,描述到某一自治系统边界路由器(ASBR)的路由信息,在ABR所连接的区域内泛洪(ASBR所在区域除外)所描述的ASBR的Router ID
5External LSA(外部路由LSA)ASBROSPF路由域(除特殊区域)描述OSPF外部路由由自治系统边界路由器(ASBR)产生,描述到AS外部某一网段的路由信息,在整个AS内部泛洪所描述的目的网段的地址
7NSSA LSANSSA ASBR区域内描述NSSA区域的OSPF外部路由

在4、5报文洪泛时,4在洪泛至ABR进入下一区域时,会将报文中的Router ID修改为ABR的Router ID告诉下一区域的OSPF路由器访问ASBR时需要通过该ABR。

2025-07-04T02:32:33.png

路由聚合/汇总
ABR或ASBR将具有相同前缀的路由信息聚合后发布到其它区域
减少LSA3类、LSA5类的数目,减少路由信息
减小路由表的规模
提高路由器的运算速度

特殊区域

Stub区域

若一个区域不管外部目的地在何处都需要发送数据到ABR,通过ABR到达ASBR,那么这个区域就可以配置为Stub区域(末梢区域)

Stub区域是一个不允许AS外部LSA通告在其内部进行泛洪的区域。不允许4、5类LSA进入区域进行洪泛,拒绝学习4、5类LSA。但会有default LSA为了弥补无法学习5类 LSA做为summary LSA加入该区域,通过ABR进行宣告。外部路由的改变无法影响Stub区域
Stub区域路由器的路由表条目:默认路由+区域间路由+区域内路由
限制条件:Stub区域内所有路由器必须拥有想相同链路状态数据库;末梢区域的路由器不能是ASBR路由器;一个末梢区域可以拥有多台ABR路由器,但是因为缺省路由的原因,区域内部路由器不能确定哪一台路由器才是到达ASBR路由器的最优的网关
2025-07-04T02:35:01.png

完全Stub区域

不仅使用缺省路由到达OSPF自主系统外部的目的地址,而且使用缺省路由到达这个区域外部的所有目的地址。完全末梢区域的ABR将不仅阻塞AS外部LSA,而且阻塞所有的汇总LSA,但除了通告缺省路由的那一条类型3的LSA。

该区域拒绝所有的External LSA(5类LSA);拒绝具体的Sumamry LSA(4类和5类),但与Stub区域一样有Default LSA作为Summary LSA注入区域。因为拒绝5类LSA和具体的3、4类LSA,所以LSDB更小、路由信息更稳定、路由数量越小
2025-07-04T02:34:00.png

NSSA区域

NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由

允许外部路由通告到OSPF自主系统内部,而同时保留自主系统的其余部分的末梢区域特征。在NSSA区域内的ASBR将始发类型7的LSA来通告那些外部的目的网络。这些NSSA外部LSA将在整个NSSA区域中进行泛洪,但是Type 7 LSAs会被ABR路由器转换成 Type 5 LSAs之后泛洪到骨干区域。
NSSA系统外部LSA (NSSA External LSA):始发于ASBR路由器的,用来通告到达OSPF自主系统外部的目的地或者OSPF自主系统外部的缺省路由的LSA。NSSA外部LSA通告只在始发这个七类LSA的NSSA区域中进行泛洪 。
2025-07-04T02:35:40.png

完全NSSA区域

完全非纯末梢区域允许外部路由通告到OSPF自主系统内部,并使用缺省路由到达这个区域外部的所有目的地址。
完全非纯末梢区域的ABR将不仅阻塞AS外部LSA,而且阻塞所有的汇总LSA,但除了通告缺省路由的那一条类型3的LSA。
2025-07-04T02:36:22.png

缺省路由发布总结
2025-07-04T02:37:46.png

评论已关闭