文章目录

  • 一、OSPFv2基本概念
  • 1.1 OSPF的基本概念
  • 1.2 层次划分模型
  • 1.3 OSPF区域划分优势
  • 1.4 OSPF路由器类型
  • 1.5 OSPF路由类型
  • 1.6 OSPF支持的网络
  • 1.6.1 P2P
  • 1.6.2 广播型网络
  • 1.6.3 NBMA网络
  • 1.6.4 P2MP网络
  • 1.7 OSPF报文
  • 1.7.1 OSPF五种报文
  • 1.7.2 OSPF协议报文头部
  • 1.7.3 Option字段
  • 1.7.4 五种OSPF报文格式
  • 1.7.4.1 Hello报文
  • 1.7.4.2 DD报文
  • 1.7.4.3 LSR报文
  • 1.7.4.4 LSU报文
  • 1.7.4.5 LSAck报文
  • 1.7.5 LSA类型
  • 1.7.6 LSA报文头部
  • 1.7.7 六种LSA报文格式
  • 1.7.7.1 Router-LSA
  • 1.7.7.2 Network-LSA
  • 1.7.7.3 Network-Summary-LSA
  • 1.7.7.4 ABSR-Summary-LSA
  • 1.7.7.5 AS-External-LSA
  • 1.7.7.6 总结
  • 二、OSPFv2原理描述
  • 2.1 形成OSPF邻居关系条件
  • 2.2 OSPF状态机
  • 2.3 OSPF邻居建立过程
  • 2.3.1 邻居关系建立
  • 2.3.2 邻接关系建立
  • 2.4 区域结构设计
  • 2.4.1 区域间路由传递
  • 2.4.2 2.区域间路由计算
  • 2.4.3 区域间路由环路的产生
  • 2.4.4 LSA3特性
  • 2.4.5 手动建立邻居
  • 2.4.6 邻居与邻接
  • 2.4.7 邻居和邻接关系
  • 2.4.8 OSPF四种特殊区域
  • 2.4.8.1 Stub区域
  • 2.4.8.2 Totally Stub区域
  • 2.4.8.3 NSSA区域
  • 2.4.8.4 Totally NSSA区域
  • 三、OSPFv2扩展特性
  • 3.1 OSPFv2收敛特性
  • 3.2 Database Overflow
  • 3.3 缺省路由
  • 3.4 路由过滤
  • 3.5 Forwarding Address
  • 3.6 认证
  • 3.7 虚连接vlink
  • 3.8 OSPF与IS-IS比较
  • 3.8.1 基本特点
  • 3.8.2 邻接关系特点
  • 3.8.3 数据库同步特点
  • 3.8.4 其他特点


一、OSPFv2基本概念

1.1 OSPF的基本概念

Open Shortest Path First开放最短路径优先协议
由IETE开发、核心算法SPF
无类路由协议、链路状态协议、IGP
协议号89
支持触发更新、增量更新、周期更新1800s、3600s失效
协议优先级10
组播更新地址:224.0.0.5(所有路由器)、224.0.0.6(DR/BDR)
三张表:邻居表、链路状态数据库表、ospf路由表

触发更新
OSPF触发更新是说在一个OSPF area中,其中一台路由器的接口down掉或者链路状态信息发生变化,它便会发送组播分组来声明自己的新状态(以组播形式发送LSU),这个过程称作触发更新。

增量更新
只对变换的LSDB进行更新

周期更新
周期更新1800s,避免LS age3600s超时

链路状态协议
路由器会发送它的直连网段告诉对方形成邻居关系,对方学习到内容以后就会形成完整的网络拓扑结构,也就是形成了链路状态的结构。

1.2 层次划分模型

骨干模型:域间通信需经过骨干区域
非骨干区域:常规区域间不能直接互相交换数据包

只有一个区域时,区域号配置为非0会有什么问题?
不利于后期扩展

1.3 OSPF区域划分优势

减小链路状态数据库同步范围、缩小LSA泛洪范围和SPF算法频率,从而便于管理

1.4 OSPF路由器类型

Internal Router内部路由器
ABR区域边界路由器
ASBR自治域边界路由器

1.5 OSPF路由类型

OSPF路由协议重点 ospf协议路由配置_路由协议

1.6 OSPF支持的网络

