路由协议——OSPF

路由协议——OSPF

Falcon

2025-05-18 发布22 浏览 · 0 点赞 · 0 收藏

OSPF---开放式最短路径优先

1.SPF最短路径优先算法,计算出一个无环的树形结构,选择一个最短路径

2.LS链路状态协议,先建立邻居,邻居之间传递LSA(链路状态通告),对端接收LSA后存放在LSDB(链路状态数据库)中,后续通过SPF算法,自行计算拓扑和路由

3.基于IP协议,协议号89,通过在IP包头中的protocol字段标识

4.更新方式:触发式组播更新,组播地址:224.0.0.5(所有运行OSPF协议的路由器),224.0.0.6(代表DR和BDR)

5.OSPF优先级:内部优先级:10---network(宣告)---OSPF

外部优先级:150---import-route(引入)---O_ASE

6.路由开销:控制层面入向接口开销之和

接口开销=参考带宽(100M)/接口的实际带宽

GE=100M/1000M=0.1≈1

S=100M/2.048M≈48

7.router-id:路由器标识,标识唯一一台运行OSPF的路由器,点分十进制,0.0.0.0-255.255.255.255

手动配置:由管理员手动添加,不需要本地存在该IP地址

自动配置:①如果存在环回接口默认选择环回接口作为router-id,如果存在多个环回接口,比大(ensp无法实现)

②如果不存在环回接口,优先选择物理接口作为router-id,如果存在多个物理接口,比大

8.area id区域ID:基于链路划分区域,采用点分十进制表示,范围0.0.0.0-255.255.255.255

Area 0:作为骨干区域,backbone(骨干)BB

其他区域:非骨干区域,常规区域

9.宣告network

精确宣告:写明确的IP地址+ 0.0.0.0

网段宣告:写网络号+通配符(只能配置为反掩码)

全部宣告:写0.0.0.0 + 255.255.255.255

接口宣告: ospf enable 1 area 0.0.0.0(不推荐),因为需要进入对应的接口查看,不方便

10.设备角色:

E:普通路由器,支持引入的路由器

ABR:区域边界路由器,在两个或多个区域之间的设备,只有连接area0和其他区域

ASBR:自治系统边界路由器,执行了import-route就叫ASBR

VIRTUAL:将部署vlink的区域改为传输区域,该区域的作用为优先处理LSA3

image

实验:

image

第一步:配置接口IP地址

AR1:

interface
GigabitEthernet0/0/0

ip address 12.1.1.1 255.255.255.0

第二步:建立OSPF

AR1:

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

抓包,查看报文:

OSPF头部:用于建立邻居关系的必要条件

image

①Hello---作用:发现,建立,维系邻居关系,每隔10s发送一次,dead时间是hello的4倍,同时在MA(广播)网络中会选举DR和BDR

image

②DD---数据库描述,携带LSA的摘要信息发送,第一个DD报文是空的DD,通过第一个DD报文选举主从关系,确认序列号。

image

③LSR---链路状态请求消息

image

④LSU---链路状态更新消息

image

⑤LSAck---链路状态确认消息

image

一、邻居表

邻居交互过程:

image

邻居状态机

Down---当自身设备宣告IP地址时,会发送Hello消息,消息中携带自身的router-id

Attempt---当修改为NBMA网络时,单播指定邻居后,会直接进入该状态

Init---当对方收到Hello报文时,则进入init状态,后续继续发送hello消息,携带自身的router-id,同时还存在对方的router-id

2-way---当收到携带自身router-id的Hello报文时,则进入2-way状态,选举DR和BDR

DR和BDR选举规则:

①路由器优先级比大

②router-id比大

-------------此时邻居建立完成-----------------

image

Exstart---交互空的DD报文,选举主从,确认序列号。

选举规则:router-id比大

Exchange---交互后续的DD信息,该DD信息中包含LSA的摘要信息,用于对比数据库

image

Loading---同步数据库,通过交互LSR,LSU,LSAck报文,在发送LSU时会开启5s的计时器,在计时器时间内没有收到来自对端发送的LSAck消息,则重新发送LSU。

Full-------数据库同步完成

image

-------------邻接建立完成--------------------

image

邻接建立的必要条件:

image

image

①router-id不允许重复

将AR1的OSPF的router-id修改为与AR2一致,查看错误原因:

