S5700 ACL会误阻断数据流

发布时间:  2016-12-22 浏览次数:  350 下载次数:  0
问题描述
组网如下图所示:


在S5700-EI上面配置了流策略,限制vlan 12网段只能访问特定的其他网段并且vlan 12之间不能互访,使用acl的拒绝vlan 12之间互访的时候,上面的172.29.12.129无法ping通E6000下面服务器虚拟出来的IP地址,把最后的一条deny删除之后最上面ping 服务器的实地址和虚地址都是通的;
 
设计到的配置如下:
 
#
acl number 3012
rule 5 permit ip source 172.26.12.0 0.0.1.255 destination 172.26.20.0 0.0.1.255
rule 10 permit ip source 172.26.12.0 0.0.1.255 destination 172.26.50.0 0.0.0.255
rule 15 permit ip source 172.26.20.0 0.0.1.255 destination 172.26.12.0 0.0.1.255
rule 20 permit ip source 172.26.50.0 0.0.0.255 destination 172.26.12.0 0.0.1.255
rule 25 deny ip destination 172.26.0.0 0.0.255.255
#
traffic classifier c3012 operator and
if-match acl 3012
#
traffic behavior b3012
statistic enable 
#
traffic policy p3012
classifier c3012 behavior b3012
#             
vlan 12
traffic-policy p3012 inbound
处理过程
根据调用的流策略来看,只对vlan 12 inbound方向生效,不会对vlan 12 outbound方向生效的,从上面往下面服务器的流量是vlan 12的outbound方向;

对流行为开启流量统计并把对应的ping报文全部放开,ping服务器地址之后查看流统的结果:

修改ACL如下:
 
#
acl number 3012
 rule 5 permit ip source 172.26.12.0 0.0.1.255 destination 172.26.20.0 0.0.1.255
 rule 10 permit ip source 172.26.12.0 0.0.1.255 destination 172.26.50.0 0.0.0.255
 rule 15 permit ip source 172.26.20.0 0.0.1.255 destination 172.26.12.0 0.0.1.255
 rule 20 permit ip source 172.26.50.0 0.0.0.255 destination 172.26.12.0 0.0.1.255
 rule 25 permit icmp source 172.29.12.129 0 destination 172.26.12.2 0
 rule 30 permit icmp source 172.29.12.129 0 destination 172.26.12.3 0
 rule 35 permit icmp source 172.29.12.129 0 destination 172.26.12.4 0
 rule 36 permit icmp destination 172.29.0.0 0.0.255.255
 rule 37 permit ip destination 172.29.0.0 0.0.255.255
#
 
在最上面的pc去ping 最下面的服务器的实地址和虚地址,只有实地址是通的虚地址不通,但是对应的acl里面的icmp报文没有匹配计数,只有deny的规则计数在增加;
 
尝试在acl里面把到网关的数据流permit之后测试没有问题,经确认服务器虚拟出来的地址在通信的时候还要跟网关有数据交付,acl里面把到虚拟地址网关的数据流放行之后问题解决。
根因

服务器虚拟出来的地址在通信的时候还要跟网关有数据交付,acl 里面把到网关的数据流给deny了,导致可以ping 通服务器的实地址无法ping通服务器的虚地址。

解决方案
在acl 里面一条规则:到内网服务器网关的数据流permit之后问题解决。

END