梅利333

从无到有,自有至精

导航

路由分发列表-distribute-list

路由分发列表 distribute list

 

什么是路由分发列表?

 来控制路由条目的传递

 

具体有什么用?

 可以阻止单个的路由条目传递到某一网络内,可以起到防环的作用

 

依据是什么?

 通过ACL来抓取路由条目,然后挂接到路由协议中

 

IN/OUT,这个方向是路由条目的传递方向

 

如图中所示

 

 

 

 R1-R2-R3运行rip

R1-R2-R3运行OSPF

R1,R3两个设备都进行双向重分发~

,此时,如果R3请求去往2.2.2.2的路由条目,走哪里呢?

如果不出意外的,肯定是走R3—R4—R1—R2,为什么??

因为不同协议之间要比较管理距离 ,OSPF=110  RIP=120

 

数据能通,没问题,但是有没有想过一个问题呢?

R3上,去往2.2.2.2 的路由条目应该是RIP的,但是现在变成了OSPF的,这在一个重分布的过程中,是否会造成不可达呢~(也就是环路)

 

咱们来看一下具体的路由条目

R1---去往2.2.2.0的条目下一跳指向的是14.0.0.2(R4)

 

 

 

 R4---去2.2.2.0的条目下一,指R3

 

 

 

 R3---2.2.2.0的条目下一跳又指回34.0.0.2(R4)

 

 

 

 最终会在R1-R3-R4之间行成环路

 

 

 

 

那么解决办法就是在R1/R3上,组织收到来自R4伟来的ospf 更新路由条目2.2.2.2

 使用distribute-list,

 

思路,

 1 利用ACL定义路由条目(是拒绝还是允许)

 2 ACL的格式相同,但是要注意的是,这里所输入的路由前缀,必须和路由表中的条目是相同的

 3 定义路由更新进或出方向,

 4 OSPF是一个特殊的路由协议,因为,OSPF更新的是LSA ,并不是路由条目,所以,说人话就是你放在OUT方向上你干不过它,可以更新出去,放在OUT方向是肯定不行的。当然,IN方向可以接收进来LSA,但是更新到LSDB后,要进行计算再放入路由表中,而放到路由表的这个过程,IN就起到做用了,不让它写入到路由表中。

 

也就是说,对于OSPF,distribute-list,只适用于IN,而且还得加上具体的接口才生效,

看刚才的那个实例,

2.2.2.2的路由条目,我们现在不想让它OE2的条目,想让它直接R的条目,

怎么办?

那就直接 R3的F0/1口,干掉这个路由条目的更新

 

R3(config)#access-list 1 deny 2.2.2.0  //拒绝的路由前缀,必须和路由表中的一致,1

R3(config)#access-list 1 per any       ///拒绝了一个千万别忘了放行其它的

R3(config)#router ospf 1          //进入到具体的协议中

R3(config-router)#distribute-list 1 in f0/1  //分发列表调用ACL列表1,in方向,接口F0/1

1

 

 

 

 

 

 策略完之,就可以看到,这个路由条,直接 成了R,也就是RIP ,而它的下一跳也正好是R2,并且出接口为F0/0 完成要求 .

而上面部份的RIP协议,由于重分发所定义的全都是metric 1 那就一定会形成等价负载均衡

 

 

  

其它应用场景

其实做为distribute-list ,不光是用在重分发上面,也可以用在单独的路由协议中

如图

 

 

 R1---R2运行rip 协议,R1宣告了自己的下游接口192.168.1.0 -3.0

但是现在不想让R2 接收到192.168.1.0和192.168.3.0,它只能接收到192.168.2.0

 

 

 

  如上图所示,可以很直接的看出来,192.168.1.0被干掉了

 

那可不可以在R2上进行设置?????当然可以,no problem

 

 

 一样的效果,

有了路由表,也就无法进行与之通信,

 

EIGRP也是同样的道理,

就不在这里多说了.

 

最应该注意的是OSPF ,再次强调一下,OSPF更新的不是路由条目,而是LSA,链路状态通告。

所以你使用distribute-list 理论上是不可能将其限制住的。

 

 

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

CCIE成长之路  ---- 梅利

posted on 2020-07-15 20:42  梅利333  阅读(1778)  评论(0)    收藏  举报