OSPF路由协议重点 ospf协议路由配置_路由协议_02


P2P和广播可以建立邻接关系,但无法计算出路由,因为广播的DR/BDR需要224.0.0.6

1.6.1 P2P

仅支持两台路由器互连

支持广播、组播

OSPF路由协议重点 ospf协议路由配置_网络协议_03

[Huawei]dis ospf peer 

	 OSPF Process 1 with Router ID 1.1.1.1
		 Neighbors 

 Area 0.0.0.0 interface 192.168.12.1(Serial1/0/0)'s neighbors
 Router ID: 2.2.2.2          Address: 192.168.12.2    
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: None   BDR: None   MTU: 0    
   Dead timer due in 36  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:00:07     
   Authentication Sequence: [ 0 ] 

[Huawei]dis ospf lsdb 

	 OSPF Process 1 with Router ID 1.1.1.1
		 Link State Database 

		         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2             48  48    80000002      48
 Router    1.1.1.1         1.1.1.1             47  48    80000002      48

1.6.2 广播型网络

两台或两台以上的路由器通过共享介质互连。

支持广播、组播。

OSPF路由协议重点 ospf协议路由配置_路由协议_04

1.6.3 NBMA网络

两台或两台以上路由器通过VC互连。

不支持广播、组播。

OSPF路由协议重点 ospf协议路由配置_路由协议_05

1.6.4 P2MP网络

多个点到点网络的集合。

支持广播、组播。

OSPF路由协议重点 ospf协议路由配置_网络协议_06

1.7 OSPF报文

1.7.1 OSPF五种报文

OSPF路由协议重点 ospf协议路由配置_ospf_07

1.7.2 OSPF协议报文头部

OSPF路由协议重点 ospf协议路由配置_ospf_08


Version :对于当前所使用的OSPFv2,该字段的值为2。

Type:OSPF报文类型。

Packet length:OSPF报文的总长度

Router ID:发送该报文的路由器标识符

Area ID:发送该报文的路由器所在区域

Checksum:除了认证字段的整个报文的效验和

Auth Type:0:不认证;1:简单明文密码认证;2:加密(MD5)认证。

Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同。

OSPF路由协议重点 ospf协议路由配置_路由器_09

1.7.3 Option字段

Option可选字段出现在每一个Hello数据包、DD和每个LSA中

Option字段允许路由器和其他路由器进行一些可选性能的通信

OSPF路由协议重点 ospf协议路由配置_路由协议_10


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

O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。

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

EA:当始发路由器具有接收和转发External-Attributes-LSA(type8 LSA)的能力时,该位被置位。

N位:只用在Hello数据包中。N=1表明路由器支持7类LSA。N=0表明该路由器将不接收和发送NSSA LSA。

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

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

E位:当始发路由器具有接收AS-external-LSA(type5 LSA)的能力时,该位被置位。在所有5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发于末节区域的LSA中,该位置为0。如果Hello报文中该位被置位则表明该接口具有接收和发送5类LSA的能力。

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

OSPF路由协议重点 ospf协议路由配置_路由器_11

1.7.4 五种OSPF报文格式

1.7.4.1 Hello报文

OSPF路由协议重点 ospf协议路由配置_网络协议_12


Network Mask: 发送Hello接口所在网络的掩码

Hello Interval:发送Hello的时间间隔

Options: 可选项

Rtr Pri: 8bit,DR优先级,默认1,如果为0不参与选举

Router DeadInterval:邻居失效时间

Designated Router:本网段上DR路由器的接口IP地址

Backup Designated Router:本网段上BDR路由器的接口IP地址

Neighbor:用Router ID标识

OSPF路由协议重点 ospf协议路由配置_网络协议_13

1.7.4.2 DD报文

OSPF路由协议重点 ospf协议路由配置_网络协议_14


Interface MTU: 16 位,表示在不分片的情况下,此接口最大可发出的IP报文长度。华为默认不填充接口实际MTU值,所以值为0

Options: 含义同OSPF头中一致。

I(Initialization)位:当发送连续多个DD报文时,如果这是第一个DD报文,则置为1;否则置为0

M(More)位:当发送连续多个DD报文时,如果后续DD报文中不再有LSA头,则置为0

