标准访问列表

网络工程 VLAN ACL 访问控制
2021-07-06 13:49:46

我有以下设置

VLAN10

个人电脑 192.168.10.20

VLAN20

pc2 192.168.20.20

VLAN21

pc2 192.168.21.20

子网:255.255.255.0

全部连接到三层交换机

我有以下 ACL

Access-list 10 permit 192.168.10.0 0.0.0.255

Access-list 20 permit 192.168.20.0 0.0.0.255

我将 ACL 应用于 vlan 10,如下所示:

Interface vlan 10
IP access-group 20 in 

为什么不能从 vlan20 设备 ping 到 vlan 10 设备?

我什至尝试添加

Interface vlan 10
IP access-group 10 out

但它不起作用

但如果我尝试

Interface vlan 10
IP access-group 20 out, 

一切正常

如果标准访问列表检查源地址,那么我们应该使用入站接口吧?但为什么它不起作用

谁能帮我解决这个困惑

非常感谢提前

2个回答

标准访问列表过滤地址。所以 ACL 20 只允许源 IP 为 192.168.20.x 的数据包。但是 Vlan 10 是一个不同的子网,因此任何来自 VLAN 10 的数据包都会被丢弃。

当您将 ACL 放在出站方向时,则数据包来自 VLAN 20,并且允许数据包。

谢谢大家,我明白了

对于所有标准 ACL ,都有一个默认拒绝 ACE

ACE 表示 ACL 条目:

 access-list 12 permit/deny x.x.x.x x.x.x.x'

Default ACE:  if a packet doesn't match any of the ACE in the ACL , then it is automatically blocked 

因此,如果您只想允许从 VLAN 12 ( 192.168.12.0 ) 到 VLAN 10 的数据包

你必须创建ACE

Access-list 12 permit 192.168.12.0 0.0.0.255

并将其应用到 VLAN 10 出接口,

在这里我们选择出界,因为数据包从 VLAN 12 传入并传出到 VLAN 10

ACL 将检查从 VLAN 12 进入 VLAN 10 的数据包

So outbound = coming into the VLAN 10
(coming **out to** VLAN 10 **from** any other network )

这里我们不想创建 ACE 来拒绝所有其他数据包,因为 cisco 默认实现了拒绝任何数据包

如果我们将 ACL 12 应用于 VLAN 10 的入站接口,则

ACL 将检查从 VLAN 10 进入 VLAN 12 的数据包,并拒绝与 ACE 不匹配的所有数据包。由于没有源地址为 192.168.12.x 的数据包(来自所有数据包的源地址为 192.168.10.x),因此没有一个数据包与 ACE 匹配。因此,来自 VLAN 10 的所有数据包都将被丢弃,因此 VLAN 10 无法与任何其他网络通信。

如果您添加 ACE permit any ,那么它将首先检查第一个条件并且没有通过,因此它将检查以下条件。由于我们给了 ACe 任何许可,所有数据包都将被允许并且不会有任何过滤

ACE: access-list 12 permit any

所以在入站接口 ACL 将检查来自 VLAN 10 到其他网络的数据包

Hence inbound = coming from the VLAN 10
(coming **in from** VLAN 10 **into** any other network )