今天针对某一个vlan做了一下acl限制,结果导致ssh的访问非常慢。表现为服务器A(1.1.1.5)通过ssh登陆服务器B(2.2.2.5)时敲入ssh命令回车后会有3s内没有响应,然后提示输入密码,而后一切正常。从此vlan上将此ACL取消后,ssh登陆的速度就恢复正常了。
ACL命令如下:
ip access-list extended fromv20
permit icmp any any
permit ip any host 224.0.0.2
permit tcp any 1.1.1.0 0.0.0.255 established
int vlan 20
ip access-group fromv20 in
从现象上看,肯定是acl有问题。于是,在acl上添加了一条"40 deny ip host 2.2.2.5 any log”进行日志查看到底有什么流量被拒绝了。结果发现在ssh的同时,2.2.2.5到3.3.3.6的dns请求包被拒绝了。当将这条改成"40 permit ip host 2.2.2.5 any log”后,ssh就正常了。从而确认了问题所在。是由于目标服务器B在接受到请求服务器A的ssh请求后,它会反向解析服务器A的hostname,如果查询正常则速度很快,但是如果查询几次失败后也不影响到ssh的响应。其实可以在sshd_config中将这个反向dns请求关掉。这就避免了这个问题了。
问题总结分析:在部署ACL后发现异常问题是,可以通过添加一条ACE并打上log来查看流量问题。从而确定是不是有一些必要的数据流被ACL拒绝了。