M/S(Master/Slave)位:当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router大的一方会成为Master当值为1表示发送方为Master

DD Sequence Number: 32 位,DD报文序列号,主从双方利用序列号来保证DD报文传输的可靠性和完整性

LSA Headers:本LSDB中LSA头部

OSPF路由协议重点 ospf协议路由配置_ospf_15

1.7.4.3 LSR报文

OSPF路由协议重点 ospf协议路由配置_网络协议_16


LS type::32 位,LSA类型号。

Link State ID:32位,根据LSA中的 LS Type 和LSA Description 在路由域中描一个LSA

Advertising Router: 32位,产生此LSA的路由器Router ID这里的Link State ID和Advertising Router,跟DD报文中的LSA Header中的Link State ID和Advertising Router一模一样

OSPF路由协议重点 ospf协议路由配置_ospf_17

1.7.4.4 LSU报文

OSPF路由协议重点 ospf协议路由配置_路由器_18


Number ofLSAs:32位,表示Update中所包含的LSA的数量。

LSAs:多个完整LSA的内容。

OSPF路由协议重点 ospf协议路由配置_路由器_19

1.7.4.5 LSAck报文

OSPF路由协议重点 ospf协议路由配置_网络协议_20


LSA Headers:LSA头列表,OSPF通过LSA头对收到的完整LSA做确认。一份LSAck可以对多份LSU中的LSA做确认。

OSPF路由协议重点 ospf协议路由配置_路由器_21

1.7.5 LSA类型

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_22

1.7.6 LSA报文头部

OSPF路由协议重点 ospf协议路由配置_路由协议_23


LS age:此字段表示LSA已经生存的时间,单位是秒。

Option:该字段指出了部分OSPF域中LSA能够支持的可选性能。

LS type:此字段标识了LSA的格式和功能。常用的LSA类型有五种。

Link State ID:与LSA中的LS Type和Advertising Router一起用来在OSPF中唯一标识 LSA

Advertising Router:产生此LSA的路由器的Router ID。

Sequence Number:当LSA每次新的实例产生时,这个序列号就会增加。这个更新可以帮助其他路由器识别最新的LSA实例。

Checksum:关于LSA的全部信息的校验和。因为Age字段,所以校验和会随着老化时间的增大而每次都需要重新进行计算。

Length:是一个包含LSA头部在内的LSA的长度。

OSPF路由协议重点 ospf协议路由配置_路由器_24

1.7.7 六种LSA报文格式

1.7.7.1 Router-LSA

OSPF路由协议重点 ospf协议路由配置_路由协议_25


Link State ID:是指始发路由器的Router-ID。

Advertising Router:发送该LSA1的Router-ID。

Flag:
V:置1时,说明始发路由器是一条或者多条具有完全邻接关系的虚链路的一个端点。
E:当始发路由器是一个ASBR路由器时,该为置为1。
B:当始发路由器是一个ABR路由器时,该为置为1。
Number of links:表明一个LSA所描述的路由器链路数量。

Link Type:
值为1表示为点到点网络,常见的PPP链路需要使用点到点网络描述。
值为2表示连接一个transit网络,有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。
值为3表示连接stubnet网络,一般该网络上不存在邻居关系,如只有一个出口的以太网或回环接口。
值为4表示虚链路。

Link ID:
Link Type为1时该值表示邻居路由器的路由器ID。
Link Type为2时该值表示DR路由器的接口的IP地址。
Link Type为3时该值表示IP网络或子网地址。
Link Type为4时该值表示邻居路由器的路由器ID。

Link Data:
Link Type为1时该值表示和网络相连的始发路由器接口的IP地址。
Link Type为2时该值表示和网络相连的始发路由器接口的IP地址。
Link Type为3时该值表示网络的子网掩码。
Link Type为4时该值表示始发路由器的虚链路接口的IP地址。

ToS,暂不支持。

Metric:是指一条链路或接口的代价。

OSPF路由协议重点 ospf协议路由配置_路由协议_26


OSPF路由协议重点 ospf协议路由配置_ospf_27

1.7.7.2 Network-LSA

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_28


Link State ID:是指DR的接口IP地址。

Advertising Router:发送该LSA2的Router-ID。

Network Mask:指定这个网络上使用的地址或者子网的掩码。

