DNS简单地说,就是Domain Name System(域名系统)。在一个以TCP/IP协议为主的网络环境中,DNS是一个非常重要而且常用的系统。其主要的功能就是将我们容易记忆的网址域名(Domain Name)与不容易记忆的IP地址作自动解析互换。
DNS 的查询过程
接下来我们要谈一谈,那么 DNS 的 (1)架构是怎样? (2)查询原理是怎样?总是要先知道架构才能知道如何查询的吶!所以底下我们先来介绍一下整体的架构。
· DNS 的架构:
上面就是一个简单的 DNS 阶层架构啰,最上方一定是 . 这个 root 的 DNS 主机,他底下管理的就只有 com, edu, gov, mil, org 与以国家为分类的第二层的主机名称了!例如台湾地区最上层的领域名称是以 .tw 为开头,管理这个领域名称的这部机器的 IP 是在台湾,但是他的记录则是记录在 . (root)那部机器里面的!还有其它的国家的最上层如 .cn 指的是大陆,.de 指的是德国一样!那么每个国家之下记录的主要的下层有哪些领域呢?呵呵!主要就是有这六大类:
其实最早之前在 . (root)之下只有这六大类的 domain name ,但是网络成长的速度太快了,因此后来又多出这些以国码来分的 domain name ,如此一来,在该国家之内,只要向该国家申请 domain name 即可,不需要再到最上层去申请啰!也因此,在这些国码之下,还是有这六大类的 domain name 为主的哩!当然啦,在目前,由于网际网络持续的发烧,说实在的 domain name 实在是有点不太够用,所以又有相当多的领域名称被设计出来,例如本小站的 .idv.tw 的个人网站啦!
好了,再强调一次, DNS 系统是以所谓的阶层式的管理,所以,请注意喔!那个 .tw 只记录底下那一层的这六个主要的 domain 的主机而已!至于例如 edu.tw 底下还有个 ncku.edu.tw 这部机器,那就直接授权交给 edu.tw 那部机器去管理了!也就是说『每个上一层的 DNS 主机,所记录的信息,其实只有其下一层的主机名称而已!』至于再下一层,则直接『授权』给下层的某部主机来管理啰!呵呵!所以您就应该会知道 DNS 到底是如何管理的吧! ^_^ 会这样设定的原因不是没有道理的!这样设计的好处就是:每部机器管理的只有下一层的 hostname 对应 IP 而已,所以减少了管理上的困扰!而下层 Client 端如果有问题,只要询问上一层的 DNS server 即可!不需要跨越上层,除错上面也会比较简单呢!
· DNS 的搜寻流程:
刚刚说过 DNS 是以类似『树状目录』的型态来进行名称的管理的!所以每一部 DNS 主机都『仅管理下一层 DNS 主机的名称转译』而已,至于下层的下层,则『授权』给下层的 DNS 主机来管理啦!这样说好象很绕口,好吧!我们就以下图来说一说原理啰:
首先,当你在网址列输入 http://aerosol.ev.ncku.edu.tw 时,你的计算机就会依据 /etc/resolv.conf 所提供的 DNS 的 IP 去进行联机查询,好了,由于目前最常见的 DNS 主机就属 Hinet 的 168.95.1.1 这个 DNS 了,所以我们就拿他来做例子吧!嗯!这个时候, hinet 的这部主机会这样工作:
1. 先查看本身有没有纪录:刚刚说过啦,由于 DNS 是层阶式的架构,任何一部 DNS 都仅记录下一层里面的主机名称对应的 IP 而已,由于 hinet 并非学术网络里面的主机,所以自然也就没有办法直接提供给 client 端关于 aerosol.ev.ncku.edu.tw 这部机器的 IP 了,所以啦,一般而言,这个时候 168.95.1.1 就会向最顶层,也就是 . (root) 的主机查询 .tw 这部机器的地址;
2. 向最顶层 ( root )查询:由于 168.95.1.1 没有纪录我们主机的 IP ,这个时候他就会向『最顶层』的 . (root) 这部主机来查询 . (root) 的下一层,也就是 .tw 这部机器的资料了!这个时候, . (root) 就会告诉 168.95.1.1 说『嘿!你要查 .tw 这个网域的管理者呀!?喝!我这里有 .tw 这个网域的管理的主机之 IP 信息,妳可以直接去找他!』;
3. 向第二层查询:168.95.1.1 接着又到 .tw 去查询,而该部机器管理的又仅有 .edu.tw, .com.tw, gov.tw... 那几部主机,经过比对后发现我们要的是 .edu.tw 的网域,所以这个时候 .tw 又告诉 168.95.1.1 说:『你要去管理 .edu.tw 这个网域的主机那里查询,我有他的 IP !』;
4. 向下层持续查询:好了,一步一步下来, .edu.tw 可以查到管理 .ncku.edu.tw 的主机 IP ; .ncku.edu.tw 可以查到管理 .ev.ncku.edu.tw 的主机 IP ,而最后我们 aerosol.ev.ncku.edu.tw 就可在管理 .ev.ncku.edu.tw 网域的那部主机的设定纪录当中查询到啦!
5. 记录暂存内存:查到了 IP 之后,这部 168.95.1.1 的 DNS 机器总不会在下次有人查询 aerosol.ev.ncku.edu.tw 的时候再跑一次这样的流程吧!粉远粉累ㄋㄟ~而且也很耗系统的资源与网络的频宽,所以呢, 168.95.1.1 这个 DNS 很聪明的会先记录一份 aerosol.ev.ncku.edu.tw 对应 IP 的信息在自己的暂存内存当中,以方便下一次又有人对同一个主机名称的要求之查询!最后则将结果回报给 client 端!当然啦,那个记忆在 cache 当中的资料,其实是有时间性的,当过了 DNS 设定记忆的时间(通常可能是 24 小时),那么该记录就会被释放喔!
由这样的分层负责你发现了什么?嗯!那就是:
o 当一个『合法』的 DNS 主机里面的设定修改了之后,来自世界各地任何一个 DNS 的要求,都会正确无误的显示正确的主机名称对应 IP 的信息,因为他们会一层一层的寻找下来,所以,要找你的主机名称对应的 IP 就一定得要透过你的上层 DNS 主机的纪录才行!所以只要你的主机名字是经过上层『合法的 DNS』主机的设定的,那么就可以在 Internet 上面被查询到啦!呵呵!很简单维护吧,机动性也很高。
Windows Server 2003下DNS架设攻略
一、 环境假设:
假设我们要建立一台应用于企业以下情况的主域名服务器
企业IP地址网段为:192.168.0.1~192.168.0.254
主域服务器IP地址为:192.168.0.1
主机名为:dns.firstserver.com
等待解析的服务有:
www.firstserver.com (IP地址指定为192.168.0.2) ----Web服务器
Mail.firstserver.com (IP地址指定为192.168.0.3) ---E-Mai
Ftp.firstserver.com(IP地址指定为192.168.0.4)---FTP服务器
二、 正向域名解析服务的实现。
Windows2003默认已安装DNS服务,依次选择“开始”-“程序”-“管理工具”-“DNS”打开。
一般我们就分别创建正向和反向查找区域,因为DNS不光是域名到IP的解析(正向查找),也包括IP到域名(反向查找)。
1. 建立“firstserver.com”主区域名。
在本机服务器名上点右键,选择“新建区域”,打开向导窗口后点下一步;在“区域类型”窗口里选择“主要区域”;再接着勾选“正向查找区域”点下一步进入如图1所示的“区域名称”窗口,此步是要输入欲解析的区域名,即www后面部分。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.0.1.jpg)
接着会提示你创建区域文件,我们按其默认文件名点下一步;在“动态更新”窗口中,考虑到此DNS服务的安全性,一般按其默认“不允许动态更新”,当然如果已在服务端加装了硬件防火墙等安全措施,则可以选择“允许动态更新”;最后单击完成即可。
2. 新建主机。
在管理界面左框内右击刚才建立的区域名firstserver,选择“新建主机”;在如下图所示“新建主机”窗口的名称栏输入www,IP地址改为本文开头例中的WEB服务器地址192.168.0.2,单击“添加主机”返回管理界面,即可看到已成功地创建了主机地址记录“www.firstserver.com”。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.10.2.jpg)
3. 其它相关服务地址记录的实现。
除了WWW服务,本文开头例中还有FTP及Mail服务。有两种方法继续添加其它服务:
方法一:在左边树形目录里右击刚建好的主域名firstserver.com,选择“新建别名(CNAME)”;如下图所示,在“别名”栏内输入mail、FTP等服务名;在目标主机的完全合格域名一栏输入www.firstserver.com即可。此方法意为其它相关服务与WWW服务共用192.168.0.2这个IP地址。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.22.3.jpg)
方法二:即分别为每种服务建立不同的IP地址指向,本文开头例中也是这样。即依照建立WWW服务的步骤进行,再输入相对应的IP地址就行了。下图所示中,mail服务即用别名方式建立,FTP服务跟建立WWW服务一样采用“新建主机”而建。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.31.4.jpg)
三、 反向查找的实现。
即实现IP地址到域名的转换。基本建立步骤跟正向查找类似,在出现如下图所示窗口时,“网络ID”一栏是要输入欲建立反向查找的服务器网段,本例为192.168.0.X。其它步骤按前面所述进行后即可完成。在管理界面左边树形目录里,即可看到反向查找区域一栏已多了“0.168.192.in-addr.arpa.dns”的区域文件名。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.43.5.jpg)
接着在此名称上点右键选“新建指针(PTR)”,在如下图所示窗口里,“主机IP号”就是IP地址的最后一位,如本例中的WWW服务IP地址最后一位为2;“主机名”一栏通过点击“浏览”选择在正向查找区域中建立的主机记录“www.firstsever.com”,点确定即可。通过反向区域名的建立,简单的讲在浏览器里输入192.168.0.2也可到达www.firstsever.com。
![](http://windows.chinaitlab.com/imgfiles/2005.4.18.10.15.54.6.jpg)
最后提示:请大家记住,DNS服务器只提供域名和IP地址的映射工作,而那个域名究竟用来做什么,是由其对应的IP地址所绑定的相关服务器(如FTP、E-mail等)来决定的。比如我们在本机已安装上例中的E-mail服务器并指定了其IP地址指向“192.168.0.3”,如果我们在DNS服务器中一同将其它相关服务的域名如ftp.firstsever.com等都指向此IP地址,即是说我们不管是用此IP地址或此三个域名中的任何一个都可以访问到这个E-mail服务器!
另外,上文讲的都是建立在局域网中的DNS过程。而如果我们要建立互联网上域名的DNS映射记录的话,在DNS服务器中配置的所有域名都要是在internet中经过注册的合法域名,且要有一个固定的公网IP地址。只要满足这两个条件,其它步骤就跟在局域网的配置一样了。