云服务器ECS或RDS无法访问

如果客户端配置NAT后无法访问远端ECS、RDS,包括配置了SNAT的VPC中的ECS实例,同时无法访问其他ECS或RDS等云产品,抓包检测发现远端ECS和RDS对客户端发送的SYN包没有响应。

原因分析

若远端服务器的内核参数net.ipv4.tcp_tw_recyclenet.ipv4.tcp_timestamps的值都为1,则远端服务器会检查每一个报文中的时间戳(Timestamp),若Timestamp不是递增的关系,不会响应这个报文。配置NAT后,远端服务器看到来自不同客户端的源IP相同,但NAT前每一台客户端的时间可能会有偏差,报文中的Timestamp就不是递增的情况。

解决方法

  • 远端服务器为ECS时,修改net.ipv4.tcp_tw_recycle参数为0。
  • 远端服务器为RDS等PaaS服务时。RDS无法直接修改内核参数,需要在客户端上修改net.ipv4.tcp_tw_recycle参数和net.ipv4.tcp_timestamps参数为0。

本文来自投稿,不代表程序人生-爱否编程,if programmer立场,如若转载,请注明出处:https://www.if98.com/328131696/blog/share/1910.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

公司战略调整:专注云产品的同时研发云方案、云技术;欢迎行业大枷入驻云技术社区,共创未来。产品管理请访问:yun.byun.com