当前位置:首页 > 短网址资讯 > 正文内容

域名解析实践——HTTPDNS

www.ft12.com4年前 (2017-05-07)短网址资讯3930

几乎一切需求网络连接的使用都会依赖域名体系(Domain Name System,DNS)。域名解析效劳一般作为一次网络连接的先导,将人们便于记忆的计算机名称解析成计算机合适处理的网络地址。因而DNS安稳效劳是上述网络使用正常运转的条件,地位举足轻重。

DNS的设计和架构让人拍案叫绝,可是在实践使用中也存在着多种多样的疑问,特别是处于国内的网络环境中。近期,业界出现了一种HTTPDNS的处理计划,能够有用的处理DNS实践使用中面临的一些疑问。那么什么是HTTPDNS,它和DNS相比有哪些差别?它的作业原理是什么?为什么能处理上述疑问?现在布置的HTTPDNS效劳有哪些优势?要回答上面这些疑问,首先还需求科普一下DNS的根本概念和作业原理。


DNS是怎么运转的

DNS其实是一个以域名(Domain Name)为索引,存储域名对应主机信息的数据库。每个域名由字符标签(label)和点号(.)间隔构成,全体域名构成了域名空间,这个域名空间能够看做是一颗由域名标签逆向生成的树。树的根节点是长度为0的空标签。节点所代表的域名是从节点自身开端,沿途径向上并由点号分隔途径上各个标签生成的字符串。比方下图的 360app.ft12.com ,但出于简便一般会将终究的点号省掉。360app.ft12.com,与第4步类似,com效劳器回来jd.com效劳器的地址。

6. Local DNS接着向jd.com效劳器恳求360app.ft12.com,依据第2步的逻辑,因为jd.com效劳器自个就能够解析jr.jd.com,呼应中会回来终究解析成果。

7. Local DNS将该成果附在递归恳求的呼应中回来给解析器。

依照这种逻辑,越靠近根的效劳器压力越大。为了下降这种开支,Local DNS会做一层缓存。每次迭代恳求的成果会缓存在Local DNS本地一段时刻,详细时长遵从威望DNS上依据该域名所装备的TTL。因而,短期内经过该Local DNS恳求www.baidu.com这么的域名,就会越过上述进程的第4步。


DNS在当时使用中面临的疑问

域名绑架

攻击者在用户在拜访正常效劳时,经过影响该效劳的DNS解析成果将效劳恶意引向其他地址,用户正常拜访效劳时,却被引向了广告页面或许钓鱼网站等。域名解析作为互联网拜访的第一跳,绑架的价值最大。惋惜的是,DNS协议缺少安全保护,绑架的价值很小。

比方进行DHCP诈骗,在终端接入网络时,使得终端上的DNS地址装备为“黑色DNS”的IP,随心所欲的控制域名解析成果;还有攻击者在局域网中经过ARP诈骗伪装成出口网关,当局域网内正常用户拜访外网效劳时,截取DNS恳求,回来诈骗性的解析成果;或许更直接的侵入网络监听,当发现有特定DNS恳求时,敏捷回复该DNS恳求的诈骗性应对,这对于UDP根底上的明文传输价值并不高,在攻击者间隔用户比实在DNS更近时有很高成功率。另外,当时国内主干网间结算的方法乃至使有的运营商为了保证流量本网转发,直接修正LocaDNS上的解析成果。


智能解析不精准

智能解析是指DNS效劳器依据必定的战略,对同一域名作出各不相同的解析应对。经过DNS智能解析,能够对事务流量进行全局的调度。

在最常见的状况下,效劳供给者若要提高事务拜访的质量,应在多地、多AS域内布置效劳集群,并将事务拜访引导至间隔用户近来的集群上。因为edns-client-subnet协议的支持程度并不高,威望DNS一般经过Local DNS的出口IP来判别用户当时的地理位置以及运营商信息,联系GSLB战略,将最合适该用户的事务集群地址作为解析成果回来给用户。

该计划的关键在于威望DNS要能够经过Local DNS的出口IP精确辨认用户的信息,但实践上这严峻依赖于运营商Local DNS的详细布置。在上图中,假如用户Local DNS B不依照常规流程由自个向威望DNS建议迭代查询,而将查询恳求转发给Local DNS A,或许爽性用户B的Local DNS即是Local DNS A(比方云南用户没有被分配放在西南地区的Local DNS,而被分配了个放在北京的Local DNS),那么都会造成用户B的流量被调度到事务集群A上,而这在上图中并非最优的事务拜访。


解析改变收效慢