Attached router:连接到本网络的所有邻居路由器的RouterID(包括DR的Router ID)

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_29

1.7.7.3 Network-Summary-LSA

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_30


Link State ID:对于3类LSA来说,表示所通告的网络或子网的IP地址。

Advertising Router:发送该LSA3的Router-ID。

Network Mask:对于3类LSA来说,表示所通告的网络的子网掩码。

Metric:产生该LSA3的ABR到目标网络的开销值

OSPF路由协议重点 ospf协议路由配置_ospf_31

1.7.7.4 ABSR-Summary-LSA

OSPF路由协议重点 ospf协议路由配置_ospf_32


Link State ID:对于4类LSA来说表示所通告的ASBR路由器的路由器ID。

Advertising Router:发送该LSA4的Router-ID。

Network Mask:对于4类LSA来说,该字段没有实际意义,一般置为0.0.0.0。

Metric:始发路由器到目的地址的路由的代价。

OSPF路由协议重点 ospf协议路由配置_网络协议_33

1.7.7.5 AS-External-LSA

OSPF路由协议重点 ospf协议路由配置_路由协议_34


Link State ID:引入的外部路由的网络号。

Advertising Router:发送该LSA5的Router-ID。

Network Mask:引入的外部路由的子网掩码。

Eeternal Type:用来指定这条路由使用的外部度量的类型。如果该E bit设置为1,那么度量类型就是E2;如果该E bit设置为0,那么度量类型就是E1。默认2,仅考虑外部成本

Metric:ASBR到外部网络的开销。

Forwarding Address:是指到达所通告的目的地的数据包应该被转发到的地址。如果是0.0.0.0,访问外部网络的报文转发给ASBR,如果是非0,报文转发给该非0地址。

External Route Tag:标记外部路由。在路由引入时配置给外部路由,默认值是1。

OSPF路由协议重点 ospf协议路由配置_路由器_35

1.7.7.6 总结

只有DD、LSAck包含LSA Header,LSU包含LSA整个部分
LSR只包含LSA里面LS Type、LS ID、Advertising Router

六种LSA对应的LS ID、Advertising Router
1类、4类LSA的LS ID都是Router ID
2类LS ID是DR接口IP地址
3、5、7类LS ID是网络号
所有类型LSA的Advertising Router都是发送者的Router ID

Router-LSA中的link type、link id、link data。

2、3、4、5、7类LSA都有Netmask ,4类LSA的Netmask为0

二、OSPFv2原理描述

2.1 形成OSPF邻居关系条件

①Router ID不冲突
②Area ID一致
③认证类型和密码一致
④网络号和掩码一致
⑤MA网络中,至少有一个路由器优先级不为0
⑥Hello、Dead时间一致
⑦区域类型一致
⑧MTU一致
⑨网络类型一致
⑩ospf静默接口不收不发

2.2 OSPF状态机

Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和Router DeadInterval间隔相同。

Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果Router DeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。

2-Way Received:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。

2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

1-Way Received:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。

ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。

Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。

Full:两台路由器的LSDB已经同步。

2.3 OSPF邻居建立过程

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_36


OSPF路由协议重点 ospf协议路由配置_路由器_37

2.3.1 邻居关系建立

R1向R2发送第一个Hello包,其中Advertising router为1.1.1.1

OSPF路由协议重点 ospf协议路由配置_路由器_38


同时,R2也向R1发送第一个Hello包,其中Advertising router为2.2.2.2

OSPF路由协议重点 ospf协议路由配置_网络协议_39


当R1收到R2发送的第一个Hello包时,状态机从down变为init

R1向R2发送Advertising router为1.1.1.1,Active Neighbor为2.2.2.2

OSPF路由协议重点 ospf协议路由配置_ospf_40


此时R2收到R1发送的第二个Hello包时,状态机从init变为2-way

并且R2向R1发送Advertising router为2.2.2.2,Active Neighbor为1.1.1.1

R1收到后,状态机从init变为2-way在之后的四十秒内进行DR/BDR选举

OSPF路由协议重点 ospf协议路由配置_网络协议_41

2.3.2 邻接关系建立

选举完DR/BDR,R1和R2同时进入Exstart状态,并互相发送第一个DD报文

R2发送的第一个空DD报文Sequence=106,I、M、M/S分别置位

