最后更新:2022-07-22 14:55:58 手机定位技术交流文章
在互联网上,域名是访问的第一步,而这一步通常是“令人失望”的(尤其是在移动网络上),导致访问错误、连接失败等,使用户在浏览互联网时感到轻松。
对于这一关键的第一步,包括国内的互联网巨头工厂,包括斯旺工厂,不断研究和思考对策,本文将是关于斯旺工厂的团队在这个技术实践部分,更深入的总结和技术分享,我希望给每个人带来一些启示。

但所有使用域名为用户提供服务的互联网企业,在中文式互联网环境中,多或少不可能避免各种域名被缓存和跨网用户缓慢访问的问题。因此,在100,00家互联网公司中,像Tencent这样的域名数量,域名分析异常的情况有多严重?
Tencent的分布式域名分析监测系统在全国各地不断探索所有关键的本地DNS(运营商的DNS服务),全国一百个域名的日常分析异常已经超过了八万条(在这方面,移动端的例外尤为突出。这给 Tencent 的业务带来了巨大的损失。为此,Tencent成立了一个专业团队,与各个运营商进行深入的沟通,但是由于各种原因,处理效率和效率不能满足Tencent业务部门的需求。
除了与运营商沟通之外,还有技术解决方案可以从底层解决域名分析异常和用户访问跨网络问题吗?这是一个许多国内互联网技术团队,包括Tencent,一直在思考的问题。
首先, DNS是什么?
为了了解本文讨论的DNS的各种问题,我们首先需要回顾DNS的基本原理和相关知识。
DNS的工作原理
DNS(Domain Name System,域名系统),DNS 服务用于在网络请求时,将域名转为 IP 地址。能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。
基于UDP协议的传统公共DNS服务高度易受DNS黑客攻击,造成安全问题。
典型的DNS域名系统结构如下:
1)根域名称:当使用DNS域名称时,它指定在句子的末尾处位于根或更高层次的域层次;
2)Top Level 顶级域名:用来指示某个国家、地区或组织使用的名称的类型名称。如 .net;
3)Second Level 域名:个人或组织在 Internet 上使用的注册名称。如 52im.net;
4)第三级域名:由注册的第二级域名衍生的域名,例如docs.52m.net。
DNS递归查询和迭代查询
递归查询:如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询。
迭代查询:当根域名服务器收到由本地域名服务器发送的迭代查询请求消息时,要么给出你想要查询的IP地址,要么告诉本地域名服务器您下一步应该查询的哪个域名服务器。然后允许本地域名服务器跟踪查询,而不是对本地域名服务器进行后续查询。
由此可见,客户端到 Local DNS 服务器,Local DNS 与上级 DNS 服务器之间属于递归查询;DNS 服务器与根 DNS 服务器之前属于迭代查询。
在现实环境中,由于使用递归模式导致大量DNS服务器流量,大多数DNS现在都是迭代模式。
国内移动网络面临的各种DNS误解
归纳一下, DNS 的三个主要问题是:
1)本地DNS劫持;
(二)平均访问延迟减少;
3)用户连接的故障率降低。
本地DNS劫持:因为HTTPDNS通过IP直接请求http到服务器的记录地址访问,没有向本地运营商查询域名分析过程,因此,劫持问题完全避免了。(对于http内容的tcp/ip层劫持,你可以使用验证因素或数据加密来确保数据传输的可靠性)即时通讯聊天软件开发可以添加v:weikeyun24咨询

平均访问延迟下降: 由于是ip直接访问省掉了一次domain解析过程,(即使系统有缓存速度也会稍快一些‘毫秒级’)通过智能算法排序后找到最快节点进行访问。
用户连接失败率降低:通过算法将服务器序列降低到以前的失败率以上,通过访问最近的数据增加服务器序列,通过成功记录历史访问来增强服务器序列.如果IP(a)访问错误,在下一个ip(b)或ip(c)序列之后返回记录。
首先,我们必须了解目前国内互联网服务提供商可用的LocalDNS的基本知识。
本地DNS在国内航空公司造成的问题可以归因于以下三个原因:
域名缓存;
解析转发;
LocalDNS返回出口NAT。
接下来,让我们逐一分析一下。
域名缓存
域名缓存很好理解,就是LocalDNS缓存了腾讯的域名的解析结果,不向腾讯权威DNS发起递归。
为什么LocalDNS缓存域名分析结果?有几个原因:
(一)确保用户访问流量在网站内消化:中国互联网接入营办商的带宽资源、网络间结算费、IDC办事处的分配和网络中的ICP资源的分配有很大差异。为了确保网络中的用户访问质量,同时减少跨网结算,运营商已经在网络中建立了内容缓存服务器,迫使域名指向内容缓存服务器的IP地址,实现目标,让本地网站的流量完全本地;
2)广告转发:一些LocalDNS缓存某些域名分析结果的目标内容,并以第三方广告联盟的广告取代它。
上述类型的行为是我们通常称之为域缓冲,域缓冲可以使用户产生以下访问异常:
A、仅对80端口的http服务做了缓存,如果域名是通过https协议或其它端口提供服务的,用户访问就会出现失败。比如支付服务、游戏通过指定端口连接connect server服务等;
B.缓存服务器的操作水平不一致,有时存在缓存服务器故障问题,导致用户异常访问。
解析转发
除了域名缓冲器外,还存在在操作员的LocalDNS中分析转移的现象。 分析转移是指操作员本身不进行域名递归分析,而是将域名分析请求转移到其他操作员的递归 DNS。
为了节省资源,一些小操作员将分析请求直接转移到其他操作到LocalDNS:
直接的后果是,Tencent的权威DNS接收的域名分析请求的源IP变成了其他运营商的IP,最终导致用户流量被错误的IDC引导,用户访问速度减慢。
本地DNS返回出口NAT
本地DNS返回出口NAT指的是运营商的LocalDNS按照标准的DNS协议进行递归,但是由于在网络上有许多出口,并且目标路由NAT已经配置,结果导致LocalDNS在出口IP不是网站的IP地址时进行递归分析。
其直接后果是,GSLB DNS接收的域名分析请求的源IP变成了其他运营商的IP,最终导致用户流量被错误的IDC引导,用户访问速度降低。
本文由 在线网速测试 整理编辑,转载请注明出处。