判断错误不能只看个数,需要通过两次查看错误信息,看是否累加。

image

解决方法:将AR1的router-id修改为与AR2不一致即可

ospf router-id 1.1.1.1-------修改OSPF的router-id

reset ospf process------------只能在用户视图下重置

②区域ID要一致

修改:将AR1的G0/0/0接口修改至区域1

查看OSPF的错误信息:

image

解决方法:需要将区域ID配置为一致。

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

③认证也需要一致

1.接口认证

明文认证---密码不被加密---使用simple方式---在抓包时显示是明文

[AR1-GigabitEthernet0/0/0]ospf
authentication-mode simple ?

cipher Encryption type (Cryptogram)---------------以文本方式显示,用密文标识

plain Encryption type (Plain text)-----------------以文本方式显示,用明文标识

[AR1-GigabitEthernet0/0/0]ospf authentication-mode simple cipher 123

image

将一端配置为接口认证,一端配置为不认证,查看错误原因:

image

解决方法:将认证类型和密码设置为一致

密文认证---密码被加密---使用MD5方式

修改:将一端配置为密文,一端配置为明文:

[AR2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123

image

查看ospf的错误错误原因:

image

如果将认证类型修改为一致,密码不一致,错误原因如下:

image

修改方法:需要将类型和密码修改为一致。

2.区域认证(相当于批量的接口认证)

明文和密文---与接口认证一致

修改命令如下:

[AR1-ospf-1-area-0.0.0.0]authentication-mode
md5 1 cipher 123

问题1:一段开启接口认证,一段开启区域认证,认证类型和认证密码一致,可以建立邻接吗

答:可以建立邻接关系,因为只需要认证类型和认证密码一致即可。

问题2:一台设备同时开启接口认证和区域认证,会如何选择

答:会优先选择接口认证

④掩码长度一致

修改:将AR1的G0/0/0接口的掩码长度的修改为30

interface
GigabitEthernet0/0/0

ip address 12.1.1.1 30

查看OSPF的错误原因:

image

修改方式:将掩码长度修改为一致。

⑤Hello/Dead时间需要一致

默认情况下,Dead时间是Hello时间的4倍,Hello=10s,当修改Hello时间,dead时间会默认修改为其4倍,反之不行。

修改:修改AR1的Hello时间

查看OSPF的错误信息:

image

解决方法:将hello/dead时间修改为一致。

⑥末梢标识需要一致

末梢标识存在E和N,默认情况下为E=1,N=0(代表可以引入外部路由的普通路由器)

E=0,N=1(代表可以引入,但是是特殊的外部路由NSSA的LSA7)

E=0,N=0(代表不能引入外部路由,为特殊区域Stub)

不存在E=1,N=1的情况

修改:将一台设备的标识修改为N=1,将area0转换为area1,因为骨干区域不支持修改为特殊区域

AR1:

ospf 1 router-id
1.1.1.1

area 0.0.0.0

undo network 12.1.1.1 0.0.0.0

area 0.0.0.1

network 12.1.1.1 0.0.0.0

AR2:

ospf 1 router-id
2.2.2.2

area 0.0.0.0

undo network 12.1.1.2 0.0.0.0

area 0.0.0.1

nssa---------------修改为特殊区域nssa(将nssa改为stub)

network 12.1.1.2 0.0.0.0

N位被置位

image

查看OSPF的错误原因:

image

解决方法:将末梢区域标识修改为一致。

邻接建立的必要条件:

①在MA网络中一定要存在DR

②MTU值需要一致(默认情况下MTU值不开启)

如果开启MTU值检测时,一端MTU大,一端MTU小,分情况讨论。

当主设备MTU=1500 > 从设备MTU=1400

主设备和从设备都停留在ExStart状态。

image

当主设备MTU=1400 < 从设备MTU1500

主设备停留在ExStart状态,从设备停留在ExChange状态

image

当一台设备开启MTU检测,一台设备不开MTU检测:

两台设备都会进入到Full状态

image

OSPF支持的网络类型:

[AR1-GigabitEthernet0/0/0]ospf
network-type ?

broadcast 广播型多路访问MA---链路层协议为Ethernet,默认的网络类型

nbma 非广播型多路访问---链路层协议为FR,默认的网络类型

p2mp 点到多点网络类型---不属于任何的默认的网络类型,只能通过手动修改

p2p 点到点网络类型---链路层协议为PPP,默认的网络类型

①广播型网络,broadcast/MA

默认的Hello/dead时间为10s/40s

在MA网络中需要选举DR和BDR---作用:在MA网络中减少LSA的泛洪

除了DR和BDR之外的其余所有设备都叫DR-Other,并且DR-Other之间关系都为2-way,只有和DR或BDR才能建立Full状态。

image

每一个广播域中都会选举一个DR或者BDR,并且DR不支持抢占。(BDR仍然支持抢占)

DR/BDR的选举规则:①优先级比大,默认为1,取值范围0-255(0不参与选举)

②优先级一致,则比较router-id,比大

image

修改DR优先级的命令如下:

[AR1-GigabitEthernet0/0/0]ospf
dr-priority 255

②NBMA---非广播型多路访问;

当链路层协议为FR帧中继,X.25时,默认情况下,OSPF认为网络类型时NBMA,报文交互的方式单播发送,需要手动指定邻居。

并且默认的Hello/dead时间修改为30/120s

DR和BDR的选举规则和原理与MA的一致。

实验:

image

第一步:将链路类型修改为FR

AR3:

interface
Serial1/0/0

link-protocol fr

ip address 12.1.1.1 255.255.255.0

AR4

interface
Serial1/0/0

link-protocol fr

ip address 12.1.1.2 255.255.255.0

第二步:配置OSPF

AR3:

ospf 1

peer 12.1.1.2

area 0.0.0.0

network 12.1.1.1 0.0.0.0

AR4:

ospf 1

peer 12.1.1.1

area 0.0.0.0

network 12.1.1.2 0.0.0.0

第三步:设置中间FRSW

image

查看OSPF的邻居:

image

查看OSPF的类型

image

③P2P---点到点网络

当链路层协议为PPP,HDLC,LAPB时,默认情况下的网络类型

默认的Hello/dead时间为10/40s,不选举DR和BDR,节约了DR和BDR的选举时间。

实验:

image

第一步:配置接口IP地址

AR5:

interface
Serial1/0/0

link-protocol ppp

ip address 12.1.1.1 255.255.255.0

AR6:

interface
Serial1/0/0

link-protocol ppp

ip address 12.1.1.2 255.255.255.0

第二步:配置OSPF协议

AR5

ospf 1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

AR6

ospf 1

area 0.0.0.0

network 12.1.1.2 0.0.0.0

查看邻居表:

image

查看OSPF的类型:

image

④P2MP---点到多点

该网络类型需要通过手动修改,默认的Hello/dead时间为30/120s,也不需要选举DR和BDR

AR5/AR6:

interface
Serial1/0/0

ospf network-type p2mp-------------强制修改网络类型

查看邻居表:

image

查看OSPF的类型:

image

修改网络类型(ENSP的bug):

①OSPF在宣告环回接口时,默认都只能宣告32位,需要手动修改,还原真实的环回接口掩码长度:ospf network-type broadcast

问题1:当一台设备的网络类型为Broadcast,一台设备为P2P网络类型,能否建立邻居?

答:可以建立邻居关系,因为满足邻居建立的必要条件,但是无法计算路由(见LSDB)

问题2:NBMA和Broadcast,P2MP,P2P能不能建立邻居关系?

答:NBMA只能和NBMA建立邻居关系,因为NBMA为单播

二、LSDB链路状态数据库

image

第一步:配置接口IP地址

AR1:

interface
Serial1/0/0

ip address 12.1.1.1 255.255.255.0

interface LoopBack0

ip address 192.168.1.254 255.255.255.0

ospf network-type broadcast

AR2

interface
Serial1/0/0

ip address 12.1.1.2 255.255.255.0

interface
GigabitEthernet0/0/0

ip address 100.1.1.2 255.255.255.0

AR3

interface
GigabitEthernet0/0/0

ip address 100.1.1.3 255.255.255.0

AR4

interface
GigabitEthernet0/0/0

ip address 100.1.1.4 255.255.255.0

interface
GigabitEthernet0/0/1

ip address 45.1.1.4 255.255.255.0

AR5

interface
GigabitEthernet0/0/0

ip address 45.1.1.5 255.255.255.0

interface LoopBack0

ip address 192.168.5.254 255.255.255.0

ospf network-type broadcast

第二步:配置OSPF,精确宣告

AR1

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

network 192.168.1.254 0.0.0.0

AR2

ospf 1 router-id
2.2.2.2

area 0.0.0.0

network 12.1.1.2 0.0.0.0

network 100.1.1.2 0.0.0.0

AR3

ospf 1 router-id
3.3.3.3

area 0.0.0.0

network 100.1.1.3 0.0.0.0

AR4

ospf 1 router-id
4.4.4.4

area 0.0.0.0

network 100.1.1.4 0.0.0.0

area 0.0.0.1

network 45.1.1.4 0.0.0.0

AR5

ospf 1 router-id
5.5.5.5

area 0.0.0.1

network 45.1.1.5 0.0.0.0

network 192.168.5.254 0.0.0.0

查看链路状态数据库:

image

type:LSA的类型(LSA1---Router,LSA2---Network,LSA3---Sum-Net,LSA4,LSA5,LSA7)

LinkState ID:链路状态ID(根据不同的类型会产出不同ID)

AdvRouter:产生者路由器(该LSA由谁产生)

LSA的三要素(type+LS ID + Adv router),唯一标识一条LSA

Age:老化时间,默认3600s,周期更新1800s

Length:长度,LSA的长度

Seq:序列号,每次更新+1,防止重放攻击,范围0x80000000-0x7FFFFFFF

Metric:度量值,cost

判断LSA的新旧

①序列越大越新

②校验核越大越新

③Age:3600为最优(撤销路由)

image

当时间差小于900s,视为同一条LSA

如果时间差大于900s,则更新LSA

①LSA-1,Router,每一台运行OSPF的设备都会产生的LSA

LSA1中携带路由信息,拓扑信息和角色信息

传递范围:在区域内传递

Type:Router

LS ID:自身的router-id

Adv :自身的router-id

拓扑信息:描述真实的物理拓扑是什么样的

路由信息:携带掩码长度的就为路由信息

image

Link type 作用 Link ID Data Metric
P2P 描述P2P网络的拓扑信息 对端的Router-id 自身的接口IP地址 接口的开销值
StubNet 描述路由信息(P2P的接口路由,环回接口,PC网段) 网络号 掩码 接口的开销值
TransNet 描述MA网络拓扑信息 DR的接口IP地址 自身的接口IP地址 接口的开销值
Virtual 描述vlink的拓扑信息 对端的router-id 自身的接口IP地址 接口的开销值

②LSA-2,Network,只有在MA网络中才会生成,用于补充LSA-1缺少的MA网络中的路由和拓扑信息

传递范围:在区域内传递

Type:Network

LS ID:DR的接口IP地址

Adv :DR的router-id

路由信息=LS ID+mask

拓扑信息=DR连接的所有设备

image

通过LSA1,LSA2画出逻辑图:

image

LSA3:Sum-Net,由ABR设备产生,只描述路由信息

传递区域:在其他区域域内传递

作用:描述区域间(其他区域)的路由信息

Type:Sum-Net

LS ID:网络号

Adv:ARB设备的router-id

image

问题1:如果将区域0改为区域2,AR1和AR5之间还能否通信?

答:不能通信,根本原因:AR4设备不再作为ABR,因此不会处理和生成LSA3

问题2:路由器收到ABR的LSA3后,如果自身还存在和其他区域的邻居,如何传递?

答:路由器存在其他区域的邻居,说明自身为ABR,自身为ABR转发LSA3时,会将产生者转为自身

在R5上新增环回接口,LO10:172.16.1.0/24,并且引入进OSPF

AR5:

interface LoopBack10-----------创建环回接口10

ip address 172.16.1.254 255.255.255.0

route-policy lo10 permit node 10 ---------创建路由策略,名字为lo10,动作为允许

if-match interface LoopBack10------------只匹配中loopback10口

ospf 1

import-route direct route-policy lo10--------引入直连路由,调用lo10的路由策略,只引入loopback10接口

查看OSPF的链路状态数据库:

image

④LSA-4-Sum-Asbr

传递范围:在区域间传递,其他区域内传递

作用:由ABR产生,描述去往ASBR的拓扑信息

Type:Sum-Asbr

LS ID:ASBR的Router-id

Adv:ABR的Router-id

image

⑤LSA-5-External

传递范围:整个OSPF内传递

作用:由ASBR产生,描述外部路由信息

Type:External

LS ID:外部网络的网络号

Adv:ASBR的Router-id

image

问题1:有LSA5类一定有LSA4吗?

答:不一定,当LSA5在同一个区域内时可以通过LSA1和LSA2计算路径。

问题2:有LSA4一定有LAS5吗?

答:不一定,当ASBR引入外部路由时不存在任何条目,但该设备仍然是ASBR,LSA4类就会由ABR产生。

外部LSA-5新增三个字段:

1.tag :路由标记,标记路由,方便过滤或者放行

2.E Type:外部开销类型,默认为E2,存在默认开销=1

E1:在路由表中,显示(内部+外部)总开销,在选路时,直接比较总开销,若开销一致,则负载分担。

E2:默认,在路由表中,只显示外部的开销=1,在选路时,先比较外部开销,当外部开销一致,再比较内部开销,若一致则负载分担。

[AR5-ospf-1] import-route direct type 1 route-policy lo10------修改开销类型为E1

[AR5-ospf-1]import-route direct route-policy lo10 cost 1000-------修改外部路由的开销

51=默认的外部开销+内部开销

image

3.FA地址---作用:防环,防止次优

image

第一步:配置接口IP地址

第二步:配置OSPF和RIP,并执行双向重分布

AR6:

ospf 1

import-route rip 1

area 0.0.0.0

network 100.1.1.6 0.0.0.0

rip 1

version 2

network 100.0.0.0

import-route ospf 1

AR7:

ospf 1

area 0.0.0.0

network 100.1.1.7 0.0.0.0

AR8:

rip 1

version 2

network 100.0.0.0

network 192.168.1.0

image

如果FA=0,计算外部路由时寻找ASBR

如果计算外部路由的设备和ASBR在同一个区域,通过LSA1和LSA2计算

如果计算外部路由的设备和ASBR不在同一个区域,通过LSA4计算

如果FA≠0,计算外部路由找FA地址

如果计算外部路由的设备和ASBR在同一个区域,通过LSA1和LSA2计算

如果计算外部路由的设备和ASBR不在同一个区域,通过LSA3计算

LSA5什么情况下FA地址≠0:

①在MA网络中

②接口宣告进OSPF

③接口没有配置为静默接口

大部分情况LSA5的FA地址都为0

⑥LSA-7---NSSA

传播范围:只能在NSSA域内传递

Type:NSSA

LS ID:网络号

Adv:NSSA中的ASBR

image

在ABR设备上会执行7转5的动作

Type7转Type5存在一定规则:

1.在缺省情况下:执行7转5的路由器是ABR中router-id最大的路由器。

2.只有P置位(P=1)且FA地址≠0的情况下才会进行,7转5操作

image

3.区域边界路由器产生的Type7LSA,P位不会置位

特殊区域---不能将area 0设置为特殊区域

作用:节约链路状态数据库的表项空间

1.Stub---末节区域

AR4,AR5

ospf 1

area 0.0.0.1

stub --------设置为特殊区域stub

将非骨干区域area1设置为stub,E=0,N=0,说明该区域不支持引入外部路由,不能存在LSA4,LSA5,LSA7。

由ABR设备向Stub特殊区域的所有设备发送一个LSA3的默认路由,stub区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的外部站点。

在AR5上查看LSDB:

image

2.totally stub---完全末节区域

AR4,AR5:

ospf 1

area 0.0.0.1

stub no-summary

将非骨干区域area1设置为totally stub,E=0,N=0,说明该区域不支持引入外部路由,不能存在明细LSA3,LSA4,LSA5,LSA7。

由ABR设备向totally Stub特殊区域的所有设备发送一个LSA3的默认路由,totally stub区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的域内和域外站点。

image

查看路由表:

image

3.Nssa---次末节区域

AR4,AR5

ospf 1

area 0.0.0.1

nssa --------设置为特殊区域nssa

将非骨干区域area1设置为nssa,E=0,N=1,说明该区域支持引入LSA7外部路由,不能存在LSA4,LSA5。

由ABR设备向NSSA特殊区域的所有设备发送一个LSA7的默认路由,NSSA区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的外部站点。

image

4.totally nssa---完全次末节区域

AR4,AR5

ospf 1

area 0.0.0.1

nssa no-summary --------设置为特殊区域totally nssa

将非骨干区域area1设置为totally nssa,E=0,N=1,说明该区域支持引入LSA7外部路由,不能存在明细LSA3,LSA4,LSA5。

由ABR设备向totally NSSA特殊区域的所有设备发送一个LSA7和LSA3的默认路由,totally NSSA区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的外部站点。

因为域间优于域外,会优先选择LSA3的默认

image

image


三、路由表

两台设备之间先建立邻居关系,再相互传递LSA,收到LSA后存放至LSDB中,通过LSDB计算出OSPF的协议路由表,再通过OSPF的协议路由表计算出IP路由表,最终由IP路由表转发数据

路由汇总---将多条路由汇总成一条,可以节约设备的表项空间

①域内路由汇总---通过LSA1,LSA2计算产生路由,无法被汇总,因为LSA1和LSA2不仅携带路由信息还存在拓扑信息,所有域内路由无法被汇总

②域间路由汇总---通过LSA3在ABR上进行路由汇总

image

AR1:

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

network 192.168.1.254 0.0.0.0

network 192.168.2.254 0.0.0.0

AR2:

ospf 1 router-id
2.2.2.2

area 0.0.0.0

network 12.1.1.2 0.0.0.0

area 0.0.0.1

network 23.1.1.2 0.0.0.0

AR3:

ospf 1 router-id
3.3.3.3

import-route direct route-policy LO

area 0.0.0.1

network 23.1.1.3 0.0.0.0

route-policy LO
permit node 10

if-match interface LoopBack0

在AR2设备上做域间路由汇总:

AR2:

area 0.0.0.0 ------------进入需要汇总的区域,因为该区域为汇总源头

abr-summary 192.168.0.0 255.255.252.0-------配置汇总后的大网段,只能写掩码

查看AR3上路由表和链路状态数据库:

image

image

③域外路由汇总---通过LSA5/LSA7在ASBR上进行路由汇总

在AR3设备上做域外路由汇总:

AR3:

ospf 1 router-id
3.3.3.3

asbr-summary 172.16.0.0 255.255.252.0

查看OSPF的路由表和链路状态数据库

image

image

路由过滤---将不需要的路由过滤,也可以节约表项空间

①本地路由过滤

固定格式:Filter-policy + acl +import

ACL在匹配路由时,存在默认拒绝所有的动作

需求:AR2设备不接收192.168.1.0的路由信息

AR2:

acl number 2000 -----------ACL只能匹配网络号,且默认过滤所有路由

rule 5 deny source 192.168.1.0 0 -----------拒绝192.168.1.0的路由条目

rule 10 permit source any--------------因为默认过滤所有,需要放行所有

ospf 1

filter-policy 2000 import

查看AR2路由表:

image

问题1:查看AR3的路由表时,192.168.1.0路由还存在吗?

答:本地路由过滤只会过滤路由条目,并不会过滤LSA,但是因为不会计算192.168.1.0的路由,因此不会产生对应的LSA3

LSA3只有存在对应的路由,才会产生

本地路由过滤如果在普通路由器上配置只会影响本地,如果在ABR上做会影响LSA3的传递

②域间路由过滤---在ABR上配置

固定格式:在区域中:Filter + acl + import/export

需求:area1只能接收192.168.1.0的路由

AR2:

acl number 2000

rule 5 deny source 192.168.2.0 0

rule 10 permit

ospf

area 0.0.0.0 ----------进入对应的区域

filter 2000 export ------从area0发出,到area1

ospf

area 0.0.0.1 ----------进入对应的区域

filter 2000 import ------接收area0发送的,进入到area1

在AR3上查看路由表和链路状态数据库:

image

image

③域外路由过滤---在ASBR上配置

固定格式:filter-policy + acl +export

需求:AR3设备只允许172.16.1.0/24路由引入进OSPF

AR3:

acl number 2000

rule 5 permit source 172.16.1.0 0

ospf 1

filter-policy 2000 export

查看OSPF的链路状态数据库和路由表:

image

image

④filter-lsa-out 通过过滤LSA的方式,间接过滤路由

在接口下,使用该命令ospf filter-lsa-out,过滤想要的LSA,配合使用ACL

[AR2-GigabitEthernet0/0/1]ospf
filter-lsa-out ?

all Filter all types of LSAs

ase Filter type-5 ASE LSAs

nssa Filter type-7 NSSA LSAs

summary Filter type-3 Summary LSAs

⑤在OSPF进程下配置filter-lsa-out,只能针对P2MP类型的网络进行过滤。

[AR2-ospf-1]filter-lsa-out
peer 3.3.3.3 ?

all Filter all types of LSAs

ase Filter type-5 ASE LSAs

nssa Filter type-7 NSSA LSAs

summary Filter type-3 Summary LSAs

⑥通过路由汇总的方式间接过滤

域间和域外路由的汇总不同告,来间接的过滤路由:

AR2:

ospf 1

area 0.0.0.0

abr-summary 192.168.0.0 255.255.252.0
not-advertise

image

AR3:

ospf 1

asbr-summary 172.16.0.0 255.255.252.0
not-advertise

image


OSPF路由防环

①域内防环------通过LSA1和LSA2产生路由,LSA1和LSA2根据SPF(最短路径优先)算法计算,本身就没有环路

②域间路由防环

1.只有ABR能处理LSA3

假设ABR=区域间的设备

image

2.LSA3具有矢量性

矢量:方向和距离

image

3.在多ABR的场景下

在具有多个ABR的场景下,ABR会从多个区域收到相同的LSA3,优先处理从骨干区域收到的LSA3,接收但不处理从非骨干区域收到的LSA3

接收但不处理=收到LSDB中,但不计算路由表

image

4.在具有多ABR的场景下,ABR在骨干区域存在真实的邻接关系,接收但不处理从非骨干区域收到的LSA3

如果ABR在骨干区域没有真实的邻接关系,则接收并处理非骨干区域收到的LSA3

image

③域外路由防环

LSA5依靠FA地址进行防环

实验:

image

当存在FA地址的情况下,AR4会产生一条LSA7,该LSA7会发送给AR2和AR3,AR2和AR3同时都作为ABR设备,会选出一个ABR进行7-5的操作

根据router-id比大的原则,AR3进行7转5操作,LSA7的FA地址会被LSA5继承,AR3属于ASBR,LSA5会在整个OSPF内传递

LSA5会发送给AR1和AR2,AR2收到后,发现该LSA5中存在FA地址,AR2设备就会根据FA地址直接转发

如果不存在FA地址,也不会产生环路,如下图所示

AR3:

ospf

area 0.0.0.1

nssa suppress-forwarding-address-----------------进入NSSA区域抑制FA地址的继承

image

在AR2设备上查看192.168.4.0的LSA5的FA地址:

image

如果将AR2的G0/0/2接口的开销改的比AR2的G0/0/0接口开销大

AR2:

interface
GigabitEthernet0/0/2

ospf cost 3

image

在AR2上查看路由表:访问192.168.4.0/24,AR2---》AR1---》AR3反复循环

image

image


vlink(虚链路)---属于area0,且无法修改,传输区域不能设置为特殊区域

作用:1.解决不规则区域

①解决常规区域被隔离

②解决骨干区域被分割

③解决不存在骨干区域,通过新增vlink

2.作为备份链路

3.减低成本

①解决常规区域被隔离

image

根本原因:AR2作为ABR设备会传递LSA3给AR3,AR3不是ARB,不能处理LSA3,导致LSA3无法传递给area2

解决方法:在AR2和AR3之间部署vlink,让AR3设备成为ABR

AR1

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

AR2

ospf 1 router-id
2.2.2.2

area 0.0.0.0

network 12.1.1.2 0.0.0.0

area 0.0.0.1

network 23.1.1.2 0.0.0.0

AR3

ospf 1 router-id
3.3.3.3

area 0.0.0.1

network 23.1.1.3 0.0.0.0

area 0.0.0.2

network 34.1.1.3 0.0.0.0

AR4

ospf 1 router-id
4.4.4.4

area 0.0.0.2

network 34.1.1.4 0.0.0.0

network 192.168.4.254 0.0.0.0

在AR2和AR3之间建立vlink

AR2:

area 0.0.0.1

vlink-peer 3.3.3.3-------指定邻居的Router-id

AR3:

area 0.0.0.1

vlink-peer 2.2.2.2

查看OSPF的vlink状态

image

②解决骨干区域被分割

image

根本原因:AR2和AR3设备都是ABR设备,都能够处理LSA3,由于LSA3防环,导致AR3和AR2设备接收但不处理来自非骨干区域的LSA3

解决方法:在AR2和AR3之间部署vlink,将两个area0连成一个,配置vlink的区域称之为传输区域

AR2:

area 0.0.0.1

vlink-peer 3.3.3.3-------指定邻居的Router-id

AR3:

area 0.0.0.1

vlink-peer 2.2.2.2

③不存在骨干区域

image

根本问题:不存在骨干区域,因此所有设备都不是ABR,无法传递LSA3

解决方法:通过area2建立vlink


OSPF高级特性

1.静默接口

作用:减少不必要的Hello报文

将连接终端设备的接口配置为静默接口

image

[AR1-ospf-1]silent-interface GigabitEthernet 0/0/1------接口不在收发Hello报文,不影响通信

如果将路由器的互联接口配置为静默接口,无法建立OSPF的邻居关系

如果将OSPF换成RIP协议

RIP协议中的静默接口只能接收流量,无法发送。(只收不发)

2.快速收敛

①邻居层面

1.通过修改Hello,Dead时间间隔

2.当只有两台路由器互联时,可以直接修改为P2P模式,省去DR和BDR的选举时间。

3.联动BFD,NQA实现毫秒级的快速收敛

②数据库层面

OSPF快速收敛是为了提高路由的收敛速度而做的扩展特性,包括:PRC(Partial Route Calculation,部分路由计算)和智能定时器。

1.PRC-部分路由计算,只计算发生变化的路由信息(默认开启,且无法关闭)

image

2.智能定时器

(1)LSA的产生间隔

[AR1-ospf-1]lsa-originate-interval intelligent-timer 5000(最大时间) 0(始发时间) 1000(惩罚时间)

(2)LSA的接收间隔

[AR1-ospf-1]lsa-arrival-interval
intelligent-timer 1000 0 1000

(3)SPF的计算时间

[AR1-ospf-1]spf-schedule-interval intelligent-timer 1000 1(范围1-1000) 1000

③路由层面

FRR快速重路由,提前在计算好备份的路径,并且存放到本地路由表中

image

在AR1没有开启FRR功能前:只存在一个下一跳

image

开启FRR功能:

AR1:

ospf 1

frr

loop-free-alternate--------利用LFA无环算法计算备份下一跳

此时多出一个backup nexthop

image

当主路径故障,立刻切换到备份路径转发----可以将FRR与BFD(组合拳)联动

修改AR3设备G0/0/1接口的开销值,可能出现临时环路,无法使用LFA算法计算备份路径,AR1不会产生备份下一跳:

AR3

interface
GigabitEthernet0/0/1

ospf cost 50

image

查看AR1的详细路由表:

image

FRR在计算备份下一跳的条件:备份下一跳设备去往目的网段,不能回头。AR3--》AR2---》AR4的总cost < AR3---》AR1---》AR2---》AR4总开销

3.缺省路由通告

①当本地设备已经存在默认路由时,可以通过以下命令实现:

[AR3-ospf-1]default-route-advertise-----------ospf的默认路由通告

如果本地不存在默认路由,则该命令无法生效

②当本地设备本身不存在默认路由时,可以通过以下命令实现:

[AR3-ospf-1]default-route-advertise always ------------OSPF的默认路由通告,就算本身没有默认路由,也会通告给自身的邻居(不推荐!!!)

不推荐,因为自身不存在默认路由,可能会导致环路。

③在特殊区域中,ABR设备会向特殊区域内的设备发送默认路由

具体内容参考特殊区域

4.数据库超限---只针对于外部路由

[AR1-ospf-1]lsdb-overflow-limit
?

INTEGER<1-1000000> Overflow limit value

image

5.OSPF的多进程---实现路由相互隔离(多进程是本地的概念)

image

AR1:

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 12.1.1.1 0.0.0.0

AR2:

ospf 1 router-id
2.2.2.2

import-route ospf 2

area 0.0.0.0

network 12.1.1.2 0.0.0.0

ospf 2 router-id 22.22.22.22 --------------不同进程之间的router-id冲突,不影响邻居的建立

import-route ospf 1

area 0.0.0.0

network 24.1.1.2 0.0.0.0

AR4

ospf 1 router-id
1.1.1.1

area 0.0.0.0

network 24.1.1.4 0.0.0.0

network 192.168.4.254 0.0.0.0

在AR1上查看路由,都为LSA5:

image

请前往 登录/注册 即可发表您的看法…