域名系统(英文:Domain Name System,简称DNS),是互联网的一项服务,用于实现域名到主机IP地址的定位。DNS实际上是一个分布式的数据库,所有主机名、域名和对应的IP地址分布于称为“名字服务器”的服务器上,名字服务器可以让客户去调用称为解析器的库来访问。域名系统命名方式采用一种树状层次型命名机制,

本页面主要目录有关于域名系统的:基本概念、发展历程、域名系统的组成、域名系统的工作原理、域名系统的部署、域名系统的安全、域名系统的应用、域名系统的展望、争议事件等介绍

中文名

域名系统

英文名

Domain Name System

别名

DNS

运用领域

互联网

推出时间

1984年

简介

域名系统的发展经历了几个阶段,1984年,加州大学伯克利分校的四名学生提出了第一个Unix名称服务器实现,被称为BIND。同年,保罗·莫卡佩特里斯(Paul Mockapetris)设计了域名系统的结构。

随着云计算、大数据等技术的发展,DNS面临着越来越多的挑战,研究人员提出了许多改进方案,如引入AnyCast技术进行负载均衡、利用区块链技术提高安全性等。

基本概念

域名系统DNS(Domain Name System)是Internet用于名字登记和解析的标准,用于实现域名到主机IP地址的定位。DNS实际上是一个分布式的数据库,所有主机名、域名和对应的IP地址分布于称为“名字服务器”的服务器上,名字服务器可以让客户去调用称为解析器的库来访问。DNS分布式数据库中的每一个数据单元都是按名字进行索引的,这些名字一起构成了一棵反向生长的“树”,称为域名空间。树的顶端有唯一的根,称为“根域”或“根”,根的名字用空字符串来表示,在文本中用“.”表示,树的每一节点都表示域名系统的一个域,每个域可再进一步地划分子域,每个节点中间用“.”隔开,完整的域名是从该节点到根之间路径上的所有节点名的组合。

发展历程

域名系统的起源

互联网的前身是阿帕网(ARPAnet),ARPAnet是一个小规模的,由类似数百台主机组成的团体。HOSTS.TXT文件包含了所有这些主机的信息,由SRI网络信息中心(NIC)负责维护,并由SRI-NIC这台主机上由外散发。ARPAnet管理人员常将他们的改动通过电子邮件发给NIC,并定期地从SRI-NIC中获取最新的HOSTS.TXT,随着ARPAnet的增长,HOSTS.TXT文件的大小也随之增大,这项工作很难继续进行。ARPAnet采用TCP/IP协议后,网络的规模爆炸性增长,HOSTS.TXT就产生了一系列问题,ARPAnet管理团队改进HOSTS.TXT的目标是创建一个能够解决使用统一主机表系统所带来的问题的系统。新系统应该允许本地数据管理员使其数据具有全局可访问性,管理的分散化可消除单台主机所造成的瓶颈以及减轻通信拥塞,并且本地管理员可更容易地承担起使数据保持最新的任务。南加利福尼亚大学的信息科学研究所的保罗·莫卡佩特里斯(Paul Mockapetris)承担起了设计新系统结构的任务。1983年互联网开始采用层次树状结构的命名方法,并使用分布式的域名系统DNS。

域名系统

域名系统的诞生

1984年,四名加州大学伯克利分校的学生,道格拉斯·特里(Douglas Terry)、马克·佩因特(Mark Painter)、大卫·里格尔(David Riggle)和周松年,为伯克利互联网域名编写了第一个Unix名称服务器,被称为BIND。同年,保罗·莫卡佩特里斯发布了RFC 882和RFC 883,其中定义了域名系统,后来由RFC 1034和RFC 1035代替,形成了域名系统标准。1985年,DEC公司的Kevin Dunlap大幅修改了DNS实施。从那时起,Mike Karels,Phil Almquist和Paul Vixie一直维护着BIND。1990年代初期,BIND被移植到Windows NT平台。它被广泛分发尤其是在Unix系统上,并且仍然是Internet上使用最广泛的DNS软件。域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。因为在互联网的命名系统中使用了许多的“域”,因此就出现了“域名”这个名词,“域名系统”很明确地指明这种系统是在互联网中的。

域名系统的发展

