首页
学习
活动
专区
工具
TVP
发布

微软称,重写 SNAT 来改善 Azure 负载均衡!

当数量众多的云端口不够用时……

微软重写了源网络地址转换(SNAT)协议的运作机制,此举旨在改善Azure的负载均衡性能。

源网络地址转换是分配IP端口号的一种特殊机制,让路由器很容易在多台Azure服务器之间传输数据流。在TCP/IP协议栈中,“port”(端口)是标头中的一个寻址字段,标头用来识别主机(由于入站数据流发往路由器,而不是发往服务器)和协议。在负载均衡中,客户分配的端口负责识别与客户数据流有关的服务器实例。

最初,SNAT与一组预分配的动态端口(160个)配合使用,如果数据流耗尽了分配给客户的端口,就为他们提供额外的端口。

据Azure的软件定义网络运营项目经理拉曼•迪普•辛格(Raman Deep Singh)撰写的这篇博文(https://azure.microsoft.com/en-us/blog/azure-load-balancer-to-become-more-efficient/)声称,微软已发现了这种机制无能为力的使用场合。

辛格写道,如果一项服务将数据流发往大量的外部端点,现有的SNAT模式运作良好,可生成匀速数据流。

但是当大量数据流发往少数几个外部目的地时,SNAT就会有问题:“初始分配的端口会在短时间内被耗尽”,结果连接时断时续。

该博文继续写道:“如果使用按需模式,端口不是均匀分布的。这导致对于后端池中的一些实例来说SNAT端口分配的未决状态(pending state)持续时间更长。”

因此经过修改的SNAT旨在使端口分配更易于预测(即更稳定):“所有的可用端口是预先分配的,在Load Balancer(负载均衡系统)平台的后端池当中均匀分布,具体取决于池大小。”

以下是可用端口分配情况:

现有部署环境将在2018年夏天之前迁移到新的SNAT模式。

无论是订购Azure标准SKU负载均衡系统平台还是订购基本SKU负载均衡系统平台(和经典云部署),新客户将立即被分配新的SNAT模式。

微软预计新模式不会出现问题,除了这种情况外:服务要求许多单个实例进行大量的SNAT连接。在这种情况下,辛格提醒读者不妨阅读关于应对SNAT耗尽情况的这篇文章(https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections#snatexhaust)。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180227A1HYZ100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券