域名系统

科技工作者之家 2020-11-17

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

基本介绍域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。

虽然因特网上的节点都可以用IP地址惟一标识,并且可以通过IP地址被访问,但即使是将32位的二进制IP地址写成4个0~255的十位数形式,也依然太长、太难记。因此,人们发明了域名(Domian Name),域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com,都可以访问其Web网站。

一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。当人们要访问一个公司的Web网站,又不知道其确切域名的时候,也总会首先输入其公司名称作为试探。但是,由一个公司的名称或简称构成的域名,也有可能会被其他公司或个人抢注。甚至还有一些公司或个人恶意抢注了大量由知名公司的名称构成的域名,然后再高价转卖给这些公司,以此牟利。已经有一些域名注册纠纷的仲裁措施,但要从源头上控制这类现象,还需要有一套完整的限制机制,这个还没有。所以,尽早注册由自己名称构成的域名应当是任何一个公司或机构,特别是那些著名企业必须重视的事情。有的公司已经对由自己著名品牌构成的域名进行了保护性注册。

域名系统的名字空间名字空间的层次结构名字空间是指定义了所有可能的名字的集合。域名系统的名字空间是层次结构的,类似Windows的文件名。它可看作是一个树状结构,域名系统不区分树内节点和叶子节点,而统称为节点,不同节点可以使用相同的标记。所有节点的标记只能由3类字符组成:26个英文字母(a~z)、10个阿拉伯数字(0~9)和英文连词号(-),并且标记的长度不得超过22个字符。一个节点的域名是由从该节点到根的所有节点的标记连接组成的,中间以点分隔。最上层节点的域名称为顶级域名(TLD,Top-Level Domain),第二层节点的域名称为二级域名,依此类推。

域名的分配和管理域名由因特网域名与地址管理机构(ICANN,Internet Corporation for Assigned Names and Numbers)管理,这是为承担域名系统管理、IP地址分配、协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构。ICANN为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成。例如:.uk代表英国、.fr代表法国、.jp代表日本。中国的顶级域名是.cn,.cn下的域名由CNNIC进行管理。

CNNIC规定.cn域下不能申请二级域名,三级域名的长度不得超过20个字符,并且对名称还做了下列限制:

① 注册含有“CHINA”、“CHINESE”、“CN”和“NATIONAL”等字样的域名要经国家有关部门(指部级以上单位)正式批准。

② 公众知晓的其他国家或者地区名称、外国地名和国际组织名称不得使用。

③ 县级以上(含县级)行政区划名称的全称或者缩写的使用要得到相关县级以上(含县级)人民政府正式批准。

④ 行业名称或者商品的通用名称不得使用。

⑤ 他人已在中国注册过的企业名称或者商标名称不得使用。

⑥ 对国家、社会或者公共利益有损害的名称不得使用。

⑦ 经国家有关部门(指部级以上单位)正式批准和相关县级以上(含县级)人民政府正式批准,是指相关机构要出据书面文件表示同意××××单位注册×××域名。如:要申请beijing.com.cn域名,则要提供北京市人民政府的批文。

顶级类别域名除了代表各个国家顶级域名之外,ICANN最初还定义了7个顶级类别域名,它们分别是.com、.top、.edu、.gov、.mil、.net、.org。.com、.top用于企业,.edu用于教育机构,.gov用于政府机构,.mil用于军事部门,.net用于互联网络及信息中心等,.org用于非赢利性组织。

随着因特网的发展,ICANN又增加了两大类共7个顶级类别域名,分别是.aero、.biz、coop、.info、.museum、.name、.pro。其中,.aero、.coop、.museum是3个面向特定行业或群体的顶级域名:.aero代表航空运输业,.coop代表协作组织,.museum代表博物馆;.biz、.info、.name、.pro是4个面向通用的顶级域名:.biz表示商务,.name表示个人,.pro表示会计师、律师、医师等,.info则没有特定指向。

