有人可以用一个例子来解释访问列表和前缀列表之间的区别是什么。
访问列表和前缀列表的区别?
以下是它们如何形成的历史(以及它们为何如此):
- 在 Internet 的早期,人们开始要求使用数据包过滤器(又名访问列表)。
- 思科首先实施了简单的访问列表(过滤目标主机地址,通过通配符掩码进行扩充),但当然它们不足以阻止(例如)SMTP,因此他们创建了扩展访问列表,可以匹配源和目标IP 地址(两者都带有通配符位 - 这些位允许您匹配整个前缀)、协议、端口号......
所以:访问列表=数据包过滤器。
后来(但仍然是几十年前)人们开始在同一个机器上运行多个路由协议,并希望在它们之间重新分配信息。没问题,但您不希望传播到其他路由协议的所有信息 - 您需要 ROUTE FILTERS。通常情况下,如果您碰巧有锤子,那么一切看起来都像钉子,因此 Cisco 的工程师使用他们已有的对象(访问列表)实施了路由过滤器。
此时:访问列表=数据包过滤器(有时还有路由过滤器)
随着无类路由的出现(是的,那是很久以前 - 是否有人还记得 A 类、B 类和 C 类地址的时代),人们希望在路由协议之间重新分配特定大小的前缀。例如:将所有来自 OSPF 的 /24s 通告到 BGP,但不通告 /32s。无法使用访问列表。是时候进行新的混搭了:让我们使用扩展访问列表,让我们假设包过滤器中的源 IP 地址代表网络地址(实际上是前缀地址),而包过滤器同一行中的目标 IP 地址代表子网掩码。
到目前为止:访问列表 = 数据包过滤器。简单访问列表还用作路由过滤器(仅匹配网络地址),扩展访问列表用作匹配地址和子网掩码的路由过滤器。
幸运的是,当时有人保留了一丝理由,并开始想知道决定将扩展 ACL 重用于路由过滤器的聪明才智究竟是什么,当他们想到这个绝妙的主意时吸烟。
最终结果:Cisco IOS 获得了前缀列表,它们在功能上(几乎)与用作路由过滤器的扩展访问列表相同,但以普通人有机会理解的格式显示。
今天:使用数据包过滤器的访问列表和路由过滤器的前缀列表。您仍然可以使用访问列表作为路由过滤器,但不要这样做。
说得通?
不是很多。
它们都提供了过滤网络地址的方法,但有几个主要区别:
- 扩展 ACL 可以根据“更高层”信息进行过滤,即 TCP/UDP 端口。前缀列表不能。
- 扩展/标准 ACL 可以使用通配符掩码,允许指定任意地址或地址范围。前缀列表不能这样做。
- 前缀列表可以匹配前缀长度- 分别使用“ge”和“le”关键字的最小或最大长度。
对于路由策略,人们往往更喜欢使用前缀列表,因为有些人认为它们更具“表现力”,但并没有太多限制您使用一种或另一种 - 这将是情况/要求所要求的。
前缀列表用于路由过滤和路由重新分配,因为它匹配发送、接收或出现在路由表或 BGP 表中的前缀。它们匹配前缀中的位,但也匹配前缀长度。ACL 可用于更多功能,例如:流量过滤、QoS 流量匹配、NAT、VPN、基于策略的路由等流量匹配。它们也可用于路由过滤器和重新分配,但它们的语法与当它们用于其他目的时。
除了 John Jensen 所说的之外,我还要补充一点,ACL 还用于安全目的(例如限制远程访问),而前缀列表本身不能具有此功能。
前缀列表坚持 L3,而 ACL 可以向上一层,带来额外的功能。
有关视觉比较,请参阅此链接:http : //mellowd.co.uk/ccie/?p=447