为下降威望DNS一侧的解析压力,Local DNS上一般会有一层缓存。Local DNS会将此前的查询成果缓存一段时刻,这段时刻内假如Local DNS再收到相同的解析恳求,会将缓存的成果作为解析应对。因而在缓存有用的时刻段内,假如威望DNS的解析内容发作,该Local DNS所效劳的用户是不感知的。

一些运营商为了节约流量结算费用,将缓存有用期强制延伸乃至数小时之久。显而易见,这会致使事务供给者依据DNS解析的全局流量调度灵敏性严峻下降,在依据DNS解析的灾备切换场景中,还会致使对使用户长期的事务不可用。

 

效劳安稳性差

域名解析的第一步是拜访Local DNS,因为Local DNS一般由网络运营商独立布置,其效劳水平一般良莠不齐。一些小运营商运维水平不高,硬件条件有限,其Local DNS遍及存在着可靠性不高,毛病频发的疑问。加之Local DNS的调度遍及存在着跨运营商网络,跨地域的疑问,使得Local DNS与用户之间传输质量下降,进而难以供给安稳优质的域名解析效劳。

 

HTTPDNS处理计划

上述疑问的本源在于DNS协议自身安全性不高和Local DNS分布式布置带来的不可控因素。HTTPDNS即是针对于这两个方面进行改进的域名解析计划。它承载于HTTP协议之上,终端将HTTPDNS的效劳IP固化在本地,直接向HTTPDNS效劳器建议通讯恳求,然后绕过了运营商的Local DNS,并获取到最精确的域名解析成果。因为触及到修正使用的域名解析进程,HTTPDNS当时主要使用在移动端域名解析上。

下图对HTTPDNS处理计划以及京东金融HTTPDNS的完成做了一个简略的说明:


HTTPDNS效劳端由HTTPDNS-SERVER,HTTPDNS-WEB和HTTPDNS-DB构成。HTTPDNS-SERVER接受查询恳求,解析域名并生成呼应;HTTPDNS-WEB办理HTTPDNS-SERVER集群,供给HTTPDNS的运维管控功能;HTTPDNS-DB存储体系有关数据。运维人员经过HTTPDNS管控平台下发解析装备,m.jdjr.com的解析装备规则被写入数据库以后,会经过HTTPDNS-WEB同步到一切HTTPDNS-SERVER节点上。HTTPDNS-SERVER集群承担着域名解析作业,并对外露出IP地址2.2.2.2。

客户端中固化了HTTPDNS效劳IP(2.2.2.2),在有对于域名m.jdjr.com的事务使用时,带着查询域名m.jdjr.com直接向HTTPDNS效劳地址建议HTTPDNS解析恳求。效劳器在呼应中答复m.jd.com的地址为4.4.4.4;客户端收到以后,向事务效劳器4.4.4.4建议事务协议恳求。以HTTP恳求为例,经过在header中指定host字段为m.jdjr.com,向4.4.4.4发送标准的HTTP恳求即可。

另外,依据容灾的思考,HTTPDNS处理计划仍保留了传统域名解析的流程,在HTTPDNS不可用的极端条件下,域名解析依然能够经过传统域名解析计划来完结。

 

HTTPDNS商品的技术优势

安全防绑架

HTTPDNS域名解析计划最杰出的优势在于其防域名绑架的才能。

域名绑架的场景有相当一部分是运营商充当主角。因为HTTPDNS解析恳求被直接发往效劳供给方的HTTPDNS效劳器,绕过运营商的Local DNS,天然避免了Local DNS上域名解析缓存被更改所致使的域名绑架。

其次,HTTP协议依据TCP。对UDP的报文诈骗仅仅需求在真正的呼应包抵达前回复诈骗性的呼应包即可;TCP为了保证端到端的可靠传输,会对所发送出的每个数据包都分配序列编号,收发双方使用序列号来确认数据包的先后顺序,因而,对TCP的报文诈骗还需求监听并伪造网络数据包的序列号,报文诈骗价值更大。

更进一步,采用HTTP协议传输仍能够保留现有的对于HTTP的安全机制,如HTTPDNS效劳自身可供给HTTPS接口或许在HTTP传输的根底上参加私有的安全机制。

京东金融的HTTPDNS完成就供给了多种安全接口,除了使用根本的HTTP明文传输以外,还供给了HTTPS接口。能够在正式的数据通讯前认证效劳器的身份,并在使用层加密全部域名解析的通讯进程,达到防偷听、防冒充、防篡改的作用。在此根底之上,商品还接入了独立的签名效劳,完成了经过带着签名信息达到防篡改、防域名绑架的查询接口。

