本帖最后由 佬狮姬 于 2020-3-3 09:01 编辑
一,原理部分 ACL分类:基本ACL、高级ACL、二层ACL等种类。
基本ACL(2000~2999):根据源IP地址、分片标记和时间段信息来匹配报文;
高级ACL(3000~3999):根据源IP地址、目的地址、IP协议类型、TCP源/目的端口、UDP源/目的端口号、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。当希望同时根据源IP地址和目的IP地址对报文进行过滤时,则需要配置高级ACL。
二层ACL(4000~4999):根据源MAC地址、目的MAC地址、二层协议类型等内容定义规则。 该命令可以应用ACL规则的时间段,灵活地配置ACL规则的生效时间;
二,实际操作部分 环境:在交换机上做ACL,只允许固定IP访问服务器,即只允许10.16.156.251能访问服务器192.168.0.60;
交换机:华为S5700
配置禁止和允许的IP:
acl 3000
rule permit ip source 10.16.165.251 0 destination 192.168.0.60 0
rule deny ip source any destination 192.168.0.60 0(后面发现这条命令存在问题)
流分类:
traffic classlifier tc1
if-match acl 3000
流行为:
traffic behavior tb1
permit
流策略:
traffic policy tp1
classifier tc1 behavior tb1
进入接口(g0/0/24上联口)
traffic-policy tp1 outbound
问题:配置后所有IP还是能访问服务器IP(192.168.0.60),配置不生效;
经过排查测试,配置命令没问题,只能试下配在服务器的接口;
dis ARP
查看到服务器对应g0/0/14口;
解决:进入g0/0/14口配置traffic-policy tp1 outbound,策略生效; 此时ACL生效了,不过新的问题来了!!!
问题:虽然只有10.16.156.251能访问服务器192.168.0.60,但是此时服务器上不了网了,再ping服务器网关192.168.0.1,不通。
挣扎1:在ACL3000中加一条
rule permit ip source 192.168.0.60 0 destination any 没解决问题,去掉此配置;
挣扎2:添加ACL3001
rule permit ip source 192.168.0.60 0 destination any
进入g0/0/14口配置traffic-policy tp2 inbound
想着在g/0/14口进的方向,允许所有的IP,但还是没解决问题,去掉此配置;
根源:rule deny ip source any destination 192.168.0.60 0 这条命令拒绝了所有的回包,也就是说在交换机上做了这个ACL,192.168.0.1的回不了包,所以服务器与网关不通,和华为技术沟通,这里不能写拒绝所有;
解决方案:
改为“rule deny ip source 10.16.156.0 0.0.0.255 destination 192.168.0.60 0”此时,10.16.156.X段只有10.16.156.251能访问服务器,服务器正常上网。客户192段禁用了,也符合客户需求。
|