分享
 
 
 

TCP/IP基础:DNS协议

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

DNS 的来由

如果您为您的机器设定过 internet 连线╋那么您一定接触过 DNS 了╋但 DNS 又是什么东东呢?说穿了╋DNS 是用来帮助记忆网路位址的╋完全是为了迁就人类的记忆思维而设的。

DNS 的全称是 Domain Name System(或 Service) ╋当您连上一个网址╋在URL打上?www.google.com 的时候╋可以说就是使用了 DNS 的服务了。但如果您知道这个 www.google.com 的 IP 位址╋直接输入 216.239.53.101 也同样可以到达这个网址。其实╋电脑使用的只是 IP 位址而已(最终也是 0 和 1 啦)╋这个 www.google.com 只是让人们容易记忆而设的。因为我们人类╋对一些比较有意义的文字记忆(如?www.google.com)╋比记忆那些毫无头绪的号码(如?216.239.53.101)╋往往容易得多。DNS 的作用就是为我们在文字和 IP 之间担当了翻译╋而免除了强记号码的痛苦。

假如您的电话有名字记忆功能╋您只需知道对方的名字╋就可以拨号给友人了╋我们可以说╋这电话也具备如 DNS 的功能了呢?但是╋我们在网路中使用的 DNS 系统╋就是这么简单吗?非也╋复杂得很呢?下面╋就让我们一起去探索一下 DNS 的奥秘?

在早期的 IP 网路世界里面╋每台电脑都只用 IP 位址来表示╋不久人们就发现这样很难记忆╋于是╋一些 UNIX 的管理者╋就建立一个 HOSTS 对应表╋将 IP 和主机名字对应起来╋这样╋用户只需输入电脑名字╋就可以代替 IP 来进行沟通了。如果你安装了 Linux 系统╋在 /etc 下面就可以找到这个 hosts 档案?在 NT 的系统里╋你也可以在 winntsystem32driversetc 下面找到它。不过这个 HOSTS 档是要由管理者手工维护的╋最大的问题是无法适用于大型网路╋而且更新也是件非常头痛的事情。这就是 DNS 大派用场的时候了。

DNS 的结构

DNS 是一个分层级的分散式名称对应系统╋有点像电脑的目录树结构?在最顶端的是一个“root”╋然后其下分为好几个基本类别名称╋如?com?org?edu 等?再下面是组织名称╋如?ibm?microsoft?intel 等?继而是主机名称╋如?www?mail?ftp 等。因为当初 internet 是从美国发展起的╋所以当时并没有国域名称╋但随着后来 internet 的蓬勃发展╋DNS 也加进了诸如 tw?hk?cn 等国域名称。所以一个完整的 dns 名称就好象是这样的?www.xyz.com.tw╋而整个名称对应的就是一个(或多个) IP 位址了。

在早期的设计下╋root 下面只有六个组织类别?

不过╋自从组织类别名称开放以后╋各种各样五花八门的名称也相继涌现出来了╋但无论如何╋取名的规则最好尽量适合网站性质。除了原来的类别资料由美国本土的 NIC(Network Information Center) 管理之外╋其它在国域以下的类别分别由该国的 NIC 管理(比方说台湾的 DNS 将授权给 twnic 来管理)。这样的结构看起来就像这样?

在结构中╋各组织的 DNS 经过申请后由该组织或其委托主机管理(通常当您申请注册一个 domain 域名称的时候╋都要指定两台 DNS 主机负责该域名的 DNS 管理)。

DNS 的运作

在我们设定 IP 网路环境的时候╋都要告诉每台主机关于 DNS 伺服器的位址(我们可以手动的在每一台主机上面设置╋也可以使用 DHCP 来指定)。但这设定的义意何在呢?从前面的介绍我们或可知道:其目的就是请 DNS 帮忙解析主机名称与 IP 位址啦。在这个设定过程中,DNS 被称为 resolver (也就是负责解析的 DNS Server),而被设定主机,则只是单纯的 DNS Client 了,也就是提出解析请求的主机。

下面让我们看看 DNS 是怎样运作的?

1.当被询问到有关本域名之内的主机名称的时候╋DNS 伺服器会直接做出回答?

2.客户端向伺服器提出查询项目?

3.当被询问到有关本域名之内的主机名称的时候╋DNS 伺服器会直接做出回答?

4.如果所查询的主机名称属于其它域名的话╋会检查快取记忆体(Cache)╋看看有没有相关资料?

5.如果没有发现╋则会转向 root 伺服器查询?

6.然后 root 伺服器会将该域名之下一层授权(authoritative)伺服器的位址告知(可能会超过一台)?

7.本地伺服器然后会向其中的一台伺服器查询╋并将这些伺服器名单存到记忆体中╋以备将来之需(省却再向 root 查询的步骤)?

8.远方伺服器回应查询?

9.若该回应并非最后一层的答案,则继续往下一层查询,直到获的客户端所查询的结果为止?

10.将查询结果回应给客户端╋并同时将结果储存一个备份在自己的快取记忆里面?

