OSPF 路由控制:等价路由, 缺省路由,过滤 LSA ,OSPF Database Overflow

一,等价路由

1,等价路由概念当路由表中在到达同一目的地址,同一路由协议发现的多条路由时,条路由的开同,那么路由是等价路由,可以实现负载

2,等价路由的修改方式

!-----ospf的等价路由的最大数量默认为8条,等价路由的功能是默认开启的,修改等价路由数量的命令为 [Huawei-ospf-1] maximum load-balancing ,当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路数量时,按照下面原则选取有效路由进行负载分担:

  • 路由优先级:负载分担选取优先级小的路由进行负载分担。
  • 接口索引:如果接口的优先级相同,则比较接口的索引,负载分担选取接口索引大的路由进行负载分担。
  • 下一跳IP地址:如果接口的优先级和接口索引都相同,则比较下一跳IP地址,负载分担选取IP地址大的路由进行负载

 

@-----[Huawei-ospf-1] nexthop ip-address weight 2000 //配置下一跳的权重值,其值越小表示优先级越高,可以等价理解为局部的cost值修改。但是权重是建立在等价路由之上的(在等价路由上来进行weight 的修改,该命令才会生效的),只有存在等价路由时,修改权重才会对路由产生影响。在非等价路由的情况下,使用weight无效。

#-----[Huawei-Ethernet0/0/1]isis  cost 23//修改出接口链路cost值,但是不建议改链路的cost值,因为会影响整条链路路由的cost值情况,杀伤力过大,不建议这样粗略的配置。(如果:cost和权重值同时存在,则权重值的优先级大于cost的优先级,cost不一样,设置权重值是没有意义的)

二,ospf的缺省路由(0.0.0.0 0 )

1, OSPF 缺省路由通应用于下两种情况:区域边界路由器( ABR )发布 Type3 LSA ,用来区域内路由器进行区域之间报文的转发。自治系统边界路由器( ASBR )发布 Type5 LSA Type7 LSA ,用来 OSPF 路由内路由器进报文的转发。

2,default-route-advertise ?的相关命令 

[Huawei-ospf-1]default-route-advertise ?

  default-route-advertise       //只有当本设备路由表里存在缺省路由的时候,才会产生缺省路由,给所有路由器。(本地存在的:本地存在其他协议,或   者,其他OSPF进程的缺省。)
  always                                  //强制产生缺省路由,无论本地是否存在缺省路由,都是产生一条缺省路由,给所有路由器。 
  cost                            //产生缺省路由的时候,修改路由的cost值。

  permit-calculate-other        //产生缺省路由时,并且可以计算该进程下其他设备产生的缺省路由。
  route-policy                        // 产生缺省路由的时候,使用route-policy来进行缺省路由的过滤

  route-policy iaa macth-any   //指定条件产生缺省路由,即只有路由表中存在route-policy匹配的路由才会产生对应的缺省路由。(指定条件由iaa策略去产生针对192.168.1.0的过滤。但是现在该路由器表里没有192.168.1.0路由,现在在ospf进程下配置指定条件产生缺省路由,只有被iaa匹配了的路由才会去产生缺省,被本路由器放在所有设备的lsdb里,在ar2里配置一条静态默认路由ip route-static 192.168.1.0 24 NULL 0,在被iaa匹配后,本路由器会产生192.168.1.0 24路由的缺省信息,并放在lsdb里。加macth-any代表iaa可以去匹配所有路由

  type                                    //产生缺省路由的时候,修改路由的type类型。

组合技命令举例展示: 

[Huawei-ospf-1]default-route-advertise always cost 10  //强制产生默认路由且默认路由的cost值为10

[Huawei-ospf-1]default-route-advertise always type 1//强制产生默认路由且默认路由的type类型为1

[Huawei-ospf-1]default-route-advertise alwaystype 1 cost 10 //强制产生默认路由且默认路由的cost值为10,type类型为1

[Huawei-ospf-1]default-route-advertise summary cost 10 //指定 Type3 Summary-LSA 的缺省开销值为10。

3,重点单独讲permit-calculate-other   命令的应用场景,完成以下的主备配置和备份:

 

 

 

 

实验目的:内网双出口访问外网时,要求拓扑正常时以ar2为网络出接口,网拓扑异常时以ar3为网络的出接口

 

实验配思路:ar2和ar3的缺省路由配置好后,在分别引入对应的缺省路由时修改其type类型,在每个路由器上
查看路由表结果,分析对应cost值的成因和准确性,在对对应问题进行发现和解决,让ar3可以加表来自ar2缺省路由。
再次查看各个路由器的路由表,验证结果cost值的成因和准确性。

 