域名系统用来记忆IP地址,是TCP/IP提供的一种字符型主机名称机制,而研究机构预测TCP/IP使用的IPv4协议由于网络主机数量和应用的急剧膨胀,面临着地址资源不足,路由表增大等一系列问题。研究机构对IPv4地址用尽的时间做出了预测,认为IPv4地址将在2011年左右枯竭,1995年,互联网工程任务组IETF(Internet Engineering Task Force)着手研究开发IPv6协议,相对于IPv4的三种地址分类:单播地址、广播地址、多播地址,IPv6地址分类为:单播地址、任播地址、组播地址。IPv6与IPv4比较显著的一个改动就是使用128比特地址来代替32比特长的IPv4地址,二者的DNS在体系结构上是一致的,都是采用树形结构的域名空间,域名可以同时对应多个IPv4和IPv6的地址。

域名系统

1996年,马丁·杜斯特(Martin Dürst)提出国家化域名(IDN)的概念,1998年付诸实施,最终“应用程序国际化域名”(IDNA)被采纳为正式标准。同年,中国互联网信息中心(CNNIC)开始了中文域名的研发工作。

1999年,能够在大型分布式服务器网络上智能传送和复制内容的数学算法,内容分发网络(CDN)服务提供商Akamai上市。CDN技术的工作原理为通过在网络各处放置节点服务器,从而更迅速地传输信息,使网民更容易访问。

2005年,互联网工程任务组为了使DNS更安全,提出了加强DNS的方法,正式推出了域名系统安全扩展,即DNSSEC(Domain Name System Security Extensions)。DNSSEC采用基于公共密钥加密的数字签名,从而增强DNS验证强度。DNSSEC并非对DNS查询和响应本身进行加密签名,而是由数据所有者对DNS数据自身进行签名。

域名系统

2008年,DNSSEC开始在根域名服务器上实施,这是一个重要的里程碑,为全球范围内的DNS安全性提供了基础。

2014年12月1日,由互联网名称与数字地址分配机构 (ICANN)正式授权、唯一专门面向移动互联网的“.手机”中文通用顶级域(gTLD)正式开始启动运营。

2018年,由中国自主研发的域名系统基础软件“红枫”系统发布,红枫软件采用全新架构设计,解析性能为每秒 100 万次查询,数据更新性能为每秒 2600 条,在多线路智能调度、扩展性、IPv6 支持等方面有优势。

域名系统的组成

域名空间和资源记录

域名空间被设计成树状层次结构,最上方是DNS树形结构中唯一的根,根的下一级称为顶级域TLD(Top Level Domain),也称一级域,分为两大类:即通用顶级域和国家与地区代码顶级域。国家与地区代码顶级域下是二级域,也被称为国家顶级域,如中国的国家顶级域被预设为“类别域”和“行政区域”。二级域的下级是三级域,以此类推。层次树形结构中每个域都是其上的子域,比如“.net.cn域名系统”是“.cn”的子域,而“gsinfo.net.cn域名系统”既是“net.cn域名系统”的子域,同时也是“.cn”的子域。

域名系统

资源记录是与域名相关联的数据,域名空间的每一个节点包含一系列的资源信息,查询操作就是要抽取有关节点的特定类型信息。资源记录存在形式是运行域名服务主机的主文件中的记录项,资源记录在RFC1035中有详细描述,其格式为:Domain-name Time-to-live Type Class Value

Domain-name指出这条记录所指向的域;Time-to-live代表生存时间;Type代表记录的类型(如SOA,A,MX,NS,CNAME,PTR等);Class代表类别(总是IN);Value代表值,可以是数字、域名或ASCII串。

域名服务器

域名服务器时用以提供域名空间结构及信息的服务器结构,可以缓存域名空间中任一部分的结构和信息,但通常特定的域名服务器包含域名空间中一个子集的完整信息和指向能用以获得域名空间其它任一部分信息名字服务器的指针。域名服务器分为几种类型:主域名服务器(Primary Server),存放所管理域的主文件数据;备份域名服务器(Secondary Server),提供主域名服务器的备份,定期从主域名服务器读取主文件数据进行本地数据刷新;缓存服务器(Cache-Only Server),缓存从其他服务器获得的信息,加速查询操作。几种类型的服务的服务器可以并存于一台主机,每台域名服务主机都包含缓存服务器。

解析器

