问:什麽是 "DNS" ? 其中文为何?
答:DNS, 简单的说, 就是 Domain Name System, 翻成中文来讲, 就是 「领域名称系统」.
问:DNS 有什麽用途?
答:简单来说, 在一个 TCP/IP 架构的网路 (例如 Internet) 环境中, DNS 是 一个非常重要而且常用的系统. 主要的功能就是将人易於记忆的 Domain Name 与人不容易记忆的 IP Address 做转换. 而上面执行 DNS 伺服软体 的这台网路主机, 就可以称之为 DNS Server. 基本上, 通常我们都认为 DNS 只是将 Domain Name 转换成 IP Address, 然後再使用所查到的 IP Address 去做连线. (称「正查」) 事实上, 将 IP Address 转换成 Domain Name 的功能也是相当常使用到的 , 当 login 到一台 Unix 工作站时, 工作站就会去做反查, 找出你是从哪 个地方连线进来的. (称「反查」)
问:DNS 是怎麽运作的?
答:简单来说, DNS 是使用阶层式的方式来运作的. 例如: 建中的 Domain Name 为 .ck.tp.edu.tw. 这个 Domain Name 当然不是凭 空而来的, 是从 .edu.tw 所分配下来的. .edu.tw 又是从 .tw 授与 (delegation) 的. .tw 是从哪里来的呢? 答案是从 ".", 也就是所谓的「根领域」 (root domain) 来的. 根领域已经是 Domain Name 的最上层. 而 "." 这层是由 InterNIC (Internet Network Information Center, 网际网路资讯中心) 所管理. 全世界的 Domain Name 就是这样, 一层一层的授与下来.
问:当我查一个 Domain Name 时, DNS 是怎麽查出他的 IP 来的呢?
答:举个例子, 假设今天查的 Domain Name (作一个 dns query) 为 oasis.ck.tp.edu.tw 时, DNS Server 会怎麽处理:
(1) 你所用的电脑 (可能是 PC, 也可能是工作站) 送出一个问题给这台电 脑所设定的 DNS Server. 问说: camel.ck.tp.edu.tw 的 IP 是什麽?
(2) 这台 DNS 会先看看是不是在他的 cache 中, 如果是, 就丢出答案. 如果不是, 就从最上头查起. 在 DNS Server 上面一定有设定 "." 要跟谁问, 所以, 这个时候它就 往 "." 层的任何一台 DNS (目前 "." 有 13 台) 问问题, 它问: .tw 要问谁?
(3) "." 层的 DNS 会回答 .tw 要向谁查. (同时你用的 DNS 会 cache 起 来这个答案)
(4) 接下来你所用的 DNS 就会向 .tw 这层的 DNS 问: .edu.tw 要问谁?
(5) .tw 的这层就会回答 .edu.tw 要向谁查. (同时你用的 DNS 也把这答 案 cache 起来)
(6) 向 .edu.tw 这层问 .tp.edu.tw 要问谁?
(7) 得到 .tp.edu.tw 要向谁查. (又 cache 起来)
(8) 问 .tp.edu.tw 这层的 DNS: .ck.tp.edu.tw 要问谁?
(9) 得到 .ck.tp.edu.tw 要跟 camel.ck.tp.edu.tw 问 (又 cache 起来)
(10) 问 camel.ck.tp.edu.tw: oasis.ck.tp.edu.tw 的 IP 为何?
(11) camel.ck.tp.edu.tw 回答: oasis.ck.tp.edu.tw 的 IP 是 203.64.26.18 (又 cache 起来) 经过了这麽多的过程, 终於得到了这个 IP. 接下来才能作进一步的连线. 要注意的是, 在每一层都会问一个问题, 并且会把答案记下来 (cache) 起 来. 而且还会忘掉. (看该层的设定是要 cache 多久)
问:DNS 要怎麽设定?
答:如果,只是要使用 DNS,那只要在 TCP/IP 的网路设定中设定即可。 设定的方法跟使用的作业系统有关。例如: Windows 95 - 在「控制台」「网路」「TCP/IP」中,找到 DNS 的部份再 来设定。 Unix - 在 /etc/resolv.conf 这个档案中设定,范例如下: domain ck.tp.edu.tw (就是这台电脑所属的 Domain Name) nameserver 203.64.26.1 (一定要打 IP) (如果,要架设一台 DNS Server,就不是这个问题集的范围了。)
问:哪一台 DNS 资料最新?
答:如果,你知道 DNS 是利用阶层架构运作的,那就应该知道,离你最近的 DNS,就是最好的。 注:在Chinanet的shell上,可以通过执行nslookup命令来进行域名解析,如nslookup www.yahoo.com nslookup 202.96.64.68