关于ACL tcp-flag ack的实际应用案例(关于acl导管维护冲管盐水量叙述正确的是)

网友投稿 318 2022-09-19


关于ACL tcp-flag ack的实际应用案例(关于acl导管维护冲管盐水量叙述正确的是)

背景描述(现网案例):

1、AR01模拟总部,AR02模式分支机构

2、AR01总部为服务端,为分支机构提供服务

3、AR01总部在与分支机构互联的接口调用ACL,对分支机构访问总部做控制。

问题描述:

1、在总部与分支机构互联接口调用ACL,来控制分支机构访问总部(可以满足预期)

2、由于业务需求,有总部主动访问分支机构的需求,总部端主动发起TCP访问时,访问会有异常(AR01的loopback0去telnet AR02的loopback0时有异常,通过Loopback模拟业务地址。)

问题分析:

先来看tcp访问流程,拿telnet协议模拟tcp业务。

AR01 AR02 SYN ----------------------> SYN+ACK <----------------------- ACK ---------------------->

如上为TCP建链接的过程,acl只在AR01的互联接口调用(ACL配置见如下预配置)。

AR01预配置:

acl number 3000 rule 5 permit tcp source 2.2.2.2 0 destination 1.1.1.1 0 destination-port eq telnet rule 10 deny ip traffic classifier telnet operator or if-match acl 3000#traffic behavior telnet#traffic policy telnet classifier telnet behavior telnet#interface GigabitEthernet0/0/0 ip address 10.1.12.1 255.255.255.0 traffic-policy telnet inbound

如下为建链过程,会在SYN+ACK阶段遇到问题

1、SYN (1.1.1.1--->2.2.2.2)

源IP:1.1.1.1

目的IP:2.2.2.2

源端口:随机

目的端口:23

2、SYN+ACK (2.2.2.2--->1.1.1.1)

源IP:2.2.2.2

目的IP:1.1.1.1

源端口:23

目的端口:随机 (SYN+ACK目的随机端口号对应SYN的源随机端口号)

AR02回包SYN+ACK到AR01时,需要经过AR01的ACL检查,此时ACL里只允许了2.2.2.2-->1.1.1.1的目的23端口,而回包SYN+ACK目的端口为随机端口,这时ACL检查不通过,建链失败,导致通信异常。

解决方案:

可以通过调整TCP的ACK字段规避问题,即当一条流在经过ACL检查时,如果检查ACK字段置1,则允许其通过。

命令如下:

permit tcp tcp-flag ack

permit tcp syn-flag bit-match established

AR01调整后ACL配置:

acl number 3000 rule 5 permit tcp source 2.2.2.2 0 destination 1.1.1.1 0 destination-port eq telnet rule 6 permit tcp tcp-flag ack rule 10 deny ip


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:eNSP还能这样玩,你知道吗?(ensp学好有用吗)
下一篇:springmvc @RequestBody String类型参数的使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~