雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2068|回复: 5

[讨论/求助] 关于分发列表的探讨

[复制链接]
发表于 2012-7-31 11:18:22 | 显示全部楼层 |阅读模式
本帖最后由 ★浓_眉☆※兴 于 2012-7-31 12:19 编辑

rip重分布到ospf (要求:拒绝100.0 200.0
r2
router ospf 110
distribute-list prefix roo out
这是r1上只会出现OE24.05.06.07.0
r3上会出现OE24.05.06.07.0   R100.0 200.0
r2
router ospf 110
distribute-list prefix roo out rip
这是r1上只会出现OE24.05.06.07.0
r3上会出现OE24.05.06.07.0   R100.0 200.0   
问题一:第一条命令与第二条命令有什么不同?
r2
router ospf 110
distribute-list prefix roo in int fa0/0
r1/r2/r3上的路由表没变化
问题二:这是又是为什么?在distribute-listprefix roo in
                           distribute-listprefix roo out
会发现out多几个协议?


该贴已经同步到 ★浓_眉☆※兴的微博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2012-7-31 11:34:10 | 显示全部楼层
楼主问的问题很典型,问题思考的非常细致,赞一个:

首先关于分发列表,distribute-list 这货我们要明确一点,它只能够对路由信息进行过滤,对于LSA是无效的。
换句话说,像RIP、EIGRP这类距离矢量路由协议,IN/OUT方向的分发列表都能很好的工作,但是,对于OSPF这类链路状态路由协议,分发列表在工作的时候就可能出现问题了。


以上述拓扑为例:

1、如果R1,R2,R3之间运行RIP或EIGRP这类距离矢量路由协议
由于距离矢量路由协议,更新的是路由信息,因此distribute-list 的in、out方向都能很好的工作,
譬如希望在R2、R3上过滤R1更新来的1.1.1.0网段路由信息,则可以在R1上用OUT方向的distribute-list进行过滤,

也可以在R2上用in方向的distribute-list进行过滤,R2自己没了1.1.1.0的路由信息,自然也不会更新给R3

2、如果三者之间运行的是OSPF这类链路状态路由协议
OSPF传递的是LSA,而不是路由信息,distribute-list是无法对LSA进行过滤的,它只能够过滤路由。以下几种情况要记住:
1)distribute-list out 方向
out 方向的分发列表如果在OSPF中运用,仅能过滤本地(本台路由器)始发的外部路由,否则无效。
这句话的意思是,如果你在R1上做重发布直连,将1.1.1.0及11.11.11.0都注入OSPF,则可使用out方向的distribute-list来过滤1.1.1.0,为什么呢?因为重发布的动作,(本地)OSPF实际上是将域外的路由信息引入OSPF,因此OUT方向的distribute-list起效。同样的需求,如果在R1上做重发布,在R2上来做OUT方向的过滤,试图阻止R3接受1.1.1.0的路由,这就徒劳了,这是因为R2收到了R1泛洪的关于1.1.1.0及11.11.11.0的5类LSA,并且它传递给R3,而前面说了distribute-list是干不了LSA的。所以分发列表这个地球人,完全无法阻止L星人跑到R3上去。
2)distribute-list in 方向
OSPF路由器关于路由,传递的是LSA,这点我们已经很明确了,OSPF路由器在收到邻居发送的LSA后,放进自己的LSDB,然后运行SPF算法,计算最短路径,并将计算得出的最短路径放入路由表,理解这个对于消化distribute-list 非常重要。好吧,如果这时候R1宣告1.1.1.0及11.11.11.0,我希望在R2及R2上过滤掉1.1.1.0,那么在R2上做 in 方向的distribute-list ,有没有用呢? 对R2起效,但是对R3却无效。为啥?因为在R2上使用distribute-list in ,其实是在R2接受LSA后并计算出最短路由即将装进路由表之前,将1.1.1.0干掉,注意,不是干掉LSA,而是路由在装进路由表之前,干掉路由。而这个影响,仅仅对R2自己产生,R2仍然有关于1.1.1.0及11.11.11.0的LSA,照样会泛洪给R3,因此,虽然R2上路由表中没了1.1.1.0的路由(但是LSDB中有LSA),R3却仍然会有1.1.1.0的路由(因为有LSA)。


好了,最后来看你问的问题:
问题一:第一条命令与第二条命令有什么不同?
  distribute-list prefix roo out
  distribute-list prefix roo out rip
  这两条命令都是针对离开本地的路由进行过滤,后者的意思是,将离开我本地的(来源于RIP)的路由进行过滤
  楼主实验设计上由于R2及R3仅仅有OSPF及RIP两个动态路由协议,因此两条命令的差别不明显,如果在R2上除了OSPF,同时还有RIP及EIGRP且都向OSPF做重发布,那么第二条命令,就是仅仅将RIP重发布进OSPF的路由应用过滤及策略

这就是为什么out方向的分发列表,后面可以跟其他的动态路由协议了

问题二:这是又是为什么(路由表没变化)?在distribute-listprefix roo
distribute-listprefix roo out ?会发现out多几个协议?


答案你知道了,对吧 :)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2012-7-31 11:51:55 | 显示全部楼层
占位观看
发表于 2012-7-31 11:57:28 | 显示全部楼层
耿叔好速度啊
 楼主| 发表于 2012-7-31 12:21:43 | 显示全部楼层
tea 发表于 2012-7-31 11:34
楼主问的问题很典型,问题思考的非常细致,赞一个:

首先关于分发列表,distribute-list 这货我们要明确 ...

又麻烦您出手了 朱sir
谢谢!
发表于 2012-7-31 22:20:13 | 显示全部楼层
呀哈哈,耿叔给力,学到了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-3-29 21:57 , Processed in 0.079027 second(s), 19 queries , Gzip On.

快速回复 返回顶部 返回列表