ACL 中的 ip:subnet 组合是否与其他任何地方不同?

网络工程 思科 IPv4 子网 acl 网络访问
2022-02-28 07:11:23

我们正在尝试调试连接问题,但我无法以一种或另一种方式找到任何可靠的文档。我对我们使用的硬件并不肯定,但我们现在可以假设思科,因为我怀疑这个问题有很大的不同。

以以下示例 ACL 条目为例:

1800 permit tcp 10.74.10.50/32 10.74.150.21/32 range 10000 19999

这行得通吗?我对此提出质疑,因为/32传统上意味着除了子网 ID 和广播地址之外没有任何东西可用。有人告诉我,子网划分对 ACL 条目的工作方式不同,/32这里的意思是允许给定的地址。

有人可以让我知道哪个是正确的吗?

2个回答

/32 掩码通常称为主机地址,它表示具有单个主机的子网。这是正常的 IP 寻址,它适用于 ACL 或路由或您使用 IP 地址的任何其他地方。

提一提:对于 Cisco IOS,ACL 是用“通配符”掩码编写的,它是子网掩码的补码。所以 255.255.255.0 会写成 0.0.0.255。/32 将被写为 0.0.0.0。

NX-OS 确实使用斜线表示法。

ASA 使用标准网络掩码。

Cisco 路由器 ACL 对 IPv4 使用通配符掩码,而不是 CIDR 表示法,就像您使用的那样。通配符掩码是网络掩码的倒数,因此您计算的是0位数,而不是1位数。对于 32 位掩码,您可以使用host关键字。编号的扩展 ACL 在100to1991300to1999范围内。

你的例子是这样的:

access-list 1800 permit tcp host 10.74.10.50 host 10.74.150.21 range 10000 19999

或者:

access-list 1800 permit tcp 10.74.10.50 0.0.0.0 10.74.150.21 0.0.0.0 range 10000 19999