DNS 的查询过程
本站常说的 DNS 是什麼 ?我们要谈一谈,那麼 DNS 的 (1)架构是怎样? (2)查询原理是怎样?总是要先知道架构才能知道如何查询的吶!所以底下我们先来介绍一下整体的架构。
DNS 的架构:
http://linux.vbird.org/linux_server/0350dns/0350dns-2.jpg
上面就是一个简单的 DNS 阶层架构囉,最上方一定是 . (小数点) 这个 root 的 DNS主机,他底下管理的就只有 com, edu, gov, mil, org 与以国家为分类的第二层的主机名称了!例如台湾地区最上层的领域名称是以.tw 为开头,管理这个领域名称的这部机器的 IP 是在台湾,但是他的记录则是记录在 . (root)那部机器裡面的!还有其他的国家的最上层如.cn 指的是大陆, .de 指的是德国一样!那麼每个国家之下记录的主要的下层有哪些领域呢? 呵呵!主要就是有这六大类:
名称 代表意义
com 公司、行号、企业
org 组织、机构
edu 教育单位
gov政府单位
net网路、通讯
mil军事单位
其实最早之前在 . (root)之下只有这六大类的 domain name ,但是网路成长的速度太快了,因此后来又多出这些以国码来分的domain name ,如此一来,在该国家之内,只要向该国家申请 domain name即可,不需要再到最上层去申请囉!也因此,在这些国码之下,还是有这六大类的 domain name为主的哩!当然啦,在目前,由於网际网路持续的发烧,说实在的 domain name实在是有点不太够用,所以又有相当多的领域名称被设计出来,例如目前台湾 ISP 提供的 .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://linux.vbird.org/linux_server/0350dns/0350dns-3.jpg
首先,当您在瀏览器的网址列输入 http://aerosol.ev.ncku.edu.tw时,您的电脑就会依据相关设定( 在 Linux 底下就是利用 /etc/resolv.conf 这个档案 ) 所提供的 DNS 的 IP去进行连线查询,好了,由於目前最常见的 DNS 主机就属 Hinet 的 168.95.1.1 这个 DNS了,所以我们就拿他来做例子吧!嗯!这个时候, hinet 的这部主机会这样工作:
先查看本身有没有纪录:
刚刚说过啦,由於 DNS 是层阶式的架构,任何一部 DNS 都仅记录下一层裡面的主机名称对应的 IP 而已,由於 hinet并非学术网路裡面的主机,所以自然也就没有办法直接提供给 client 端关於 aerosol.ev.ncku.edu.tw 这部机器的 IP了,所以啦,一般而言,这个时候 168.95.1.1 就会向最顶层,也就是 . (root) 的主机查询 .tw 这部机器的位址;
向最顶层 ( root )查询:
由於 168.95.1.1 没有纪录我们主机的 IP ,这个时候他就会向『最顶层』的 . (root) 这部主机来查询 . (root)的下一层,也就是 .tw 这部机器的资料了!这个时候, . (root) 就会告诉 168.95.1.1 说『嘿!您要查 .tw这个网域的管理者呀!?喝!我这裡有.tw 这个网域的管理的主机之 IP 资讯,您可以直接去找他!』;
向第二层查询:
168.95.1.1 接著又到 .tw 去查询,而该部机器管理的又仅有 .edu.tw, .com.tw, gov.tw...那几部主机,经过比对后发现我们要的是 .edu.tw 的网域,所以这个时候 .tw 又告诉 168.95.1.1 说:『您要去管理.edu.tw 这个网域的主机那裡查询,我有他的 IP !』;
向下层持续查询:
好了,一步一步下来, .edu.tw 可以查到管理 .ncku.edu.tw 的主机 IP ; .ncku.edu.tw 可以查到管理.ev.ncku.edu.tw 的主机 IP ,而最后我们 aerosol.ev.ncku.edu.tw 就可在管理.ev.ncku.edu.tw 网域的那部主机的设定纪录当中查询到啦!
记录暂存记忆体:
查到了 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 小时),那麼该记录就会被释放喔!
由这样的分层负责您发现了什麼?嗯!那就是:
当一个『合法』的 DNS 主机裡面的设定修改了之后,来自世界各地任何一个 DNS 的要求,都会正确无误的显示正确的主机名称对应 IP的资讯,因为他们会一层一层的寻找下来,所以,要找您的主机名称对应的 IP 就一定得要透过您的上层 DNS主机的纪录才行!所以只要您的主机名字是经过上层『合法的 DNS』主机的设定的,那麼就可以在 Internet上面被查询到啦!呵呵!很简单维护吧,机动性也很高。
在主机的暂存记忆体记录当中,由於是有时间性的,所以当您的主机名称在DNS 当中被修改了之后,但是由於之前的旧资讯还记忆在其他的 DNS 主机的暂存记忆体裡面,所以啦,可能在别人以非您的 DNS主机来查询您的主机名称时,就会得到先前的旧资讯,这个时间差不多可能是 10 分鐘到 2 天左右,这也是为什麼我们常说当您修改了一个domain name 之后,可能要 2 ~ 3 天后才能全面的啟用的缘故啦!
页:
[1]