域名系统组成资源文件早期因特网上仅有数百台主机,那时候的域名与IP地址对应只需简单地记录在一个hosts.txt文件中,这个文件由网络信息中心(NIC,Network Information Center)负责维护。任何想添加到因特网上的主机的管理员都应将其名字和地址E-mail给NIC,这个对应就会被手工加到hosts.txt文件中。每个主机管理员去NIC下载最新的hosts.txt文件放到自己的主机上,就完成了域名列表的更新。域名解析只是一个检查本机文件的本地过程。

随着因特网上主机数量的膨胀,原有的方式已经无法满足要求。现有域名系统于20世纪80年代开始投入使用。域名系统采用层次结构的名字空间,并且原来庞大的对应表被分解为不相交的、分布在因特网中的子表,这些子表称为资源文件。

域名解析前面已经说明了域名系统名字空间的层次结构,下面来具体看一下这一结构是如何同域名系统的域名服务器(DNS,Domain Name Server)结合来实现域名解析的。

首先,根据域名系统域名空间的层次结构将其按子树划分为不同的区域,每个区域可看作是负责层次结构中这一部分节点的可管理的权力实体。例如,整个域的顶层区域由ICANN负责管理,一些国家域名及其下属的那些节点又构成了各自的区域,像.cn域就由CNNIC负责管理。而.cn域下又被划分为一些更小的区域,例如.fudan.edu.cn由复旦大学网络中心负责管理。

其次,每个区域必须有对应的域名服务器,每个区域中包含的信息存储在域名服务器上。一个区域中可有两个或多个域名服务器,这样即使其中一个域名服务器出了故障,另一个域名服务器仍然可以正常提供信息。一个域名服务器也可以同时管辖多个区域。域名服务器在接到用户发出的请求后查询自身的资源记录集合,返回用户想要得到的最终答案,或者当自身的资源记录集合中查不到所需要的答案时,返回指向另外一个域名服务器的指针,用户将继续向那个域名服务器发出请求。所以说,域名服务器不需要记录所有下属域名和主机的信息,对于其中的子域(如果存在),只需要知道子域的域名服务器即可。

资源记录是一个域名到值的绑定,它包括以下字段:域名、值、类型、分类和生命期。域名字段和值字段分别用来表示解析的内容和解析返回的结果。类型字段代表了值的种类:类型为A代表值字段是一个IP地址,即用户所要的最终答案;类型为NS代表值字段是另一个域名服务器的域名,该域名服务器能够知道如何解析域名字段所指定的域名;类型为CNAME代表值字段是由域名所指定的主机的一个别名;类型为MX代表值字段是一个邮件服务器的域名,该邮件服务器接收由域名字段所指定的域的邮件;类型PTR用于域名反解等。分类字段允许指定其他的记录类型。生命期字段用于指出该资源记录的有效期是多少。为减少域名解析时间,域名服务器会缓存一些曾经查询过的、来自其他域名服务器的资源记录。由于这些资源记录会因为更改而失效,因此域名服务器设置了生命期,到期的资源记录会被清除出缓存。

根域名服务器知道所有顶级域名的域名服务器,对应于每个顶级域名,它都有两条资源记录:一条是NS资源记录,域名字段是该顶级域名,值字段是该顶级域名解析的域名服务器的域名;另一条是A资源记录,用来指明该域名服务器的域名对应的IP地址。综合使用这两条记录,就可以知道对该域下的某个域名解析,应该继续去哪个IP地址的域名服务器寻找。第二层的域名服务器类似地存放各个第三层域名服务器的指针。第三层的域名服务器会出现A、CNAME、MX等类型的资源记录。每个域名服务器都有根域名服务器的地址记录。

最后,一个需要域名解析的用户先将该解析请求发往本地的域名服务器。如果本地的域名服务器能够解析,则直接得到结果,否则本地的域名服务器将向根域名服务器发送请求。依据根域名服务器返回的指针再查询下一层的域名服务器,依此类推,最后得到所要解析域名的IP地址。

域名反解域名反解是指给出一个IP地址,找出其对应的域名,这也是利用DNS来实现的。举个例子,假设一个要反解的IP地址为202.120.225.9,系统将其改写为9.225.120.202. in-addr.arpa,然后按域名解析的方式查询。这需要在被查询主机的本地域名服务器上有一条对应于9.225.120.202.in-addr.arpa的资源记录,类型是PTR,值是其域名。

