S7700交换机acl配置问题导致下行业务不通

发布时间:  2015-05-17 浏览次数:  185 下载次数:  0
问题描述

组网:
(10.0.0.4)PC1----(G1/0/0 vlan 100)S7700-1(G2/0/0 trunk vlan 100 200)----(trunk vlan 100 200 G2/0/0)S7700-2(G1/0/0 vlan 200)-----PC2(20.0.0.4)
S7700-1和S7700-2对vlan100和vlan200启用VRRP。S7700-1是两个VRRP的主!
其中:
              vlan 100           vlan 200
虚拟ip地址      10.0.0.1          20.0.0.1
S7700-1         10.0.0.2          20.0.0.2
S7700-2         10.0.0.3          20.0.0.3
要求:
vlan 100中只允许pc1能访问vlan 200中的ip地址,其他均不能访问!
问题:按照要求,在S7700-1上配置了acl,并且在vlan 100中下发:
acl number 3001
  rule 0 permit ip source 10.0.0.4 0 destination 20.0.0.0 0.0.0.255
  rule 1 deny ip
traffic class jinzhi
  if-match acl 3001
traffic beha jinzhi
  permit
traffic policy jinzhi
  class jinzhi beha jinzhi
vlan 100
  traffic-policy jinzhi inbound
按照这个配置后,发现PC1能ping通20.0.0.4,也不能ping通其他vlan下挂的PC。但是发现pc1不能ping通S7700-2上面的20.0.0.3。

告警信息

处理过程

1、pc1能ping通20.0.0.4不能ping通vlan的ip地址,说明acl已经生效!
2、pc1能ping通20.0.0.4不能ping通20.0.0.3,于是检查这两个ip地址的不同。
pc1能ping通20.0.0.4:pc1发出目的地址是20.0.0.4的报文,发送S7700-1上此时检查acl,发现是允许通过,于是在S7700-1上查找arp,发现有vlan 200的arp表项,于是S7700-1按照直链arp将报文发送给pc2(注:此时S7700-2是二层vlan透传),pc2收到该报文后,在vlan 200中回应给S7700-1,然后S7700-1在vlan 100中给pc1回应。
那个,pc1 ping 20.0.0.3的流程呐?
pc1发现目的地址为20.0.0.3的报文,在vlan 100中发送给S7700-1,此时匹配acl,S7700-1发现目的地址为直链arp,于是在vlan 200中转发给S7700-2。当S7700-2接收到该报文后,需要检查回程报文的出接口,此时由于S7700-2是vlan 10的VRRP的备设备,所以此时S7700-2是有pc1的arp表项的,于是S7700-2回应的报文是在vlan 10中回应的。此时当S7700-1在vlan 100接收到S7700-2回应的报文,此时S7700-1对于该报文需要检查acl,发现源地址为20.0.0.3、目的地址为10.0.0.4,于是将其deny掉。导致不通。
3、问题原因找到,为配置问题;
解决方法:
需要在acl中添加配置:
acl number 3001
  rule 0 permit ip source 10.0.0.4 0 destination 20.0.0.0 0.0.0.255
  rule 1 permit ip source 20.0.0.0 0.0.0.255 destination 10.0.0.4 0
  rule 2 deny ip
更改后问题解决!

根因

acl配置问题

解决方案

在acl中添加配置: 
acl number 3001 
  rule 0 permit ip source 10.0.0.4 0 destination 20.0.0.0 0.0.0.255 
  rule 1 permit ip source 20.0.0.0 0.0.0.255 destination 10.0.0.4 0 
  rule 2 deny ip 

END