
路由协议——OSPF
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
实验:
第一步:配置接口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头部:用于建立邻居关系的必要条件
①Hello---作用:发现,建立,维系邻居关系,每隔10s发送一次,dead时间是hello的4倍,同时在MA(广播)网络中会选举DR和BDR
②DD---数据库描述,携带LSA的摘要信息发送,第一个DD报文是空的DD,通过第一个DD报文选举主从关系,确认序列号。
③LSR---链路状态请求消息
④LSU---链路状态更新消息
⑤LSAck---链路状态确认消息
一、邻居表
邻居交互过程:
邻居状态机
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比大
-------------此时邻居建立完成-----------------
Exstart---交互空的DD报文,选举主从,确认序列号。
选举规则:router-id比大
Exchange---交互后续的DD信息,该DD信息中包含LSA的摘要信息,用于对比数据库
Loading---同步数据库,通过交互LSR,LSU,LSAck报文,在发送LSU时会开启5s的计时器,在计时器时间内没有收到来自对端发送的LSAck消息,则重新发送LSU。
Full-------数据库同步完成
-------------邻接建立完成--------------------
邻接建立的必要条件:
①router-id不允许重复
将AR1的OSPF的router-id修改为与AR2一致,查看错误原因:
判断错误不能只看个数,需要通过两次查看错误信息,看是否累加。
解决方法:将AR1的router-id修改为与AR2不一致即可
ospf router-id 1.1.1.1-------修改OSPF的router-id
reset ospf process------------只能在用户视图下重置
②区域ID要一致
修改:将AR1的G0/0/0接口修改至区域1
查看OSPF的错误信息:
解决方法:需要将区域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
将一端配置为接口认证,一端配置为不认证,查看错误原因:
解决方法:将认证类型和密码设置为一致
密文认证---密码被加密---使用MD5方式
修改:将一端配置为密文,一端配置为明文:
[AR2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123
查看ospf的错误错误原因:
如果将认证类型修改为一致,密码不一致,错误原因如下:
修改方法:需要将类型和密码修改为一致。
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的错误原因:
修改方式:将掩码长度修改为一致。
⑤Hello/Dead时间需要一致
默认情况下,Dead时间是Hello时间的4倍,Hello=10s,当修改Hello时间,dead时间会默认修改为其4倍,反之不行。
修改:修改AR1的Hello时间
查看OSPF的错误信息:
解决方法:将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位被置位
查看OSPF的错误原因:
解决方法:将末梢区域标识修改为一致。
邻接建立的必要条件:
①在MA网络中一定要存在DR
②MTU值需要一致(默认情况下MTU值不开启)
如果开启MTU值检测时,一端MTU大,一端MTU小,分情况讨论。
当主设备MTU=1500 > 从设备MTU=1400
主设备和从设备都停留在ExStart状态。
当主设备MTU=1400 < 从设备MTU1500
主设备停留在ExStart状态,从设备停留在ExChange状态
当一台设备开启MTU检测,一台设备不开MTU检测:
两台设备都会进入到Full状态
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状态。
每一个广播域中都会选举一个DR或者BDR,并且DR不支持抢占。(BDR仍然支持抢占)
DR/BDR的选举规则:①优先级比大,默认为1,取值范围0-255(0不参与选举)
②优先级一致,则比较router-id,比大
修改DR优先级的命令如下:
[AR1-GigabitEthernet0/0/0]ospf
dr-priority 255
②NBMA---非广播型多路访问;
当链路层协议为FR帧中继,X.25时,默认情况下,OSPF认为网络类型时NBMA,报文交互的方式单播发送,需要手动指定邻居。
并且默认的Hello/dead时间修改为30/120s
DR和BDR的选举规则和原理与MA的一致。
实验:
第一步:将链路类型修改为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
查看OSPF的邻居:
查看OSPF的类型
③P2P---点到点网络
当链路层协议为PPP,HDLC,LAPB时,默认情况下的网络类型
默认的Hello/dead时间为10/40s,不选举DR和BDR,节约了DR和BDR的选举时间。
实验:
第一步:配置接口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
查看邻居表:
查看OSPF的类型:
④P2MP---点到多点
该网络类型需要通过手动修改,默认的Hello/dead时间为30/120s,也不需要选举DR和BDR
AR5/AR6:
interface
Serial1/0/0
ospf network-type p2mp-------------强制修改网络类型
查看邻居表:
查看OSPF的类型:
修改网络类型(ENSP的bug):
①OSPF在宣告环回接口时,默认都只能宣告32位,需要手动修改,还原真实的环回接口掩码长度:ospf network-type broadcast
问题1:当一台设备的网络类型为Broadcast,一台设备为P2P网络类型,能否建立邻居?
答:可以建立邻居关系,因为满足邻居建立的必要条件,但是无法计算路由(见LSDB)
问题2:NBMA和Broadcast,P2MP,P2P能不能建立邻居关系?
答:NBMA只能和NBMA建立邻居关系,因为NBMA为单播
二、LSDB链路状态数据库
第一步:配置接口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
查看链路状态数据库:
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为最优(撤销路由)
当时间差小于900s,视为同一条LSA
如果时间差大于900s,则更新LSA
①LSA-1,Router,每一台运行OSPF的设备都会产生的LSA
LSA1中携带路由信息,拓扑信息和角色信息
传递范围:在区域内传递
Type:Router
LS ID:自身的router-id
Adv :自身的router-id
拓扑信息:描述真实的物理拓扑是什么样的
路由信息:携带掩码长度的就为路由信息
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连接的所有设备
通过LSA1,LSA2画出逻辑图:
LSA3:Sum-Net,由ABR设备产生,只描述路由信息
传递区域:在其他区域域内传递
作用:描述区域间(其他区域)的路由信息
Type:Sum-Net
LS ID:网络号
Adv:ARB设备的router-id
问题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的链路状态数据库:
④LSA-4-Sum-Asbr
传递范围:在区域间传递,其他区域内传递
作用:由ABR产生,描述去往ASBR的拓扑信息
Type:Sum-Asbr
LS ID:ASBR的Router-id
Adv:ABR的Router-id
⑤LSA-5-External
传递范围:整个OSPF内传递
作用:由ASBR产生,描述外部路由信息
Type:External
LS ID:外部网络的网络号
Adv:ASBR的Router-id
问题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=默认的外部开销+内部开销
3.FA地址---作用:防环,防止次优
第一步:配置接口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
如果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
在ABR设备上会执行7转5的动作
Type7转Type5存在一定规则:
1.在缺省情况下:执行7转5的路由器是ABR中router-id最大的路由器。
2.只有P置位(P=1)且FA地址≠0的情况下才会进行,7转5操作
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:
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区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的域内和域外站点。
查看路由表:
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区域的设备收到后,会计算对应的路由信息,通过默认路由来访问其他区域的外部站点。
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的默认
三、路由表
两台设备之间先建立邻居关系,再相互传递LSA,收到LSA后存放至LSDB中,通过LSDB计算出OSPF的协议路由表,再通过OSPF的协议路由表计算出IP路由表,最终由IP路由表转发数据
路由汇总---将多条路由汇总成一条,可以节约设备的表项空间
①域内路由汇总---通过LSA1,LSA2计算产生路由,无法被汇总,因为LSA1和LSA2不仅携带路由信息还存在拓扑信息,所有域内路由无法被汇总
②域间路由汇总---通过LSA3在ABR上进行路由汇总
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上路由表和链路状态数据库:
③域外路由汇总---通过LSA5/LSA7在ASBR上进行路由汇总
在AR3设备上做域外路由汇总:
AR3:
ospf 1 router-id
3.3.3.3
asbr-summary 172.16.0.0 255.255.252.0
查看OSPF的路由表和链路状态数据库
路由过滤---将不需要的路由过滤,也可以节约表项空间
①本地路由过滤
固定格式: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路由表:
问题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上查看路由表和链路状态数据库:
③域外路由过滤---在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的链路状态数据库和路由表:
④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
AR3:
ospf 1
asbr-summary 172.16.0.0 255.255.252.0
not-advertise
OSPF路由防环
①域内防环------通过LSA1和LSA2产生路由,LSA1和LSA2根据SPF(最短路径优先)算法计算,本身就没有环路
②域间路由防环
1.只有ABR能处理LSA3
假设ABR=区域间的设备
2.LSA3具有矢量性
矢量:方向和距离
3.在多ABR的场景下
在具有多个ABR的场景下,ABR会从多个区域收到相同的LSA3,优先处理从骨干区域收到的LSA3,接收但不处理从非骨干区域收到的LSA3
接收但不处理=收到LSDB中,但不计算路由表
4.在具有多ABR的场景下,ABR在骨干区域存在真实的邻接关系,接收但不处理从非骨干区域收到的LSA3
如果ABR在骨干区域没有真实的邻接关系,则接收并处理非骨干区域收到的LSA3
③域外路由防环
LSA5依靠FA地址进行防环
实验:
当存在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地址的继承
在AR2设备上查看192.168.4.0的LSA5的FA地址:
如果将AR2的G0/0/2接口的开销改的比AR2的G0/0/0接口开销大
AR2:
interface
GigabitEthernet0/0/2
ospf cost 3
在AR2上查看路由表:访问192.168.4.0/24,AR2---》AR1---》AR3反复循环
vlink(虚链路)---属于area0,且无法修改,传输区域不能设置为特殊区域
作用:1.解决不规则区域
①解决常规区域被隔离
②解决骨干区域被分割
③解决不存在骨干区域,通过新增vlink
2.作为备份链路
3.减低成本
①解决常规区域被隔离
根本原因: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状态
②解决骨干区域被分割
根本原因: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
③不存在骨干区域
根本问题:不存在骨干区域,因此所有设备都不是ABR,无法传递LSA3
解决方法:通过area2建立vlink
OSPF高级特性
1.静默接口
作用:减少不必要的Hello报文
将连接终端设备的接口配置为静默接口
[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-部分路由计算,只计算发生变化的路由信息(默认开启,且无法关闭)
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快速重路由,提前在计算好备份的路径,并且存放到本地路由表中
在AR1没有开启FRR功能前:只存在一个下一跳
开启FRR功能:
AR1:
ospf 1
frr
loop-free-alternate--------利用LFA无环算法计算备份下一跳
此时多出一个backup nexthop
当主路径故障,立刻切换到备份路径转发----可以将FRR与BFD(组合拳)联动
修改AR3设备G0/0/1接口的开销值,可能出现临时环路,无法使用LFA算法计算备份路径,AR1不会产生备份下一跳:
AR3
interface
GigabitEthernet0/0/1
ospf cost 50
查看AR1的详细路由表:
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
5.OSPF的多进程---实现路由相互隔离(多进程是本地的概念)
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: