APP下载

解决无法解析问题

2017-11-23

网络安全和信息化 2017年3期
关键词:域名权威解析

引言:单位用户反馈某网站打开时显示不完整,与用户沟通了解情况后了解到这是一个电子资源一站式检索平台,因为加载不完整,导致搜索框、CSS样式表、图片等都无法显示。笔者使用域名转发功能解决的用户的故障。

域名解析服务是每一张网络的重要基石,然而伴随着互联网发展,网络的互联互通远比我们了解的要更为复杂。

故障现象

近日收到用户反馈,描述某网站打开时显示不完整,与用户沟通了解情况后,确认待访问的网站url形如http://web.b.ebscohost.com/start?key=10.6_8_586&site=ehost&IsAdminMobile=N&return=y,是一个电子资源一站式检索平台,因为加载不完整,导致搜索框、CSS样式表、图片等都无法显示,极大地影响了用户使用,希望尽快解决。

常规“治疗”并不对症

按照一般问题处理步骤,首先在自己的电脑上测试访问打开正常,询问其他同事访问的情况,有的能打开,有的打开显示不完整。接着使用nslookup检查该域名的解析,测试本地DNS可以解析到IPv4和IPv6双栈IP,阿里云DNS解析的IPv4结果和本地解析一致。既然能够解析,并且也能加载部分页面,说明解析无误且目标可达,不能访问的原因会是双栈么?

在自己的电脑上取消IPv6的协议支持,无法完整显示的情况立即出现,可是验证了这一点并不能解决用户的问题,毕竟用户主要以IPv4访问,会是多出口选路的问题么?在边界网络上查询解析的IP,该IP未在运营商地址库中,因此默认路由有三条,每次请求时由设备自动选择一条出口,假设访问过程产生多个会话,则每个会话可能走不同出口导致访问异常,因此调整目的IP纯走一条出口,通常就能解决问题。

然而,将目的IP分别设置成纯走任一条运营商出口,依然是无法完整显示网站,说明并未找到真正原因。仔细回忆一遍各个细节,目标网站IP可解析,页面可显示部分,问题实质在不可显示的那一部分,首要问题应该是找出无法访问的目标。

对症治疗

在浏览器中按F12打开Web开发者工具,选择网络标签,刷新目标域名访问,观察到除了目标域名,还有if.ebsco-content.com这样一个域名提供stylesheet、img、js等页面元素,同时所有该域名的访问都是超时的。凭经验感觉,这才是真正的原因所在。

在本地DNS上解析该域名,无法解析。用aliyun等公共DNS解析,都能解析到,因此,这就能解释同样在IPv4网络中,为什么有的同事能打开,有的不能打开的疑问。能打开的同事则是设置了互联网上公共DNS。临时解决该问题可以建议用户设置互联网公共DNS,但是这会影响园区网内业务系统的解析,只有让本地DNS能解析该域名才是长效解决办法。

本 地DNS搭 建 在rhel5+bind9环境,承载园区网权威域名解析和园区网内用户的递归解析服务,对所有非权威解析请求,通过标准的迭代解析从根域开始做逐层迭代解析,该机制确保了DNS服务与用户请求在通过园区网边界三条出口智能选路时能保持一致,一般极少出现无法解析现象。针对此问题,先分析迭代解析的过程,使用 命 令”dig @localdnsip+trace if.ebsco-content.com”跟踪获得如下信息:

可见,目标if.ebscocontent.com域名其实已经解析成功,只是被解析到了另一个cs751.wac.sigmacdn.net域名,从名字上猜想这个别名是一个cdn服务,本地DNS因无法解析该别名而不能打开相关网页对象。继续用命令“dig @localdnsip +trace cs751.wac.sigmacdn.net”跟踪获得如下信息:

可见,迭代解析过程中本地DNS对sigmacdn的权威域名服务器都无法解析,从而导致解析失败。面对一个陌生的cdn服务,通过互联网公共DNS服务确定其权威域名服务器IP不难,确定后将其调整到更快的运营商出口也并不复杂,但是cdn服务可能不定期调整和优化造成解析的IP变化,这会导致本地DNS解析再次失效,DNS管理则面临被动,因此,若能对这类少数无法解析的域名交给互联网上公共DNS来解析就能一劳永逸。

所幸在BIND 9.1开始具有了转发区(forward zone)这一特性,该特性允许查找指定域名时才使用转发进行解析,对指定域名之外的解析仍遵循原有的迭代。编辑bind配置文件添加转发域ebsco-content.com

原本以为问题处理到这里就结束了,然而通过nslookup测试本地DNS却依然无法解析,更换转发的DNS也没有任何效果。难道是转发域名配置错误?转发域名功能无效?功能开关未开启?

为了不耽误用户使用,临时采取措施,将if.ebscocontent.com配置为一个权威解析,由本地DNS直接解析其IP,这相当于“欺骗”了来自用户的DNS请求,让客户端以为本地DNS就是ebsco-content.com的权威解析服务,从而不再去互联网中进行逐层迭代解析,问题的解决减少用户的抱怨和等待。

暂时稳住了用户,重新回顾dig迭代的过程,CNAME这个细节引起了注意,迭代解析的过程已经把原域名正常解析到别名了,前一个解析过程其实已经结束了。下一个解析过程是对别名的解析,也需要做一次迭代查询。当前问题的本质应该是该别名无法迭代解析导致的访问失败,假设转发解析不设置为ebsco-content.com,而是设置wac.sigmacdn.net这个cdn服务的域名呢?答案很快有了分晓,转发解析成功了,通过nslookup查询if.ebsco-content.com已经能够解析到IP。

经验总结

将非权威域名配置成本地权威解析来影响目标访问的选路和可达性是一个简便易行的手段,最大的缺点在于外部目标解析发生改变是随时发生的,如果待解析的域名数量少且名称固定,采用脚本的方法来自动维护解析的变更也是可行的,但当待解析的域名数量多,或通过cdn服务优化后存在域名名称经常变化,则难以用这一办法解决。针对指定域名进行转发解析则能够最大满足在既有环境中解析的灵活性,同时与原环境中涉及的多出口负载均衡、内部访问策略、由外到内的智能解析都不会产生影响和干扰。

猜你喜欢

域名权威解析
三角函数解析式中ω的几种求法
各大权威媒体聚焦流翔高钙
Combosquatting域名抢注的测量研究
睡梦解析仪
如何购买WordPress网站域名及绑定域名
跟踪督察:工作干得实 权威立得起
权威发布
电竞初解析
对称巧用解析妙解
权威的影子