知识平台

  • DNS基本概念
  • 域名查询过程
  • 域名系统组织架构
  • 域名市场
  • 域名安全威胁
  • 公共DNS

DNS基本概念

域名   如在浏览器地址栏输入的www.baidu.com,www.hao123.com等我们称之为域名,域名即网站名称。 如果说互联网的本质是连接一切,域名则为“一切”提供了身份标识功能,而IP为“一切”提供了寻址功能。域名和IP的关系可类比每个人的姓名与住址。

根域、顶级域、二级域、子域   域名采用层次化的方式进行组织,每一个点代表一个层级。一个域名完整的格式为www.baidu.com. 最末尾的点代表根域,常常省略;com即顶级域(TLD);baidu.com即二级域。 依次类推,还有三级域、四级域等等。子域是一个相对的概念,baidu.com是com的子域,www.baidu.com是baidu.com的子域。

域名系统   即DNS(Domain Name System)。DNS主要解决两方面的问题:域名本身的增删改查以及域名到IP如何映射。

正向解析   查找域名对应IP的过程。

反向解析   查找IP对应域名的过程。

解析器   即resolver,处于DNS客户端的一套系统,用于实现正向解析或者反向解析。

权威DNS   处于DNS服务端的一套系统,该系统保存了相应域名的权威信息。权威DNS即通俗上“这个域名我说了算”的服务器。

递归DNS   又叫local dns。递归DNS可以理解为是一种功能复杂些的resolver,其核心功能一个是缓存、一个是递归查询。 收到域名查询请求后其首先看本地缓存是否有记录,如果没有则一级一级的查询根、顶级域、二级域…… 直到获取到结果然后返回给用户。日常上网中运营商分配的DNS即这里所说的递归DNS。

转发DNS   转发DNS是一种特殊的递归。如果本地的缓存记录中没有相应域名结果时,其将查询请求转发给另外一台DNS服务器,由另外一台DNS服务器来完成查询请求。

公共DNS   公共DNS属于递归DNS。其典型特征为对外一个IP,为所有用户提供公共的递归查询服务。

域名查询过程

以用户在浏览器输入www.baidu.com为例,我们详细说明一下实际域名查询过程:
1. 用户输入www.baidu.com,浏览器调用操作系统resolver发起域名查询,此处不考虑浏览器的域名缓存;resolver封装一个dns请求报文,并将其发给运营商分配的local dns地址(或者用户自己配置的公共dns);
2. local dns查询缓存,如果命中则返回响应结果;否则向根服务器发起查询;
3. 根服务器返回com地址。每一层级的DNS服务器都有缓存,实际都是先查缓存,没有缓存才返回下级域,此处不再重复;
4. local dns查询com。com返回baidu.com地址;
5. local dns查询baidu.com,baidu.com返回www.baidu.com对应记录结果。
理论上讲域名查询有两种方式:
迭代查询 A问B一个问题,B不知道答案说你可以问C,然后A再去问C,C推荐D,然后A继续问D,如此迭代…
递归查询 A问B一个问题,B问C,C问D… 然后D告诉C,C告诉B,B告诉A
上述过程中从resolver到递归DNS再到根的查询过程为递归查询,递归DNS到根、到com、到baidu.com的过程为迭代查询。
注意:递归查询需要从系统层面来看,很难单纯的说一台DNS实现了递归查询。

域名系统组织架构!

DNS是全球互联网中最重要的基础服务之一,也是如今唯一的一种有中心点的服务。全球域名系统组织与管理架构如下图所示:

ICANN   互联网名称与数字地址分配机构(The Internet Corporation for Assigned Names and Numbers)。 负责IP地址空间的分配、协议标识符的指派、通用顶级域名(gTLD)、国家和地区顶级域名(ccTLD) 系统的管理以及根服务器系统的管理。这些职能最初是在美国政府合同下由互联网号码分配当局 (Internet Assigned Numbers Authority,IANA)以及其它一些组织提供,现在都由ICANN统一行使。

ccNSO   国家和地区名称支持组(Country Code Names Supporting Organization)。负责各种ccTLD的注册。

GNSO   通用名称支持组(Generic Names Supporting Organization)。负责各种gTLD的注册。

RSSAC   根服务器系统支持委员会(Root Server System Advisory Committee)。负责根服务器系统管理。

ccNSO   国家和地区名称支持组(Country Code Names Supporting Organization)。负责各种ccTLD的注册。

域名市场

