OSPF同步数据库

OSPF的工作原理:

1. 建立邻居表

2. 同步数据库,包含的是“链路状态信息”,称为:LSA;,自己设备的LSA以及别的设备产生的LSA。

3. 计算路由表

OSPF数据库:

     *每个路由器的OSPF数据库,是按照“区域”进行组织的

     *每个区域中的所有的路由器,他们的数据库,是完全相同的

所以,OSPF支持将网络划分成多个区域,可以带来很多好处。

      1. 提高了OSPF网络的稳定性

       2.不同的区域中的路由器的数量都会变少,从而每个路由器的OSPF数据库也会变小,路由表也会变小,从而节省系统资源。同时还提高了路由器转发数据包时的查表效率。

       3.将网络分为两层,便于后期的网络管理,比如网络扩展以及网络定位故障排查。

ospf多区域设计原则:

       *所有的非骨干区域,都必须和骨干区域直接相连,否则不能互通

OSPF路由器角色:

       *骨干路由器:所有的链路都属于骨干区域

       *非骨干路由器:所有的链路都属于非骨干区域

       *区域边界路由器(ABR): area border router,同时连接着骨干区域和非骨干区域的路由器

实例:

 

 

 

 配置:

1. 各接口的IP地址(忽略)

2. 配置ospf路由协议和R6的静态路由,R7配置默认路由

