DNS是互联网的基石之一,如何持续提供高质量DNS服务,是业界一直探寻的方向。easyDNS的创始人Mark Jeftovic在接受LuxSci公司的采访时,介绍了easyDNS的架构与攻击防御措施。
自1999年以来,LuxSci一直与easyDNS在提供DNS及域名注册服务等方面进行着合作。由于业务量巨大,我们推出了“企业DNS”门户网站,LuxSci及其客户可以通过该网站管理自己的域名。由于这些年来easyDNS一直提供高质量的DNS服务和支持业务,管理态度友好务实,LuxSci也因此与easyDNS始终保持着合作关系。LuxSci相信,通过与easyDNS的合作,能够给客户提供质量最高、稳定性最好的DNS服务。DNS服务对企业来说至关重要,如果企业的DNS出了问题,那么其他业务也就无法开展。
目前,LuxSci将DNS及域名注册服务作为其电子邮件和网页寄存服务的附加内容提供给客户,价格很有竞争力,而且提供的服务包含所有可以直接从easyDNS获取的功能。另外,LuxSci还会帮助客户完成DNS和域名注册时的设置工作,并在客户修改配置时进行协助,最大程度地减小出错的几率。正是因为如此,LuxSci的技术支持备受赞誉。LuxSci的客户也可以选择自主管理DNS,只要使用用户名登录就可以随时管理自己的DNS。
Mark Jeftovic是easyDNS最初的创始人和架构师之一,现在是easyDNS公司的唯一所有者。LuxSci希望通过此次对Mark的采访,让大家更好地了解easyDNS。
LuxSci:Mark,您能简单地介绍一下easyDNS公司的发展历程吗?
Mark Jeftovic:我们最初是另外一家公司。1994年到1996年间,我们做了许多定制网页开发的项目,也是最早一批使用SQL后端制作动态网站的公司之一。由于LAMP(Linux-Apache-MySQL-PHP)环境在当时还十分罕见,因此每当我们拿到一个新客户的项目,一般都需要将客户的网站转移到我们自己的服务器上。
我们在修改DNS、锁定或解锁客户的域名时总是遇到问题。这是因为客户虽然购买了域名,但却没有管理权限。域名的管理只能靠互联网服务提供商(ISP)、虚拟主机提供商或是其他第三方机构。
就像我们说过的那样,为了让客户能够“用自己的网页浏览器方便地”管理自己的域名,我们希望搭建一个域名管理平台并给客户提供一个操作面板,这便是我们最初的想法。1996年左右,我们开始构建系统。到了1998年,系统已经准备好上线了。当我们将系统上线后,域名管理业务也便蓬勃发展起来。2000年前后,我们关闭了先前的公司,专心运作easyDNS。
大概在2000年的时候,ICANN开放了域名注册并引入竞争机制,因此,我们也应运成为了一家OpenSRS的分销商。2001年,CIRA开放.CA域名的注册,我们获得了CIRA的代理注册认证。2003年,我们获得了ICANN的官方认可。
LuxSci:easyDNS支持多少个域名呢?在多少个国家提供域名服务呢?
Mark Jeftovic:去年,我们收购了另一家DNS提供商Zoneedit公司。如果把Zoneedit和easyDNS管理的域名数目加起来,总数大概是三十万。我们的客户来自超过100个国家,easyDNS每天需要响应大约十亿次的DNS请求。
LuxSci:easyDNS为用户提供了几种不同的DNS服务器,比如dns1.easydns.com、dns2.easydns.net、 dns3.easydns.org等。这些域名背后的服务器或是其地理位置有什么区别?为什么使用了不同的顶级域名(com、net、org等)?
Mark Jeftovic:这些域名未来很可能变动、重叠或重组,不过目前,它们的区别如下:
- dns1.easydns.com使用的是一个4节点的任播链系统,节点分别设在圣荷西、芝加哥、阿姆斯特丹以及东京。
- dns2.easydns.net使用的是Cloudflare公司的任播CDN(内容分发网络),但我无法确切地告诉你这其中到底有多少个节点。我们始终希望拥有多个DDoS缓解措施,因此在一年前,我们结束了使用Prolexic的服务,并开始与Cloudflare公司合作。
- dns3.easydns.org使用的是一个混合式任播集群系统,由我们自己开发,一些节点由easyDNS的主要DDoS缓解方案提供商Staminus公司所提供。我们的硬件设备直接寄放在位于加州、纽约、阿姆斯特丹的Staminus清洗中心。其余的节点则通过HostVirtual公司的网络部署。在一次DDoS攻击发生时,我们会放弃HostVirtual网络上的广播,所有传输只经过Staminus的节点。
- dns4.easydns.info使用的是另一家独立供应商Community DNS的服务。Community DNS提供许多区域性的网络域名服务,DNS4则使用了该公司网络上的6节点任播系统。
LuxSci:将DNS服务器设在不同的国家是如何提高DNS服务质量的呢?
Mark Jeftovic:对于DNS来说,冗余是个好东西。如果将名称服务器(Name Server)的信息进行广播(甚至不必用到任播的方法),当网络中的某些地方出现故障时,仍然会有一些服务器可以接收到任意节点发出的请求。在多接入数据中心协同定位时,上述机制的运行效果最佳。所以,一个数据中心几乎不太可能完全从互联网中断开。
DNS算法的工作原理是,一台名称服务器在初始时给所有的名称服务器发送请求信息,计算响应时间。之后再发送请求时,则发送给响应时间最短的名称服务器(大意是这样,细节还有很多)。当你把你的名称服务器进行广播后,你就得到了最佳的DNS请求定向信息。
当多个名称服务器响应同一个IP地址的网络中加入任播后,那么,在一个名称服务器进行第一次响应时间检测时,该名称服务器的请求会经过任播节点,而任播节点已经拥有了包含访问当前节点最短路径的路由表,所以将会获得2次最佳定向信息:一次是由“最近”的任播链节点发回,另一次则是从任播链最先应答的某一处发回。
LuxSci:DNS服务的可靠性和故障发生时的恢复能力是其最重要的性能。过去的几年里,有很多次比较严重的针对easyDNS以及其他公司的分布式拒绝服务攻击,同时也有其他类型的攻击。这些攻击的强度和频率似乎有增长的趋势。您认为针对DNS提供商的DDoS攻击确实在增加吗?您如何看待这种趋势?
Mark Jeftovic:在我们的《主动式名称服务器白皮书》中,我们给出了一张显示DDoS攻击强度随时间变化的图表。这幅图表中预测2020年时,DDoS攻击强度将会达到1.2TB(Terrabyte,十万亿比特)。我认为这个预测还过于乐观,去年的NTP反射攻击就已经达到了每秒300 GB。
这便是为什么我认为抵抗DDoS攻击最明智的方法是获取并维护“DNS马赛克”。“DNS马赛克”始终与给定的DDoS攻击向量有差别,对所有非DDoS攻击对象都适用。事实上,大多数DDoS主要造成的是间接伤害。例如其他人受到了DDoS攻击,而受害者和你的服务提供商相同,那么你更有可能会因此受到影响,而不是自身作为目标直接遭受DDoS攻击。
DNS故障会立即使网络瘫痪,所以DNS是最常见的攻击目标。移除了攻击目标的名称服务器,也就没有了可以攻击的目标,便从根本上遏制了攻击。
LuxSci:在DDoS攻击发生时,easyDNS如何确保可以继续提供服务?
Mark Jeftovic:我们拥有多个服务提供商,这使得我们的DDoS缓解控制措施,甚至我们自己的DNS都能有冗余(详见下一个问题)。
如果必须保证每时每刻都能百分之百地有可用的DNS,那么就需要使用多DNS的解决方案,通过一致性策略维护当前网域(zone)的DNS交互数据,并可以在运行中切换DNS。
这正是我们所做的工作。我们有一项正在申请专利的服务——“主动式名称服务器”,可以在名称服务器层上实现故障转移。我们的重点在名称服务器上,而不是在主机名失效时,于给定网域内转移主机名的故障。我们的做法是,在名称服务器出现故障时,自动调取备份的名称服务器开始工作。
我们使用亚马逊Route 53和Zoneedit作为备份(你也可以根据自己需要设置更多的备份池)。当我们遭受DDoS攻击时,我们只用简单地将备份名称服务器加入到授权名单中,或者完全切换到使用备份名称服务器的模式。这个过程完全自动,效果很好。这些年来甚至在遭受非常严重的DDoS攻击,easyDNS名称服务器都受到了非常大的影响时,easyDNS的控制系统和辅助服务(如电子邮件、转发功能等)仍然可以正常工作。
LuxSci:为了避免针对DNS提供商的DDoS攻击所带来的影响,用户们可以做些什么?
Mark Jeftovic:地理冗余和网络冗余之后,冗余的下一个层次是多提供商冗余。正如我刚才所说的那样,我们自己就和合作的其他DNS提供商进行了整合,我们的客户也可以使用这些提供商的服务。
因此,如果你同时在使用easyDNS和亚马逊Route 53的服务,你只需要在一个控制面板上操作就可以整合自己的网域。我们也进行了Linode.com、Digital Ocean 还有Google’s cloud DNS的整合,不过目前还都是测试版。
你还可以做的一件事是监视,然后在不同的名称服务器池和提供商之间切换,并使这个过程自动化。不过这是我们的“主动式名称服务器”解决方案要做的工作,我们也称之为“Plan B DNS” 。
LuxSci:新闻报道过许多DNS污染攻击的事件。easyDNS考虑过DNS污染相关的问题吗?您认为在防止用户受到此类攻击方面,未来可以采取哪些措施?
Mark Jeftovic:DNS污染攻击主要针对的是递归名称服务器或域名解析器,并非权威DNS服务器。显而易见,这不是我们的主要矛盾。easyDNS支持DNSSEC,可以帮助客户避免DNS污染的影响。
但是我发现最近一段时间,更容易实现的破坏是入侵提供商管理控制系统,要么通过软件漏洞,要么通过社会工程学的途径侵入。侵入后,就可以轻松接管目标DNS。因此我们建议,在所有有条件的地方,始终开启全账号事件警报和双重认证。
LuxSci:DNSSEC(DNS Security)是一种DNS安全认证的机制,但还没有在实际应用中产生足够吸引力。easyDNS 支持DNSSEC吗?您怎样看待DNSSEC以及其他解决相同问题的技术的未来?
Mark Jeftovic:easyDNS支持DNSSEC,而且我们认为它是DNS发展中必然会出现的安全机制,尽管现在它还有很多缺陷。我个人认为,恶意的密钥滚动发生的频率更高,对网域的危害大于缓存污染。
LuxSci:许多域名注册商(比如Network Solutions等)也为客户提供DNS服务。与这类公司相比,easyDNS的优势是什么?
Mark Jeftovic:我常给别人讲一个笑话:“免费DNS不干活时也免费。”免费的DNS虽然不收费,但却时常故障,无法保证长时间稳定工作。大多数网络用户、虚拟主机、互联网服务提供商、甚至域名注册商,都不会提前考虑DNS的重要性。直到DNS服务器出现问题,他们才开始意识到要好好改善DNS服务。DNS对于互联网至关重要,因而我们的宗旨便是:“DNS如春雨,润物细无声。”
LuxSci:像UltraDNS等顶尖DNS企业也在竞争同LuxSci等服务提供商的合作。在这场竞争中,easyDNS的优势又是什么呢?
Mark Jeftovic:最近有一种说法是,我们公司给出的服务价格更有竞争力。这种说法比较奇怪,因为在和域名注册商对比时,easyDNS的服务通常都被评价为“昂贵但值得拥有”。虽然注册商不仅以极其低廉的价格出售域名,还附带提供DNS服务,但是,我们拥有任播DNS技术,还针对DDoS部署了防御措施,而且价格也并非昂贵到难以承担。
LuxSci:easyDNS近期有重要的新功能发布吗?
Mark Jeftovic:主要的新功能就是DNS整合和主动式名称服务器。主动式名称服务器这项功能由我们公司最先发明,属于世界首创。
我们刚刚完成了第二版的GeoDNS,目前正在用PHP.net进行在线测试,今年秋天就可以发布了。
我们同时也在开发其他几样产品,但都还处在非常原始的阶段。
阅读原文:《Interview with Mark Jeftovic, CEO of easyDNS》
《他山之石》是InfoQ中文站新推出的一个专栏,精选来自国内外技术社区和个人博客上的技术文章,让更多的读者朋友受益,本栏目转载的内容都经过原作者授权。文章推荐可以发送邮件到[email protected]。