实验配置:
一,在ar2和ar3上配置静态缺省路由
[ar3]ip route-static 0.0.0.0 0.0.0.0 NULL0
[ar2]ip route-static 0.0.0.0 0.0.0.0 NULL0
顺便在ar2配置loop接口

 

二,在ar2和ar3上配置引入静态路由时的五类lsa的tpye的类型
[ar2-ospf-1]default-route-advertise type 1
[ar3-ospf-1]default-route-advertise type 2
注意:type 1优先级大于type 2.(有实验证明)

 

三,目前的实验现象(分析结果)
<ar1>dis ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 2 D 11.1.1.1 Ethernet0/0/0


<ar4>dis ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 3 D 13.1.1.1 Ethernet0/0/0
O_ASE 150 3 D 14.1.1.1 Ethernet0/0/1


[ar5]dis ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 3 D 123.1.1.1 Ethernet0/0/0


<ar3>dis ip routing-table 0.0.0.0
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 200 0 D 0.0.0.0 NULL0
现象解释:
1,ar4存在两条路径,去往asbr路由器(ar2),其cost值为出接口的累加,虽然ar3不会加表ar1的路由,但
是其lsa还是可以传递过来的,所以此处有两条路径去往ar2,cost都是3。(ar5同理)
2,由于ar2和ar3之间不会相互加表对应引入的缺省路由的,又由于从ar2泛洪来的去往外部路由0.0.0.0的优
先级小于ar3上的静态。所以到达ar3的去往0.0.0.0目的网段的数据包,都只会被其静态路由从ar3从 NULL0
接口转发出去。

 

四,让其ar3可以加表ar2发的0.0.0.0路由(模拟主的转发)
[ar3]ip route-static 0.0.0.0 0.0.0.0 NULL0 preference 200 //修改静态的优先级为200
[ar3-ospf-1]default-route-advertise permit-calculate-other //在ar3上配置,当产生缺省路由时,可
以计算该进程下其他设备产生的(同一目的网段)缺省路由。此时是不会出环的,只是单边计算而已。
[ar3]dis ip routing-table 0.0.0.0 //在ar3查看结果
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 2 D 12.1.1.1 Ethernet0/0/0

 

五,目前的实验现象(分析结果)
ar4同上不变
ar1同上不变(现象没变,含义变了)
ar5同上不变(现象没变,含义变了)
[ar3]dis ip routing-table 0.0.0.0 //ar3可以加表ar2的缺省路由了,由于优先级为150
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 2 D 12.1.1.1 Ethernet0/0/0

 

六,模拟主切换备
主切换为备:配置undo ip route-static 0.0.0.0 0.0.0.0 NULL 0,发现cost值都是指向ar3的(ensp自行查看路由表)

 

七,目前的实验现象(分析结果)
<ar1>dis ip routing-table //两条,又一次证明了当目的时type-2时,内部实际上是计算内部cost的,但是表面上是
计算的
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 14.1.1.2 Ethernet0/0/1
O_ASE 150 1 D 11.1.1.1 Ethernet0/0/0


[ar4]dis ip routing-table (唯一一条)
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 13.1.1.1 Ethernet0/0/0


<ar3>dis ip routing-table (唯一一条)
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 200 0 D 0.0.0.0 NULL0


<ar5>dis ip routing-table (唯一一条)
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 123.1.1.1 Ethernet0/0/0


[ar2]dis ip routing-table (和实验现象1的解释是一样的情况)
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 12.1.1.2 Ethernet0/0/1

 

八,模拟备切换为主:配置ip route-static 0.0.0.0 0.0.0.0 NULL 0,发现cost值都是指向ar1的(ensp自行查看路由表),和之前的收敛状态一模一样的。

注意:
import-route (OSPF) 命令不能引入外部路由的缺省路由,该命令的作用是引入对应路由到对应的进程下。当需要引入其他协议产生的缺省路由时,必须在 ASBR上配置 default-route-advertise 命令,发布缺省路由到整个普通 OSPF 区域。
OSPF 路由域中在通告缺省路由前,会比较缺省路由的优先级。如果在某 OSPF 设备上同时配置了静态缺省路由,要使 OSPF 通告的缺省路由加入到当前的路由表中,则必须保证所配置的静态缺省路由的优先级比 OSPF 通告的缺省路由的优先级低。   

三,osfp里过滤 LSA  

1,ASBR上针对LSA进行过滤(引入静态路由时进行过滤):import-route static route-policy XX

