小白也能懂的 ACL 实验笔记:怎么让“特定电脑”访问不了“特定服务器”
你公司的网络里有一台核心服务器192.168.2.100老板说“只允许普通员工PC2访问禁止某个捣蛋鬼PC1访问。”你需要在路由器上设置一个“门卫”根据源 IP 和目的 IP 做拦截。这就是 ACL访问控制列表 的典型应用。一、先搞懂为什么我的 ACL 配了没用很多初学者包括我都会犯两个错服务器和电脑在同一网段比如都是192.168.1.x→ 它们之间的通信走交换机直接转发根本不经过路由器。你就算在路由器上配一万条 ACL也拦不住。解决方法把服务器挪到另一个网段比如192.168.2.x必须经过路由器才能访问。ACL 里的“允许”规则放错了顺序→ 路由器检查 ACL 时从上到下一条一条匹配。如果你先写“允许所有”permit ip后写“拒绝某 IP”那所有流量都被允许了后面的拒绝永远没机会执行。解决方法先写拒绝后写允许。二、实验拓扑你要搭的样子PC1 (192.168.1.10/24) ───┐PC2 (192.168.1.20/24) ───┼── 交换机 ─── 路由器 AR1 (GE0/0/0: 192.168.1.254)|(GE0/0/1: 192.168.2.254) ─── Server1 (192.168.2.100/24)PC1、PC2 网段192.168.1.0/24网关192.168.1.254Server1 网段192.168.2.0/24网关192.168.2.254路由器有两个口分别负责两个网段。这样PC1/PC2 访问 Server1 必须经过路由器。三、配置步骤简单到幼儿园① 在路由器上配 IP你不会忘的sysint g0/0/0ip add 192.168.1.254 24undo shutint g0/0/1ip add 192.168.2.254 24undo shut② 创建 ACL告诉门卫规矩acl 3000rule 5 deny ip source 192.168.1.10 0 destination 192.168.2.100 0rule 10 permit iprule 5编号 5拒绝deny从源 IP192.168.1.10发往目的 IP192.168.2.100的所有 IP 报文。0表示精确匹配这个 IP不是网段。rule 10编号 10允许permit所有其他 IP 报文。为什么编号是 5 和 10为了确保“拒绝”先执行编号小先匹配。如果你用默认的rule permit ip可能编号是 5那就会先放过所有流量。所以手动指定小编号给拒绝大编号给允许。③ 把 ACL 应用到路由器的内网口进方向int g0/0/0traffic-filter inbound acl 3000inbound对进入这个口的流量进行过滤也就是从 PC 端发来的包。四、验证看效果PC1 上执行ping 192.168.2.100结果Request timeout!100% 丢包 ✅ 被拦住了。PC2 上执行ping 192.168.2.100结果Reply from 192.168.2.1000% 丢包 ✅ 正常通过。五、如果你配了还是不行按这个顺序查六、一句话总结面试可以这样说ACL 就像大门的保安按小本本上的顺序检查。先查黑名单deny再查白名单permit。而且保安只拦“必须经过大门”的人跨网段流量如果大家在一个院子里串门同网段保安看不到