为了把一个域名映射为一个地址,应用程序调用一种名叫解析器的库过程,参数为域名。解析器将分组传送到本地服务器上,本地服务器查找域名并将地址返回给解析器,解析器再把它返回给应用程序。域名解析分为正向域名解析和逆向域名解析,正向域名解析是从域名到IP地址的转换,域名解析采用自顶而下的算法,从根服务器开始直到叶服务器,在其间的某个结点上找到所需的名字——地址映射。而逆向域名解析是根据IP地址解析相应的域名。

域名系统的工作原理

客户机将域名查询请求发送到本地DNS服务器,DNS服务器将在本地数据库中查找客户机要求的映射,如果本地DNS服务器不能再本地查找到客户机查询的信息,则将客户机请求发送到根域名DNS服务器,客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到维护再下一级域名的DNS服务器地址。

按照上述递归方法逐级接近查找目标,最后在维护有目标域名的DNS服务器上找到相应的IP地址信息,客户机的本地DNS服务器递归查询结果返回客户机,客户机利用本地DNS服务器查询得到IP地址访问目标主机。

域名系统

域名解析的算法主要有两种,第一种递归解析,要求域名服务器系统一次性完成所需的域名与地址间的变换;第二种反复解析,不再请求别的服务器,只有当某一被访问的域名服务器不能解析指定的域名时,在响应报文中指定下一个可用的域名服务器的地址。

域名系统

域名系统的部署

传统DNS物理部署结构

传统域名解析服务器一般采用单机部署的方式,为了进一步提高安全性和解析性能,会采用安全设备和负载均衡器,DNS服务器用于处理用户DNS请求,负载均衡器是为解决单台服务器性能不足引入的DNS集群设备,安全设备是为解决系统安全性引入的。但传统的DNS结构应对DDoS攻击的能力往往不足,在DNS系统的可靠性和性能等方面也存在一些问题,其系统性能、解析服务能力、安全保护等方面不能达到满足DNS服务100%可用性的需求。针对该问题,域名注册管理机构和网络运营商大多采用AnyCaLst技术进行DNS域名解析服务系统的部署,实现服务器负载均衡,增强服务可靠性,提高应对分布式拒绝服务攻击的反应时间,进而提高解析服务性能。

域名系统

基于AnyCast的DNS部署结构

AnyCast DNS就是将AnyCast路由交换技术应用到构建负载均衡域名系统的一种网络技术。通过将DNS地址以路由宣告的方式,从所有的域名服务器向其直连的三层交换机或路由器广播,通过动态三层路由方式引导对任播DNS IP地址的访问,实现DNS查询进行负载均衡。AnyCast DNS拥有更高的可靠性和性能、负载均衡、增强的安全性、攻击影响局部化等优点。全球互联网是由若干个自治系统(AS,Autonomous System)组成的,任播节点首先通过IGP协议在自治系统内声明同一个共享的单播IP地址,或者通过BGP协议在不同自治系统之间声明该共享的单播IP地址,这样就实现了多台物理服务器共享同一个口地址,而客户端则根据路由信息就近访问服务。

域名系统

域名系统的安全

由于DNS系统是作为一个开放系统设计的,存在未授权信息的泄漏,网络攻击等安全问题,使得其保密性无法保证,同时缺乏有效的接入控制。网络黑客针对这一安全漏洞,通过攻击DNS,从而造成整个或部分网络的瘫痪。新模式下的DNS涉及公共通信、信息服务、金融、电子政务、国防科技等重要领域,遭到攻击会丧失服务功能或者泄露重要数据,严重损害公共利益,甚至危害国民经济发展。

常见的DNS攻击

DNS 欺骗

DNS欺骗又称域名欺骗,可将用户合法请求对应的IP地址替换为一个虚假、恶意的IP地址,从而将用户导向至钓鱼网站,以窃取隐私信息。主要由两种方式组成:DNS缓存中毒和DNS信息劫持。DNS缓存中毒攻击中,攻击者非法修改DNS服务器的缓存记录,将域名原本对应的IP地址替换为恶意IP地址,从而将用户访问转移到钓鱼网站。DNS缓存中毒极具传播性,如果其他DNS服务器从此处获得缓存信息,错误缓存将进一步扩散。DNS信息劫持没有修改DNS服务器的缓存记录,而是在DNS服务器响应之前将用户请求导向恶意IP地址。

域名系统

域名系统

DNS 隐蔽信道