一、域名交易
作为互联网最重要的轻资产之一,域名原生就具有着投资和品牌价值。围绕域名相关的交易,目前已经衍生出包括注册、买卖、中介、抢注、投资、停放、备案等的一个完整生态系统。

域名注册   向有资质的注册商申请一个域名的过程。国内知名的注册商有万网、35互联、中国数据等, 可注册常见的.com、.cn、.net、.org等域名;国外知名的有godaddy、enom等。

域名买卖,域名中介、域名经纪   围绕域名的评估、分析、谈判、购买、出售等一系列过程。可类比房地产行业。

域名抢注   分两种情况,一种是抢注未被注册过的域名,一种是抢注曾经被注册过但是未能在有效期结束前及时续费的域名。 国内外都有不少专门提供域名抢注服务的平台。

域名投资   注册和购买有价值的域名,然后获利转让的行为。投资者一般被称为“玉米虫”。 2014年比较热门的几次投资事件一个是罗永浩的t.tt,号称成交价200万元;一个是雷军的mi.com,号称成交价360万美元;一个是莫天全的fang.com,成交价格不详。

域名停放   将未建站的域名解析到广告页面,利用域名的自然流量来获取收入的方式。提供域名停放服务依赖以下两点:优质广告资源和防作弊技术。

二、域名解析
域名市场除了包含各种类别的交易服务以外,另还包含解析服务。按照功能不同,域名解析服务可以分为如下几类:

权威DNS   国内典型的代表是dnspod,主要提供域名托管以及智能解析服务。智能解析主要解决这样一个问题: 假设一个域名同时绑定了联通和电信的IP,当一个电信用户去访问时有可能会解析到一个联通的IP,从而产生跨网问题。 使用智能解析后,系统将根据用户来源去智能的返回结果。

公共DNS   公共DNS类似于运营商的local dns,本质上讲是一种递归解析服务。与运营商DNS不同的是, 公共DNS一般以一个或两个非常容易记住的IP方式(如百度公共DNS服务IP:180.76.76.76)给所有用户提供统一服务。 公共DNS相对于运营商DNS的优势主要在无劫持、更快、更稳定、更安全等。

CDN DNS   本质上讲也是一种权威DNS,主要在CDN的业务场景中提供流量调度功能。 用户将域名CNAME或者直接NS托管到CDN DNS,CDN DNS进一步做智能调度返回一个 离用户最近的接入节点。用户访问接入节点,享受CDN提供的缓存、加速、以及防攻击服务。

域名安全威胁

一、安全事件

尽管已经有超过30年历史,DNS仍然是整个互联网中最脆弱的一环。下面盘点一下近年来比较严重的DNS安全事件。

2009年5月19日南方六省断网事件。   一起由于游戏私服私斗打挂dnspod,殃及暴风影音域名解析,然后进一步殃及电信local dns,从而爆发六省大规模断网的事故。事件影响深远。

2010年1月12日百度域名劫持事件。   baidu.com的NS记录被伊朗网军(Iranian Cyber Army)劫持,然后导致www.baidu.com无法访问。 事件持续时间8小时,是百度成立以来最严重的故障事件,直接经济损失700万人民币。

2013年5月4日DNS劫持事件。   由于主流路由器厂商安全漏洞而导致的全网劫持事件,号称影响了800万用户。

2013年8月25日CN域被攻击事件。   cn域dns受到DoS攻击而导致所有cn域名无法解析事故。

2014年1月21日全国DNS故障。   迄今为止,大陆境内发生的最为严重的DNS故障,所有通用顶级域(.com/.net/.org)遭到DNS污染, 所有的域名全被指向了位于美国的一个IP地址(65.49.2.178)。



二、攻击手段

query flood   通过不断的发DNS请求报文来耗尽目的DNS资源,形成拒绝服务。具体分类包括源IP是否随机以及目的域名是否随机等。

response flood   通过不断的发DNS响应报文来达到拒绝服务的目的。

udp floodv   DNS底层协议为UDP,基于UDP的各种flood攻击也都会给DNS带来危害。

折射攻击(反射攻击)   伪造源IP为第三方,借助DNS的回包来达到DoS掉第三方的目的。属于“借刀杀人”的手段。

放大攻击   折射攻击的一种。通过恶意的构造响应报文来达到流量放大作用,从而对第三方形成带宽攻击。 请求报文几十字节,响应报文几千字节,意味着可以形成百倍以上流量放大系数。