2,ABR上针对LSA进行过滤

实验要求:区域1不准存在区域0的三类lsa,也就区域0的三类lsa不可传递到区域1当中去。

实验配置思路:举例配置在区域下和接口下的lsa过滤命令,当在区域下时分别举例配置区域0和区域1下的配置。

实验前提配置:ospf全互通;配置区域0和区域1;对应路由器配置对应的loop接口。

一:在区域1的配置方法(只能过滤三类lsa)
[ar2]ip ip-prefix 1 index 10 deny 1.1.1.1 32 // 定义一个前缀列表,匹配对应路由。
[ar2]ip ip-prefix 1 index 20 permit 0.0.0.0 0 less-equal 32 //定义一个前缀列表,来兜底剩下的所以路由.
[ar2-ospf-1-area-0.0.0.1] filter ip-prefix 1 import //在osfp1进程下的区域1的入方向上调用 ip-prefix 1,
对lsa进行过过滤。(该命令只针对区域1生效,该命令就是在区域1下配置的)
[ar3]dis ospf routing //查看其结果,并没有1.1.1.1的路由信息,其实连lsa都没有的,lsdb可查。
Destination Cost Type NextHop AdvRouter Area
3.3.3.3/32 0 Stub 3.3.3.3 3.3.3.3 0.0.0.1
23.1.1.0/24 1 Transit 23.1.1.2 3.3.3.3 0.0.0.1
12.1.1.0/24 2 Inter-area 23.1.1.1 12.1.1.2 0.0.0.1

二:在区域0的配置方法(当不想引入某三类lsa的区域较多时,可以在区域0的出方向使用acl 的过滤)(只能过滤三类lsa
[ar2-ospf-1-area-0.0.0.0]filter ip-prefix 1 export //在osfp1进程下的区域0的出方向上调用 ip-prefix 1
,对 lsa进行过过滤。(该命令只针对区域0生效)
[ar3]dis ospf routing //查看其结果,并没有1.1.1.1的路由信息,其实连lsa都没有的,lsdb可查。
Destination Cost Type NextHop AdvRouter Area
3.3.3.3/32 0 Stub 3.3.3.3 3.3.3.3 0.0.0.1
23.1.1.0/24 1 Transit 23.1.1.2 3.3.3.3 0.0.0.1
12.1.1.0/24 2 Inter-area 23.1.1.1 12.1.1.2 0.0.0.1

三,基于接口的配置方法(可以基于任何路由器配置)(可以基于所有的lsa进行过滤)
[ar2-GigabitEthernet0/0/1]ospf filter-lsa-out ? //在ar2的区域1的出接口作过滤策略
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-GigabitEthernet0/0/1]ospf filter-lsa-out summary acl 2000 //在ar2的区域的出接口上对三类lsa进行acl 2000的过滤
[ar2]acl 2000 //创建acl 2000
[ar2-acl-basic-2000]rule 5 deny source 1.1.1.1 0 //acl 的处理动作
[ar2-acl-basic-2000]rule permit //兜底
[ar3]dis ip routing-table 1.1.1.1 //查看结果
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 OSPF 10 2 D 23.1.1.1 GigabitEthernet0/0/0

为什么1.1.1.1在配置命令后任然存在(在lsa隔离的情况下,隔离后虽然不会再发lsa了,但是有其lsa的缓存,):ar2在和ar3发的时候进行过滤,ar2已经发了对应的路由给ar3,配置命令后要等3600的lsa的老化时间,此时需要两端配置重启ospf进程的命令,即可跳过3600s的老化时间。

 四,OSPF Database Overflow 概述

1,OSPF Database Overflow 所解决的问题:OSPF 要求同一个区域中的路由器保存相同的 LSDB 随着网络上路由量不增加,一路由器由于系统资源有,不能再承如此多的路由信息,(因疏忽导致的其他路由协议引入时没有使用兜底的命令,而导致的大量五类lsa进入ospf区域内),这种状态就被称库超限 OSPFDatabase Overflow )。

2OSPF Database Overflow的解决方法: 为了避免库超限,可以设置路由器上缺省外部路由量的上,通过设置 LSDB External LSA 的最大条目,可以动态的规模。设置 OSPF LSDB External LSA 的最大条目[Huawei-ospf-1] lsdb-overflow-limit 10

3,OSPF Database Overflow 的工作原理:OSPF 网络中所有路由器都配置相同的上限值,只要路由器上外部路由的数量达到该上限,路由器就进入 Overflow 状态,并同时启动 Overflow 状态定时器(默认超时时间为 5 秒,不可),路由器在定时器超过 5 秒后自动退出 Overflow 状态。

