应用程序级负载均衡器后面的tcp_tw_recycle?

时间:2014-04-16 04:14:55

标签: amazon-ec2 amazon-elb

鉴于我们的linux服务器从未打开与客户端的直接连接,在它们上使用tcp_tw_recycle是否安全?

这些服务器位于应用程序级负载平衡器之后,我在其上看到的所有连接都在内部10.x.x.x地址之间。

由于

1 个答案:

答案 0 :(得分:1)

我们有AWS(ELB)提供的负载均衡器,所以我会根据这些提出建议:

为何赌博?如果您的开销/端口消耗来自快速客户端连接,则亚马逊建议在ELB上启用持久连接。 (我特意向他们询问了这个问题,得到了这个建议......我们的亚马逊联系人不建议启用tcp_tw_recycle)。

那就是说,如果,说它是另一个内部盒子,他们正在努力建立快速连接(apache-php代表客户端与MySQL聊天而没有持久连接),你或许可以侥幸逃脱:

如果所有客户端连接都是通过ELB进行的(请相应地设置您的安全组),那么从技术上讲,您不应该遇到tcp_tw_recycle时间戳跳转案例的问题,我知道:

  1. ELB是代表客户端的终止点(他们的NAT防火墙赢得了因素,ELB不是基于NAT的)
  2. ELB框不会自行重置,获取相同的IP地址,仍然被指定为您的ELB(如果发生的话,将成为其他人)
  3. ELB盒子不会被使用相同IP的另一台ELB机器取代,仍然作为您的ELB服务于您的流量(如果发生的话,将是其他人)
  4. * 2和3不是来自亚马逊的保证,但它似乎确实是他们的行为,就像停止/启动会为您获得EC2盒子的新私有IP一样)。如果确实发生了这种情况,我认为这是一个极低概率的事情。

    理论上,如果他们与其他服务机器(如MySQL或memcached)通信并重新启动(不停止/启动)其中一个盒子,或者将弹性IP移动到另一个盒子,那么理论上会遇到重新启动自己的盒子的问题。不使用私有IP进行内部聊天。但是你可以控制它。但是,如果它全部位于AWS云(或您的快速内部网络)上,则问题极不可能发生(除非您的AWS区域出现糟糕的一天,并且您因此重新启动/更换系统)。

    一个伙伴,我对此有一个长期的争论,他通过Neustar通过长时间运行的4k浏览器(快速脚本)负载测试来证明自己的观点...客户端没有连接问题ELB,并消除了开销帮助了很多: - )

    如果你还没有,请考虑使用tcp_tw_reuse(我们使用它来保持临时端口范围有效,然后上面提到的测试显示了为我们消除tcp_tw_recycle的开销的额外优点)。如果您决定禁用该协议块,请务必在ifconfig上查看计数器;-P。

    以下是关于时间戳跳跃主题的一个很好的摘要资源:Dropping of connections with tcp_tw_recycle