隐蔽信道违反互联网通信协议的规则,使用网络信息载体(网络协议、协议数据)秘密传递信息。由于传统的入侵检测系统和网络防火墙对这些载体的检测力度较小,隐蔽信道传输的数据难以被发现,因此隐蔽信道也是信息隐藏技术的一个分支。DNS隐蔽信道是一种报文封装技术,利用DNS数据包封装信息。由于DNS原本并不是用于数据传输,人们总是忽视其也是恶意通信或数据泄露的潜在威胁。

DDoS攻击

拒绝服务(denial of service,DoS)通过耗尽网络服务的资源和带宽,使服务器没有额外的能力处理外部请求,从而使网络服务崩溃、瘫痪。DoS攻击是单一攻击者对单一对象发起的攻击,即一对一的攻击方式。DDoS是升级版的DoS攻击,其攻击原理和攻击后果与DoS攻击相同,但其攻击方式变为更具有破坏性的多对一的攻击方式。

DNS反射放大攻击利用DNS响应包比请求包大的特点,耗尽攻击目标的网络资源,本质上也属于DDoS攻击。DNS反射放大攻击与常规DNS DDoS攻击的差别是,攻击者不是直接向目标发起攻击,而是通过伪造IP地址,向开放DNS服务器发送请求,此时服务器会将数倍于请求报文的响应报文发送到受害方,形成间接的DDoS攻击。

域名系统

DNS防护应对策略分析

采用DNSSEC技术

IETF提出了DNSSEC框架(DNS Security Extentions),它采用公开密钥加密,提供数据完整性及数据源认证。DNSSEC技术是指利用数字签名和公钥来实现DNS数据的完整性与可靠性,利用DNSSEC技术通过权威名称服务器用自己的私钥签署资源记录,然后解析服务器用权威的公钥认证来自权威名称服务器的数据,有效的提高了连接的安全性。如果身份秘钥验证失败,DNS可以拒绝接入。

部署Anycast

AnyCast能够实现DNS负载均衡,通过对Anycast的部署,可以实现DNS中提供相同服务的服务器组公用统一的IP,能够有效阻止DDoS攻击。网络攻击者利用僵尸网络对DNS攻击时,产生大量的信息,这些巨量的网络信息会通过Anycast分布到不同的DNS服务器上,进而缓解了单一服务器的运行压力,利用大量的分散式服务器能够一定程度上减少DDos攻击对DNS的破坏性。

区块链技术

随着块链技术的快速发展,相关机构利用区块链分散的特点,推动了块链技术和DNS系统的集成,基于集中式块链技术的网络安全比传统的集中式域名服务器安全,它可以支持域名管理,防止域名服务器缓存和中毒,区块链通过其网络节点构建DNS信息,能够有效提升DNS的安全性能。

域名系统的应用

DNS在气象局中的应用

域名系统应用在三个方面:业务系统域名注册、业务系统访问域名解析和互联网访问域名解析。

业务系统域名注册

举例广东省气象探测中心ASOM(综合气象观测系统运行监控平台)系统。服务器IP地址为10.148.9.198,示例注册域名为asom.moc.gd.cma。经过域名服务器注册之后,用户访问ASOM系统时只需要输入asom.moc.gd.cma,而不需要记住服务器的真实IP地址。

业务系统访问域名解析

气象全网域名系统能为业务系统访问域名提供解析服务。局域网用户访问其他省业务域名解析过程分为两种随机情况。随机情况一:客户访问asom.moc.gd.cma,转发服务器将请求转发给宽带网DMZ区的主服务器进行解析。本省转发服务器将客户请求转发至主服务器,主服务器请求根服务器,根服务器做应答,主服务器请求“gd.cma”域辅助服务器,“gd.cma”域辅助服务器做出应答,最后主服务器应答局域网转发服务器。随机情况二:客户访问asom.moc.cma,客户端请求局域网转发服务器,转发服务器转发到统一辅助服务器,统一辅助服务器做出应答,局域网转发服务器应答客户端。

互联网访问域名解析

局域网用户访问互联网域名grmc.gov.cn解析过程:客户请求本省根服务器,根服务器应答,请求“cn”顶级域服务器,“cn”服务器应答,请求“grmc.gov.cn”域服务器,“grmc.gov.cn”服务器应答客户端。

DDNS在铁路GPRS网的应用