中文网址与中文域名中文网址由于因特网发源于美国,因此域名也是由英文字母组成的,对于这种英文表示方式,中国人并不适应,而且它也很难融合。实际上,中国的企业或组织在网上登记的名称与其真实名称往往大相径庭。例如,大家都知道《解放日报》,但知道它的域名www.jfdaily.com的,恐怕不多。传统经济正同网络相融合,如果客户无法直接根据企业名称、品牌猜出其域名,那么企业原有的品牌优势就不能直接延伸到网上,这是大部分中国企业,甚至是进驻国内市场的外企都会碰到的一个尴尬问题。更尴尬的是,为了不被人恶意抢注、冒充,进而影响自身形象,一个企业可能要同时注册很多相近的域名,例如www.jiefangribao.com、www.jiefangdaily. com、www.liberationdaily.com等,这将是一笔很大的开销。

鉴于此,国内开始探索网络地址的中文化。1999年,www.3721.com在国内首先提出了中文网址的概念。使用中文网址,用户在访问时不必再记忆繁琐、冗长的英文域名,可以不需要再输入www.、.com等前后缀,中文的企业名称或产品名称就可以直接作为网址,大大拓展了品牌的影响力。例如,可以直接使用“人民日报”、“新华社”、“古墓丽影”等。www.3721.com又进一步推出了网络实名,网络实名提供了中文网址、英文网址、拼音网址和数字网址等4种访问方式。

使用中文网址需要安装一个客户端软件。运行该软件后,只要在浏览器地址栏输入中文、拼音字头,甚至股票代码,就能直接到达相应网页,无需去任何网站搜索。

中文域名2000年年初,CNNIC推出了中文域名注册试验系统。信息产业部于2000年11月发布了《关于互联网中文域名管理的通告》,通告对中文域名的注册体系进行了规范。2001年2月,CNNIC在其网站上宣布中文通用域名顶级服务器已经开始提供解析服务。

CNNIC的中文域名将同时提供两种方案:一种是以.cn结尾的中文域名,另一种是纯中文域名,形如信息中心.网络、联想.公司,其中的点号也可以用中文的句号代替。整套系统同现有域名系统兼容,并且支持简繁体的完全互通解析。另外,中文域名注册后还可以支持中文电子邮件地址功能和中文虚拟主机等应用服务。

中文网址与中文域名的比较中文网址和中文域名都是为了解决中国人不适应因特网用英文方式表示而提出的解决方案。两者看上去很相似,但是本质上却有很大差别。首先,中文网址以域名为基础。举例来说,假如要乘出租车去中央电视台,你可以告诉司机它的门牌号,这相当于域名,你也可以直接告诉司机说“我要去电视台”,这就好比网址。但不可否认,门牌号是基础,而直接说的“电视台”算是一个别称。其次,在层次结构上,中文网址是一层平行结构,没有域和子域的概念区分;而中文域名则保持了域名的层次结构特性,一个大的机构可以为其各个部门建立中文域名体系,例如:某专业. 某系. 某大学. 中国。最后,中文域名可以支持其他应用服务,例如E-mail等,而中文网址则适合于智能化的搜索。

结构运行Internet域名系统是一个树型结构,其形式如下:com(企业)、net(网络运行服务机构)、 gov(政府机构)、org(非赢利性组织)、edu(教育)域由InterNic管理,其注册、运行工作由Network Solution公司负责。

新顶级域名7个新的顶级域名分别是:firm(公司企业)、shop(商店)、web(希望突出万维网活动的实体)、arts(主要从事娱乐文化活动的实体)、rec(主要从事娱乐文化实体)、info(主要从事信息服务实体)、nom(一些希望在互联网上发布个人信息的人)将于1998年启动,这些域名的注册服务由多家机构承担,CNNIC也有幸成为注册机构之一;按照ISO-3166标准制定的国家域名,一般由各国的NIC(Network Information Center,网络信息中心)负责运行。我国域名体系分为类别域名和行政区域名两套。

