转载:DNS

http://baike.baidu.com/view/22276.html?fromTaglist

 

1、DNS 定义

  DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者一对多)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

  在IPV4中IP是由32位二进制数组成的,将这32位二进制数分成4组每组8个二进制数,将这8个二进制数转化成十进制数,就是我们看到的IP地址,其范围是在0~255之间。因为,8个二进制数转化为十进制数的最大范围就是0~255。现在已开始试运行、将来必将代替IPv4的IPV6中,将以128位二进制数表示一个IP地址。

  大家都知道,当我们在上网的时候,通常输入的是如:www.sina.com.cn 这样子的网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别。再如,我们去一WEB服务器中请求一WEB页面,我们可以在浏览器中输入网址或者是相应的IP地址,例如我们要上新浪网,我们可以在IE的地址栏中输入:www.sina.com.cn 也可输入这样子 218.30.66.101 的IP地址,但是这样子的IP地址我们记不住或说是很难记住,所以有了域名的说法,这样的域名会让我们容易的记住。

  DNS:Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。

  DNS:Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP地址,它们之间的转换工作称为域名解析(如上面的www.sina.com.cn 与 218.30.66.101 之间的转换),域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

2.DNS历史

  DNS最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。

  早期的域名必须以英文句号“.”结尾,当用户访问 www.wikipedia.org 的HTTP服务时必须在址栏中输入: http://www.wikipedia.org. ,这样DNS才能够进行域名解析。如今DNS服务器已经可以自动补上结尾的句号。

  当前,对于域名长度的限制是63个字符,包括www..com或者其他的扩展名。域名同时也仅限于ASCII字符的一个子集,这使得很多其他语言无法正确表示他们的名字和单词。基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集,这已经通过了验证并被一些注册机构作为一种变通的方法所采纳。

  [1][2][3]3、 什么是DNS?

  DNS是指:域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

 
4、为什么要注册DNS,有什么意义?

  申请了DNS后,客户可以自己为域名作解析,或增设子域名.客户申请DNS时,建议客户一次性申请两个。

5、在域名注册机构注册DNS步骤、相关规定

  目前国际域名的DNS必须在国际域名注册商处注册,国内域名的DNS必须在CNNIC注册,注册支持解析英文域名和中文域名的dns要分别注册:

  (1)步骤:选择做为DNS后缀的域名-创建dns服务器---选择是在国际注册还是国内注册-申请--交付费用

  (2)费用:约75元/个(一次性)

  (3)条件:如果注册国际DNS服务器的,dns服务器的名称必须是在具有条件的公司注册的国际英文域名才能注册,有独立IP地址,DNS服务器域名前的前缀最好是dns.、ns.等

6、DNS注册成功需要多长时间?

  在系统中提交注册DNS的申请,款到后注册的时间为2个工作日左右。

7、如何修改DNS服务器?

  (1)条件:要更改为的DNS为合法的DNS。

  如果要查询DNS是否为合法的DNS,请点击:DNS查询界面

  输入DNS服务器的名称或者IP地址,选中第三个选项Nameserver,查询如果查询出有DNS注册的信息,如注册商,名称对应的IP地址,则这个DNS是合法的。

  (2)修改方法:通过具有条件的公司注册的国际域名变更DNS:用户可通过和提供服务的该公司进行协商(大致步骤为:提出申请并提交相关材料后该业务公司会在48小时左右完成变更)。

8、域名修改DNS是否收费?

  国际英文域名、国内英文域名可以修改DNS,这项服务是免费的。