4,OSPF Database Overflow 命令配置的基本理解

 

实验目的:验证当静态路由数量超限于命令lsdb-overflow-limit 10 时,非缺省五类lsa的本
区域的全丢失问题。
 
实验配置思路:在ar6配置且引入10条静态路由,在ar6的osfp的进程下配置最大非缺省五类lsa的命
令,最后在全局的lsdb里查看验证即可。额外的验证缺省的五类lsa确实不会受到其影响。
 
实验配置
一:在ar6的ospf域内配10条静态路由
ip route-static 123.1.1.0 255.255.255.0 NULL0
ip route-static 123.1.2.0 255.255.255.0 NULL0
ip route-static 123.1.3.0 255.255.255.0 NULL0
ip route-static 123.1.4.0 255.255.255.0 NULL0
ip route-static 123.1.5.0 255.255.255.0 NULL0
ip route-static 123.1.6.0 255.255.255.0 NULL0
ip route-static 123.1.7.0 255.255.255.0 NULL0
ip route-static 123.1.8.0 255.255.255.0 NULL0
ip route-static 123.1.9.0 255.255.255.0 NULL0
ip route-static 123.1.10.0 255.255.255.0 NULL0
在ar6查看ospf的lsdb
AS External Database
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 External  123.1.6.0       23.1.1.2            30  36    80000001       1
 External  123.1.7.0       23.1.1.2            30  36    80000001       1
 External  123.1.4.0       23.1.1.2            30  36    80000001       1
 External  123.1.5.0       23.1.1.2            30  36    80000001       1
 External  123.1.2.0       23.1.1.2            30  36    80000001       1
 External  123.1.3.0       23.1.1.2            30  36    80000001       1
 External  123.1.1.0       23.1.1.2            30  36    80000001       1
 External  123.1.8.0       23.1.1.2            30  36    80000001       1
 External  123.1.9.0       23.1.1.2            30  36    80000001       1
 
二:在ar6的ospf1下配置如下命令
[ar6-ospf-1]dis th
ospf 1
 default-route-advertise
 import-route static
 lsdb-overflow-limit 10 // 限制引入的路由器上非缺省外部路由数量的上限数量为10
 area 0.0.0.0
  network 0.0.0.0 255.255.255.255
在ar6查看ospf的lsdb
         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    23.1.1.2        23.1.1.2           349  36    80000004       1
 Router    12.1.1.2        12.1.1.2           697  36    80000005       1
 Network   23.1.1.1        12.1.1.2           697  32    80000002       0
 Sum-Net   12.1.1.0        12.1.1.2           846  28    80000001  
 
三:在ar6  undo ip route-static 123.1.10.0 255.255.255.0 NULL0 ,在重启ar6的ospf进程1.
全局的lsdb配置复原
 
四,在ar6上引入缺省路由
取消配置的复原,在ar6的ospf进程里配置
[ar6-ospf-1]default-route-advertise always  //引入缺省的五类lsa,缺省的外部路由
AS External Database
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 External  0.0.0.0         23.1.1.2            78  36    80000001       1
结果:非缺省的五类lsa的都超限拒绝了,只有缺省的五类lsa任然存在。

5,OSPF Database Overflow 命令配置的进阶理解

!---配置命令(先配置小的,在配置大的,大小指的是静态路由数量)

ar6上的静态配置
ip route-static 123.1.1.0 255.255.255.0 NULL0
ip route-static 123.1.2.0 255.255.255.0 NULL0
ip route-static 123.1.3.0 255.255.255.0 NULL0
ip route-static 123.1.4.0 255.255.255.0 NULL0

ar6的ospf进程1配置
ospf 1
 default-route-advertise always
 import-route static
 lsdb-overflow-limit 10

ar4的静态配置
ip route-static 123.1.10.0 255.255.255.0 NULL0
ar4的osfp进程1配置
ospf 1
 default-route-advertise always
 import-route static
 lsdb-overflow-limit 10

@--实验结论:本地路由器发现全局的lsdb的五类lsa(除了缺省的五类lsa)超限了,该路由器只会将自己的五类lsa(除了缺省的五类lsa)
全部删除,并不会影响别人的(没有这种魔力,还可跨越路由器,删除别人路由器上的信息)。若仍是超限,则在另一个由引入五类lsa的路由表进行
lsdb-overflow-limit 10命令的配置,那么对应路由器会将自己的五类lsa全部删除。

posted @ 2023-09-25 22:10  iaaaa  阅读(522)  评论(0编辑  收藏  举报