Java编程实现NBA赛事接口调用实例代码
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~