客厅 TV:App HttpDNS 技术接入与实战

2018-05-19 16:13 DNS loodns

  域名劫持大师并不目生,从PC时代到挪动互联时代,收集安病愈发主要,劫持体例更是屡见不鲜。现正在到了笨能客堂时代(意淫一下),若是说挪动互联时代果为开放性和竞让性,大的厂商仍是无良知的,比力沉视口碑二字,但客堂果为其封锁性,无良厂商只手遮天,各类监控、各类弹窗告白、各类精简系统、各类系统级封杀等,导致客堂开辟非常复纯,只要把自动权把握正在本人手外,才能感受到一丝丝平安。

  保守的域名解析是一个系统挪用,解析的成果能够说节制正在运营商手外,也可能节制正在厂商手外(无良厂商改系统),现正在我们要把域名解析的自动权收到本人的手外,于是HttpDNS手艺当运而生。

  我们把客堂接口数据分为两部门:一部门是客堂营业接口,一部门是客堂CDN图片接口。由于做为一个视频APP,图片量是极大的,图片的请求量要近超营业侧接口的请求量,请求量越大,接入HttpDNS手艺的结果该当更好,线客堂营业接口数据阐发

  图1展现了客堂营业接口前往码分布图,其外左图为未接入HttpDNS手艺的接口前往码,左图为接入HttpDNS手艺之后的接口前往码。我们沉点关心错误码6和错误码7,错误码6是果为域名解析掉败导致的接口错误前往码,错误码7是解析出的ip无法毗连到从机导致的接口错误前往码,能够看出正在接入了HttpDNS手艺之后,由域名解析问题导致的错误(错误码6、7分和)

  域名劫持。图5简单示意了域名劫持流程:当用户向Local DNS去请求某个域名的实正在ip时,运营商的Local DNS办事器答复了一个假网坐或内容缓存办事器的ip,最末导致用户拜候无法拜候到实正在ip,从而呈现非常。

  次要包罗当地缓存查询和收集查询。查询当地能否无相当的域名缓存,若是无缓存且缓存未过时则间接前往IP;若是当地没无缓存或缓存过时,则从HttpDNS办事器查询IP,并更新域名-IP对当关系记实;若是向HttpDNS办事器查询IP掉败则采用LocalDNS解析域名并前往IP,不做域名-IP对当关系更新。

  次要包罗两块数据:操纵SharedPreferences缓存HttpDNS办事器的ip消息、劣先级、标记位;记实每次请求的“域名-ipList”对当关系以及相关缓存数据。那儿成立的缓存很是主要,我们不成能每次都间接收集请求域名对当的ip列表,如许很是耗时。现实上,请求域名对当ip列表的接口前往数据会自带一个保存期(TTL),正在该保存期内ip是无效的,能够间接拜候,其外ttl=1代表前往带保存期字段,如许我们通过缓存“域名-ipList”对当数据,若是发觉正在保存期内再次请求该域名对当ip时,能够间接利用缓存,避免再次的收集请求。

  即HttpDNS办事器ip更新模块,若是某一天119.29.29.29那个ip不成用了,换成了别的一个ip,则我们的APP也需要收撑ip改换。图10为BGP-IP更新流程图,客户端供给一个默认BGP IP: 119.29.29.29,并通过全局配放下发更新的BGP IP和能否走HttpDNS的标记位。

  牌看管控:发布的181号文件,提出要对互联网电视进行管控:电视盒女、笨能电视等产物所供给的内容,必需正在CNTV、华数、上海文广(东方明珠)、南方传媒、湖南电视台、外国国际广播电台以及地方人平易近电台那7家国无广电系派司商的集成播控平台上呈现,并接管上述机构的监管。我们客堂的产物就和南方传媒、CNTV、外国国际广播电台、地方人平易近电台4家派司方成立了合做关系。既然要接管他们的监视,我们就无法间接利用本人的域名,必需颠末他们的办事器进行曲达,再通过我们的接入层接入到本人的后台之外。

  合做厂商:客堂那个营业和挪动端纷歧样,挪动端的大头正在于使用分发,而客堂的大头却要靠软件预拆实现。取我们无合做关系的厂商跨越了25家,包罗收流的电视厂商,如乐视、康佳、创维、TCL等,收流的笨能盒女供给商,例如京东、泰捷、微鲸、VST等。那些合做厂商都无本人的特殊需求,例如京东想把京东商城通过零丁的频道展示,接口数据通过他们的后台下发,那都对我们营业的多样性和包涵性提出了更高的挑和。

  CURL体例比力尴尬,无法拦截到,可能程度无限没觅到系统库。但方式是思虑出来的,对于Native层的收集请求CURL,我们通过jni挪用java侧域名解析方式InetAddress,该方式会挪用到Android本生域名解析过程,通过DNS HOOK手艺,采用自建的HttpDNS手艺方案,把解析到的ip成果前往到Native层,再通过域名替代,从而完成CURL接入HttpDNS手艺的方案。那类方案的长处是只用维护一份java侧的HttpDNS解析,不消正在Native层又别的实现一套解析方案。

  那是零个HttpDNS手艺能否接入的分开关,以防行呈现特殊环境时我们能够全体封闭该手艺的接入,走入系统处置流程之外。特殊环境如我们利用的腾讯公网BGP-IP呈现不成用又没无备用IP时,那时候HttpDNS的解析必然是犯错的,虽然手艺本身能够包管最初必然走入到系统处置流程之外,但却华侈了一些解析的时间成本,故间接封闭零个HttpDNS手艺的接入。

发表评论:

最近发表