dns
DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet 上域名与IP 地址之间是一对一(或者多对一)的,域名虽然便
DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet 上域名与IP 地址之间是一对一(或者多对
一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。 DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP 地址,这样才能上网。其实,域名的最终指向是IP 。
在中IP 是由32位二进制数组成的,将这32位二进制数分成4组每组8个二进制数,将这8个二进制数转化成十进制数,就是我们看到的IP 地址,其范围是在0~255之间。因为,8个二进制数转化为十进制数的最大范围就是0~255。现在已开始试运行、将来必将代替IPv4的中,将以128位二进制数表示一个IP 地址。
大家都知道,当我们在上网的时候,通常输入的是如网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP 地址才能相互识别。再如,我们去一WEB 服务器中请求一WEB 页面,我们可以在浏览器中输入网址或者是相应的IP 地址,例如我们要上新浪网,我们可以在IE 的地址栏中输入网址,也可输入IP 地址,但是这样子的IP 地址我们记不住或说是很难记住,所以有了域名的说法,这样的域名会让我们容易的记住。
DNS :Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP 地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。
DNS :Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。
申请了DNS 后,客户可以自己为域名作解析, 或增设子域名. 客户申请DNS 时,建议客户一次性申请两个。
历史
DNS 最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris )发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS 技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS 技术规范部分的改动。
早期的域名必须以英文句号“.”结尾 ,这样DNS 才能够进行域名解析。如今已经可以自动补上结尾的句号。
,当前,对于域名长度的限制是63个字符,其中不包括www. 和.com 或者其他的扩展名。域名同时也仅限于ASCII 字符的一个子集,这使得很多其他语言无法正确表示他们的名字和单词。基于Punycode 码的IDNA 系统,可以将Unicode 字符串映射为有效的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小时)
实现方法
无论您是通过linux 还是windows 搭建dns 服务器,原理都是一致的。 您可以把DNS 服务器配置成以下3类之一:
1、主DNS 服务器。
2、辅DNS 服务器。
3、缓存DNS 服务器。
目前国际域名的DNS 必须在国际域名注册商处注册,国内域名的DNS 必须在C NNIC 注册,注册支持解析英文域名和中文域名的dns 要分别注册:
(1)步骤:选择做为DNS 后缀的域名-创建dns 服务器---选择是在国际注册还是国内注册-申请--交付费用
(2)费用:约75元/个(一次性)
,(3)条件:如果注册国际DNS 服务器的,dns 服务器的名称必须是在具有条件的公司注册的国际英文域名才能注册,有独立IP 地址,DNS 服务器域名前的前缀最好是dns. 、ns. 等
DNS 服务器
现在一般国内的域名注册商,提供DNS 解析服务是免费的,但国外的注册商很多是DNS 解析服务是收费的。
在系统中提交注册DNS 的申请,款到后注册的时间为2个工作日左右。 修改DNS 服务器
(1)条件:要更改为的DNS 为合法的DNS 。
如果要查询DNS 是否为合法的DNS ,请点击:DNS查询界面
输入DNS 服务器的名称或者IP 地址,选中第三个选项Nameserver ,查询如果查询出有DNS 注册的信息,如注册商,名称对应的IP 地址,则这个DNS 是合法的。
(2)修改方法:通过具有条件的公司注册的国际域名变更DNS :用户可通过和提供服务的该公司进行协商(大致步骤为:提出申请并提交相关材料后该业务公司会在48小时左右完成变更) 。
国际英文域名、国内英文域名可以修改DNS ,这项服务是免费的。
使用免费的DNS
国内外有不少提供免费DNS 服务的提供商,其中国内著名的有DNSPod [1]解析故障
在实际应用过程中可能会遇到DNS 解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP 地址的工作,而直接输入网站IP 却可以正常访问,这就是因为DNS 解析出现故障造成的。这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS 解析故障的方法。
什么是DNS 解析故障?
一般来说像我们访问的地址都叫做域名,而众所周知网络中的任何一个主机都是IP 地址来标识的,也就是说只有知道了这个站点的IP 地址才能够成功实现访问操作。 不过由于IP 地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成I P 地址的服务器,这就是DNS 服务器。能够实现DNS 解析功能的机器可以是自己的计算机也可以是网络中的一台计算机,不过当DNS 解析出现错误,例如把一个域名
,解析成一个错误的IP 地址,或者根本不知道某个域名对应的IP 地址是什么时,我们就无法通过域名访问相应的站点了,这就是DNS 解析故障。
出现DNS 解析故障最大的症状就是访问站点对应的IP 地址没有问题,然而访问他的域名就会出现错误。
当我们的计算机出现了DNS 解析故障后不要着急,解决的方法也很简单。
(1)用nslookup 来判断是否真的是DNS 解析故障:
要想百分之百判断是否为DNS 解析故障就需要通过系统自带的NSLOOKUP 来解决了。
第一步:确认自己的系统是windows 2000和windows xp 以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入nslookup 命令后回车,将进入DNS 解析查询界面。
第三步:命令行窗口中会显示出当前系统所使用的DNS 服务器地址,例如笔者的DNS 服务器IP 为202.106.0.20。
第四步:接下来输入你无法访问的站点对应的域名。假如不能访问的话,那么D NS 解析应该是不能够正常进行的。我们会收到DNS request timed out ,timeout was 2 seconds 的提示信息。这说明我们的计算机确实出现了DNS 解析故障。 小提示:如果DNS 解析正常的话,会反馈回正确的IP 地址。
(2)查询DNS 服务器工作是否正常:
这时候我们就要看看自己计算机使用的DNS 地址是多少了,并且查询他的运行情况。
第一步:确认自己的系统是windows 2000和windows xp 以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入ipconfig /all命令来查询网络参数。
第三步:在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVER S ,这个就是我们的DNS 服务器地址。例如笔者的是202.106.0.20和202.106.46.1
51。从这个地址可以看出是个外网地址,如果使用外网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 解析对应关系进行修改,从而实现正确解析的目的。因为在本地计算机访问某域名时会首先查看本地系统中的HOST S 文件,HOSTS 文件中的解析关系优先级大于DNS 服务器上的解析关系。
这样当我们希望把某个域名与某IP 地址绑定的话,就可以通过在HOSTS 文件中添加解析条目来实现。
第一步:通过“开始->搜索”,然后查找名叫hosts 的文件。
第二步:当然对于已经知道他的路径的读者可以直接进入c:windowssystem32driversetc目录中找到HOSTS 文件。如果你的系统是windows 2000,那么应该到c:winntsystem32driversetc目录中寻找。
第三步:双击HOSTS 文件,然后选择用“记事本”程序将其打开。
第四步:之后我们就会看到HOSTS 文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)
第五步:将你希望进行DNS 解析的条目添加到HOSTS 文件中,具体格式是先写该域名对应的IP 地址,然后空格接域名信息。
第六步:设置完毕后我们访问网址时就会自动根据是在内网还是外网来解析了。
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.co m trace,返回的结果包括从跟域开始的递归或迭代过程,一直到权威域名服务器。
DNS 根IP
全球13个DNS 根(rootDNS )服务器信息
A.root-servers.net198.41.0.4美国(另支持IPv6)
B.root-servers.net192.228.79.201美国
C.root-servers.net192.33.4.12法国
D.root-servers.net128.8.10.90美国
E.root-servers.net192.203.230.10美国
F.root-servers.net192.5.5.241美国(另支持IPv6)
G.root-servers.net192.112.36.4美国
H.root-servers.net128.63.2.53美国(另支持IPv6)
I.root-servers.net192.36.148.17瑞典
J.root-servers.net192.58.128.30美国(另支持IPv6)
K.root-servers.net193.0.14.129英国(另支持IPv6)
L.root-servers.net199.7.83.42美国(另支持IPv6)
M.root-servers.net202.12.27.33日本(另支持IPv6)
推荐DNS
192.5.5.241(香港)
192.36.148.17(香港)
192.5.5.24(DNS根)
192.36.148.17(DNS根)
4.2.2.1(美国)
4.2.2.3(美国)
208.67.222.222(OpenDNS)
208.67.220.220(OpenDNS)
[]
DNS 资源记录
如前所述,每个 DNS 数据库都由资源记录构成。一般来说,资源记录包含与特定主机有关的信息,如 IP 地址、主机的所有者或者提供服务的类型。
资源记录类型
,说明
解释
SOA
起始授权机构
此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等。
常用的资源记录类型
A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。 CNAME 标准名称 此记录指定标准主机名的别名。
MX 邮件交换器 此记录列出了负责接收发到域中的电子邮件的主机。 NS 名称服务器 此记录指定负责给定区域的名称服务器。
[]
DNS 区域
通常,DNS 数据库可分成不同的相关资源记录集。其中的每个记录集称为区域。区域可以包含整个域、部分域或只是一个或几个子域的资源记录。
管理某个区域(或记录集)的 DNS 服务器称为该区域的权威名称服务器。每个名称服务器可以是一个或多个区域的权威名称服务器。
在域中划分多个区域的主要目的是为了简化 DNS 的管理任务,即委派一组权威名称服务器来管理每个区域。采用这样的分布式结构,当域名称空间不断扩展时,各个域的管理员可以有效地管理各自的子域。
有时,区域和域是很难分辨的。
区域是域的子集。可以将它看作域名称空间的某个分支(或子树)。例如,Micr osoft 名称服务器可以同时是“microsoft.com”区域、“msdn.microsoft.com”区域和“marketing.microsoft.com”区域的权威名称服务器。但是,可以将子域的区域(如“msdn.microsoft.com”)委派给其它专用名称服务器管理。如果设置的区域包含整个域的资源记录,那么该区域与该域的范围是相同的。
对于 Windows 2000,区域信息或者以传统文本文件格式存储,或者集成到 Ac tive Directory 数据库中。稍后,我们将详细阐述 DNS 与 Active Directory 如何协作。
[]
主 DNS 服务器和辅 DNS 服务器
为保证服务的高可用性,DNS 要求使用多台名称服务器冗余支持每个区域。 某个区域的资源记录通过手动或自动方式更新到单个主名称服务器(称为主 DN S 服务器)上。主 DNS 服务器可以是一个或几个区域的权威名称服务器。
,其它冗余名称服务器(称为辅 DNS 服务器)用作同一区域中主服务器的备份服务器,以防主服务器无法访问或宕机。辅 DNS 服务器定期与主 DNS 服务器通讯,确保它的区域信息保持最新。如果不是最新信息,辅 DNS 服务器就会从主服务器获取最新区域数据文件的副本。这种将区域文件复制到多台名称服务器的过程称为区域复制。
Active Directory 和 DNS 的关系
Active Directory 是 Windows 2000 中新增的目录服务。该服务存储所有网络资源的信息,如计算机、共享文件夹、用户等等。它还通过标准的 Internet 协议(轻量目录访问协议,LDAP )将此类信息提供给用户和应用程序。有关 Active Directory 的详细信息,请参阅 Technet 文章设置 Active Directory 域 。