OSPF路由协议重点 ospf协议路由配置_路由协议_42


R1发送的第一个空DD报文Sequence=110,I、M、M/S分别置位

OSPF路由协议重点 ospf协议路由配置_ospf_43


其中R1的RID为1.1.1.1,R2的RID为2.2.2.2,R2的RID>R1的RID,所以R2为主路由器,R1为从路由器。并且两个路由器状态机从Exstart变成Exchange

R1从路由器要回复DD报文,并且Sequence遵循主路由器。即Slave回应的DD报文是对Master发送的DD报文进行确认。

OSPF路由协议重点 ospf协议路由配置_网络协议_44


直到双方的DD报文的M位=0,才结束交互DD报文

OSPF路由协议重点 ospf协议路由配置_路由器_45


从路由器对主路由进行确认

OSPF路由协议重点 ospf协议路由配置_网络协议_46


DD交互完之后,两个路由器状态机从Exchange进入Loading状态

OSPF路由协议重点 ospf协议路由配置_路由协议_47


OSPF路由协议重点 ospf协议路由配置_路由器_48


OSPF路由协议重点 ospf协议路由配置_ospf_49

2.4 区域结构设计

2.4.1 区域间路由传递

OSPF路由协议重点 ospf协议路由配置_ospf_50


BR将一个区域内的链路状态信息转化成路由信息,然后发布到邻居区域。

链路状态信息转换成路由信息其实就是将一类和二类LSA转化成三类LSA的过程。注意,区域间的路由信息在ABR上是双向传递的。

2.4.2 2.区域间路由计算

计算路由时,路由器计算自己区域内到 ABR 的成本加上 LSA3 传递的区域间成本,得到的是当前路由器到目标网络端到端的成本

2.4.3 区域间路由环路的产生

如果没有其他区域围着Area0的这一设计要求,每个区域都可以互相学习到路由
为了避免上述环路,限定LSA3路由的流动规则:不允许非ABR产生LSA3

避免环路:①非骨干区域必须围着骨干区域②三类LSA传递规则:从骨干区域传来的三类LSA不再传回骨干区域;不允许非ABR产生LSA3

2.4.4 LSA3特性

①边界路由器ABR为区域内的每个网络号各产生一份LSA3并向其他区域通告
②边界有多个ABR,每个ABR都会产生LSA3来通告区域间路由。这两个LSA3通过Advertising Router来区分。根据本路由器到达目的网段的累计开销进行比较,最终生成最小开销路由。如果根节点到达目的网段的累计开销值相同,则产生等价负载的路由。
③LSA3跨区域传播时,再由该区域的ABR 产生 LSA3 继续泛洪。
④计算路由时,路由器计算自己区域内到 ABR 的成本加上 LSA3 传递的区域间成本,得到的是当前路由器到目标网络端到端的成本
⑤具有矢量特性,只有出现在ABR路由表里的路由才会被通告给邻居区域
⑥如果ABR路由器上路由表中的某条OSPF路由不再可达,则ABR产生LS Age 3600s 的LSA3 区域内泛洪 ,用于在区域内撤销该网络

2.4.5 手动建立邻居

OSPF支持通过单播方式建立邻居关系。
对于不支持组播的网络可以通过手动配置实现邻居的发现与维护。
配置:
Ospf 1
Peer 2.2.2.2

2.4.6 邻居与邻接

邻居(Neighbor):
OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现邻居。状态到达2-way 即可称为建立了邻居关系。
邻接(Adjacency):
只有当双方成功交换DD报文,并同步LSDB后,达到Full状态,才形成真正意义上的邻接关系。运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前路由器之间首先需要建立邻接关系。

2.4.7 邻居和邻接关系

OSPF路由协议重点 ospf协议路由配置_路由器_51


链路两端的OSPF接口的网络类型必须一致,否则双方不可以建立起邻居关系

广播—P2P时,双方仍可以正常的建立起邻居关系,但互相学不到路由信息。

P2MP—P2P时,双方不能正常的建立起邻居关系。

2.4.8 OSPF四种特殊区域

OSPF路由协议重点 ospf协议路由配置_OSPF路由协议重点_52

2.4.8.1 Stub区域

OSPF路由协议重点 ospf协议路由配置_网络协议_53