缓存投毒   每一台DNS都有缓存,缓存投毒指的是通过恶意手段污染DNS缓存,形成DNS劫持或者拒绝服务。

漏洞攻击   利用各种漏洞来达到入侵并控制DNS服务器目的。漏洞不仅仅指DNS程序本身的,也有可能是机器或者网络其它的“问题点”。

社会工程学手段   所有的系统都需要人的维护,而人永远是安全中最脆弱的一环。



三、防御手段

对于权威DNS来说,由于请求来源多是运营商或者公共DNS厂商的递归DNS,源IP相对比较固定,可以实施源IP白名单策略。该策略对于伪造源IP的攻击具有一定削弱作用。对于域名随机的攻击来说,如果权威DNS本身承载的域名量不是很大,可以考虑域名白名单策略。如果源IP就是运营商的,然后请求域名也是合法的,只能靠一定限速策略以及DNS服务器本身性能了。


对于递归DNS来说,各种白名单策略误伤都会很严重,因此也主要靠DNS服务器本身性能了。


高性能DNS服务器目前比较流行的做法是基于Intel DPDK来实施。


另外一种推荐实施的策略是RRL(Response Rate Limit),该策略对于防御折射攻击/放大攻击有一定效果。尽管折射攻击的目标不是DNS本身,但是不防御的话如果把第三方打挂仍然会产生连带责任,因此建议实施RRL。


公共DNS

一、百度DNS

更快更稳定   中国最快最稳定的网站是哪一个?没错,www.baidu.com。百度公共DNS拥有和百度搜索一样的基础网络、基础设施以及系统架构,更重要的是,我们是一拨人。

纯净无劫持   作为中国最大的流量公司,百度是DNS劫持的最大受害者。百度做公共DNS的目的一方面在于 为广大网民提供一个纯净安全的流量环境,另外一方面也想通过产品的力量来制约劫持乱象。

安全防护   百度公共DNS的另外一个附加功能是安全防护。依托百度安全搜索技术,如果您所访问的网站存在病毒、木马风险, 我们将实时予以拦截和提示,有效保证使用者的上网安全。

CDN亲和   百度公共DNS拥有遍布全国的递归出口节点。当查询请求未命中主缓存时,我们会将请求调 度到离用户最近的递归节点来进一步查询。因此不会影响到CDN的调度进度。另外一方面,我们正在积极实施edns-client-subnet,该 技术会大幅提升CDN调度精度,相信CDN厂商会喜欢。


二、阿里DNS
阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。

阿里提供公共DNS服务的优势

阿里在全国有优质的机房、网络、带宽等互联网基础设施资源。
阿里建设和运营着全国最大的CDN网络,对互联网流量调度有丰富的经验。
阿里旗下万网是国内最大的域名注册商,管理着几百万域名。同时有丰富的DNS管理经验。
阿里拥有大量优秀的技术人才,有非常强的自主研发能力和运维保障能力。
阿里提供公共DNS服务的优势

快速:
通过BGP anycast技术,让用户访问到离自己较近的DNS集群。
主动同步com/net域名、万网注册域名的变更,减小ttl时间的影响,快速访问到正确的记录。
主动缓存热点域名的,提高查询CACHE命中率,减少递归过程,快速应答。
稳定:
异地多机房高可用架构。
基于DPDK自主研发的高性能DNS系统。
Aliguard多种攻击防御策略。
持久化保存热点记录,当“根”或域名的权威DNS出现异常后,阿里公共DNS具备快速恢复正常访问的能力。
智能:
结合阿里优质CDN资源和精准的IP地址库,让用户访问到较近的网站。
三、Google Public DNS
谷歌公共域名解析服务(Google Public DNS)是由谷歌公司于2009年发布的一项新的DNS服务。主要为了替代ISPs或其他公司提供的DNS服务。 2014年3月13日,可能是由于黑客攻击,一些谷歌DNS用户在连接苹果某些网站时受封锁,现未采取有效措施。
DNS地址
IPV4
首选DNS服务器:8.8.8.8
备用DNS服务器:8.8.4.4
IPV6
2001:4860:4860::8888
2001:4860:4860::8844
主要优点
谷歌公共DNS能够满足诸多DNS需求,为服务器数据传输提供便利,通过随机分配的项目查询名目有效阻挡黑客骗取回应的行为。谷歌公共DNS符合现有DNS标准,同时为用户提供对应于个人电脑的准确回应,而不会产生其他额外的信息阻隔、过滤或重定位等可能导致延缓搜索的问题。

域名资讯