Client端在有域名解析需求时,向HTTPDNS效劳的该接口建议域名查询恳求,HTTPDNS在完结域名解析生成HTTP呼应报文以后,还会对报文做一次签名操作,思考到签名私钥安全性,HTTPDNS商品完成具有向独立的签名效劳器恳求签名的才能。Client端在收到带着签名的报文时,假如成功解签,则认为该报文未被第三方篡改正,并信赖其间的域名查询成果。

上述的安全机制保证了在通讯进程中,即使中间人在网络层以下截获报文,也无法有用篡改通讯内容,使其绑架域名的价值极大,根本变成不可能。多种安全机制的接口使用能够依据自身的安全需求和成本思考选择性接入。


智能解析调度精准

造成传统DNS智能解析不精准的本源在于布置紊乱的Local DNS,以及edns-client-subnet协议的支持程度不高。HTTPDNS解析计划因为绕过了布置紊乱的Local DNS,从终端一直到HTTPDNS效劳器的网络层之上,效劳供给方完全不依赖于第三者。效劳供给方能够依据这个属性,依据恳求中带着的多元化的信息,比方用户的地理位置或许软件版别等,愈加精准的进行流量调度,更便利精细地优化用户行为。

京东金融HTTPDNS效劳支持恳求中带着用户IP,依据最新的IP地址库,使得效劳器能够精准的判别用户地点网络的地理位置和运营商信息,在目标域名对应的IP集合中,选取最优事务节点的地址回来给客户端,让客户端就近拜访事务节点。一起,事务也能够自个将调度逻辑与HTTPDNS回来成果相联系,比方指定版别拜访指定事务IP等。



上图对使用HTTPDNS进行流量精准调度做了举例说明。因为国内网络跨网拜访质量较差,事务效劳器被一起布置在两个运营商的网络上——在中国移动网络上布置了效劳节点A(2.2.2.2)和在中国电信网络上布置了节点B(3.3.3.3),当客户端有对于m.jdjr.com的事务使用时,可直接向HTTPDNS效劳地址(1.1.1.1)恳求其域名解析效劳,恳求中带上用户当时IP地址。当中国移动网络接入的用户A建议恳求时,客户端将当时移动IP(5.5.5.5)作为cip参数传递给HTTPDNS,HTTPDNS依据IP库信息,辨认出5.5.5.5属于中国移动网络,则向用户A回复了移动网络下m.jdjr.com的效劳器地址2.2.2.2。相同,联通用户B(6.6.6.6)从HTTPDNS所获取的IP是3.3.3.3。然后使客户端获得了对于m.jdjr.com的最优事务拜访。

 

解析改变直接收效

HTTPDNS另一个优势是能够完成域名解析改变秒级敏捷收效。前文说了,出于下降威望DNS的效劳压力和解析时延的目的,Local DNS上会做一层缓存,缓存有用时长TTL由该域名威望DNS装备。可是因为装备和战略良莠不齐,许多Local DNS并不遵从域名TTL设置的缓存时长而强制延伸缓存有用时刻。HTTPDNS域名解析计划从效劳器到终端坚持独立,使用层上不对第三方发生依赖,效劳器与终端直接通讯。Client端能够获取HTTPDNS效劳器上对于目标域名的最新解析成果。


在京东金融的HTTPDNS完成中,一次域名改变的数据流如上图所示。HTTPDNS-WEB管控供给装备下发接口,在数据校验完结并写入数据库以后,该数据将经过管控节点敏捷同步至一切的HTTPDNS-SERVER效劳节点上。终端建议查询后,所收到的呼应不会来自于不可控的第三方缓存,而是HTTPDNS-SERVER依据最新域名装备信息的解析应对。

在一些事务场景中,对域名解析改变的收效时刻对比敏感,比方效劳器毛病,希望经过域名解析迅速切走流量时,HTTPDNS解析的迅速收效就显得非常有意义。

 

安稳可靠

作为事务拜访的前置环节,在HTTPDNS的实践布置中,还需求思考HTTPDNS效劳自身的高可用性。事务效劳方自个运维布置的HTTPDNS能够规避大大小小的运营商运维水平参差不起而形成的效劳短板。

京东金融HTTPDNS效劳多节点多运营商线路布置,地理容灾;一起,每个效劳节点都由多台效劳器构成效劳集群,保证了效劳的高可用性。依据效劳质量,内地大部分用户主动选择布置在内地对应运营商的效劳节点,港澳地区海外用户主动选择香港节点,均由最优的HTTPDNS节点供给解析效劳。当某节点改造下线或临时毛病时,效劳将平滑切换到原次优节点;一起,后续有新节点布置上线时,新建节点也能够被自主发现,无需终端和效劳端做任何改造,平滑的参加效劳节点参与效劳。


ft12短网址平均解析时延低