DDNS(动态域名系统)解决GPRS终端域名和动态IP地址间的绑定问题。当GPRS终端使用不同的IP登录时,DDNS将GPRS终端用户IP地址的变化动态地映射到相应的DDNS服务器中,进行及时的自定更新,从而保证GPRS能够正确寻址。GPRS终端用户可以根据自己的需求选择合适的铁路业务系统平台、数据库平台和站带你运营模式,并由此获得IP地址使用最大限度的自主性。

域名系统的展望

随着信息技术和网络技术的飞速发展,互联网基础设施层和应用层技术持续演技,DNS的两端已经发生了极大的变化。一方面,终端的数量和类型急速增长催动了域名技术的升级。另一方面,以大数据、人工智能、物联网、区块链等为代表的新一代信息技术系统需要更安全、更智能的网络底座。

互联网域名系统国家地方联合工程研究中心(ZDNS)总经理邢志杰表示:下一代DNS是涵盖网络空间、关键基础资源、软硬件系统在内的,支撑数字经济发展的重要网络根基,向下可对接信息网络升级,向上可支撑数字经济发展。创新是保障网络安全的关键,ZDNS董事长毛伟说:“实施网络强国战略,首先要突破关键技术,创新是实现网络技术突破的灵魂。”

基于以上发展现状,ZDNS总工程师张绍峰总结了域名系统技术升级的三大趋势。趋势一:云边融合、协同的DNS,在数据中心和云上,DNS在应用发布和访问中承担着应用调度、容灾备份等关键职能。传统DNS应用检测维度单一、机制被动,一旦结果不准确、不实时将导致应用调度滞后、进而影响业务连续性。在云原生技术架构中应用的服务发现、服务注册、服务发布只能基于域名,一旦业务云化,域名条目将指数级增长。DNS智能调度的结果和实时性直接决定了应用的可靠性和体验提升。趋势二:软件定义DNS,使DNS能以更灵活、可扩展、可编程的方式进行部署和配置,实现DNS解析服务的“可定制”,为上层业务系统提供更智能的寻址服务。趋势三:有状态的DNS,传统的DNS是一种“单播”的设计,只有域名解析和应答的过程,没有状态的标记。有状态DNS解析能够满足专用网络低时延、高可靠的DNS的演进需求,通过有状态DNS解析来实现可扩展的服务发现机制成为工业界的共识,也是IETF的标准化方向。

争议事件

域名系统侵权

2019年12月18日,浙江杭州互联网法院对原告李某与被告意大利博浦盟银行股份公司网络域名权属、侵权纠纷一案进行了公开宣判。原告李某于2016年3月27日注册了涉案域名,后米兰人民银行有限责任合作公司于2016年10月25日向世界知识产权组织(以下简称WIPO)仲裁与调解中心提起投诉,认为涉案域名应归其所有。原告李某不服裁决,向杭州互联网法院提起诉讼,经审理认定,原告李某请求确认其对涉案域名享有合法权益,继续持有并使用的诉请,缺乏事实和法律依据,依法驳回原告李某的诉讼请求。随着互联网的普及和电子商务的发展,域名系统的商业性使得域名已不再仅仅是IP地址的外部代码,因其唯一性、稀缺性、国际性,产生了恶意抢注、域名变造、反向域名侵夺等产生的新类型侵权问题值得注意。

域名系统滥用

2015年1月21日,部分用户发现无法访问.com域名网站,腾讯、百度、京东、优酷等大批网站无法正常访问。域名服务商称,“断网”的原因与DNS故障有关。据360安全卫士官微透露,国内三分之二DNS处于瘫痪状态。中国互联网络信息中心(CNNIC)官方微博称,经初步评估因国内通用顶级域名的根解析出现问题所致。这次事件属于一次重大的DNS劫持事件,DNS劫持归属于DNS滥用,DNS滥用是一个模糊的概念,缺乏全球公认的定义。该术语主要源于ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构与注册管理机构运营商之间达成的标准注册管理机构协议,DNS滥用相对比较通用的定义是指利用DNS协议进行恶意活动的行为。这些行为包括五种类型:恶意软件、僵尸网络攻击、网络钓鱼、网络劫持和欺骗以及垃圾邮件。ICANN于2008年开始讨论DNS滥用问题,历时15年而无功,不仅反映出互联网治理问题的复杂性,也反映了现有治理体制存在一些弊端。