1.概述

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

wKiom1NcdYjhSdnFAAC5uqwICk8074.jpg

 如上图,R1、R2、R3运行RIP。R2在初始情况下,会将自己的路由表更新给R1,其中假设包含三条路由1.0、2.0及3.0。现在我们可以通过在R2上部署分发列表distribute-list,使得R2在更新给R1的路由信息中过滤掉3.0这条路由。这就是分发列表的一个使用示例。当然,它还有更加广泛的应用。

2.部署要点
分发列表是用于控制路由更新的一个工具,只能过滤路由信息,不能过滤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.
  • 对于距离矢量路由协议
wKiom1NcdeGT6z-TAADWTd7akyc688.jpg
 路由器之间,传递的是路由信息,分发列表对路由信息是有绝对的控制权的。因此如果是in方向,那么通过部署分发列表,可以过滤特定的路由,使得执行分发列表的本地路由路由表发生变化,同时,本地路由器在更新路由信息给下游路由器的时候,实际上更新的内容是受分发列表影响之后的条目。
同时在out方向,也是没有问题的。
wKioL1Ncde7SeONRAADrmCX74Z8000.jpg
值的注意的是,对于OSPF这样的链路状态路由协议,路由器之间传递的消息不再是路由信息了,而是LSA,而分发列表是无法对LSA进行过滤的。因此,在链路状态协议中部署分发列表,就需要留意了:
  • in方向,分发列表只能在本地收到LSA后,生成路由的那一刹那进行路由的过滤,执行分发列表的路由器自己路由表会被分发列表影响(但是本地LSDB仍然是有LSA的),而且该路由器仍会将LSADB中的LSA发送给邻居,因此本地被过滤的路由,邻居还有。 

  • out方向,分发列表只能工作在执行路由重发布动作的那个ASBR上,且只能针对外部引入的路由起作用。因为OSPF执行重发布时,其实这些外部路由是以路由的形式引入进来的,因此分发列表在这个场合下能够正常工作,但是如果不是本地始发的外部路由,或者是内部的OSPF路由,out方向的分发列表均束手无策