9、为什么DNS注册成功,但仍无法使用?

  注册DNS服务器,必须同时在该域名的DNS服务器上,为将要进行注册的DNS服务器主机名设置好域名解析,解析生效且注册成功后,新注册的DNS服务器才可以正式使用。

  例如:

  要注册名为 dns1.abc.com(IP: 1.1.1.1)和 dns2.abc.com(IP: 2.2.2.2)的DNS服务器,则在提交注册申请后,须尽快在abc.com的现DNS服务器上,设置dns1.abc.com指向1.1.1.1,dns2.abc.com指向2.2.2.2。另外如果将来abc.com变更DNS服务器了,也要在新的DNS服务器上设置以上两条记录,DNS才能继续使用。

  8、DNS使用的是UDP53号端口

  9、DNS的工作原理

  以访问www.xxx.com为例说明

  1)客户端首先检查本地c:/windows/system32/drivers/etc/host文件,是否有对应的IP地址,若有,则直接访问WEB站点,若无

  2)客户端检查本地缓存信息,若有,则直接访问WEB站点,若无

  3)本地DNS检查缓存信息,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无

  4)本地DNS检查区域文件是否有对应的IP,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无,

  5)本地DNS根据cache.dns文件中指定的根DNS服务器的IP地址,转向根DNS查询。

  6)根DNS收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.com服务器的IP地址告诉本地DNS服务器

  7).com服务器收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.xxx服务器的IP地址告诉本地DNS服务器

  8).xxx服务器收到查询请求后,分析需要解析的域名,若无,则查询失败,若有,返回www.xxx.com的IP地址给本地服务器

  9)本地DNS服务器将www.xxx.com的IP地址返回给客户端,客户端通过这个IP地址与WEB站点建立连接

  10、DNS名词应用

  dns已经基本成为一个非常知名缩写,很多做域名的公司都用dns做域名,如www.dns.com.cn(新网互联),www.2ndDNS.com(第二域名)

  -----------------------------------------------------------------------------------------------------------------

  一、什么是DNS?

  DNS的中文意思是:域名服务。域名服务是提供[主机名]到[IP地址]转换的一段计算机程序。

  二、为什么用DNS?

  人的大脑记住一组资源的名字比较容易,而记住这组资源的地址很难,但实际上我们又必须使用地址来访问资源,所以必须有一个系统来提供名字到地址的翻译服务。

  下面的例子,当您要访问昆明湖、玉兰堂等景观,您首先会想到两个景点都属于 颐和园,而不会想到 颐和园的经纬度,而事实上我们是通过经纬度来访问一组资源的。当您来到一个陌生的城市,向离您最进的片警A问路的时候,片警A就提供了DNS:

  1、您问道:“您能告诉我颐和园怎么走么?”。

  2、片警A说:“我不知道,但我知道颐和园隶属于四环,负责四环的是片警B,片警B的经纬度是117.2/30.2”。

  3、您到了北四环,根据经纬度到片警B问:“您能告诉我颐和园怎么走么?”。

  4、片警B说:“我不知道,但我知道颐和园属于海殿区,负责海淀的是片警C,片警C的经纬度是117.3/30.3”。

  5、您到了海淀区,根据经纬度找到片警C问:“您能告诉我颐和园怎么走么?”

  6、片警C说:“颐和园在经度117.03333、纬度30.51666”

  7、知道了颐和园的坐标,您就可以到颐和园参观了。

  注意:以上过程,在DNS查询中有个专业术语,叫做迭代查询。也许您还听说过递归查询。

  1、就是当您向片警A问路的时候,您希望片警A给您一个确切的回答:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。”

  2、交警A如果也发出的是递归查询问交警B:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。”

  3、交警B如果也发出的是递归查询问交警C:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。”

  4、交警C对交警B说:“颐和园就在经度117.03333、纬度30.51666”

  5、交警B对交警A说:“颐和园就在经度117.03333、纬度30.51666”

  6、交警A对您说:“颐和园就在经度117.03333、纬度30.51666”

  我可以冒充片警C吗?除非您把片警C kill掉,否则即使您穿着片警C的衣服,打扮的和片警C一模一样,也不会有人找您问路。因为片警C始终都在经纬度是117.3/30.3的地方蹲点,问路的人只会根据片警B找经纬度117.3/30.3的片警C。冒充片警B呢?一个道理,问路的人只会根据片警A找到经纬度是117.2/30.2的片警 B。那冒充片警A呢?您要自问一下,片警A的经纬度是谁告诉您的,告诉您的人可信不可信。一般我们通过ADSL拨号上网的家庭用户,电信接入端给我们提供片警A既DNS服务器的经纬度既IP地址都是真实的。

  也许您感觉很烦琐,为什么不成立一个问路系统,比如114查号,114问路系统存储了世界上所有名字到经纬度的对应关系。那么您考虑一下,如果114系统由于查询量过大而瘫痪呢?或者中毒而无法提供服务呢?等等这些问题会延误世界人民查询名字到地址的对应关系。您可能会说,那在世界上建立1000个问路系统,比如电话号从1000到1999都提供名字到经纬度翻译服务,这样当一个号码打不通,客户可以打另一个。但您应该想到,这样的系统维护起来太麻烦了,比如您自立门户了,买了处房子,房子的经纬度是122.2/122.3,名字叫‘上海、汤臣、56弄、crysta家’,那世界上所有1000个问路系统都要添加这样的对应关系。同样的问题,如果crystal把房子卖给了seebod,那房子名就叫‘上海、汤臣、56弄、seebod家’,世界上所有1000个问路系统同样要更新。为了解决这个问题,就采用了最初片警的例子,每个片警只负责他自己的一片区域。

  具体看一个名字到地址的解析过程(上面的例子仅是为了引发您的思维,而不能与实际的DNS查询过程一一对应,不要生搬硬套)

  当您在浏览器中输入(www.seebod.com.),我们的电脑是如何得到IP地址的:

  1、浏览器发现是一个名字,于是调用我们机器内部的DNS Client软件,这个软件会把我们的请求发送到网卡Tcp/IP设置中的默认DNS服务器IP地址(上海电信提供DNS的服务器有3台,其中一台IP是202.96.209.5):“您可以告诉我www.seebod.com.的IP地址吗?我这是一个递归查询”

  2、 202.96.209.5的DNS服务器会检查自己的DNS缓存,如果缓存里有,就直接返回给客户,如果没有,202.96.209.5就会向自己系统内部配置中负责.域的DNS服务器的IP地址(负责.域的那台DNS服务器位于美国,共13台,系统会随机选一台,这里比如是61.1.1.1)发出请求: “您能告诉我www.seebod.com.的IP地址吗?我这是一个跌代查询”

  3、.域DNS服务器61.1.1.1中包含负责net.域解析的IP地址,把查询结果返回给202.96.209.5:“负责net.域的DNS服务器地址是54.4.4.4”

  4、202.96.209.5收到上面的查询结果后,于是询问负责net.域的DNS服务器54.4.4.4 :“您能告诉我负责www.seebod.com.的IP地址吗?我这是一个跌代查询。”

  5、负责net.域的DNS服务器54.4.4.4把查询后的结果返回给202.96.209.5:“负责seebod.com.域的dns服务器的ip地址是 211.152.17.58”

  6、202.96.209.5收到上面的查询结果够,于是询问负责seebod.com.域的DNS服务器211.152.17.58:“您能告诉我www.seebod.com.所对应的IP地址吗?”

  7、211.152.17.58把查询后的结果返回给202.96.209.5:“www.seebod.com.对应的IP地址是211.100.26.123”

  8、202.96.209.5把最终结果放到自己的DNS缓存里,这样以后就不用再进行上面的跌代查询了。

  9、202.96.209.5把最终结果返回给最初发起请求的客户机。

  10、客户机的dns client软件把最终结果返回给浏览器。

  11、浏览器把目的IP地址连同http数据传递给网络层。

  12、网络层根据目标地址判断路由,发现目标IP地址211.152.17.58与本机不在同一个网段(判断是否是同一个网段使用子网掩码与目的IP地址做与运算),于是决定把次包发给网关。

  13、检查本地arp缓存表获得本地网关的MAC地址。

  .....

  ........

  三、DNS在哪里?

  提供DNS的是计算机,是安装了DNS服务器端软件的计算机。服务器端软件即可以是基于类Unix操作系统,也可以是基于Windows操作系统的。装好DNS服务器软件后,您就可以在您指定的位置创建区域文件了,所谓区域文件就是包含了此域中名字到IP地址解析记录的一个文件(如文件名可能是seebod.com.这个文件的内容是这样的:

  primary name server = dns2.100ok.com (主服务器的主机名是 dns2.100ok.com)

  serial = 2007042913 (当前序列号是2007042913。这个序列号的作用是当辅域名服务器来copy时候这个文件时,如果号码增加了就copy)

  refresh = 10800 (3 hours) (辅域名服务器每隔3小时查询一个主服务器)

  retry = 3600 (1 hour) (当辅域名服务试图在主服务器上查询更时,而连接失败了,辅域名服务器每隔1小时访问主域名服务器)

  expire = 604800 (7 days) (辅域名服务器在向主服务更新失败后,7天后删除seebod.com.中的记录。)

  default TTL = 3600 (1 hour) (缓存服务器保存记录的时间是1小时。也就是告诉202.96.209.5保存seebod.com.域的解析记录为1小时)

  www.seebod.com Addresses: 211.100.26.124, 211.100.26.121, 211.100.26.122, 211.100.26.123 (www.seebod.com对应的ip地址有4个。起到冗于的作用)

  seebod.com MX preference = 10, mail exchanger = mail.seebod.com (seebod.com域中两台mail服务器实现冗于.不同的IP/web界面,相同的web数据库)

  seebod.com MX preference = 20, mail exchanger = mail2.seebod.com

  seebod.com nameserver = dns2.100ok.com (两台DNS服务器实现冗于)

  seebod.com nameserver = dns5.100ok.com

  )。

  四、怎样实现DNS?

  无论您是通过linux还是windows搭建dns服务器,原理都是一致的。

  您可以把DNS服务器配置成以下3类之一:

  1、主DNS服务器。

  2、辅DNS服务器。

  3、缓存DNS服务器。

  1、在例子中,我们提到的211.152.17.58就是主DNS服务器,这台服务器负责seebod.com.域的名字到IP解析。

  2、在例子中,seebod.com.域还有台辅dns服务器,名字是dns2.100ok.com,ip地址是 211.157.101.174。辅DNS的存在的意思是:当主DNS瘫痪由辅dns提供服务。

  3、在例子中,202.96.209.5就是缓存DNS服务器。这样的DNS服务器不负责任何域的最终解析,只缓存解析记录,这样用户下次请求相同的解析记录时直接从缓存中的名字到IP的对应关系返回给用户,而不需要再递归或者跌代查询了。

  五、DNS服务器

  现在一般国内的域名注册商,提供DNS解析服务是免费的,但国外的注册商很多是DNS解析服务是收费的。

