我看到了一个 ACL 命令:
拒绝 ip 10.0.0.0 0.255.255.255 任何
我很困惑,这个“ip”是指 ip 地址还是“TCP/IP”流量?这个命令是否意味着它将丢弃任何不是源地址 10.0.0.0 且通配符掩码为 0.255.255.255 的 ip 流量的数据包?
谢谢。
答案1
想象一下来自 Cisco 路由器或交换机的 ACL。让我们来分解一下:
deny
vs.permit
是当规则的其余部分匹配时要采取的操作。在这种情况下,您要阻止或丢弃匹配的数据包。ip
表示所有 IP 数据包。这包括 TCP、UDP、GRE、IPsec... 但是,它不包括 IS-IS 数据包,因为它们不使用 IP。10.0.0.0 0.255.255.255
是源地址范围,由网络地址 (10.0.0.0
) 和通配符掩码 (0.255.255.255
) 组成。将通配符掩码视为子网掩码的逆。实际上,这意味着源 IP 地址位于 10.0.0.0/8 网络中的数据包。any
表示目标 IP 地址:这里可以是任何内容,因此不进行检查。
例如,要允许从 10.1.0.0/16 到 203.0.113.80 的 HTTP(TCP/80)流量,您可以获得以下规则:
permit tcp 10.1.0.0 0.0.255.255 203.0.113.80 0.0.0.0 80
答案2
IP 确实代表 IP 地址范围。范围由您定义的网络 + 您设置的通配符定义。
在您的情况下,它将是 10.0.0.0 到 10.255.255.255 之间的范围。
因此,它将丢弃所有源 IP 地址位于上述定义范围之间的网络流量。
需要声明 IP,因为以前有不同类型的网络流量可以被过滤。但现在大多数流量都被视为 IP 流量。它只是作为要过滤的流量类型的传统指标保留在那里。
ACL 是“防火墙”的低级实现。它们查看网络数据包的标头信息,并根据定义的规则进行匹配。