如果组织在网络带宽方面的预算很紧张,那么应该避免采用TP-Link产品。因为根据该公司的设计,TP-Link的产品固件每5秒将发送6个DNS请求和1个NTP查询,每月将浪费用户715.4 MB的数据流量。
TP-Link一些中继器的固件(不包括路由器)在NTP上的流量大增,其中包括其所有的2017款产品,每月所浪费的流量达到715.4 MB。NTP是一种用于在网络上同步时钟的网络时间协议。如果进行一下比较:一台持续运行的Windows设备在NTP上每月使用的流量大约只有1.6 kB。
TP-Link的固件并没有配备任何类型的DNS缓存,他们每5秒钟查询DNS约6个NTP服务器池地址,然后向其中的一个发送NTP请求。而一直运行的Windows客户端每周只发送一个DNS和一个NTP请求(如果用户重新启动或暂停设备,则会发送一个附加请求)。
这意味着用户的TP-Link产品每5秒钟使用约1.38 kB的流量,也就是每天23.85 MB。每5分钟一个检查作为一个非常积极的检查间隔,每月只消耗11.92 MB的流量。
但这是为什么?
TP-Link公司却认为这种功能行为不是一个bug。他们滥用DNS和NTP作为互联网连接测试功能的替代者。这些类型的测试通常通过HTTP实现,并且每5到45分钟只对远程服务器进行检查。
TP-Link实施的这样功能有些过于激进,他们甚至没有在自己的服务器管理这种流量。相反却在滥用志愿者(如NTP项目池服务器)、大学和美国政府提供的公共基础设施。
TP-Link中继器似乎不能根据是否有可用的互联网连接来修改他们的行为(除了无法检测到DHCP服务器时,但这种情况与讨论的内容无关)。但据观察,通过研究TP-Link RE650的网络流量和行为,发现它只控制 “互联网状态:连接”字符串。 而对于Web管理界面上的一个字符串,客户每年只能访问一次,每个月却浪费7154 MB的流量,这种做法是愚蠢的。
更多的细节
TP-Link在其固件中对以下不可配置的NTP服务器和服务器池进行了硬编码:
time.nist.gov, time-a.nist.gov, time-b.nist.gov, time-nw.nist.gov
au.pool.ntp.org, nz.pool.ntp.org
133.100.9.2, 128.138.140.44, 192.36.144.22
第一行中,其服务器是由美国国家标准与技术研究院(NIST)运营。第二行中,采用的是澳大利亚和新西兰的公共NTP项目时间服务器池。第三行中。IP地址分别由日本、美国科罗拉多州、瑞典的大学所拥有。
NTP池项目要求设备制造商和供应商通过服务(例如tplink.pool.ntp.org)注册(和可选的赞助商)他们自己的服务器池,并强调他们“绝对不能使用默认的pool.ntp.org区名字”。
他们还要求供应商不必频繁检查,最多每5分钟检查一次。研究人员发现TP-Link的产品选择在全球范围的固件中使用澳大利亚和新西兰的服务器池。
这六个DNS请求的总和大约为75字节,平均响应大小为125字节。NTP请求是另外90个字节再加上90个字节的响应。再乘以每5秒一个请求,最后每月的数字最终达到715.4 MB。
如果用户的路由器有一个缓存DNS服务器,并且在请求时间方面较短,这个数字可以减少15%。而NTP池地址的缓存寿命非常短,甚至可能在到达路由器之前已经过期。
减轻或解决问题
用户可以选择不购买TP-Link产品来避免这个问题。因为用户不能在TP-Link的网络管理界面或移动版管理应用程序中关闭此功能。也不能更改它的目标NTP服务器地址。
用户可以设置防火墙规则,将其TP-Link产品限速为UDP端口123(NTP)上的一个传出连接,以限制NTP流量(每月数据使用量93.31 MB)。也可以对连接到三个硬编码IP地址进行限制。如果用户的TP-Link产品以访问点模式运行,也可以安全地限制其DNS查询(UDP到端口53)。请注意,这也会阻止用户检查设备上的固件更新,而且用户必须依靠TP-Link提供的网站才能找到固件更新。
用户的家庭路由器可能没有配置符合这些要求的防火墙规则所需的功能。而针对家庭市场的网络路由器只有配置输入和不能输出的防火墙,这很常见。
用户会抱怨TP-Link提供的支持。这是一个糟糕的功能,它会产生大量不必要的数据,TP-Link应该对此修复和改进。
带来的影响
当用户以兆字节为单位支付费用时,715.4 MB的数据也并不是微不足道的。对于使用移动电话、卫星通信,或其他昂贵的互联网连接选项的TP-Link客户来说,这个bug可能会让用户每月支付更加高昂的费用,而客户却不知道他们使用的TP-Link产品正在偷偷地占用他们的数据配额。
这对于采用高速宽带的消费者来说是数据量并不多。不过,人们可以大胆猜测一下,TP-Link公司售出了1亿台这样的设备,即每天传送给公共DNS和NTP基础结构的数据达到了2.385 PB(PB)或2385 TB。而这一点有些像一个小型的分布式拒绝服务(DDoS)僵尸网络攻击。
TP-Link公司在2016年销售了1.61亿台设备,但并没有详细说明其销售的设备类型。
希望TP-Link公司能够更新他们的固件来解决这个问题。但这些设备没有自动的固件更新检查和通知,甚至TP-Links网站在固件更新方面做得也不好。他们应该通过更新固件来解决这个问题,因为这是他们自己创建的这个问题。