OSPF路由协议重点 ospf协议路由配置_路由协议_54


OSPF路由协议重点 ospf协议路由配置_网络协议_55

2.4.8.2 Totally Stub区域

OSPF路由协议重点 ospf协议路由配置_ospf_56


OSPF路由协议重点 ospf协议路由配置_路由器_57


OSPF路由协议重点 ospf协议路由配置_ospf_58

2.4.8.3 NSSA区域

OSPF路由协议重点 ospf协议路由配置_ospf_59


OSPF路由协议重点 ospf协议路由配置_路由器_60


OSPF路由协议重点 ospf协议路由配置_路由协议_61

2.4.8.4 Totally NSSA区域

OSPF路由协议重点 ospf协议路由配置_路由协议_62


OSPF路由协议重点 ospf协议路由配置_路由器_63


OSPF路由协议重点 ospf协议路由配置_ospf_64

三、OSPFv2扩展特性

3.1 OSPFv2收敛特性

OSPF路由协议重点 ospf协议路由配置_路由器_65

3.2 Database Overflow

Database Overflow:限制非缺省外部路由数量,避免数据库超限。

原理
通过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。OSPF网络中所有路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。

OSPF Database Overflow过程:
进入Overflow状态时,路由器删除所有自己产生的非缺省外部路由。
处于Overflow状态中时,路由器不产生非缺省外部路由;丢弃新收到的非缺省外部路由且不回复确认报文;当超限状态定时器超时,检查外部路由数量是否仍然超过上限,如果超限则重启定时器,如果没有则退出超限状态。
退出Overflow状态时,路由器删除超限状态定时器;产生非缺省外部路由;接收新收到的非缺省外部路由并回复确认报文;准备下一次进入超限状态。

3.3 缺省路由

普通区域:
ASBR上手动配置产生缺省5类LSA,通告到整个OSPF自治域(特殊区域除外)。

Stub区域:
ABR自动产生一条缺省3类LSA,通告到整个Stub区域内。

Totally Stub区域:
ABR会自动产生一条缺省3类LSA,通告到整个Stub区域内。

NSSA区域:
在ABR自动产生一条缺省7类LSA,通告到整个NSSA区域内;
在ASBR手动配置产生一条缺省7类LSA,通告到整个NSSA区域内。

Totally NSSA区域:
ABR自动产生一条缺省3类LSA,通告到整个NSSA区域内。
ABR自动产生一条缺省七类LSA,通告到整个NSSA区域内。

OSPF 缺省路由通常应用于下面两种情况:
①由区域边界路由器(ABR)发布 Type3 缺省 Summary LSA,用来指导区域内设备进行区域之间报文的转发。
②由自治系统边界路由器(ASBR)发布 Type5 外部缺省 ASE LSA,或者 Type7 外部缺省NSSA LSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。

OSPF 缺省路由的发布原则如下:
①OSPF 路由器只有具有对外的出口时,才能够发布缺省路由 LSA。
②如果 OSPF 路由器已经发布了缺省路由 LSA,那么不再学习其它路由器发布的相同类型缺省路由。即路由计算时不再计算其它路由器发布的相同类型的缺省路由 LSA,但数据库中存有对应 LSA。
③外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本 OSPF 路由域内的路由,即不是本进程 OSPF 学习到的路由。因为外部缺省路由的作用是用于指导报文的域外转发,而本 OSPF 路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。

3.4 路由过滤

可以使用路由策略route-policy,filter,filter-policy,filter-lsa-out,访问控制列表(access-list),地址前缀列表(prefix-list)。

路由引入的过滤
OSPF可以引入其它路由协议学习到的路由。在引入时可以通过配置路由策略来过滤路由,只引入满足条件的路由。

配置示例:
[R3-ospf-1]import-route rip 1 route-policy GOK

路由视图下的LSA过滤:

3类LSA学习、发布的过滤:

通过filter import、filter export命令在ABR上对进入或离开本区域的3型LSA进行过滤。该配置只在ABR上有效(只有ABR才能发布3型LSA)。

OSPF路由协议重点 ospf协议路由配置_路由器_66

配置示例:
[R3-ospf-1-area-0.0.0.1]filter [ip-prefix|acl] gok [import/export]

