今天来跟大家普及一下,会是DNS解析,域名为什么要解析
2022-12-05 加入收藏
Internet上的成千上万台主机都是通过IP地址来区分的,而访问这些主机的时候,显然很难记住每一个没有任何意义和规律的长达32位的二进制地址,即便是记住点分十进制的IP地址也是一件很令人头疼的事情。能否用一些方便记忆的形式来访问网络中的主机呢?相比之下,人们显然更愿意并且更容易记住那些有规律的、有实际意义的主机名字。但是网络通信时只能识别二进制的IP地址,这就需要一种机制来完成主机名字到二进制IP地址的转换工作。
在ARPANet时代,整个网络上只有数百台计算机,那时使用一个host.txt文件,里面记录了所有主机名及其相对应的二进制IP地址,主机名字管理由网络信息中心NIC集中完成。当用户需要同某个主机进行通信时,只要用户输入这个主机的名字,计算机就能够很快地查出相应的二进制IP地址并进行转换。对于只有几百个分时运行的计算机的网络,这个方法还是很有效的。但是当网络的规模不断扩大,主机数越来越多时,NIC根据网络的变化不断改动host.txt文件,并定期向全网络进行传递。这使得host文件越来越难以管理,网络用户不能忍受自己的主机名需要等待很长乃至几天的时间才能加在host.txt文件中,更何况还有命名冲突的可能(除非全网络的主机名被统一管理,这在一个复杂的国际网络上显然是不现实的)。另外,频繁的host.txt文件下载请求对维护站主机造成了巨大的压力,服务的质量得不到保证,一旦维护站出了故障,整个网络就会瘫痪。
因此,迫切需要一个简单的管理方法来解决这些问题。
1984年,因特网开始采用层次式的名字空间组织方案——域名系统DNS(Domain Name System),并使用分布式数据库管理整个名字空间。域名系统在RFC1034和RFC1035中定义,并已成为因特网的正式标准。
当网络上的一台客户机需要访问耨服务器上资源时,客户机的用户只需在浏览器的地址文本框中数据该服务器网址,就可以与该服务器连接,计算机的硬件只能识别IP地址,不能识别其他类型地址,这样在用户容易记住的地址和计算机能够识别的地址之间就需要转换,DNS服务器便充当这个地址解析的角色
DNS是域名系统的缩写(Domain Name System)
是一种组织成域层次结构的计算机和网络服务命名系统
采用层次化、分布式、客户-服务器模式的名字管理代替原来的集中式管理
允许命名管理者在较低的结构层次上管理用户自己的名字
这样把名字空间划分的足够小,由不同的组织进行分散管理,使名字管理更加灵活和方便
DNS主要包含三部分的内容:
层次树型结构的域名空间(Domain Name Space)、
存储有关域名及其二进制IP地址信息的名字服务器(Name Server)
实现域名与IP地址转换的解析器(Resolver)。
DNS系统采用客户/服务器工作方式。
解析器驻留在客户端,按用户的需要创建查询请求并提交给名字服务器,同时将查询结果返回给客户,因此人们习惯将域名到二进制IP地址的转换过程叫做域名解析。
运行在专门的网络节点上保存域名树结构(部分或者全部域名空间)和相应的信息的分布式数据库系统称为名字服务器。
在DNS中,域名服务器是一个服务器软件,运行于指定的计算机,完成域名-IP地址的映射
理论上讲可以只使用一个域名服务器来管理网络上的所有主机名,并回答所有的IP查询
然而网络规模不断扩大,这种方式下域名服务器负荷越来越重,会导致无法工作
该域名服务器一旦出现故障,整个网络就会瘫痪。所以DNS采用联机分布式数据库系统。
DNS的分布式结构使得系统的生存性增强,即使某个服务器出了故障,整个系统还能正常运行;而客户/服务器的工作方式促使大多数名字解析任务在本地完成,降低了因特网的通信量,提高了系统的效率。
域名空间(层次型域名系统)
网络主机命名的三个问题:
主机名字的唯一性
要想因特网正常工作,和IP地址一样,网络上任何一个计算机的域名也必须是惟一的。
便于管理
便于映射
为了便于管理和查询,域名空间使用层次的树状结构。
域名的具体结构或命名规则称为域名空间。
DNS的分层管理机制采用一个规则的树形结构的名字空间
每个节点都有一个独立的节点名字,即标号
空标号“”保留为根,兄弟节点(同一父节点的各个子节点)不允许重名
非兄弟节点可以重名,叶节点通常用来代表主机
DNS将整个名字空间分成若干个域
一个节点的域由该节点及该节点以下的名字空间组成
一个域是树型域名空间的一颗字数,每个域都有一个域名
域名定义了该域在分布式主机数据库中的位置
每个域还可以再划分为子域,子域是域的子集
看上去像是一棵倒置的树,树中每个节点和特定层次的域相对应,越靠近树根级别越高。
根域下面是顶级域,顶级域之下是二级域,再下面是三级域,依此类推。
域(Domain)是树状的域名空间中的一棵子树,代表因特网的某个可被管理的资源集合;
域还可以根据需要被进一步划分为子域。
树叶是Internet上一台主机的名称,通常是因特网上提供特定服务的服务器主机的名称,
例如www、ftp、mail等等,它的下面就不能再划分子域了。
在域名树中的中间节点和叶子统称为节点。
每个节点域有一个名字(不超过63个字符,且不用区分大小写字母),
不同的节点域可以使用相同的名字,
根节点没有名字。
某个节点的完整域名由从该节点到根的标记序列构成
中间以“.”(小数点)为分隔。
写的时候由左至右按级别依次从低到高书写,最右边为顶级域,
如..三级域.二级域.顶级域
域名lib.pku.edu.cn由lib,pku,edu,cn共四个节点标识符组成,
这些标识符通常称为标号
每个标号后面的各个标号称为域
在lib.pku.edu.cn中最低级域为lib.pku.edu.cn,第三级域是pku.edu.cn,代表北京大学;第二级域是edu.cn代表教育机构;顶级域为cn代表中国
这种类似文件目录树的层次结构保证了每一个域名在全因特网范围内是唯一的。虽然有的节点域使用了相同的名字,但是它们隶属于不同的父域,下面又划分不同的子域,因而保证了节点的完整域名在全网是唯一的
例如,www.tsinghua.edu.cn、mail.xjtu.edu.cn、www.xjtu.edu.cn,其中第1,3个计算机的名字都是www,但隶属于不同三级域,而第2、3个域名表示相同三级域下不同的计算机
域名命名限制
域名不能超过63个字符
路径全名不能超过255个字符
书写时不区分大小写
每级域名目前都是由英文字母和数字组成
级别最低的域名写在最左边,级别最高的域名写在最右边
域名系统不规定一个域名需要包含多少个下级域名
也不规定每一级的域名代表什么意思
各级域名由上一级域名管理机构管理
最高域名则由NIC管理
域名只是个逻辑概念,并不能反映出计算机所在的物理地点
域名管理
在DNS中,每个域分别由不同的组织进行管理。
每个组织都可以将它的域再分成一定数量的子域并将这些子域委托给其他组织进行管理。
例如,管理edu.cn域的中国互联网络信息中心(CNNIC)又授权北京大学信息中心来管理pku.edu.cn子域。
域名系统对下级域的个数和层数没有规定,但是整个域名的长度不得超过255个字符。
域的命名由使用者自己决定,各级域的域名由其上一级的域名管理机构管理,而顶级域名由国际互联网代理成员管理局IANA全权负责。
在1998年之后,国际域名注册是由Internet名字与号码指派公司ICANN(Internet Corporation for Assigned Names and Numbers,ICANN)统一管理的。
顶级域名(Top LevelDomain,TLD)有通用顶级域名以及国家顶级域名之分。
1.通用顶级域名gTLD
RFC1591最早规定的顶级域名有6个,
分别为
.edu(教育机构),
.com(经济实体),
.org(各种不适于注册在其他类别域的组织机构和非政府组织),
.net(网络服务机构),
.gov(政府部门或机构,美国专用)和.mit(军事部门,美国专用)
.int(用于由国际协议和国际数据库建立的组织机构)。
每一个顶级域类别都是为相应的机构创建的。
2.国家顶级域名nTLD
国家顶级域名采用由ISO-3166标准规定的两位字母的国家代码的形式,目前有243个
如.us表示美国,.cn表示中国等。
由于因特网用户数量的剧增,2000年11月起又增加了7个通用顶级域名
分别是:.biz,.info,.name,.pro,.museum,.aero和.coop。
在国家顶级域名之下的二级域名均由该国家自行确定。
我国将二级域名划分为“类别域名”和“行政区域名”两大类。
其中“类别域名”有6个,它们是
.AC适用于科研机构;
.com适用于工商、金融等企业,
.edu(适用于中国的教育机构),
.gov(适用于中国的政府机构),
.net(适用于提供互联网络服务的机构),
.org(适用于非营利性组织);
“行政区域名”共34个,适用于我国的各省、自治区、直辖市,
例如.bj表示北京市,.sh表示上海市等。
在中国注册域名通常分为国内域名注册和国际域名注册。
目前,国内域名注册统一由中国互联网络信息中心(CNNIC)进行管理,具体注册工作由通过CNNIC认证授权的各代理商执行。
国际域名是由ICANN统一管理的,具体注册工作由通过CNNIC认证授权的各代理商执行。
中文域名指能用汉字命名的新一代域名,它是中国人自己的域名,使用和记忆非常方便。
域名与IP
在这里要特别强调一点:虽然域名和IP地址都是分层的地址结构,而且都是以“.”为分隔的,但是二者的各层之间并没有对应的关系。域名是按名字组织关系来划分的,是一个逻辑概念,与计算机在网络中的物理位置和子网的划分没有任何关系,而且“.”的数量不一定是三个;IP地址是一个32bit的二进制数,点分十进制记法中的“.”是为了提高可读性,在计算机和网络中处理的IP地址是没有“.”的
域名解析
使用域名进行访问网络时,不能直接用于TCP/IP协议的路由选择
需要先把域名解析成IP地址,这种主机域名映射成IP地址的过程叫做域名解析
进行域名解析的主机叫做DNS服务器(域名服务器,名字服务器,Name Server),就是将因特网上主机的域名转化为计算机能识别的IP地址。
在DNS系统中,存储有关域名及其二进制IP地址信息的程序软件运行在专门的网络节点之上,完成域名到IP映射
各服务器只负责解析主管范围的解析工作
DNS系统由一个分布式的主机信息数据库管理互联网上所有主机的域名与IP地址,
不同域名是数据库的不同部分
每个域至少有一个域名服务器进行管理,该域名服务器保存着这个域名空间的所有信息,并负责回答某个域名地址的查询请求
查询结构有两种:本地计算机含有该域名地址则直接给出,若本地没有该域名则给出其他域名服务器地址
根服务器知道所有一级域的服务器位置;
一级域名服务器知道本域内所有的域名服务器位置
收到域名查询后,根域名服务器提供该域名所在的第一级域名服务器地址和名字,
第一级再提供第二级,以此类推,直到得到答案
经过统计发现,大部分的名字转换请求为本地请求,
因此为了提高查询效率,不必每次都去访问根名字服务器。
另外,名字服务器还可以在其本地缓冲区存储查询过程中获得的其他名字服务器的信息,
以便在将来的查询中缩短响应时间,
用户的主机中也可以使用这样的缓存技术来加速查询。
当然,名字服务器并不会永远保留这个信息,而会在一定时间后放弃它。
这个到期间隔时间称为存活期(Time To Live,TTL)。
DNS数据库中的每一数据都有相应责任区的管理员指定的TTL。
DNS服务器类型
主要DNS服务器
当DNS服务器管理主要区域时,被称为主要DNS服务器
它是主要区域的集中更新源,用户可以部署两种模式主要区域
1.标准主要区域;此区域数据存在本地文件中,只有主要DNS可以管理,一旦主DNS出现故障,此主要区域不能再进行修改,辅助服务器答复DNS的解析请求。此区域只支持非安全的动态更新
2.活动目录集成主要区域;此区域仅当在域控制器上部署DNS时有效,区域数据存放在活动目录中并随目录的复制而复制。默认情况下,每一个运行在域控制器上的DNS服务器都将成为主要DNS,并可以修改区域中数据(多点更新),避免标准主要区域的单点故障。活动目录集成主要区域支持安全的动态更新
辅助DNS服务器
实现负载均衡和避免单点故障
辅助DNS用于获取区域数据的源DNS服务器称为主服务器
主服务器可以由主要DNS服务器或者其他辅助DNS来担当
当创建辅助区域时,要求用户指定主服务器
在辅助服务器和主服务器之间存在着区域复制,用于从主服务器更新区域数据