类别域名类别域名是指图中最下面一行前面的六个。

域名,分别依照申请机构的性质依次分为:AC-科研机构;COM、TOP-工、商、金融等专业;EDU-教育机构;GOV-政府部门;NET-互联网络、接入网络的信息中心和运行中心;ORG-各种非盈利性的组织。

行政区域名行政区域名是按照我国的各个行政区划分而成的,其划分标准依照国家技术监督局发布的国家标准而定,包括“行政区域名”34个,适用于我国的各省、自治区、直辖市,分别为:BJ-北京市;SH-上海市;TJ-天津市;CQ-重庆市;HE-河北省;SX-山西省;NM-内蒙古自治区;LN-辽宁省;JL-吉林省;HL-黑龙江省;JS-江苏省;ZJ-浙江省;AH-安徽;FJ-福建省;JX-江西省;SD-山东省;HA-河南省;HB-湖北省;HN-湖南省;GD-广东省;GX-广西壮族自治区;HI-海南省;SC-四川省;GZ-贵州省;YN-云南省;XZ-西藏自治区;SN-陕西省;GS-甘肃省;QH-青海省;NX-宁夏回族自治区;XJ-新疆维吾尔自治区;TW-台湾;HK-香港;MO-澳门。

CN域名除edu点cn由CernNic(教育网)运行外,其他均由CNNIC运行。

形式域名服务器通常会有两种形式:权威域名服务器,以及缓存域名服务器。

权威域名服务器下列情况需要有权威域名服务器:想要向全世界提供DNS信息,并对请求给出权威应答。注册了类似 exampleorg的域,而需要将IP指定到其下的主机名上。某个IP地址块需要反向DNS项(IP 到主机名)。备份服务器,或常说的从(slave) 服务器,会在主服务器出现问题或无法访问时来应答查询请求。

缓存域名服务器下列情况需要有缓存域名服务器: 本地的DNS服务器能够缓存,并比直接向外界的域名服务器请求更快地得到应答。

当有人查询www.FreeBSDorg时,解析器通常会向上级ISP的域名服务器发出请求,并获得回应。如果有本地的缓存DNS服务器,查询只有在第一次被缓存DNS服务器发到外部世界。其他的查询不会发向局域网外,因为它们已经有在本地的缓存了。

域名解析概述就像我们初次拜访一个人一样,我们要知道人家的门牌号,然后按照地址去找。在Internet上只知道某台机器的域名还是不够的,还要有办法去找到那台机器。寻找这台机器的任务由网上一种被称为域名服务器的设备来完成的,而完成这一任务的过程就称为域名解析。

过程当一台机器a向其域名服务器A发出域名解析请求时,如果A可以解析,则将解析结果发给a,否则,A将向其上级域名服务器B发出解析请求,如果B能解析,则将解析结果发给a,如果B无法解析,则将请求发给再上一级域名服务器C,如此下去,直至解析到为止。1

服务器DNS的全称是Domain Name Server,一种程序,它保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。

之所以域名解析不需要很长时间,是因为上网接入商,比如通过阳光DNS接入北京电信,河南电信等,为了要加速用户打开网页的速度,通常在他们的DNS服务器中缓存了很多域名的DNS记录,再根据用户所在地做出网络分配。这样这个接入商的用户要打开某个网页时,接入商的服务器不需要去查询域名数据库,而是把自己缓存中的DNS记录直接使用,从而加快用户访问网站的速度。这是其最大的优点。

缺点是上网接入商ISP的缓存会存储一段时间,只在需要的时候才更新,而更新的频率没有什么标准。有的ISP可能1小时更新一次,有的可能长达一两天才更新一次。

所以新注册的域名一般来说解析反倒比较快。因为所有的ISP都没有缓存,用户访问时ISP都是要查询域名数据库,得到最新的DNS数据。

而老域名如果更改了DNS记录,但世界各地的ISP缓存数据却并不是立即更新的。这样不同ISP下的不同用户,有的可以比较快的获取新的DNS记录,有的就要等ISP缓存的下一次更新。1

本词条内容贡献者为:

吴晨涛 - 副研究员 - 上海交通大学