5、7类LSA生成的过滤:
OSPF 引入外部路由后会生成5、7型LSA。可以通过filter-policy export来对5、7型LSA的生成进行过滤。该过滤规则只在ASBR上配置才有效。

配置示例:
[R3-ospf-1]filter-policy [acl-number|ip-prefix gok] export

接口视图下的LSA过滤
通过ospf filter-lsa-out命令, 匹配除Grace LSA外的所有LSA、3、5、7型LSA,并匹配ACL规定的路由前缀时,实现LSA的通告过滤。

配置示例:
[R3-GigabitEthernet0/0/0]ospf filter-lsa-out all

路由计算的过滤:
通过filter-policy import过滤规则,可以设置 OSPF对数据库中的区域内、区域间、外部LSA计算为路由条目时进行过滤。

该过滤只作用于路由表项的添加与否,即只有通过过滤的路由才被添加到本地路由表中,产生该路由的LSA仍然会在OSPF自治系统内扩散。
对本地计算出来的路由执行过滤,只有被过滤策略允许的路由才能被加表,没有通过过滤策略允许的路由不加表,此命令不影响路由器之间通告和接收LSA

配置示例:
[R3-ospf-1]filter-policy [acl-number|ip-prefix gok] import

3.5 Forwarding Address

OSPF路由协议重点 ospf协议路由配置_网络协议_67


RTB将通过RIP学来的路由重发布到OSPF,RTA通过OSPF学习到RIP中192.168.3.0/24的外部路由,但是下一跳是RTB。所以RTA访问192.168.3.0/24的流量先发送给RTB,RTB收到后又转发给RTC。在RTA上这条路由是次优的,最优的下一跳应当为RTC。

OSPF通过设置Forwarding Address来解决这个问题。

FA=0数据包要经过ASBR访问外部网络,如果FA!=0,数据包要转发至拥有FA地址的路由设备,再由其转发到外部网络。

如果FA!=0,则要根据OSPF路由表中是否有FA地址对应的路由来判断可达性,若不可达,则该外部路由不进 IP 路由表。

3.6 认证

区域认证方式和接口认证方式。当两种认证方式都存在时,优先使用接口认证方式。
认证模式分为null(不认证)、simple(明文)、MD5以及HMAC-MD5。

3.7 虚连接vlink

应用场景:

①连接断开的Area0

OSPF路由协议重点 ospf协议路由配置_路由器_68


②修复Area2未连接到Area0

OSPF路由协议重点 ospf协议路由配置_路由器_69

配置示例:
ospf 1
 area 1 
 vlink-peer 3.3.3.3

3.8 OSPF与IS-IS比较

3.8.1 基本特点

相同点:
均为IGP协议,且应用广泛;
均支持IP环境;
均采用分层设计和分区域设计。

不同点:
OSPF仅支持IP;IS-IS既支持IP,又支持CLNP;
OSPF支持的网络类型丰富;IS-IS仅支持两种网络类型;
OSPF支持虚连接;IS-IS虽然有类似功能,但是多数厂商不支持;
OSPF工作在IP之上;IS-IS工作在数据链路层之上;
OSPF基于接口划分区域;IS-IS基于设备划分区域。

3.8.2 邻接关系特点

相同点:
均通过Hello建立和维护邻居关系;
多点访问网络均选举DR/DIS。
不同点:
OSPF建立邻居关系条件相对苛刻;IS-IS的要求则相对宽松;
OSPF点对点链路形成邻居关系比较可靠;IS-IS可靠性相对较弱;
OSPF邻居关系不分层次;IS-IS邻居关系分两个层次;
OSPF处理DR/BDR和IS-IS处理DIS方式不同。

3.8.3 数据库同步特点

相同点:
均需形成统一的LSDB。
不同点:
OSPF LSA种类繁多;IS-IS LSP种类较少;
OSPF与IS-IS数据库同步过程不同;
OSPF LSA生存时间从零递增;IS-IS LSP生存时间从最大值递减。

3.8.4 其他特点

相同点:
均使用SPF算法计算路由;
无环路,收敛快,支持大规模网络部署。
不同点:
OSPF开销类型较为简单;IS-IS开销类型相对较复杂;
OSPF支持按需拨号网络;IS-IS无此特性。