10、DNS查询

  DNS查询可以有两种解释,一种是指客户端查询指定DNS服务器上的资源记录(如A记录),另一种是指查询FQDN名的解析过程。

  一、查询DNS服务器上的资源记录

  您可以在Windows平台下,使用命令行工具,输入nslookup www.baidu.com ,返回的结果包括域名对应的IP地址(A记录)、别名(CNAME记录)等。除了以上方法外,还可以通过一些DNS查询站点如国外的 dnsstuff.com 国内的 dirs.cn 查询域名的DNS信息。

  二、FQDN名的解析过程查询

  若想跟踪一个FQDN名的解析过程,在Linux Shell下输入dig www.baidu.com +trace,返回的结果包括从跟域开始的递归或迭代过程,一直到权威域名服务器。

四步解决DNS解析故障

  在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的。这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法。

   一般来说像我们访问的www.xkq.com,这些地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。

一、什么是DNS解析故障?


  

  不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是DNS服务器。能够实现DNS解析功能的机器可以是自己的计算机也可以是网络中的一台计算机,不过当DNS解析出现错误,例如把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,我们就无法通过域名访问相应的站点了,这就是DNS解析故障。

  出现DNS解析故障最大的症状就是访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。

   当我们的计算机出现了DNS解析故障后不要着急,解决的方法也很简单。