R1:       

     [Huawei]ospf 1
     [Huawei-ospf-1]area 12
      [Huawei-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255

R2:

     [Huawei]ospf 1
     [Huawei-ospf-1]area 12
     [Huawei-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255

     [Huawei-ospf-1-area-0.0.0.12]area 0

     [Huawei-ospf-2-area-0.0.0.0]network 192.168.23.0 0.0.0.255

R3:

     [Huawei]ospf 1
     [Huawei-ospf-1]area 0

     [Huawei-ospf-2-area-0.0.0.0]network 192.168.23.0 0.0.0.255

      [Huawei-ospf-2-area-0.0.0.0]network 192.168.34.0 0.0.0.255

R4:

     [Huawei]ospf 1
     [Huawei-ospf-1]area 0

     [Huawei-ospf-2-area-0.0.0.0]network 192.168.45.0 0.0.0.255

      [Huawei-ospf-2-area-0.0.0.0]network 192.168.34.0 0.0.0.255

R5:

     [Huawei]ospf 1
     [Huawei-ospf-1]area 56
     [Huawei-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255

     [Huawei-ospf-1-area-0.0.0.56]area 0

     [Huawei-ospf-2-area-0.0.0.0]network 192.168.45.0 0.0.0.255

R6:

     [Huawei]ospf 1
     [Huawei-ospf-1]area 56
      [Huawei-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255

      quit

       quit

         ip route-static   192.168.1.0 255.255.255.0 192.168.67.7

R7:

      ip route-static 0.0.0.0 0.0.0.0 192.168.67.76

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------

在上述的案例中,R6-R7只见那没有运行ospf协议,但是R1想学习到PC1的路由

需要在R6上添加去往PC1的静态路由,并且通过import-route的方式引入到OSPF协议

          *配置命令:

                   ospf 1

                    import-route   static   //将R6上路由表中的所有的静态路由,全部引入到OSPF协议到数据库中,并且以5类LSA形式表示

此时:

         1.我们去其他的所有路由器上,都可以看到该路由时5类LSA形式出现的

          2.我们查看R6的身份,已经变成了  ASBR----------display   ospf    brief   ---->  Border   Router : AS

---------------------------------------------------------------------分割线---------------------------------------------------------------------------

ospf路由配置完成后可以通过命令:display  ospf   lsdb  //查看ospf链路状态数据库

也可以通过命令查看ospf的BDR/DR,或者是不是区域边界路由器(AREA):display ospf br

字段解析:

*type,表示的是LSA的类型。在 OSPFv2中,一共包含了6中类型

*linkstate ID,表示的是LSA的名字;不同类型的LSA,它的名字是不相同的

*AdvRouter,通告路由器,表示的是产生这个LSA的路由器的router-id

*Age,年龄,表示的是LSA的存活时间。默认是0开始,正计时。最大值是3600s,到达最大值后,直接删除该LSA!

             为了避免LSA正常老化时间,导致LSA数据库不稳定,所以OSPF引入了一个“数据库刷新”机制:即每个LSA的

            产生路由器,一致监控这自己所产生的LSA的存活时间,一旦达到了1800S时,就会再次产生一个新的LSA.

            如此一来,其他路由器再收到一个自己数据库中有的,但是更加新的LSA的时候,就会使用这个新的LSA刷新数据库。

*sequence,序列号。表示的是LSA的新旧程度。LSA每次重新产生一次,系列号都会加1,序列号越大表示LSA越新。

           &OSPF收敛过程中,如何判断一个LSA的新旧程度:

                        1. 比较序列号

                        2. 比较LSA的存活时间。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LSA的类型:

1类LSA

Type-router

linkstate ID-每个路由器的router-id

AdvRouter(advertisement Router)(产生这个类型的lsa的是):每个路由器的router-id

包含的信息:其中描述的是每个OSPF路由器的每个链路的状态,相当于OSPF路由器的自我介绍

特点:

     1. 每个路由器在自己所连接的每个区域都会产生

     2. 该类型的LSA只能在区域内部传输

     查看详细LSA的命令:display ospf lsdb router 1.1.1.1-->查看1.1.1.1这个1类LSA的详细信息;

2类LSA

      *type-network

       *linkstate ID :DR接口的IP地址

       *AdvRouter:DR接口所在的那个设备的router-id,有几个网段在区域0中就会有几个2类LSA

                            包含信息:其中描述的是与DR建立邻接关系的那些路由器的名字;

        特点:

                  1. 该类型的LSA只有DR可以产生,每个网段之间都会产生一个DR

                   2.该类型的LSA只能在区域内部传输

                 3.查看详细LSA命令:display ospf lsdb network 192.168.56.6-->查看192.168.56.6路由器的2类LSA的详细信息。

3类LSA

        type-summary

        linkstate ID:不同区域之间的网段

        AdvRouter(advertisement Router):只能试ABR路由器才能产生3类LSA

         包含的信息:不同区域之间路由条目信息以及掩码

        特点:

                  1. 该类型的LSA只有ABR可以产生

                   2. 该类型的LSA只能在区域内部传输

                   3. 该类型的LSA在传输过程中,每经过1个ABR,AdvRouter都会变化一次

                  查看信息LSA的命令:display ospf lsdb sumary 192.168.56.0-->查看192.168.56.0这个3类LSA的详细信息;

4类LSA:

       type:sum-asbr

       linkstate ID :ASBR的router-id

       AdvRouter :ABR的router-id

       包含的信息:ASBR的router id ,目的就是为了配置5类LSA。一起计算OSPF外部路由

       特点:

               -该类的LSA,只在ABR可以产生(第一次产生是由与ASBR在同一个区域的ABR产生的)

               -该类的LSA,只能在区域内部传输

               -该类型的LSA,只能在传输过程中,每经过1个ABR,AdvRouter 都会变化一次,能够说明这个LSA只能在区域内部传输。

               查看详细的LSA命令:display  ospf   lsdb  asbr 6.6.6.6--->查看router-id为6.6.6.6 路由器4类LSA的详细信息;

5类LSA

         Type-external

         linkstate ID-外部路由的网段

         AdvRouter - ASBR的router-id(自治系统边界路由器)

         包含的信息:外部路由器的网段和掩码

         特点:

                *该类型的LSA。只有 ASBR 可以产生

                *该类型的LS,可以传输到网络的任何地方,并且没有任何的变化【该LSA没有任何的区域概念】

               查看详细LSA的命令:display ospf  lsdb ase 192.168.1.0 -->查看192.168.1.0这个5类LSA的详细信息

OSPF协议中,宣告路由的方式,有两种:

          *network ,该命令后面跟的网段,只能是“直连路由”;【通过该命令宣告的路由,都称之为OSPF内部路由】

                            该命令,具有三层功能(例如-在R1上配置下面的命令)

                            R1:

                                     ospf   1

                                      area  12  

                                       network  192.168.12.0  0.0.0.255 

                                        &R1上的所有接口上,凡是IP地址属于192.168.12.0/24的接口,全都启用OSPF协议

                                               -该端口可以发送OSPF报文;

                                               -该端口可以接收OSPF报文;

                                               -该端口上的IP地址中的网段信息,可以通过宣告进入到OSPF数据库

                            所以:想要建立OSPF邻居关系的路由器之间的接口/网段,必须通过network的方式宣告

              *import-route ,该命令后面跟的网段,可以是任何类型的路由:

                                       该命令仅仅具备1个功能,即将该命令后面的网段信息,宣告进入到OSPF数据库;

--------------------------------------------------------------------------------------------------------------------------------------------

经过上面的学习我们知道,5类LSA可以传遍整个OSPF网。但是,5类LSA表示的是“外部路由”。

通常情况下,外部路由的稳定性非常差,因为该路由的稳定性不是由我们公司自己来确定的。

如果这种路由非常的不稳定,总是频繁的UP/down,那么ASBR就会频繁的产生/删除5类LSA。

那么这种影响就会传遍整个OSPF网络,导致每个OSPF路由器都不稳定。

所以,我们在企业网内部,为了保护某些重要的区域,不受这种“不稳定的外部链路的影响”,就得考虑使用:特殊区域!

特殊区域:指的是不要4/5类LSA的区域

-sub区域:末梢区域

        *不允许LSA-4/5

        *允许LSA-1/2/3【该区域的ABR会自动的产生1个3类LSA,表示默认路由】

        配置:在该区域的所有路由器上配置(本案例指的是R1/R2)

         命令:

                     ospf  1

                     area   12

                      stub  --->将区域12配置为末梢区域

但是,在stub区域中,虽然没有了4/5类LSA,外部链路不会影响这个区域了。该区域中依然会有大量的表示其他区域的路由的3类LSA,如果其他区域

的链路不稳定的话,也会影响到该区域。

所以,为了解决这个问题,我们有了另外一种特殊区域:totally  stub(完全末梢区域)     

  -totally  stub区域:完全末梢区域

              *不允许LSA-3/4/5

              *允许LSA-1/2【该区域的ABR会自动的产生1个3类LSA,表示默认路由】

              配置:先将区域配置为stub去,然后再次在该区域的ABR上配置以下命令

                           R1/R2:

                                   OSPF   1

                                    area  12

                                     stub

                              R2(ABR):

                                      ospf  1

                                       area 12

                                       stub  no-summary--->将该区域配置为totally  stub区域

 

-NSSA区域(not  so  stub  area):不那么stub区域

如下案例:

AR14和AR10之间,AR12-AR13之间配置为静态路由

AR1-AR11为区域1,为了防止AR12和AR13之间的静态路由不稳定影响LSA数据库,将该区域配置为stub区域

PC2访问Server1的时候数据包返回时,AR12不知道去往192.168.60.1的路由,因为区域1被配置了stub区域,我们知道stub区域不会产生4/5类的LSA,

即使配置了import-router static,区域1依然不会存在192.168.60.1的路由,更不会同步给区域0,这个时候就需要将区域1配置为NSSA区域,将外部区域引入到ospf中。

这个NSSA区域所产生的LSA被称为7类LSA。

 

 

         *不允许LSA-4/5

         *允许LSA-1/2/3【该区域的ABR会自动的产生1个7类LSA,表示默认路由】

         配置:在该区域中的所有路由器上配置

         命令:R10/R11

                     OSPF  1

                      area   1

                       undo  stub-->取消原来配置的stub区域,配置stub区域不能再配置为NSSA区域

                      nssa  --->将区域1配置为nssa区域

该区域不会受到其他普通区域引入的外部路由的影响,但是自己区域中的路由器,能够自由的引入外部路由。

 

 7类LSA:

 

            Type-NSSA

 

             linkstate   ID-外部路由的网段

 

             Advrouter -ASBR的router-id

 

             包含的信息:外部路由的网段和掩码

 

             特点:

 

                         1. 该类型的LSA,只有NSSA区域的ASBR可以产生

 

                          2.该类型的LSA,只能在NSSA区域内部传输;

                          3.该区域的ABR,会自动的将7类LSA,转化成5类LSA(AR11会将NSSA区域的7类转换成5类LSA同步给AR12),如果该区域有多个ABR,只有router-id大的ABR,才有资格进行转换!

                              也可以通过display  ospf  brief信息里的“NSSA Translator  state:“参数可以看出Elected表示转换者,“disabled”表示不转换。

 

在nssa区域中,虽然没有了4/5类的LSA,普通区域引入外部链路不会影响这个区域了。但是该区域中依然有大量的表示其他区域的路由的3类LSA,如果其他区域

的链路不稳定的话,也会影响到该区域。

所以为了解决这个问题,我们有了另外一种特殊区域:totally nssa(完全nssa区域)

 -totally  NSSA区域(完全stub区域):

             不允许LSA-3/4/5

             允许LSA-1/2/7/3*【该区域的ABR会自动产生1个3类LSA,表示默认路由】

              配置:先将区域配置为NSSA区域,然后再次在该区域的ABR上配置下面的命令:

               命令:

                          R10

                                   OSPF   1

                                      area  1

                                         nssa  --->将该区域1配置为nssa区域

                          R11(ABR)

                                       OSPF  1

                                        area  1

                                         nssa   no-summary-->将区域1配置为totally stub区域

 

--------------------------------------------OSPF的路由表-------------------------------------------

*其中包含的是所有“使用LSA计算出来”最好的路由:

*路由的类型:

                 1. OSPF内部路由【通过network命令宣告的路由】

                          &区域内部路由,通过1类和2类LSA表示

                          &区域间的路由,通过3类LSA表示,由ABR路由器产生

                           &路由类型的代码:OSPF

                  2. OSPF外部路由【通过import-router命令宣告的路由】

                          &通过4/5类的LSA计算出来的

                              &在OSPF路由表中3类LSA优先于7类LSA,当LSA中同时存在3类LSA默认路由和7类LSA默认路由时,3类预先与7类。

                                   查看命令:display ip routing-table protocol ospf

                                &路由类型的代码:O_ASE  / 0_NSSA

prefix/mask                 protocol       preference      cost     next-hop            interface

     *prefix,前缀,也叫路由的网段:

     *mask,与prefix一起,称之为:路由!

      *protocol,表示的是该路由器学习这个路由条目的方式(直连/静态/RIP/OSPF/ISIS/BGP)

       *preference,表示的是路由条目的稳定性,数值越小越稳定,取值范围是0-255.(每种类型的路由都有一个默认的“优先级”,但是可以基于需要进行人为修改)

                            -ospf内部路由,优先级:10

                            -ospf外部路由,优先级:150

                            -如果想要修改OSPF路由的优先级,可以通过下面的命令:

                                      ospf 1

                                      preference   9--->将所有的OSPF内部路由修改为9;

                                      preference   ase  149  -->将所有ospf外部路由修改为149;

        *cost,表示的是该路由器去往这个路由条目所表示的网段的“距离”,这个是“计算”出来的;

                    计算方法:

                               沿着路由的传递方向,所有入接口的cost值的,累加和。

                               【路由的传递方向和数据包的传递方向,是完全相反的!】

                                 沿着数据的传递方向,所有出接口的cost值,累计和。

                                   查看接口的cost的命令:display  ospf   interface  gi0/0/X

                                    修改接口的cost的命令:interface gi0/0/x -->ospf  cost   ***  -->取值范围是:1-65535

                                     默认情况下,每个接口的ospf  cost 都是1;

                                      这个默认值是通过下面的公式计算出来的:cost =100Mbit/接口的实际带宽!

                                                     *因为当前我们在设备上的,每个接口的实际带宽,都几乎是大于100Mbit,

                                                      *所以通过上面的公式计算出来的数值通常都是0<cost<1,

                                                       *所以我们在ospf协议中表示的时候,就取值为整数1。

                                        如果我们希望每个接口的cost值按照上述的公式计算出来的是不相同的,

                                        我们可以修改公式中的参数-“100Mbit”。这个参数称之为:参考带宽!

                                         如果想要修改的话,就必须在整个OSPF网络的所有路由器上都得修改,

                                          必须确保是完全相同的,否则出现路由环路或者次优路径。

                                          修改命令如下:

                                                         *ospf  1

                                                            bandwidth-reference  10000  --->单位为兆

        *next-hop ,表示的是按照这个路由条目转发的数据包,接下来应该去找的那个IP地址

        *interface,表示的是按照这个路由条目转发的数据包的“出接口”。

什么时候改参考带宽?

 路由过滤:

                  1. 抓取路由(ACL/prefix-list)

                   2.通过专门的工具,干掉路由

                   情况1:支队路由表进行过滤(LSA依然存在于数据库中)

                               *当我们配置了同网段的交换机技术和不同网段之间的路由技术,我们就可以确保任何连个设备之间,都是可以互通的。

                               *但是,为了限制某些业务不被访问,我们可以通过设置“过滤”策略的方法来实现“流量的控制”

                               *那么这个所谓的“策略”,其实是ACL(access  control  list:访问 控制 列表)

                     -ACL结构

                               *条件:基于该条件去抓取/匹配感兴趣的数据包

                               *动作:包含了permit/deny两种动作

                      -ACL的类型:

                                *基本ACL,匹配数据时使用的条件,非常的少,仅仅匹配源IP地址

                                *高级ACL,匹配数据时使用的条件,非常的多,匹配数据包的源,目标 ,协议号 ,源端口号 ,目标端口号

                      -ACL的表示:

                                 *基本ACL:取值范围是:2000----2999

                                 *高级ACL:取值范围是:3000-3999

                       -ACL的组成/原理

                                   1.由很多的“acl条目/条件”组成

                                    2.每个条目都有自己的“序列号”,也称之为‘规则号’,英文名字是“rule;

                                     3. 数据包来了以后,去检查ACL的时候,过程如下:

                                             -首先,会减ACL 中“规则号”最小的哪个条目:如果匹配了,则执行动作;后续条目就不检查了

                                                                                                                       如果不匹配,则继续检查第二个条目

                                             -如果后续的条目依然不匹配,则继续向后检查,如果一直不匹配,则一直检查到最后一个条目;如果最后一个条目依然没有匹配,则执行ACL的“默认的隐含条目”

                                                 即,拒绝所有。但是,有一个例外,就是acl和traffic-filter结合使用的时候是“允许所有”。

                           举例:

                                      acl  2000 --->基本ACL

                                            rule  10   permit    source    192.168.1.0   0.0.0.255   ---->这里的0.0.0.255表示的是通配符而不是反掩码

                                       0.0.0.255表示只检查前3个为0的三个字节,也就是只检查源IP地址中前3个字节,也就是只要前三个字节是192.168.1的就匹配住了,

                             -掩码:

                                     *区分IP地址的网络位和主机位

                                      *掩码的结构:网络位全为1,主机位全为0

                                       *1 和 0 永远不会交叉出现;

                                       *通常仅仅关注1

                             -反掩码:

                                        *就是将掩码中的网络位和主机位完全反过来

                                        *左边全为0,右边全为1

                                        *永远不会交叉出现

                                         *通常仅仅关注的是0;

                              -通配符:wildcard  bits

                                          *通常仅仅关注的是0;

                                           *0和1的位置,没有任何要求

                                            *所以可以长的像掩码,也可以像反掩码,也可以两者都不像,【如:rule 5  permit  source 192.168.0.0  0.0.6.0】也是可以的。

                               注意:

                                          *ACL不能对设备自己产生的流量起作用,只对经过这个启用ACL规则的接口的数据包起作用。

                                          * 当我们发送一个数据包的时候,如果没有指定源IP地址,那么数据包的源IP地址是:数据包的出接口的IP地址   

                                           *如果我们希望OSPF的邻居能够建立,但是设备之间不能ping通,这时,我们需要启用高级ACL

.                                                         配置:acl  3000

                                                                             rule  10 deny  icmp   source   192.168.1.1 0.0.0.0 destination  192.168.2.1  0.0.0.0

                                                                        interface  gi0/0/1

                                                                         traffic-filter   inbound   acl  3000

                  OSPF路由过滤:

                             *通过ACL抓取路由,进行允许和拒绝的动作【此时我们只能使用“基本ACL ”,抓取路由:只能抓取网段,不能抓掩码】

                               配置命令:

                                        acl  2001

                                        rule   10  deny source      192.168.1.1  0.0.0.0       

                                         rule   20   permit  source  any --->此时ACL 与fiter-policy结合使用时,默认是拒绝所有,所以要注意添加一条允许 策略,否则会过滤掉整个入方向的路由。      

                                        quit

                                        ospf 1

                                         filter-policy   2001    import  --->去掉ospf路由表中 192.168.1.1的路由,import表示入方向过滤。

                                          *但是,上面用基本ACL匹配路由条目,非常的不精准,因为只能匹配路由的网段,不能匹配掩码;

                                             当遇上如下这种情况的时候,我们只想过滤掉192.168.1.0/24,但是如果使用下面的命令,

                                                就会将192.168.1.0/24和192.168.1.0/25都会过滤掉,所以不精准。

                                            *如果想要精准的过滤OSPF路由,我们可以使用:“前缀列表”(ip-prefix)

                                                          例如:路由表里有192.168.1.0/24   和 192.168.1.0/25的路由,我们使用下面的命令:

                                                                        acl  2000

                                                                          rule 10  deny  source  192.168.1.0 0.0.0.255   

                                                                           ospf  1

                                                                            filter-policy   2000 import     

                                                  *前缀列表用法:

                                                               如上面给出的例子:想要过滤掉192.168.1.0/24的路由,保留192.168.1.0/25;

                                                               命令:

                                                                      ip   ip-prefix   A  deny   192.168.1.0 24----->A表示定义的名字

                                                                       ip   ip-prefix  A  permit  0.0.0.0 0  greater-equal  0  less-equal  32

                                                                        ospf   1

                                                                         filter-policy    ip-prefix   A  import---->把这个名字为A的前缀列表应用到OSPF引入的路由上,也就是外部进入的路由(5/7类路由)

                                                                         注意:

                                                                                    1.前缀列表的名字,是一个字符串,可以随意写

                                                                                     2.前缀列表中,可以同时包含多个“条目信息”,不同的条目是通过index区分开,就索引号;作用于rule 号相同

                                                                                     3.前缀列表中的多个条目之间的查找顺序,与ACL中的完全相同,从index号码从小到大开始查询,如果有匹配的

                                                                                         则执行动作,后面的条目就不再查看了。如果没有匹配的条目,则继续查看后面的index条目;

                                                                                      4.前缀列表最后有一个隐含的拒绝所有

                                                                                       5.前缀列表,能够同时匹配路由的网段和掩码

                                                                                        * 结构如下:

                                                                                                 ip  ip-prefix   {名字}   {动作}  {网段}       {掩码的范围}

                                                                                          -动作:包含了permit和deny

                                                                                          -网段:此时的网段,其实表示的是“前缀列表”想要匹配的多个路由条目的“公共部分”,以及公共部分的长度

                                                                                                      例如:10.10.0.0   16,表示该前缀列表仅仅匹配前面16bit为10.10的路由条目

                                                                                            -掩码:表示的是匹配的那些路由的掩码的范围,比如我们想匹配4个路由条目,如下:

                                                                                                         *10.10.1.0/24

                                                                                                          *10.10.2.0/25

                                                                                                          *10.10.3.0/26

                                                                                                         所以,我们想要匹配的哪些明细路由的掩码的范围应该是“24≤*≤26,”

                                                                                                         即greater-equal  24  less-equal   26

                                                                                                       如果想要精确的匹配一个路由条目,比如如192.168.1.0/24可以直接写成:

                                                                                                             ip   ip-prefix  A  permit   192.168.1.0  24

                                                                                                         另外,我们需要记住:在前缀列表中是如何表示所有路由的:

                                                                                                                   ip  ip-prefix   A  permit  0.0.0.0   0  greater-equal   0  less-equal   32

                                                                                                           如果想通过前缀列表仅仅表示一个默认路由?

                                                                                                                      ip  ip-prefix   A  permit  0.0.0.0 0    

                                                                                                              如果想实现“仅仅接收出了默认路由以外的其他所有路由”,怎么配置?

                                                                                                                         ip  ip-prefix  A  deny   0.0.0.0 0

                                                                                                                          ip  ip-prefix  A permit  0.0.0.0 0 greater-equal  0  less-equal  32

                                                                                                                         或还有一个更加简单的方法:

                                                                                                                           ip  ip-prefix  A permit  0.0.0.0 0 greater-equal  1  less-equal  32

                                                                                                      

                        如何过滤如下这样的路由条目:

                                   192.168.1.0/24

                                    192.168.1.0/25                                                                           

                                      192.168.1.0/26

                                      192.168.1.0/27       

                                                         -通过ACL 进行匹配过滤:

                                                                         acl  2000

                                                                         rule  10  permit  source    192.168.1.0    0.0.0.255 

                                                                 192.168.1.0:路由的公共部分

                                                                  0.0.0.255:与公共部分对应的通配符

                                                                  *路由的公共部分如何确定?

                                                                        #多个路由条目的网段中的相同的位,不变化,直接写到“公共部分”中

                                                                        #多个路由条目的网段中的不同部位,变成0,写到“公共部分”中;

                                                                     上面的ACL匹配的仅仅是路由的网段中的前面24bit,必须是192.168.1.,具体的掩码是多少根本无法匹配。

                                                               --通过前缀列表匹配:

                                                                       ip  ip-prefix  A permit   {路由的公共部分}    {匹配的所有明细路由的掩码的范围}

                                                                        路由的公共部分:192.168.1.0   24

                                                                        匹配的所有明细路由的掩码的范围:greater-equal  24  less-equal  27

                                                                         因此命令应该是:

                                                                         ip  ip-prefix   A  permit  192.168.1.0 24   greater-equal  24  less-equal  27

                                                                         具体匹配的路由是哪些?

                                                                                        192.168.1.0/24

                                                                                         192.168.1.0000  0000/25

                                                                                          192.168.1.1000 0000/25

                                                                                            192.168.1.0000 0000/26

                                                                                              192.168.1.0100 0000/26

                                                                                               192.168.1.1000 0000/26

                                                                                                 192.168.1.1100 0000/26

                                                                                                   192.168.1.0000 0000/27                                                                                      

                                                                                                   192.168.1.0010 0000/27

                                                                                                    192.168.1.0100 0000/27

                                                                                                      192.168.1.0110 0000/27

                                                                                                        192.168.1.1000 0000/27

                                                                                                         192.168.1.1010 0000/27     

                                                                                                          192.168.1.1100 0000/27

                                                                                                           192.168.1.1110 0000/27

                                                                                       

                          OSPF路由过滤总结:

                                   *OSPF的入向过滤(import)

                                               命令:filter-policy   {acl/ip-prefix}   {名字} import  

                                      特点:

                                                1. 该工具仅仅是针对OSPF的路由表,进行操作:不影响数据库;

                                                2. 该工具对OSPF路由表中的各种路由,都可以实现效果;

                                        *OSPF的出向路由过滤(export):

                                                  命令: filter-policy  {acl/ip-prefix}   (名字)  export  ------------->OSPF出向过滤

                                             特点:

                                                    1. 该工具其实是针对的OSPF的数据库进行过滤

                                                      2. 并且过滤对象时OSPF的5/7类LSA;一旦过滤了,那么这个ASBR就不会产生这个LSA

                                              *OSPF的类型:

                                                         1. 5/7类LSA过滤

                                                                    -在ASBR上配置

                                                                      -命令如下:

                                                                                ospf  1

                                                                                     filter-policy   ip-preifx  {名字}   export

                                                             2.3类LSA过滤

                                                                          -在ABR上配置

                                                                           -命令如下:

                                                                                   ospf  1

                                                                                      area   {区域号}

                                                                                           filter {acl}  import或export           

                                                                                    举例:

                                                                                            R2是连接area 0和area 2的ABR路由器,area 0区域是10.10.3.0/24,area 2区域是10.10.1.0/24

                                                                                             现在,在ABR(R2)上过滤3类LSA,干掉10.10.1.0/24以及10.10.3.0/24的3类LSA;

                                                                                       分析:

                                                                                                 *不让area0区域中的路由从R2出去,方法1

                                                                                                  *不让area 2区域中的路由从R2进入,方法2

                                                                                     方法1:

                                                                                              R2:

                                                                                                     acl  2001

                                                                                                       rule  10  deny  source  10.10.3.0   0.0.0.0

                                                                                                        rule 20  permit   source  any

                                                                                                        quit

                                                                                                        ospf  1

                                                                                                         area  2

                                                                                                          filter  2003  export                

                                                                                                            quit

                                                                                        方法2:

                                                                                                acl  2001

                                                                                                 rule  10  deny  source  10.10.1.0  0.0.0.0

                                                                                                 rule  20  permit  source   any                                       

                                                                                                  quit   

                                                                                                    ospf  1

                                                                                                    area  0

                                                                                                      filter   2001  import           

                                                                                                      quit

 

 

*路由表组成:

           1. 内部路由1类、2类,3类

            2.外部路由4类,5类,7类  

*管理路由表:

                  -修改参数

                  -特殊路由

                  -过滤路由

                  -路由汇总:当路由器之间发送大量路由信息的时候,为了节省链路资源以及对方的设备系统资源。也就是将大量的路由“汇总”成少量的路由条目。

                                    但是,上述的这种描述方法,对于OSPF/ISIS而言,是不精准的。

                                    因为,OSPF/ISIS 属于 IGP协议中的“链路状态路由协议”,

                                     即,OSPF/ISIS路由器之间互相发送和传输的,根部不是路由,是链路状态信息(LSA/LSP)          

OSPF路由汇总(OSPF LSA汇总)

           -概述:指的是将数据库中的链路状态信息,向外发送的时候,由很多条目变成很少的条目信息;

           -作用:

                     1. 可以节省设备之间的链路资源,并且能够节省对端设备资源,同时简化了路由表的大小。从而提高了路由器转发数据包的效率

                      2. 提高ospf网络的稳定性。因为链路状态信息经过汇总后,路由器之间仅仅发送汇总后的路由,之前那些明细路由就不再发送了。所以

                          明细路由即使非常不稳定,也不会发送到其他路由器上去了。

@LSA汇总类型:

          -3类LSA汇总

                      

 

 

                      *配置的设备:产生那些被汇总的LSA的ABR

                      *配置命令:R2(ABR路由器)

                                     ospf   1

                                      area  2  -->被汇总的路由所在的区域(这里就是R2)

                                      abr-summary   10.10.0.0 255.255.0.0-->被汇总的路由是10.10.0.0/16,汇总后产生一个10.10.0.0/16的路由条目

 

          -5类/7类LSA汇总

                     配置设备:被汇总的路由所在的ASBR

                   配置命令:

                                 R5(ASBR)

                                 ospf  1

                               adbr-summary  10.10.0.0.0 255.255.0.0-->汇总之后产生的路由

         -明细路由:

                10.20.1.0   --  0000 0001

                 10.20.2.0  --  0000 0010

                  10.20.3.0 -- 0000 0100

                   10.20.4.0 -- 0000 1000

                   汇总路由:网段/掩码

                    #汇总路由的“网段”

         1.所有明细路由,从左向右看,

              -相同的bit,不变,直接写到“汇总路由中”

              -不同的bit,变化,变成0,写到“汇总路由中”;

            10.20.0000 

 

 

 

------------------------------------------------ospf引入默认路由------------------------------------------------------------

 

 

 路由配置:

         *SW1中的三个接口都加入area0

          *R1配置默认路由:ip  router-static  0.0.0.0 0.0.0.0 192.168.13.3

           *R2配置默认路由:ip  router-static 0.0.0.0 0.0.0.0 192.168.23.3

           *R3配置静态路由:ip  router-static 192.168.6.0 24 192.168.13.1(主链路)

                                           ip router-static 192.168.6.0 24 192.168.23.2 preference 100 (备用链路)

 

因为R1和R2上是默认路由,所以要使用default-route-advertise来将路由引入到ospf。

此时pc1去PC2有两条路,为了保证来回路径一致并且是最优的,若配置R1优先于R2,可以配置下面的命令。

命令:

           ospf 1

            default-route-advertise  type 1    //设置type类型为1

注意:

        1. ospf产生的默认路由是5类LSA

         2.默认情况下是type2,默认的cost为1

         3.type1的优先级高于type2

无论是7类LSA,还是5类LSA,都细分为type1和type2两种类型:(默认为type2)

当area 中type为1时:那么使用该LSA计算路由的时候,路由表中的条目的cost等于该LSA中所携带的metric/cost,

                                   然后加上LSA在传递过程中所经过的每一个入接口的cost的累加和。

                                 * 应用场景:

                                                 让企业内网的每个设备选择一个主/备出口设备:

当area中type为2时:那么使用该LSA计算路由的时候,路由表中的条目的cost等于该LSA中所携带的metric/cost(默认是1)。

                                  *应用场景:

                                                   让企业内网的每个设备选举一个距离自己最近的设备作为出口设备:         

 

在上面的案例中,我们也了解到了OSPF产生默认路由的方式!

-作用:通过一个路由条目,可以表示网络的所有网段/所有的目的地;

第一种方式:有条件产生默认路由

                   *自己手动配置的默认路由

                  *然后再使用下面的命令:ospf 1--->default-route-advertise  //引入默认路由

第二种方式:无条件产生默认路由

                  *不管自己本地是否有默认路由,直接使用下面的命令,永远产生默认路由

                  #建议:如果公司边界有多个出口设备的时候,使用该方式产生默认路由。实现出口之间的备份。

                  ospf  1--->default-route-advertise  always

                       #建议:如果公司边界只有一个出口设备,使用该方式产生默认路由。这样的话可以保证内网的稳定性

 

思考:

        什么情况下,我们建议在网络中配置OSPF默认路由的时候,不要使用always?

 答案:

           当一个网络中存在多个出口设备的时候,并且他们之间是备份的关系的。

            所以我们建议不要使用always。

             并且。主出口设备产生的默认路由,要比备份出口设备产生的默认路由,要好!

            实现方法:

                         1. 将主出口设备的OSPF的默认路由的5类LSA的type 修改为1;备份出口是type 2;

                          2. 如果主/备出口默认路由的5类LSA的type都是默认的2,那可以调整备份出口的cost变大。

Forwarding Address : 0.0.0.0的作用:

 

<Huawei>display ospf lsdb ase 0.0.0.0

 

OSPF Process 1 with Router ID 192.168.10.1
Link State Database

 


Type : External
Ls id : 0.0.0.0
Adv rtr : 2.2.2.2
Ls age : 611
Len : 36
Options : E
seq# : 80000006
chksum : 0x9ac5
Net mask : 0.0.0.0
TOS 0 Metric: 100
E type : 2
Forwarding Address : 0.0.0.0  -->转发地址。通常情况下该参数为0.0.0.0;表示该路由的下一跳IP地址为:发送该LSA的设备

Tag : 1
Priority : Low

 

详细说明:

 

 

 

 

配置说明:

    1. 各接口的IP地址,SW1无需配置

路由配置:

      1. 黄色部分的接口使用ospf 协议,都在区域0

        2. AR1配置静态路由:192.168.1.0 24 192.168.100.1

             将静态路由引入到ospf中:ospf 1

                                                         import-route   static

  *此时192.168.1.0的路由信息已经在AR1-AR4中以5类LSA存在,但是,AR4上查看去192.168.1.0的外部路由时如下图:

    

 

 可以看到去往192.168.1.0网段的下一跳地址是192.168.34.2,而R4去往192.168.1.0网段还有一条最优的路径就是192.168.100.1,并非最优的。

*说明R1并未把去往192.168.1.0的真实下一跳地址同步给区域中的其他路由器,若要实现这一点,可以使用下面的方法:

       1. 在R1的出接口G0/0/2上启用ospf ,区域可以随意

        2.在AR4的出接口G0/0/2也启用ospf,区域也可以随意,也可以与R1不同。

        命令:

                    R1:

                         OSPF  1

                           area   1

                           network  192.168.100.0 0.0.0.255

                       R4:

                            ospf  1

                             area  4

                            network   192.168.100.0  0.0.0.255

*再一次在R4上查看外部路由表可以看到去往192.168.1.0网段的路由的下一跳是192.168.100.1           

    

 

 *并且AR1和AR4链路数据库中的5类LSA  的Forwarding Address:从0.0.0.0变为192.168.100.2.

    也就是去往192.168.1.0网段的下一跳都会选择是192.168.100.2。

    

 

 总结如下:

      -5类lsa中,Forwarding-adress(FA)参数的主要作用:

 

              *是在广播网络环境中,存在多个出口设备的情况下,解决数据转发的次优路径的问题

              *如果外部路由的下一跳IP地址的出接口,没有启用OSPF,或者启用了OSPF,但是接口的网络类型是P2P或者P2MP那么该外部路由的FA地址是:0.0.0.0

                     那么其他路由器在计算外部路由的时候,路由条目的下一跳IP地址应该是ASBR,此时需要借助于4类LSA来确定下一跳IP。

               *如果外部路由的下一跳IP地址的出接口启用了OSPF并且是广播和非广播的网络类型,那么FA地址就是ASBR上的外部路由的下一跳地址,就会携带进入LSA

               *同时,如果想让R4真正的能够使用FA作为下一跳IP地址的话,那么R4所连接的SW的端口,也要启用OSPF,该端口是什么网络类型以及属于什么区域都可以。

 --------------------------------------------OSPF认证--------------------------------------------------

-作用:为了确保路由器之间建立邻居关系更加安全可靠

-类型:

              如何区分认证的类型(认证的配置位置)

          *链路认证:在某个接口上启用认证+配置密码:仅仅在某一个接口/链路上配置就可以了

          *区域认证:在某个区域中启用认证+配置密码:需要在这个区域的所有路由器上配置

                                                                                      因为一旦在某个路由器上配置了区域认证,那么这个设备上的所有属于该区域的链路,都会在发送和接收

                                                                                      报文,进行认证方式和认证密码检查;

                                  

-密码的认真方式:

             *明文:密码在“传输过程中”,不加密:只要抓取报文,就能看到密码

             *密文:密码在“传输过程中”,加密,即使抓取报文,也不能解读密码

-案例:

 

 

 ------------------------------------------OSPF虚链路---------------------------------------------------

-背景介绍

    OSPF中的所有非骨干区域必须与骨干区域相连,如果非骨干区域没有与骨干区域相连,会导致不同区域之间的链路无法互通。

    那么当出现一个区域没有和骨干区域相连,又需要OSPF链路之间互通,我们就需要建立“OSPF虚连路

-OSPF虚链路:

                说明:就是穿越一个与骨干相连的区域,形成一个虚链路

               1. OSPF虚链路,永远属于区域0

                2. 虚链路的建立是通过“1类LSA”

                3.必须确保底层的“穿越区域”邻居完好

                4.“穿越区域”不能是特殊区域

-案例

        

 方法1:OSPF虚拟链路

-配置命令:

     R2:

            OSPF 1

             area  234

             vlink-peer   4.4.4.4

       R4:

               OSPF  1

               area  234

               vlink-peer  2.2.2.2

方法2:import引入ospf 路由,使用的是5类LSA

        * 在R2建立一个OSPF进程2

         *然后在R2的ospf 1进程中使用import 将ospf2 导入,在ospf 2进程中使用import 将ospf 1导入

          命令:

                       R2:

                                注意清除R2原ospf1 area 234中宣告的192.168.23.0 

                                 ospf  2   route-id  2.2.2.2

                                  area  234

                                    network  192.168.23.0 0.0.0.255

                                    quit    

                                    ospf  1

                                    import-route  ospf  2

                                     quit

                                      ospf  2

                                       import-route  ospf 1

方法3:GRE隧道

         *在R2上创建一个loopback 24接口  IP:10.10.1.1 32

          *在R4上创建一个loopback 24接口 IP:10.10.1.2 32

           *在R4的进程OSPF 1 区域234中宣告 10.10.1.0

           *在R2的进程OSPF 1 区域234中宣告10.10.1.0【注意:做完方法2后,需要将R2的ospf 2 删除,然后在ospf 1里面宣告各区域的地址段】

           *在R2中创建隧道:

                             命令:

                                        [R2]interface  Tunnel  0/0/24

                                               tunnel-protocol  gre

                                               source loopback  24  

                                               description  10.10.1.2   ---->描述信息

                                                ip  add  192.168.24.1

              *在R4中创建隧道:

                                   命令:

                                            [R4]interface  Tunnel  0/0/24

                                                   tunnel-protocol  gre

                                                   source   loopback  24

                                                   destination  10.10.1.1

                                                    ip  add 192.168.24.2

                  *最后还要将192.168.24.0分别在R2和R4上宣告,宣告区域都是区域0

                                          命令:

                                                        R2:   

                                                                 ospf 1

                                                                  area 0

                                                                    network 192.168.24.0 0.0.0.255

                                                         R4:

                                                                   ospf 1

                                                                   area  0

                                                                   network  192.168.24.0 0.0.0.255

                                                    

 

 

 

       

posted @ 2021-05-20 14:36  园来是伱  阅读(1017)  评论(0编辑  收藏  举报