设为首页收藏本站language 语言切换
查看: 5589|回复: 13
收起左侧

[已解决] OSPF的distribute-list access-list out为什么是无效的?

  [复制链接]
发表于 2011-11-21 23:46:51 | 显示全部楼层 |阅读模式
本帖最后由 torki132 于 2011-11-22 21:07 编辑

OSPF的路由过滤中:distribute-list access-list out为什么是无效的?而 in 是有效的。为什么呢。
发表于 2011-11-22 09:39:32 | 显示全部楼层
一个出过滤 一个入过滤
沙发 2011-11-22 09:39:32 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-22 11:16:42 | 显示全部楼层
板凳 2011-11-22 11:16:42 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-22 15:36:14 | 显示全部楼层
本帖最后由 he564310883 于 2011-11-22 15:37 编辑
torki132 发表于 2011-11-22 11:16
我的意思是,为什么不可以这样配?
R1(config-router)#distribute-list 1 out eth 0/1  
% Interface n ...


在ospf中,同一区域内的所有路由器,都有相同的LSDB!你理解了这句话,你就知道为什么这条命令不起作用了。
地板 2011-11-22 15:36:14 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-22 20:21:43 | 显示全部楼层
he564310883 发表于 2011-11-22 15:36
在ospf中,同一区域内的所有路由器,都有相同的LSDB!你理解了这句话,你就知道为什么这条命令不起作用 ...

嗯。是。我觉得是:路由器不可能少发一条LSA!这样区域内所有路由器的LSDB就可能不同步了!只是配置了路由过滤的in后,OSPF路由器只是没有把路由条目加到路由表中...应该,,,是这样...
5# 2011-11-22 20:21:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-22 21:58:50 | 显示全部楼层
哈,这个我也研究了,IN我就不说了,影响自身路由表,DISTRIBUTE-LIST PREFIX NUM OUT 后面加的协议是有效的,但也是本路由器有效,比如R1有RIP OSPF,我OSPF重分发从RIP学来的路由,就可以用DISTRIBUTE-LIST PREFIX NUM OUT RIP,这样就可以过滤,你要知道的是,REDISTRIBUTE RIP SUBNET ROUTE-MAP ?? ROUTE-MAP是不起作用的,我做的实验结论是这样子,不保证正确,请纠正
6# 2011-11-22 21:58:50 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-23 01:08:42 | 显示全部楼层
本帖最后由 torki132 于 2011-11-23 01:10 编辑
PP139226557 发表于 2011-11-22 21:58
哈,这个我也研究了,IN我就不说了,影响自身路由表,DISTRIBUTE-LIST PREFIX NUM OUT 后面加的协议是有效的 ...


哈哈,这很有意思啊。刚我做了一个in的实验,就是distribute-list 1 in Ethernet0/0...结果全给过滤掉了。一条OSPF路由都没有,但是它还是会传递LSU更新。就是后面路由器可以接收到OSPF的路由。而在重分布上启用路由过滤掉RIP,就是你说的DISTRIBUTE-LIST PREFIX NUM OUT RIP,而后续的OSPF路由器全部都接收不到。就是说,重分发RIP路由的OSPF路由器把不符合prefix的路由条目没有加入进LSA更新中。
这是跟完整性有关,就是所有区域内路由器LSDB都必须相同。

这是我的实验拓扑,以供参考:
ospf过滤.jpg

7# 2011-11-23 01:08:42 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 08:26:53 | 显示全部楼层
只有始发路由器能控制LSA的传输,你重分发时已经过滤了,所以后续是不可能有LSA的,要注意,是始发路由器。
8# 2011-11-23 08:26:53 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 09:53:00 | 显示全部楼层
本帖最后由 he564310883 于 2011-11-23 09:53 编辑
PP139226557 发表于 2011-11-23 08:26
只有始发路由器能控制LSA的传输,你重分发时已经过滤了,所以后续是不可能有LSA的,要注意,是始发路由器。


始发。这个说的好!!如果LSA已经发出去了,在其他路由器上做过滤,同一区域的路由器的LSDB就不相同,这违背了OSPF的原则。in过滤其实是个假过滤,只是没在路由表中显示而已。
9# 2011-11-23 09:53:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 10:22:52 | 显示全部楼层
LSA是链路状态信息,传递是不可控制的,只有传统的路由信息可以控制写入和分发
10# 2011-11-23 10:22:52 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-23 10:43:45 | 显示全部楼层
嗯!明白了!再次感谢各位讨论!
11# 2011-11-23 10:43:45 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-4-17 20:17:26 | 显示全部楼层
原因是这样的,OSPF,IS-IS是链路状态协议,接口上输出的是LSA,并非距离矢量路由协议RIP输出的路由信息,访问控制列表对其不起作用;但是ospf区域中,一旦在distribute-list out中加入【routing process】,那么就意味着会有5类LSA进入OSPF区域,而5类LSA是类路由选择信息,访问控制列表对其起作用。因此,一个不存在ASBR的OSPF区域,distribute-list out命令是无意义的。

即使看似起作用的distribute-list in命令,也对1,2,3,4类LSA无效,该命令不会影响LSA的接受,所有OSPF路由器会拥有一致的LSDB以运行Dijkstra算法,仅仅会在路由表生成的过程中起作用--和ACL匹配的路由不会出现在路由表中。
12# 2012-4-17 20:17:26 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-4-18 22:44:01 | 显示全部楼层
我做实验的结果如果仅仅是在ASBR上OUT的话,可以过滤掉路重分的路由。LSA直接被过滤了  
13# 2012-4-18 22:44:01 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-6-7 17:08:40 | 显示全部楼层
14# 2012-6-7 17:08:40 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-4 06:35 , Processed in 0.076660 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

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