DNS

定义
  DNS 是计算机域名 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。在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地址。
  大家都知道,当我们在上网的时候,通常输入的是网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别。再如,我们去一WEB服务器中请求一WEB页面,我们可以在浏览器中输入网址或者是相应的IP地址,例如我们要上新浪网,我们可以在IE的地址栏中输入网址,也可输入IP地址,但是这样子的IP地址我们记不住或说是很难记住,所以有了域名的说法,这样的域名会让我们容易的记住。
  DNS:Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。
  申请了DNS后,客户可以自己为域名作解析,或增设子域名。客户申请DNS时,建议客户一次性申请两个。
  
DNS服务器在域名解析过程中的查询顺序为:本地缓存记录、区域记录、转发域名服务器、根域名服务器。
历史
  DNS最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案
DNS(11张)
(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882
DNS(11张)和883
号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。
  早期的域名必须以英文句号“.”结尾 ,这样DNS才能够进行域名解析。如今DNS服务器已经可以自动补上结尾的句号。
  当前,对于域名长度的限制是63个字符,其中不包括www.和.com或者其他的扩展名。域名同时也仅限于ASCII字符的一个子集,这使得很多其他语言无法正确表示他们的名字和单词。基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集,这已经通过了验证并被一些注册机构作为一种变通的方法所采纳。
位置
  提供DNS的是计算机,是安装了DNS服务器端软件的计算机。服务器端软件既可以是基于类Unix操作系统,也可以是基于Windows操作系统的。装好DNS服务器软件后,您就可以在您指定的位置创建区域文件了,所谓区域文件就是包含了此域中名字到IP地址解析记录的一个文件(如文件名可能是这个文件的内容是这样的:
  primary name server = dns2(主服务器的主机名是 )
  serial = 2007042913 (当前序列号是2007042913。这个序列号的作用是当辅域名服务器来copy时候这个文件时,如果号码增加了就copy)
  refresh = 10800 (3 hours) (辅域名服务器每隔3小时查询一个主服务器)
  retry = 3600 (1 hour) (当辅域名服务试图在主服务器上查询更新,而连接失败了,辅域名服务器每隔1小时访问主域名服务器)
  expire = 604800 (7 days) (辅域名服务器在向主服务更新失败后,7天后删除中的记录。)
  default TTL = 3600 (1 hour) (缓存服务器保存记录的时间是1小时。也就是告诉202.96.209.5保存域的解析记录为1小时)
实现方法
  无论您是通过linux还是windows搭建dns服务器,原理都是一致的。
  您可以把DNS服务器配置成以下3类之一:
  1.主DNS服务器。
  2.辅DNS服务器。
  3.缓存DNS服务器。
  目前国际域名的DNS必须在国际域名注册商处注册,国内域名的DNS必须在CNNIC注册,注册支持解析英文域名和中文域名的dns要分别注册:
  (1)步骤:选择作为DNS后缀的域名---创建dns服务器---选择是在国际注册还是国内注册-申请--交付费用
  (2)费用:约75元/个(一次性)
  (3)条件:如果注册国际DNS服务器的,dns服务器的名称必须是在具有条件的公司注册的国际英文域名才能注册,有独立IP地址,DNS服务器域名前的前缀最好是dns.、ns.等
  DNS服务器
  现在只要在域名注册商或服务商注册域名,DNS都是免费。
  (1)条件:要更改为合法的DNS。
  如果要查询DNS是否为合法的DNS,请点击:DNS查询界面
  输入DNS服务器的名称或者IP地址,选中第三个选项Nameserver,查询如果查询出有DNS注册的信息,如注册商,名称对应的IP地址,则这个DNS是合法的。
  (2)修改方法:通过具有条件的公司注册的国际域名变更DNS:用户可通过和提供服务的该公司进行协商(大致步骤为:提出申请并提交相关材料后该业务公司会在48小时左右完成变更)。
  国际英文域名、国内英文域名可以修改DNS,这项服务是免费的。
使用免费的DNS
  国内外有不少提供免费DNS服务的提供商,其中国内著名的有IIDNS,DNSPod和OpenDns等
解析故障
  
  在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的。这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法。
  
  什么是DNS解析故障?
  一般来说像我们访问的地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。
  不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是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。
  第四步:接下来输入你无法访问的站点对应的域名。假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。
  小提示:如果DNS解析正常的话,会反馈回正确的IP地址。
  (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地址,然后空格接域名信息。
  第六步:设置完毕后我们访问网址时就会自动根据是在内网还是外网来解析了。
DNS查询
  DNS查询可以有两种解释,一种是指客户端查询指定DNS服务器上的资源记录(如A记录),另一种是指查询FQDN名的解析过程。
  一、查询DNS服务器上的资源记录
  您可以在Windows平台下,使用命令行工具,输入nslookup,返回的结果包括域名对应的IP地址(A记录)、别名(CNAME记录)等。除了以上方法外,还可以通过一些DNS查询站点如国外的国内的 查询域名的DNS信息。
  二、FQDN名的解析过程查询
  若想跟踪一个FQDN名的解析过程,在Linux Shell下输入dig www +trace,返回的结果包括从跟域开始的递归或迭代过程,一直到权威域名服务器。
05-30
### DNS 配置教程与问题解决 DNS(Domain Name System,域名系统)是互联网中将域名转换为IP地址的服务。以下是关于DNS配置的详细信息和解决方案: #### 一、DNS服务的基本原理 DNS通过分布式数据库实现域名解析功能,其核心任务是将易于记忆的域名转换为计算机可识别的IP地址[^1]。域名空间采用层次化结构,由根域、顶级域、二级域等组成。 #### 二、DNS服务器类型 DNS服务器主要分为以下几种类型: - **主DNS服务器**:负责存储区域文件并提供权威解析。 - **辅DNS服务器**:从主DNS服务器同步数据,用于负载均衡和冗余备份。 - **缓存DNS服务器**:不存储区域文件,仅通过缓存机制加速查询响应速度[^1]。 #### 三、DNS查询方式 DNS查询分为递归查询和迭代查询两种方式: - **递归查询**:客户端向DNS服务器发送请求后,DNS服务器负责完成整个解析过程,并将最终结果返回给客户端。 - **迭代查询**:DNS服务器只返回自己知道的部分信息,客户端需要继续向其他DNS服务器发起查询直到获得最终结果。 #### 四、DNS缓存机制 为了提高查询效率和减轻服务器负担,DNS引入了缓存机制。缓存记录包括TTL(Time To Live)值,表示该记录在缓存中的有效时间。当TTL过期时,DNS服务器会重新获取最新记录[^1]。 #### 五、DNS服务的配置文件 Linux系统中常用的DNS服务软件是BIND(Berkeley Internet Name Domain)。其主要配置文件如下: - **named.conf**:全局配置文件,定义区域和模块加载。 - **zone文件**:包含具体域名到IP地址的映射关系。 配置示例: ```bash options { directory "/var/named"; allow-query { any; }; }; zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; ``` 上述代码定义了一个名为`example.com`的主DNS区域,并指定了对应的zone文件[^1]。 #### 六、如何搭建DNS服务? ##### 服务端配置 1. 安装BIND软件包。 2. 编辑`named.conf`文件,添加或修改区域配置。 3. 创建或编辑zone文件,填写正向解析(A记录)和反向解析(PTR记录)。 4. 启动或重启DNS服务。 ```bash systemctl start named systemctl enable named ``` ##### 客户端配置 在客户端操作系统中设置DNS服务器地址。例如,在Windows系统中,可以通过网络适配器属性进行设置;在Linux系统中,编辑`/etc/resolv.conf`文件: ```bash nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 此处以Google公共DNS为例[^2]。 #### 七、常见DNS问题及解决方法 1. **无法解析域名**:检查DNS服务器是否正常运行,确保客户端配置了正确的DNS地址。 2. **解析速度慢**:优化DNS缓存策略,减少递归查询次数。 3. **安全问题**:启用DNSSEC(Domain Name System Security Extensions),防止中间人攻击和数据篡改。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值