二、如何解决DNS解析故障:


  

  (1)用nslookup来判断是否真的是DNS解析故障:

  要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。

  第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。

  第二步:输入nslookup命令后回车,将进入DNS解析查询界面。

  第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。

  第四步:接下来输入你无法访问的站点对应的域名。例如笔者输入www.xkq.com,假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。

  小提示:如果DNS解析正常的话,会反馈回正确的IP地址,例如笔者用www.xkq.com这个地址进行查询解析,会得到name:ciidnet.com,addresses:61.135.133.103,61.135.133.104的信息。

  (2)查询DNS服务器工作是否正常:

  这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。

  第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。

  第二步:输入ipconfig /all命令来查询网络参数。

  第三步:在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的DNS服务器地址即可解决问题。

  第四步:如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决DNS服务器上的DNS服务故障,一般来说问题也能够解决。

  (3)清除DNS缓存信息法:

  当计算机对域名访问时并不是每次访问都需要向DNS服务器寻求帮助的,一般来说当解析工作完成一次后,该解析条目会保存在计算机的DNS缓存列表中,如果这时DNS解析出现更改变动的话,由于DNS缓存列表信息没有改变,在计算机对该域名访问时仍然不会连接DNS服务器获取最新解析信息,会根据自己计算机上保存的缓存对应关系来解析,这样就会出现DNS解析故障。这时我们应该通过清除DNS缓存的命令来解决故障。

  第一步:通过“开始->运行->输入CMD”进入命令行模式。

  第二步:在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。

  第三步:执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。

  第四步:接下来我们再访问域名时,就会到DNS服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。

  (4)修改HOSTS文件法:

  修改HOSTS法就是把HOSTS文件中的DNS解析对应关系进行修改,从而实现正确解析的目的。因为在本地计算机访问某域名时会首先查看本地系统中的HOSTS文件,HOSTS文件中的解析关系优先级大于DNS服务器上的解析关系。

  这样当我们希望把某个域名与某IP地址绑定的话,就可以通过在HOSTS文件中添加解析条目来实现。

  第一步:通过“开始->搜索”,然后查找名叫hosts的文件。

  第二步:当然对于已经知道他的路径的读者可以直接进入c:/windows/system32/drivers/etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:/winnt/system32/drivers/etc目录中寻找。

  第三步:双击HOSTS文件,然后选择用“记事本”程序将其打开。

  第四步:之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)

  第五步:将你希望进行DNS解析的条目添加到HOSTS文件中,具体格式是先写该域名对应的IP地址,然后空格接域名信息。例如笔者添加了“211.153.80.1www.xkq.com”与“10.82.0.1www.xkq.com”两个条目。

  第六步:设置完毕后我们访问www.xkq.com时就会自动根据是在内网还是外网来解析了。

   通过上面介绍的四个步骤,我们就可以解决大部分DNS解析问题了,这几个方法中前三个是循序渐进的一步步解决DNS解析故障,而最后一个修改HOSTS文件则是在实在没有办法的时候,一种权宜之计。当然不管是通过哪种方法,我们都可以解决因为DNS解析错误带来的网络故障。[4]

三、总结:


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值