OSPF路由控制知识详解~~
OSPF路由控制
OSPF路由控制概述
OSPF的路由控制包括:
调整OSPF的接口开销
设置等价路由
引入外部路由
路由聚合
缺省路由通告
Filter-Policy
对发送的LSA进行过滤
对ABR Type3 LSA进行过滤
设置LSDB中External LSA的最大数量
等价路由
当路由表中存在到达同一目的地址,且同一路由协议发现的多条路由时,若这几条路由的开销值也相同,那么这些路由就是等价路由,可以实现负载分担。
设备将按照负载分担的方式从多条等价路由发送报文到同一目的地址。
设置进行负载分担的等价路由的最大数量:
[Huawei-ospf-1] maximum load-balancing number
■ 命令:
[Huawei-ospf-1] maximum load-balancing number
number:等价路由的最大数量。设备型号不同,取值范围不同,具体请参考相应设备的产品文档。
等价路由配置举例
通过配置,要求R1可以通过R1-R3路径访问R3的环回口地址,也可以通过R1-R2-R3路径访问R3的环回口地址。
1、配置各设备接口地址及各设备OSPF部署。
2、R1配置路由负载分担。
[R1] ospf
[R1-ospf-1] maximum load-balancing 2
3、结果验证。
缺省路由
■OSPF实际组网应用中,区域边界和自治系统边界通常都是由多个路由器组成的多出口冗余备份或者负载分担。此时,为了减少路由表的容量,可以配置缺省路由,保证网络的高可用性。
■OSPF缺省路由通常应用于下面两种情况:
由区域边界路由器(ABR)发布Type3 LSA,用来指导区域内路由器进行区域之间报文的转发。
由自治系统边界路由器(ASBR)发布Type5 LSA或Type7 LSA,用来指导OSPF路由域内路由器进行域外报文的转发。
■ 缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。
■ 普通区域:
缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。当该路由器需要向OSPF发布缺省路由时,必须手工执行default-route-advertise命令,配置完成后,路由器会产生一个缺省ASE LSA(Type5 LSA),并且通告到整个OSPF自治系统中。
■ Stub区域:
Stub区域不允许自治系统外部的路由(Type5 LSA)在区域内传播。区域内的路由器必须通过ABR学到自治系统外部的路由。
Stub区域的ABR会自动产生一条缺省的Type3 LSA通告到整个Stub区域。ABR通过该缺省路由,将到达AS外部的流量吸引到自己这里,然后通过ABR转发出去。
■ Totally Stub区域:
Totally Stub区域既不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。区域内的路由器必须通过ABR学到自治系统外部和其他区域的路由。
Totally Stub区域的ABR会自动产生一条缺省的Type3 LSA通告到整个Stub区域。ABR通过该缺省路由,将到达AS外部的流量吸引到自己这里,然后通过ABR转发出去。
■ NSSA区域:
如果希望到达自治系统外部的路由通过本区域(NSSA区域)的ASBR到达,而其它外部路由通过其它区域出去。此时,ABR会产生一条Type7 LSA的缺省路由,通告到整个NSSA区域内。这样,除了某少部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达其它区域的ASBR出去。这种情况下,在ABR上无论路由表中是否存在缺省路由0.0.0.0,都会产生Type7 LSA的缺省路由。
如果希望所有的外部路由只通过本区域(NSSA区域)的ASBR到达,则必须在ASBR上手动执行nssa [default-route-advertise]命令进行配置,使ASBR产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,所有的外部路由就只能通过本区域NSSA的ASBR到达。这种情况下,在ASBR上只有当路由表中存在缺省路由0.0.0.0时,才会产生Type7 LSA的缺省路由。
注意:因为缺省路由只是在本NSSA区域内泛洪,并没有泛洪到整个OSPF域中,所以本NSSA区域内的路由器在找不到路由之后可以从该NSSA的ASBR出去,但不能实现其他OSPF域的路由从这个出口出去。Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域。
■ Totally NSSA区域:
Totally NSSA的ABR会自动向该区域下发使用Type3 LSA描述的缺省路由,而Totally NSSA的ASBR则不会自动下发缺省路由。因此,在该场景下,对于区域内的路由器而言,可以通过ASBR引入的外部路由到达相应的外部网段、通过ABR下发的缺省路由到达其他网段。
如果希望Totally NSSA内的路由器选择ASBR作为默认出口,而不是ABR,那么需要让ASBR也下发缺省路由,此时必须在ASBR上手工执行配置。
将缺省路由通告到OSPF路由区域
1.将缺省路由通告到普通OSPF区域
[Huawei-ospf-1] default-route-advertise [ [ always | permit-calculate-other ] | cost cost | type type | route-policy route-policy-name [ match-any ] ]
缺省情况下,在普通OSPF区域内的OSPF设备不产生缺省路由。
2.指定Type3 Summary-LSA的缺省开销值
Huawei-ospf-1] default-route-advertise summary cost cost
■ 注意:
import-route (OSPF)命令不能引入外部路由的缺省路由。当需要引入其他协议产生的缺省路由时,必须在ASBR上配置default-route-advertise命令,发布缺省路由到整个普通OSPF区域。
OSPF路由域中在通告缺省路由前,会比较缺省路由的优先级。如果在某OSPF设备上同时配置了静态缺省路由,要使OSPF通告的缺省路由加入到当前的路由表中,则必须保证所配置的静态缺省路由的优先级比OSPF通告的缺省路由的优先级低。
命令:
[Huawei-ospf-1] default-route-advertise [ [ always | permit-calculate-other ] | cost cost | type type | route-policy route-policy-name [ match-any ] ]
always:无论本机是否存在激活的非本OSPF缺省路由,都会产生并发布一个描述缺省路由的LSA。
☼ 如果配置了always参数,设备不再计算来自其他设备的缺省路由。
☼ 如果没有配置always参数,本机路由表中必须有激活的非本OSPF缺省路由时才生成缺省路由的LSA。permit-calculate-other:本机必须存在激活的非本OSPF缺省路由时才会产生并发布一个缺省路由的LSA,且设备仍然计算来自于其他设备的缺省路由。
type type :指定外部路由的类型。整数形式,取值为1或2。缺省值是2。
○ 1:第一类外部路由
○ 2:第二类外部路由
route-policy route-policy-name:通过路由策略,实现在路由表中有匹配的非OSPF产生的缺省路由表项时,按路由策略所配置的参数发布缺省路由。字符串形式,区分大小写,不支持空格,长度范围是1~40。当输入的字符串两端使用双引号时,可在字符串中输入空格。
match-any:通过路由策略,实现在路由表中有匹配的路由表项时,按路由策略所配置的参数发布缺省路由。
命令:
[Huawei-ospf-1] default-route-advertise summary cost cost
summary:发布指定缺省路由的Type3 LSA。在选用该参数时,必须首先使能VPN,否则路由不能发布。
cost cost:指定该LSA的开销值。整数形式,取值范围是0~16777214。缺省值是1。
always参数:
①ASBR已经有缺省路由,执行default-route-advertise命令,将在整个OSPF区域中通告缺省路由0.0.0.0。②ASBR没有缺省路由,执行default-route-advertise命令时按照以下需求选择是否配置always参数。
*如果配置always参数,无论ASBR是否有缺省路由都将在整个OSPF区域中通告缺省路由0.0.0.0,并且不再计算来自其他设备的缺省路由。
*如果没有配置always参数,ASBR的路由表中必须有激活的非OSPF(BGP除外)缺省路由时才生成缺省路由的LSA。
match-any参数:
①使用带match-any参数的路由策略时,如果有多条路由通过策略,选取最优者来生成缺省LSA。路由通过策略时,选取最优者的原则按照优先级从高到低的顺序如下:
▪路由设置了type的优先于未设置的,如果都设置了type,值越小越优先。
▪路由设置了cost的优先于未设置的,如果都设置了cost,值越小越优先。
▪路由设置了tag的优先于未设置的, 如果都设置了tag,值越小越优先。
对发送的LSA进行过滤
当两台路由器之间存在多条链路时,可以在某些链路上通过对发送的LSA进行过滤,减少不必要的重传,节省带宽资源。
通过对OSPF接口出方向的LSA进行过滤可以不向邻居发送无用的LSA,从而减少邻居LSDB的大小,提高网络收敛速度。
配置对OSPF接口出方向的LSA进行过滤:
[Huawei-GigabitEthernet0/0/1] ospf filter-lsa-out { all | { summary [ acl { acl-number | acl-name } ] | ase [ acl { acl-number | acl-name } ] | nssa [ acl { acl-number | acl-name } ] } }
对于已经发送的LSA,要到3600秒才能达到老化时间。
■ 命令:
[Huawei-ospf-1-area-0.0.0.1] filter { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } export
*acl-number:指定基本访问控制列表号。整数形式,取值范围是2000~2999。
OSPF Database Overflow概述
OSPF要求同一个区域中的路由器保存相同的LSDB。随着网络上路由数量不断增加,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)。
对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题。为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模。
设置OSPF的LSDB中External LSA的最大条目数
[Huawei-ospf-1] lsdb-overflow-limit number
当OSPF引入的外部路由(Type5 LSA和Type7 LSA)数量超过允许的范围,会导致超出的外部路由无法得到正常处理,丢失引入的路由。为了解决上述问题,通过配置OSPF的LSDB中External LSA的最大条目数,保证引入的外部路由在一个合理的范围内,调整和优化OSPF网络。
命令:
[Huawei-ospf-1] lsdb-overflow-limit number
*number:指定LSDB中External LSA的最大条目数。整数形式,取值范围是1~1000000。
避免OSPF Database Overflow工作原理
为了避免数据库超限,可以设置路由器上非缺省外部路由数量的上限。
OSPF网络中所有路由器都配置相同的上限值,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动Overflow状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出Overflow状态。
OSPF路由控制配置举例 (1)
如图所示,为减少R3的LSA数量,同时确保R3可以和其它区域内的路由器正常通行,要求:
R2不向Area1中注入Type3 LSA。
R2发布缺省路由。
1、配置各设备接口地址及各设备OSPF部署。
2、配置R2过滤Type3 LSA。
R2] acl 2000
[R2-acl-basic-2000] rule deny
[R2-acl-basic-2000] quit
[R2] ospf
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] filter 2000 import
3、配置R2发布缺省路由。
[R2] ospf
[R2-ospf-1] default-route-advertise always
OSPF路由控制配置举例 (2)
OSPF路由控制案例分析
■ 网络部署:
某企业网络内有财务部和市场部两张网络。
该企业网络通过OSPF实现内部网络的互联互通,其中骨干网络部署在Area0,财务部网络客户端部署在Area1,市场部网络客户端部署在Area2。
边界设备通过静态路由访问各部门服务器,并在OSPF进程内引入该静态路由。
■ 需求:
只要边界-1路由器及其上联链路正常运行,财务部数据流就只会通过边界-1路由器进行数据转发。
只要核心-1路由器及其上联链路正常运行,财务部数据流就只会通过核心-1路由器进行数据转发。
市场部数据转发需求详见备注。
■ 市场部数据转发需求:
只要边界-2路由器及其上联链路正常运行,市场部数据流就只会通过边界-2路由器进行数据转发。
只要核心-2路由器及其上联链路正常运行,市场部数据流就只会通过核心-2路由器进行数据转发。
■ 本案例以分析财务部数据转发路径为例,市场部相关内容不再赘述。
1.控制数据转发的网络出口:
财务部数据始终向边界-1的方向进行转发;
市场部数据始终向边界-2的方向进行转发。
要保证网络会选择固定的ASBR执行数据转发,要求忽略内部网络变化,即不计算内部路由开销。——使用OSPF的Type2外部路由
2.控制数据流在内部的精确路径:
不出现负载分担路径。
要在网络内部按照规划路径将数据发往特定的ASBR。——调整内部路径开销
■ 第二类外部路由(Type2 External):
这类路由的可信度比较低,所以OSPF认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。
OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销
控制流量出口
■ 实现方式:
在R1(边界-1)和R2(边界-2)的OSPF进程内引入去往财务部服务器的静态路由,实现出口备份(可以通过路由策略实现);
设置引入外部路由类型为Type2;
在R1上设置外部路由开销为100,在R2上设置外部路由开销为200。
■ 配置结果:
网络中存在2条同一网段不同开销的Type2外部路由时,网络设备会优选开销较小的路由。此时,网络中各设备会优选R1作为出口。
■ 控制流量出口时,不考虑到达各ASBR的内部路径开销。
控制内部路径
■ 网络需求分析:
若网络正常运行,则S3(汇聚-1)会选择路径1。
若S1(核心-1)与R1间链路故障,则S3会选择路径2。
若S1设备故障,则S3会选择路径3。
■ 实现方式:
路径1-Cost < 路径2-Cost < 路径3-Cost。
控制内部路径:调整汇聚到核心开销
■ 若S1与R1间链路故障,由于S1运行正常,则要求S3优选路径1,次选路径2。
■ 实现方式:
路径1-Cost < 路径2-Cost,即:
[Cost(S3-S1) + Cost(S1-S2) + Cost(S2-R1)] < [Cost(S3-S2) + Cost(S2-R1)]
通过调整汇聚到核心设备间的路径开销可以实现路径1。
控制内部路径:调整核心到边界开销
■ 若S3与S1间链路故障,由于S1运行正常,则要求S3优选路径1,次选路径2。
■ 实现方式:
路径1-Cost < 路径2-Cost,即:
[Cost(S3-S2) + Cost(S2-S1) + Cost(S1-R1)] < [Cost(S3-S2) + Cost(S2-R1)]
通过调整核心到边界设备间的路径开销可以实现优选路径1。
控制内部路径:调整核心到边界开销
■ 若S3与S1间链路故障,由于S1运行正常,则要求S3优选路径1,次选路径2。
■ 实现方式:
路径1-Cost < 路径2-Cost,即:
[Cost(S3-S2) + Cost(S2-S1) + Cost(S1-R1)] < [Cost(S3-S2) + Cost(S2-R1)]
通过调整核心到边界设备间的路径开销可以实现优选路径1。
OSPF路由控制案例主要配置 (1)
R1部署路由策略应用开销值100:
[R1] acl 2000
[R1-acl-basic-2000] rule permit source 192.168.10.0 0.0.0.255
[R1-acl-basic-2000] quit
[R1] route-policy static2ospf permit node 10
[R1-route-policy] if-match acl 2000
[R1-route-policy] apply cost 100
[R1-route-policy] quit
[R1] route-policy static2ospf permit node 20
[R1-route-policy] quit
R1在OSPF进程中引入静态路由:
[R1] ospf
[R1-ospf-1] import-route static
安全提示
R2部署路由策略应用开销值200:
R2] acl 2000
[R2-acl-basic-2000] rule permit source 192.168.10.0 0.0.0.255
[R2-acl-basic-2000] quit
[R2] route-policy static2ospf permit node 10
[R2-route-policy] if-match acl 2000
[R2-route-policy] apply cost 200
[R2-route-policy] quit
[R2] route-policy static2ospf permit node 20
[R2-route-policy] quit
R2在OSPF进程中引入静态路由:
[R2] ospf
[R2-ospf-1] import-route static route-policy static2ospf type 2
安全提示
设置接口OSPF开销(以R1的GE0/0/1口为例):
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet