我想要实现的目标如下:
- 允许从我们网络上的任何位置完全访问 10.58.9.32(我们的 VoIP 服务器)上的设备。
- 允许 ICMP 从任何设备向所有方向流动。
- 防止 10.58.9.0/24 上的所有其他设备与其所在的 VLAN 之外进行通信。
为了尝试实现这一点,我在我们的核心交换机上创建了以下 ACL:
access-list voip permit ip 10.58.9.32 255.255.255.255 0.0.0.0 0.0.0.0
access-list voip permit ip 0.0.0.0 0.0.0.0 10.58.9.32 255.255.255.255
access-list voip permit icmp any any
虽然我没有明确的拒绝规则,但 6224F 会按顺序处理规则,并在找到匹配项时停止,如果没有找到匹配项,则隐含的拒绝规则将生效。
子网 10.58.9.0/24 与 VLAN 9 关联,因此我将 ACL 应用于 VLAN 接口,如下所示:
interface vlan 9
ip access-group voip in 1
VLAN 9 通过核心交换机进行路由,在我应用 ACL 之前,整个网络上的任何设备都可以不受限制地与 VLAN 9 上的任何设备进行通信。
将 ACL 应用于网络后,当我尝试通过 SSH 从我的台式电脑连接到 10.58.9.32 时,我无法再建立连接。前两个规则肯定可以匹配两者之间的 SSH 流量并允许流量流动?
我已经证明 ACL 是负责任的,因为当我删除它时,我可以再次通过 SSH 进入服务器。
编辑
我已使它工作正常,通过更改访问列表如下:
access-list voip permit ip 10.58.9.32 255.255.255.255 any
access-list voip permit ip any 10.58.9.32 255.255.255.255
access-list voip permit icmp any any
我原本以为any
和0.0.0.0 0.0.0.0
where 是相同的,但显然不是。有人知道为什么会这样吗?