11.如果在存放时间尚未过时之前再接到相同的查询╋则以存放于快取记忆里面的资料来做回应。

从这个过程我们可以看出╋没有任何一台 DNS 主机会包含所有域名的 DNS 资料╋资料都是分散在全部的 DNS 伺服器中╋而 NIC 只需知道各 DNS 伺服器位址就可以了。

为了更好地理解一下 DNS 的运作╋让我们用下图看看查询 www.home.netman.com.tw 这台主机位址的过程?

在这个例子中╋www.home.netman.com.tw 台主机的 DNS 对应资料╋是由负责 home.netman.com.tw 这个域名的 DNS 伺服器管理的。(在 DNS 术语中╋我们称一个域名为“zone”╋这个 zone 可以是您从 NIC 申请回来的域名╋也可以是从该域名之下延伸出来的“sub-zone”)。在这台 DNS 伺服器上面╋必须有一个关于 home.netman.com.tw 这个 zone 的档案╋而这档案里面必须有一笔关于 www 的记录(任何主机都是以“记录”来表示,称为 Resource Record)。这个记录可以为一个 IP 位址╋也可以以别名形式来对应一台主机名称╋但无论如何╋所对应的主机名称最终是要被一个 IP 位址所对应着就是了。

同时╋DNS 还能提供“反查询”(reverse lookup) 功能╋也就是以 IP 来查询主机名称。网路上面的许多服务╋如?FTP, SMTP?等等╋都需要到这个功能。其实╋DNS 服务本身就必须要使用反查询功能╋而且在设定上╋也必须要为每个网路建立起 reverse zone。虽然有些人发觉即使没有 reverse zone 也可以使用到 DNS 服务╋但其中弊端却不容易被察觉到╋在这个(中文)网页?http://dnsrd.nctu.edu.tw/Basic/WhenToUse-Rev.html 上面╋您可以看到忽略 revers zone 所致一些问题。

DNS 的名称记录

事实上╋DNS 不仅仅是用来解释位址用的╋而且还可以回答更多关于网路和主机的其它信息╋其中很重要的一个功能就是可以供邮件系统进行路由。这些资料╋通常会以不同的“记录”名称出现在DNS的资料档案中。下面让我们参考一个 Linux 的 DNS 档案╋看看这些记录是如何表示的?

;

; Zone file for siyongc.domain

;

; Then full zone file

;

$TTL 86400

@

INSOAredhat52.siyongc.domain. netman.siyongc.domain. (

1999092801; serial

8H; refresh

2H; retry

1W; expire

1D ); minimun

;

INTXT"A test domain, created by Netman"

INNSredhat52

INNSdebian.home

INMX10redhat52.siyongc.domain.

INMX20debian.home

;

localhostINA127.0.0.1

?

gwINA192.168.0.17

INHINFO"Redhat" "MASQ"

INTXT"The masquerade gateway to internet"

?

redhat52INA192.168.0.17

INMX10redhat52

INMX20debian.home

INHINFO"Dell PII 266" "Linux RedHat"

wwwINCNAMEredhat52

mailINCNAMEredhat52

ftpINCNAMEredhat52

newsINCNAMEredhat52

smtpINCNAMEredhat52

?

pii266INA192.168.0.15

INMX10redhat52.siyongc.domain.

INMX20debian.home.

?

slware36INA192.168.0.18

INMX10redhat52.siyongc.domain.

INMX20debian.home.

?

rhrouteINA192.168.0.4

INMX10redhat52.siyongc.domain.

INMX20debian.home.

?

homeINnsdebian.home.siyongc.domain.

debian.homeINA10.0.2.101

我们姑且不理会开头那几行的意思╋那是给 DNS 系统本身使用的(我将会在“学习 Linux”文章里面再详细讨论)╋这里我们只是看看几个记录名称而已?

分? DNS 工作

由於 DNS 的重要性日益锢著,?提高其容邋能力及查?效能,我?在架韵某一?一 zone 的?侯,常以多台伺服器???? zone 的服?。其中,我?必需指定一台 Primary(master) DNS 伺服器,它是架韵在某一?咀域下被主要授??控制所有名费??的主控伺服器╋管?著?咀域的所有??儋料╋呃些??儋料只有 primary(master) 可以修改。

但如果在一?比蒉大型的咀路中╋DNS 伺服器就??得很繁忙╋所以您可以韵定多? DNS ?分? master 的工作╋但您或杂不?意到每一? DNS 伺服器去更新儋料吧?而且就算您?意呃?做╋也容易出?邋锗或儋料不同步的情形。呃?您可以韵定其它的伺服器? secondary (slave) DNS ?妖氧 master 上面的??儋料╋呃?╋其它的?呢可以被分派到不同的 DNS 做查?╋既可以分? master 的工作╋而且儋料也可以自?咄行同步工作。?催保儋料的一致性,master 每次更新咿儋料後?以 notify ?制主?通知 slave 前?同步。此外,您可以韵定 DNS 儋料同步的?殓殓隔╋在 dns ?案中的 Refresh 韵定就是了。在?案中,您??看到 Serial ╋? slave 的上面的 serial

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有