<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>温室小花.技术.博客 --纯粹的unix技术博客 &#187; Dns技术方案</title>
	<atom:link href="http://www.evanjiang.net.cn/archives/category/%e6%8a%80%e6%9c%af%e6%96%b9%e6%a1%88/dns%e6%8a%80%e6%9c%af%e6%96%b9%e6%a1%88/feed" rel="self" type="application/rss+xml" />
	<link>http://www.evanjiang.net.cn</link>
	<description>红颜弹指老，刹那芳华，与其天涯思君，恋恋不舍，莫若相忘于江湖！</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:51:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>DNS服务器建设方案</title>
		<link>http://www.evanjiang.net.cn/archives/1205.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1205.html#comments</comments>
		<pubDate>Sun, 21 Jun 2009 07:50:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Dns技术方案]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1205</guid>
		<description><![CDATA[<p>


 <p>0 概述</p>
<p>随着互连网的发展，网络已经走进人们的生活。在TCP/IP网络上，每个设备必须分配一个唯一的地址，计算机在网络上通讯时只能识别如“192.168.38.125”之类的数字地址，而人们在使用网络资源的时候，为了便于记忆和理解，更倾向于使用有代表意义的名字，即域名，如“www.163.com”代表网易的域名。当我们打开浏览器，在地址栏中输入如“www.163.com”的域名后，就能看到我们所需要的页面。这是因为我们输入了域名后，有一台称为“DNS服务器”的计算机自动把我们所需要的域名“翻译”成相应的IP地址，然后我就可以访问那个IP地址对应的网页。</p>
<p>在Internet早期，应用程序是通过一个本地文件[1-2]来进行域名到IP地址、或IP地址到域名的转换的。这个文件就是hosts文件，记录了一系列域名和IP的对应关系。当人们访问一个域名时，计算机在hosts文件中查找相应的记录，找到域名所对应的IP地址。但是随着Internet规模的不断扩大，hosts文件将变的很大，它的维护和检索异常艰难，显然需要一种更高效快速的方法。为了解决这个问题，就需要用到Domain Name Server。</p>
<p>1 DNS 的工作原理</p>
<p>DNS的核心思想是分级的，它是个数据库，主要用于将主机名（域名）和电子邮件地址翻译成IP地址。DNS是使用层的方式来运作的。有的组织有自己的DNS服务器，这个DNS服务器维护着所在域的主机和IP地址的映射记录。当客户机请求名称解析时，DNS服务器先在自己的记录中检查是否有对应的IP地址。如果没有找到，它就会向其它的DNS服务器询问该信息。DNS解析程序的查询流程如图1所示。</p>
<p>例如武夷学院的域名为 www.nptc.edu.cn ，这个域名当然不是凭空而来的，是从“.edu.cn”所委派下来的，“.edu.cn”又是从“.cn”委派的，“.cn”是从“.”委派的，“.”代表的是根</p>
<p>域，也就是域名的最上层，由InterNIC（Internet Network Information Center，互联网信息中心）所管理的。全世界的域名就是这样，一层一层地委派下来。下面我们就以武夷学院的域名 www.nptc.edu.cn 为例来对域名的查询过程进行解释。</p>
<p>Step1 ：您所使用的电脑（客户端）需要访问www.nptc.edu.cn，首先，电脑查看自己的本机高速缓存，如果没有相关的记录，则查询Host文件。</p>
<p>Step2 ：如果在本机没有找到相关记录，就送出一个对www.nptc.edu.cn解析的请求给所设定的本地DNS Server。</p>
<p>Step3 ：本地的DNS 会先看看是不是在自己cache中，如果是就给出答案；如果不是，就将这个问题送给根域“.”中的任何一台DNS（目前“.”有13台）。根服务器也没有此记录，然而它知道和这个域比较近的服务器，所以它返回管理“.cn”服务器的地址。

Step4 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“.cn”的服务器。这台服务器也找不到答案，它也会推荐管理“edu..cn”域的一台服务器给本地DNS。</p>
<p>Step5 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“edu..cn”的服务器。这台服务器也找不到答案，它也会推荐管理“nptc.edu..cn”域的一台服务器给本地DNS。</p>
<p>Step6 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“nptc.edu..cn”的服务器。最终，这台服务器确实有你需要的记录，此服务器就返回www.nptc.edu.cn的IP地址。</p>
<p>Step7 ：本地DNS服务器就回应给客户机相应的IP地址。</p>
<p>在以上7个步骤中，客户机和本地DNS都会将每次从上级域或者根域获得的答案记录（cache）下来，以便以后访问和查询时更加快捷（当然，还会忘记，要看具体的设置）。</p>
<p>2 DNS 的分类</p>
<p>域名服务器根据其所提供的服务类型、提供服务的方式可以分为根域名服务器、主域服务器、辅助域名服务器、专用缓存域名服务器和转发域名服务器五类。下面我们简要叙述其功能。</p>
<p>2.1 根服务器（ Root Servers ）</p>
<p>根服务器位于域名空间的最顶层，就是我们前面所说的“.”，它主要用来管理根和顶级域名，目前有13个，有NIC维护，它的主机名通常为“a.root-servers.net”，一直到“m.root-servers.net。</p>
<p>2.2 主域名服务器（ Primary Servers ）</p>
<p>通常每个区域有且仅有一个主域名服务器，用来维护本区域的所有域名信息，对该区的所有DNS数据库文件的修改都再该区域的主域名服务器上修改。主域名服务器对该域中的辅助域名服务器进行周期性的更新。现在，主域名服务器或者辅助域名服务器通常在DNS的配置文件/etc/named.conf中由“zone”语句中的“type master”变量来指定。</p>
<p>2.3 辅助域名服务器（ Secondary Servers ）</p>
<p>用来做同一区域中主服务器的备份服务器，以防止主服务器无法访问或者宕机。辅助域名服务器定期与主域名服务器通信，确保它的区域信息保持最新。如果不是最新信息，辅助域名服务器就会从主服务器上获取最新区域文件的副本，这个过程成为区域复制。通过区域复制，辅助域名服务器可以定期获得主服务器的区域信息。</p>
<p>2.4 专用缓存域名服务器（ Cache-only Servers ）</p>
<p>所有的域名服务器都缓存非它们授权管理的远地域名信息。而专用缓存域名服务器只用来缓存任何DNS域的信息，它们不管理任何授权的域名信息，所以它们对任何域提供的信息都是非授权的。专用缓存服务器可以分担辅助服务器从主服务器进行区域复制的负担，可以为用户提供本地的域名信息服务而不用设置主或者复制域名服务器。</p>
<p>2.5 转发域名服务器（ Forwarding Servers ）</p>
<p>转发域名服务器是主域名服务器和辅助域名服务器的一种变形，它负责所有非本地域名的本地查询。如果用户定义了一台转发域名服务器，那么所有对非本地域名的产讯首先发给它。转发服务器通常保存了大量的域名缓存信息，从而可以减少非本地域名查询的重复次数。通常在DNS的配置文件/etc/named.conf中由“option”语句来定义。</p>
<p>3 DNS 的配置</p>
<p>建立一台DNS服务器需要三个部件，它们是DNS服务器软件、DNS服务器引导文件和主文件（数据库文件）。Linux上的DNS服务器软件叫做named――Berkeley Internet Name Daemon（伯克利Internet域名服务器），引导文件不是所有的系统都需要，主文件主要包含域信息、反向地址映射和缓存文件。</p>
<p>Linux系统通过运行守护神程序named来实现DNS服务器功能。它是在伯克利的加利弗尼亚大学开发的。它可以在许多环境下运行，而且在多数Linux版本中已经成为标准。BIND由因特网管理委员会（ISC）管理，并一直维护和增强。</p>
<p>Linux通过使用一个引导文件和本地数据文件来配置named。引导文件一般为/etc/named.conf，它定义了名字服务器运行的目录、定义了主域名和辅助域名服务器的区文件和数据库文件。当客户端发送请求给本地的DNS Server时，服务器就通过应到文件查找该请求解析的域是否已经授权管理，如果已经授权，就应到named查找该授权区域的数据库文件；否则，返回该区域上一级名字服务器的地址或者根服务器的地址。在引导文件中和还可以进行DNS的安全设置。</p>
<p>数据库文件包含名字服务器中授权管理的所有区的资源记录。数据库文件一般为/var/named/chroot/var/named/nameTOip.conf或者/var/named/chroot/var/named/ipTOname.conf当查询一个域名时，named通过引导文件读取相应的数据库文件中的记录，获得该域名的IP地址，或者通过IP地址获得其域名。数据库文件在主域名服务器中是手动设置的，在辅助域名服务器中可以通过和主域名服务器的通信中自动获取。</p>
<p>4 DNS 的安全管理</p>
<p>4.1 查询限制</p>
<p>4.2 [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left;margin: 4px;"><script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 160x600, 创建于 10-2-7 */
google_ad_slot = "8970910006";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p> <p>0 概述</p>
<p>随着互连网的发展，网络已经走进人们的生活。在TCP/IP网络上，每个设备必须分配一个唯一的地址，计算机在网络上通讯时只能识别如“192.168.38.125”之类的数字地址，而人们在使用网络资源的时候，为了便于记忆和理解，更倾向于使用有代表意义的名字，即域名，如“www.163.com”代表网易的域名。当我们打开浏览器，在地址栏中输入如“www.163.com”的域名后，就能看到我们所需要的页面。这是因为我们输入了域名后，有一台称为“DNS服务器”的计算机自动把我们所需要的域名“翻译”成相应的IP地址，然后我就可以访问那个IP地址对应的网页。</p>
<p>在Internet早期，应用程序是通过一个本地文件[1-2]来进行域名到IP地址、或IP地址到域名的转换的。这个文件就是hosts文件，记录了一系列域名和IP的对应关系。当人们访问一个域名时，计算机在hosts文件中查找相应的记录，找到域名所对应的IP地址。但是随着Internet规模的不断扩大，hosts文件将变的很大，它的维护和检索异常艰难，显然需要一种更高效快速的方法。为了解决这个问题，就需要用到Domain Name Server。</p>
<p>1 DNS 的工作原理</p>
<p>DNS的核心思想是分级的，它是个数据库，主要用于将主机名（域名）和电子邮件地址翻译成IP地址。DNS是使用层的方式来运作的。有的组织有自己的DNS服务器，这个DNS服务器维护着所在域的主机和IP地址的映射记录。当客户机请求名称解析时，DNS服务器先在自己的记录中检查是否有对应的IP地址。如果没有找到，它就会向其它的DNS服务器询问该信息。DNS解析程序的查询流程如图1所示。</p>
<p>例如武夷学院的域名为 www.nptc.edu.cn ，这个域名当然不是凭空而来的，是从“.edu.cn”所委派下来的，“.edu.cn”又是从“.cn”委派的，“.cn”是从“.”委派的，“.”代表的是根</p>
<p>域，也就是域名的最上层，由InterNIC（Internet Network Information Center，互联网信息中心）所管理的。全世界的域名就是这样，一层一层地委派下来。下面我们就以武夷学院的域名 www.nptc.edu.cn 为例来对域名的查询过程进行解释。</p>
<p>Step1 ：您所使用的电脑（客户端）需要访问www.nptc.edu.cn，首先，电脑查看自己的本机高速缓存，如果没有相关的记录，则查询Host文件。</p>
<p>Step2 ：如果在本机没有找到相关记录，就送出一个对www.nptc.edu.cn解析的请求给所设定的本地DNS Server。</p>
<p>Step3 ：本地的DNS 会先看看是不是在自己cache中，如果是就给出答案；如果不是，就将这个问题送给根域“.”中的任何一台DNS（目前“.”有13台）。根服务器也没有此记录，然而它知道和这个域比较近的服务器，所以它返回管理“.cn”服务器的地址。<br />
<span id="more-1205"></span><br />
Step4 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“.cn”的服务器。这台服务器也找不到答案，它也会推荐管理“edu..cn”域的一台服务器给本地DNS。</p>
<p>Step5 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“edu..cn”的服务器。这台服务器也找不到答案，它也会推荐管理“nptc.edu..cn”域的一台服务器给本地DNS。</p>
<p>Step6 ：本地DNS发送一个对www.nptc.edu.cn解析的请求给授权管理“nptc.edu..cn”的服务器。最终，这台服务器确实有你需要的记录，此服务器就返回www.nptc.edu.cn的IP地址。</p>
<p>Step7 ：本地DNS服务器就回应给客户机相应的IP地址。</p>
<p>在以上7个步骤中，客户机和本地DNS都会将每次从上级域或者根域获得的答案记录（cache）下来，以便以后访问和查询时更加快捷（当然，还会忘记，要看具体的设置）。</p>
<p>2 DNS 的分类</p>
<p>域名服务器根据其所提供的服务类型、提供服务的方式可以分为根域名服务器、主域服务器、辅助域名服务器、专用缓存域名服务器和转发域名服务器五类。下面我们简要叙述其功能。</p>
<p>2.1 根服务器（ Root Servers ）</p>
<p>根服务器位于域名空间的最顶层，就是我们前面所说的“.”，它主要用来管理根和顶级域名，目前有13个，有NIC维护，它的主机名通常为“a.root-servers.net”，一直到“m.root-servers.net。</p>
<p>2.2 主域名服务器（ Primary Servers ）</p>
<p>通常每个区域有且仅有一个主域名服务器，用来维护本区域的所有域名信息，对该区的所有DNS数据库文件的修改都再该区域的主域名服务器上修改。主域名服务器对该域中的辅助域名服务器进行周期性的更新。现在，主域名服务器或者辅助域名服务器通常在DNS的配置文件/etc/named.conf中由“zone”语句中的“type master”变量来指定。</p>
<p>2.3 辅助域名服务器（ Secondary Servers ）</p>
<p>用来做同一区域中主服务器的备份服务器，以防止主服务器无法访问或者宕机。辅助域名服务器定期与主域名服务器通信，确保它的区域信息保持最新。如果不是最新信息，辅助域名服务器就会从主服务器上获取最新区域文件的副本，这个过程成为区域复制。通过区域复制，辅助域名服务器可以定期获得主服务器的区域信息。</p>
<p>2.4 专用缓存域名服务器（ Cache-only Servers ）</p>
<p>所有的域名服务器都缓存非它们授权管理的远地域名信息。而专用缓存域名服务器只用来缓存任何DNS域的信息，它们不管理任何授权的域名信息，所以它们对任何域提供的信息都是非授权的。专用缓存服务器可以分担辅助服务器从主服务器进行区域复制的负担，可以为用户提供本地的域名信息服务而不用设置主或者复制域名服务器。</p>
<p>2.5 转发域名服务器（ Forwarding Servers ）</p>
<p>转发域名服务器是主域名服务器和辅助域名服务器的一种变形，它负责所有非本地域名的本地查询。如果用户定义了一台转发域名服务器，那么所有对非本地域名的产讯首先发给它。转发服务器通常保存了大量的域名缓存信息，从而可以减少非本地域名查询的重复次数。通常在DNS的配置文件/etc/named.conf中由“option”语句来定义。</p>
<p>3 DNS 的配置</p>
<p>建立一台DNS服务器需要三个部件，它们是DNS服务器软件、DNS服务器引导文件和主文件（数据库文件）。Linux上的DNS服务器软件叫做named――Berkeley Internet Name Daemon（伯克利Internet域名服务器），引导文件不是所有的系统都需要，主文件主要包含域信息、反向地址映射和缓存文件。</p>
<p>Linux系统通过运行守护神程序named来实现DNS服务器功能。它是在伯克利的加利弗尼亚大学开发的。它可以在许多环境下运行，而且在多数Linux版本中已经成为标准。BIND由因特网管理委员会（ISC）管理，并一直维护和增强。</p>
<p>Linux通过使用一个引导文件和本地数据文件来配置named。引导文件一般为/etc/named.conf，它定义了名字服务器运行的目录、定义了主域名和辅助域名服务器的区文件和数据库文件。当客户端发送请求给本地的DNS Server时，服务器就通过应到文件查找该请求解析的域是否已经授权管理，如果已经授权，就应到named查找该授权区域的数据库文件；否则，返回该区域上一级名字服务器的地址或者根服务器的地址。在引导文件中和还可以进行DNS的安全设置。</p>
<p>数据库文件包含名字服务器中授权管理的所有区的资源记录。数据库文件一般为/var/named/chroot/var/named/nameTOip.conf或者/var/named/chroot/var/named/ipTOname.conf当查询一个域名时，named通过引导文件读取相应的数据库文件中的记录，获得该域名的IP地址，或者通过IP地址获得其域名。数据库文件在主域名服务器中是手动设置的，在辅助域名服务器中可以通过和主域名服务器的通信中自动获取。</p>
<p>4 DNS 的安全管理</p>
<p>4.1 查询限制</p>
<p>4.2 数据传送限制</p>
<p>4.3 使用 Linux 系统提高安全性和稳定性</p>
<p>4.4 使用防火墙</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1205.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
