zoukankan      html  css  js  c++  java
  • distribute-list分发列表 转自 红茶三杯sina blog

    distribute-list分发列表

      (2013-07-07 10:46:09)
    标签: 

    distribute-list

     

    分发列表

    分类: Routing
    一、工具概述
     
    distribute-list分发列表是用于控制路由更新的一个工具,只能过滤路由信息,不能过滤LSA。
     
    distribute-list分发列表

        如上图,R1、R2、R3运行RIP。R2在初始情况下,会将自己的路由表更新给R1,其中假设包含三条路由1.0、2.0及3.0。现在我们可以通过在R2上部署分发列表distribute-list,使得R2在更新给R1的路由信息中过滤掉3.0这条路由。这就是分发列表的一个使用示例。当然,它还有更加广泛的应用。
     
    二、部署要点
     
        分发列表是用于控制路由更新的一个工具,只能过滤路由信息,不能过滤LSA。因此:分发列表在距离矢量路由协议中使用,无论是in或者是out方向,都能正常的过滤路由。但是在链路状态路由协议中的工作就有点问题了。
        The command distribute-list out works only on the routes being redistributed by the Autonomous System Boundary Routers (ASBRs) into OSPF. It can be applied to external type 2 and external type 1 routes, but not to intra-area and interarea routes.
     
    1.对于距离矢量路由协议
     
    distribute-list分发列表

        路由器之间,传递的是路由信息,分发列表对路由信息是有绝对的控制权的。因此如果是in方向,那么通过部署分发列表,可以过滤特定的路由,使得执行分发列表的本地路由路由表发生变化,同时,本地路由器在更新路由信息给下游路由器的时候,实际上更新的内容是受分发列表影响之后的条目。
    同时在out方向,也是没有问题的。 
     
    2.对于链路状态路由协议,如OSPF
     
    distribute-list分发列表

        值的注意的是,对于OSPF这样的链路状态路由协议,路由器之间传递的消息不再是路由信息了,而是LSA,而分发列表是无法对LSA进行过滤的。因此,在链路状态协议中部署分发列表,就需要留意了:
    • in方向,分发列表只能在本地收到LSA后,生成路由的那一刹那进行路由的过滤,执行分发列表的路由器自己路由表会被分发列表影响(但是本地LSDB仍然是有LSA的),而且该路由器仍会将LSADB中的LSA发送给邻居,因此本地被过滤的路由,邻居还有。
    • out方向,分发列表只能工作在执行路由重发布动作的那个ASBR上,且只能针对外部引入的路由起作用。因为OSPF执行重发布时,其实这些外部路由是以路由的形式引入进来的,因此分发列表在这个场合下能够正常工作,但是如果不是本地始发的外部路由,或者是内部的OSPF路由,out方向的分发列表均束手无策。 
     
    distribute-list分发列表

        例如在R1上重发布直连进OSPF,用out方向的分发列表可过滤掉1.1.1.0这条外部路由。但R1重发布进来的路由,如果在R2上用out方向的分发列表试图阻挡R3接受路由或LSA,则无法,因为这不是本地始发的外部路由。
     
    三、配置命令
     
    1.In方向
     
    R1(config-router)#distribute-list 1 in ?   // 都是接口
      Async              Async interface
      BVI                Bridge-Group Virtual Interface
      CDMA-Ix            CDMA Ix interface
      Dialer             Dialer interface
      FastEthernet       FastEthernet IEEE 802.3
      Multilink          Multilink-group interface
      Port-channel       Ethernet Channel of interfaces
      Tunnel             Tunnel interface
      Vif                PGM Multicast Host interface
      Virtual-PPP        Virtual PPP interface
      Virtual-Template   Virtual Template interface
      ……
     
    2.OUT方向
    R1(config-router)#distribute-list 1 out ?   // 接口或协议
      Async              Async interface
      BVI                Bridge-Group Virtual Interface
      Dialer             Dialer interface
      FastEthernet       FastEthernet IEEE 802.3
      Loopback          Loopback interface
      Multilink          Multilink-group interface
      Port-channel       Ethernet Channel of interfaces
      Tunnel             Tunnel interface
      Virtual-PPP        Virtual PPP interface
      Virtual-Template   Virtual Template interface
      Virtual-TokenRing  Virtual TokenRing
      bgp                Border Gateway Protocol (BGP)
      connected          Connected
      eigrp              Enhanced Interior Gateway Routing Protocol (EIGRP)
      ospf               Open Shortest Path First (OSPF)
      rip                Routing Information Protocol (RIP)
      static             Static routes
      ……
     
     
     
    四、应用场合
     
    1.配置示例1(单一路由协议环境下-RIP)
     
    distribute-list分发列表
    初始情况下,R3能够学习到R1的三条loopback路由,以及192.168.12.0/24路由。现在我们不希望R3学习到192.168.3.0/24的路由,那么可以在R2上如下配置:
    R2(config)# access-list 1 deny 192.168.3.0
    R2(config)# access-list 1 permit any
    R2(config)# router rip
    R2(config-router)# distribute-list 1 out fa 1/0
    当然,在R3上,用in方向的分发列表也可以达到同样的效果。
     
    2.配置示例2(单一路由协议环境下-RIP)
     
    distribute-list分发列表

    在R2上如果做如下配置:
    R2(config)# access-list 1 deny 192.168.3.0
    R2(config)# access-list 1 permit any
    R2(config)# router rip
    R2(config-router)# distribute-list 1 in fa0/0
    那么,首先R2自己的路由表会发生改变,3.0的路由被过滤掉了,同时R3也就是下游RIP路由器,3.0也学不到。
     
    3.配置示例3(单一路由协议环境下-OSPF)
     
    distribute-list分发列表

    R2的配置如下:
    R2(config)# access-list 1 deny 192.168.3.0
    R2(config)# access-list 1 permit any
    R2(config)# router ospf 1
    R2(config-router)# distribute-list 1 in fa0/0
    注意这时候,首先在R2的路由表里,3.0的路由就被干掉了。注意,这时候实际上,area内OSPF路由器产生的LSA已经是装载到了R2的OSPF database之中,而在R2从OSPF database中计算路由,并准备将路由条目装载进路由表之前,in方向的分发列表发生作用了,将3.0的路由过滤掉了,因此R2的路由表中,是没有3.0的OSPF路由的。但是,虽然R2自己路由表里没3.0路由,这不妨碍R2将相关LSA泛洪给R3,因此,R3仍然是有1.0、2.0、3.0以及12.0的OSPF路由的。 
     
    4.配置示例4(单一路由协议环境下-OSPF)
     
    distribute-list分发列表

    现在我们在R2上做如下配置:
    R2(config)# access-list 1 deny 192.168.3.0
    R2(config)# access-list 1 permit any
    R2(config)# router ospf 1
    R2(config-router)# distribute-list 1 out 
    R3的路由表会是什么情况?实际上,没有任何影响,R3能学习到全网的路由。至于为什么,我相信前面已经解释的非常清楚了。
     
    5.配置示例5(单一路由协议环境下-OSPF out方向分发列表)
     
    distribute-list分发列表

    分发列表,部署在OSPF这样的链路状态路由协议中,如果要用out方向,则只能用在这样的场合。
    如上图,在R1上部署,R1使用重发布直连的方式引入这三条外部路由,那么out方向的分发列表,只能在R1上部署,且对这三条路由产生作用。
    R1(config)# access-list 1 deny 192.168.3.0
    R1(config)# access-list 1 permit any
    R1(config)# router ospf 1 
    R1(config-router)# redistribute connected subnets
    R1(config-router)# network 192.168.12.1 0.0.0.0 area 0
    R1(config-router)# distribute-list 1 out
    上述配置实现后,R1将过滤掉3.0路由。
     
     
    6.配置示例6 协议间重发布时部署分发列表
     
    distribute-list分发列表

    RIP重发布进OSPF
    • 情况1
    R2的配置如下:
    access-list 1 permit 1.1.1.0
    router ospf 1
    redistribute rip metric 10 subnets
    distribute-list 1 out rip
    这里这条命令的意思是,从RIP路由协议重分发过来的路由中,只允许1.1.1.0出去(到OSPF协议,没有方向,只要是运行了OSPF的接口)
    R3的路由表里,只有1.1.1.0的路由
     
    • 情况2
    在R2上开设loopback接口2.2.2.0/24,R2既重发布RIP进OSPF,又重发布直连进OSPF
    access-list 1 permit 1.1.1.0
    router ospf 1
    redistribute connected subnets
     redistribute rip metric 10 subnets
     network 192.168.23.0 0.0.0.255 area 0
     distribute-list 1 out
    // 在R3上只有1.1.1.0的路由,也就是说distribute-list 1 out 此处这条命令,对所有从外部注入进OSPF的路由都生效,最终只有1.1.1.0路由存活下来。而不断路由的来源是直连路由,还是RIP。
     
    • 情况3
    在R2上开设loopback接口2.2.2.0/24,R2既重发布RIP进OSPF,又重发布直连进OSPF
    access-list 1 permit 1.1.1.0
    router ospf 1
    redistribute connected subnets
     redistribute rip metric 10 subnets
    distribute-list 1 out rip
    // R3的路由表中有路由:1.1.1.0 、 2.2.2.0 、 192.168.12.0
    // 也就是屏蔽掉了从RIP重发布进来的除了1.1.1.0以外的路由,并重发布本地直连接口 
     
  • 相关阅读:
    大数据概述
    [转载]Python 资源大全中文版
    dataTaDataTable 详细教程
    DataTable 中文国际化
    ipython notebook教程
    Django查询操作
    Django模型的元数据Meta
    如何使用命令提示符进入mysql
    教你如何查看占用端口
    php简易计算器实例
  • 原文地址:https://www.cnblogs.com/gaveme/p/3773582.html
Copyright © 2011-2022 走看看