对于解析时延,能够从抱负条件下和实践状况下两个维度来评价。传统DNS解析的时延包括与Local DNS之间UDP包的往复时刻和多次迭代查询的往复时刻;而HTTPDNS解析时延主要由TCP建链以及HTTP数据包的往复传输发生。

实践使用中,网络质量对解析时延的影响往往更大。假如接入网络布置水平较差,Local DNS网络糟糕,比方存在跨网拜访Local DNS的状况,那么域名解析时刻将会大大增加。HTTPDNS计划中不存在布置质量差的Local DNS,在接入网络布置水平较差的条件下,解析时延将会显着下降。

但在网络条件杰出的抱负状况下,HTTPDNS尽管节约了多次迭代查询所发生的延时开支,相较于实践网络中传统DNS大多承载在UDP上,却增加了TCP建链的时刻开支。因而假如两者都处于正常布置的抱负条件网络,就某一次查询而言,HTTPDNS并不会在传统DNS的根底上节约出非常显着的时刻。

可是HTTPDNS处理计划的优势在于终端能够依据使用场景,对HTTPDNS的解析成果做多种多样的缓存优化操作。京东金融HTTPDNS的SDK就集成了多种这么的缓存优化,能够依据战略对一些热点域名提早解析缓存,以及在用户切换接入网络或许用户地理位置发作较大变动等特定条件下主动改写缓存。使用在嵌入SDK以后,能够摒除一些与HTTPDNS域名解析有关的逻辑,使得HTTPDNS的使用接近于透明化,一起在上层事务一旦需求域名解析时,又能够0时延直接供给最精准的解析成果。当然,缓存时刻由HTTPDNS效劳端合理装备,附在解析应对中,作为使用自个可控地改写缓存的参考,兼顾解析改变的收效时刻。

HTTPDNS作为一种较新的域名解析计划,完成成本低,改造动作小。域名解析所采用的协议,包括安全需求较高的接口,都是依据现在已有且非常完善老练的协议体系。其恳求和呼应的构造简略清晰,不触及过多的基层细节。接入HTTPDNS的使用还能够嵌入商品供给的SDK,经过简略调用,就能够处理当时域名解析事务的诸多痛点。一起,其架构的灵活可控也使得HTTPDNS具有了高扩展性。其与传统DNS相辅相成,在移动端上已经得到了非常广泛的使用。



扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_44.html

分享给朋友:

相关文章

FT12短网址:亚马逊推荐二十年

原文链接:https://www.computer.org/csdl/mags/ic/2017/03/mic2017030012.html近期,IEEE Internet Computing上发表了一篇名为《亚马逊推荐系统二十年》的文章,提...

AppStore算法再次升级,运营如何在ASO中破冰?

AppStore算法再次升级,运营如何在ASO中破冰?

作者:刘兴时史上最严厉的AppStore算法来了,黑色5月一点都不夸张!近段时间,笔者发现移动互联网圈里做运营推广的朋友挺抓狂的,大家都在吐槽AppStore,吐槽点集中在“最近的评论都被AppStore删除了,ASO真的没法做了”史上最严...

手机QQ打开网址自动跳转浏览器php源码

通过一段代码让网址在手机QQ内被点击时自动打开默认浏览器跳转,但是这段代码并不完美,经过几个后缀不同的域名的测试,只有访问.cn或者.com域名时才能正常的跳转。这个代码适用于很多方面,例如使被QQ管家拦截的域名在手机QQ内通过跳转能够得到...

实战Guzzle抓取

虽然早就知道很多人用 Guzzle 爬数据,但是我却从来没有真正实践过,因为在我的潜意识里,抓取是 Python 的地盘。不过前段时间,当我抓汽车之家数据的时候,好心人跟我提起 Goutte 搭配 G...

2017年哥大毕业典礼演讲之李开复:内心比大脑重要

2017年哥大毕业典礼演讲之李开复:内心比大脑重要

5月15日,创新工场创始人兼CEO、人工智能工程院院长李开复博士作为特邀嘉宾,在纽约哥伦比亚大学工程学院向2017届结业生们宣告了题为《工程师的人工智能银河系周游指南》结业讲演。作为哥大83届结业生,他获益于这所大学年青、活泼、新锐、自在的...

机器学习突飞猛进,早期癌症治愈率或将突破98%

机器学习突飞猛进,早期癌症治愈率或将突破98%

[ 短网址资讯 ] 近十余年基因测序技能的迅猛开展,特别是在肿瘤范畴的广泛使用。另一方面,机器学习技能在基因大数据处理上的很多使用,积累了史无前例的常识。使得医学作业者对很多疾病的知道、筛查和医治都有了新的渠道和信息。2016年,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。