赞
踩
DNS(Domain Name System)域名系统,是互联网使用的命名系统,用来把便于人们使用的机器名转换成IP地址。解决Internet上主机/路由器的识别问题。
域名解析系统DNS,是多层命名服务器构成的分布式数据库,应用层协议完成名字的解析。
问题:为什么不使用集中式的DNS?
1.单点失败问题。如果唯一的一个服务点(可能有多台服务器)坏掉了,所有使用域名来提供网络服务的,都需要请求DNS来做事情,那么整个互联网就坏掉了。
2.流量问题。如果几十亿台主机都到这个服务器请求DNS查询,流量是巨大的,成本也是高昂的。
3.距离问题。如果将服务器放在中国,美国就要通过大洋下的光缆,请求DNS,这样时延就会很长,维护成本很高。
4.维护性问题。
如果大量的用户需要在同一时间访问同一台服务器,时延将会非常大。因此,DNS服务器,一定要设置成高可用、高并发和分布式的。
互联网采用层次树状结构命名方法,采用这种方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain)。这里“域“是名字空间中一个可被管理的划分。域可以划分为子域,而子域还可以继续划分为子域的子域。
从语法上讲,每个域都由标号序列组成,各标号之间用“.”隔开,例如mail.cctv.com 由上图可知分别是三级域名、二级域名、顶级域名。
DNS规定,域名中的标号都由英文字母和数字组成,每个标号不超过63个字符(为方便记忆,最好不要超过12个字符),也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。
需要指出,互联网的名字空间是按照机构的组织来划分的,与物理的网络无关,与IP地址中的“子网”也没有关系。
顶级域名TLD(Top Level Domain)共分为3大类:
1.国家顶级域名nTLD:采用ISO3166的规定。如,cn表示中国,us表示美国,uk表示英国,等等。国家顶级域名又常记为ccTLD(cc表示国家代码country-code)。
2.通用顶级域名gTLD:
最先确定的:com(公司企业),net(网络服务机构),org(非营利性组织),int(国际组织),edu(美国专用的教育机构),gov(美国的政府部门),mil(美国的军事部门)。
后来增加的:aero(航空运输企业),asia(亚太地区),biz(公司和企业),cat(使用加泰隆人的语言和文化团体),coop(合作团体),info(各种情况),jobs(人力资源管理者),mobi(移动产品与服务的用户和提供者),museum(博物馆),name(个人),pro(有证书的专业人员),tel(Telnic股份有限公司),travel(旅游业)。
3.基础结构域名:这种顶级域名只有一个,即arpa,用于反向域名解析,又称反向域名。
我国把二级域名划分为“类别域名”和“行政区域名”两大类。
1.类别域名(共7个):ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的政府机构),mil(中国的国防机构),net(提供互联网服务的机构),org(非营利性的组织)。
2.行政区域名(共34个):例如bj(北京市),js(江苏),等等。
一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器(authoritative name server),用来保存该区中的所有主机的域名到IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区“为单位。区是DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域。
如下图举例所示:
互联网上的DNS域名服务器是按照层次安排的,每个域名服务器都只对域名体系结构中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为以下四种类型:
1.根域名服务器:所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。根域名服务器是最重要的域名服务器,因为不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析(转换成IP地址),只要自己无法解析,就首先要求助于根域名服务器。
互联网的根域名服务器总共只有13个域名,但这不表明根域名服务器是由13台机器组成的。实际上,在互联网中是由13套装置构成这13组根域名服务器[W_ROOT]。为了安全起见,有些根域名服务器的具体地点还是保密的。人们用A-M这13个字母中的一个,来表示某组根域名服务器。中国在一组根域名服务器L上有3个位置,地点在北京。
由于根域名服务器采用了任播技术(任播的IP数据报的终点是一组在不同地点的主机,但具有相同的IP地址。IP数据报交付离源点最近的一台主机上),因此当DNS客户向某个根域名服务器的IP地址发出查询报文时,互联网上的路由器就能找到离这个DNS客户最近的一个根域名服务器。这样做不仅加快了DNS的查询过程,也更加合理地利用了互联网的资源。
2.顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的答案(可能是最后查询结果,也可能是下一步应当找的域名服务器的IP地址)。
3.权威域名服务器:负责一个区的域名服务器。
4.本地域名服务器:本地域名服务器离用户较近,一般不超过几个路由器的距离。当所要查询的主机也属于同一个本地ISP域时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。
上述路径可以看到首选DNS服务器和备选DNS服务器的IP地址。这里的DNS服务器指的就是本地域名服务器。
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证数据的一致性。
1.主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
2.本地域名服务器向根域名服务器的查询通常是采用迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:你下一步应当向哪一个域名服务器进行查询。然后让本地域名服务器进行后续的查询。本地域名服务器也可以采用递归查询。
本地域名服务器采用迭代查询
本地域名服务器采用递归查询
本地缓存服务器
为了提高DNS查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存(有时也称为高速缓存域名服务器)。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于名字到地址的绑定并不经常改变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项。当域名服务器已从缓存中删去某些信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器获取绑定信息。
当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。
主机缓存
许多主机在启动时从本地域名服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到名字时才使用域名服务器。维护本地域名服务器数据库的主机自然应该定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删掉无效的项。由于域名改动并不频繁,大多数网点不需花太多精力就能维护数据库的一致性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。