中国网管论坛's Archiver

zhaojie78 发表于 2007-11-15 10:55

Linux 架设 DNS 服务器

[b]一、域名系统介绍
[/b]  
   [b]1.域名系统[/b]
  
   域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能.
  
   域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问.
  
   DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串""来表示,但在文本中用"."来书写.树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步划分成子分区(域),每个域都有一个标签(LABEL),标明了它与父域的关系.域也有一个域名(domain name),给出它在整个分布式数据库中的位置.在DNS中,域名全称是一个从该域到根的标签序列,以"."分隔这些标签.该标签最多可包含63个字符.树中每一节点的完整域名为从该节点到根之间路径上的标签序列.
  
   如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾).这些以点结尾的域名被称之为绝对域名(Absoulte Domain Name).不以点结尾的域名被称之为相对域名.
  
   域(Domains)即为树状域名空间中的一棵子树,域的域名同该子树根节点的域名一样.也就是说,域的名字就是该域中最高层节点的名字.举例来说,zhuhai.gd.cn域的顶端就是名为zhuhai.gd.cn的节点.
  
   在DNS中,每个域分别由不同的组织进行管理.每个组织都可以将它的域再分成一定数量的子域并将这些子域委托给其他组织进行管理.域既能包括主机又能包括其他域(它的子域).域名被用做DNS数据库中的索引.子域中任何域名被认为是域的一部分.   
   事实上,主机即为域,域名仅是DNS数据库中的索引,"主机"可由指向相关主机信息的域名来索引,域包含所有其域名在该域的主机.
  
   在域名树中,叶节点的域通常代表主机,它们的域名可指向网络地址,硬件信息和邮件路由信息.在树内的节点,其域名既可命名一台主机,也可指向有关该域的子孙或子域的结构信息,在域名树中的内部域名并不受唯一性限制,它们既可表示它们所对应的域,又可代表网络中某台特定的主机.例如,sun.com既是sun的域,又是在sun和internet间转发信件的邮件服务器的域名.
  
   网络上的每一台主机都有一个域名,域名给出有关主机的信息,该信息中包含IP地址,MAIL路由信息等等,主机也可以有一个或多个域名别名,别名仅是一些指向正式域名的另
  
   1.1 域名.
  
   判断域是否为另一域的子域的简单方法是比较它们的域名.子域名以其父域名结尾.
  
   设计域名系统的一个主要目的是让管理分散化,这是通过代理来实现的.管理域的组织将该域划分成子域,每一个子域可以由其他组织代理,这意味着那些代理组织负责维护在该子域的所有数据.他们可以自由地改变数据,甚至可以将他们管理的子域再划分成更多的子域并将它们再分配.父域中仅包含指向这些子域的指针,因而引用对那里的查询.
  
   1.2 域名服务器  
  
   存储有关域名空间信息的程序被称为域名服务器(name server).通常,域名服务器拥有部分域名空间(称之为区zone)的完整信息.域名服务器可以拥有多个区的授权.
  
   区与域的关系:
  
   区包含了域中除了代理给别处的子域外所含有的所有域名和数据.如果域的子域没有被代理出去,则该区包含该子域名和子域中的数据.
  
   DNS定义了两类域名服务器:primary Master 和 secondary Master.PM域名服务器
  
   从它所运行的主机上的文件获得它所负责的区的数据,SM域名服务器则是从其它的具有该区授权的域名服务器上获得它的区的数据.SM域名服务器会定期查询PM域名服务器以保证区数据为最新版本.
  
   一般情况下,最好设立一台PM域名服务器和若干台SM域名服务器.这样可以分担负载.以及确保区中所有主机都有比较靠近的域名服务器,方便访问.
  
   1.3 解析器
  
   运行在主机上并需要域名空间信息的重新需要解析器(Resolver),在bind中解析器仅仅是一组库例程,并编译进象telnet和ftp这样的程序中,它们并非独立的进程.解析器所做的工作为:汇集查询,发送查询并等待应答,未得到应答时重发查询
  
   1.4 地址到域名的映射
  
   在域名空间的数据是通过名字来进行索引的,找到一个给定域名的地址相对容易.但是要找到映射给一定地址的域名就要在树上的每一个域名空间作穷尽搜索.如果这样的话,效率将相当低,为了解决这个问题,创建一个以地址为索引的域名空间.这部分名字空间被称为in-addr.arpa域.
  
   in-addr.arpa域中的节点以Doted-octet(将32bitIP地址表示为由"."分隔开的四个8bit的十进制形式的方法)形式表示IP地址.IP地址在名字空间以相反的方向表示,因为名字是从叶读到根,例如,[url=http://www.zhuhai.gd.cn/][color=#606060]www.zhuhai.gd.cn[/color][/url]的IP地址为202.105.177.100,则相应的in-addr.arpa子域为177.105.202.in-addr.arpa,使IP地址中的第一个字节出现在树的最高层使的管理员有能力沿着网络联接将in-addr.arpa域代理出去,例如177.105.202.in-addr.arpa可以被代理给网络177.105.202的管理员.
  
   1.5 缓存与生存期
  
   名字服务器在处理递归查询时,可能要进行多次查询才能得到信息,在这过程中,名字服务器可以获得很多有关域名空间的信息,名字服务器将所以这些信息都缓存起来以加速以后的查询.除了加速查询外,缓存还使得我们不必再次查询根名字服务器,这样可使得我们不必过分依赖根名字服务器而大大减轻根名字服务器的负载.
  
   生存期(TTL)为所容许的名字服务器对数据缓存的时间长度,一旦生存期到了,名字服务器必须丢弃缓存数据并从授权的名字服务器中重新获取新的数据.这样可以确保域数据在整个网络上的一致性.
  
   1.6 BIND:LINUX名字服务
  
   linux和其他的unix一样,都是用BIND来实现名字服务.BIND的服务端的软件是被称为named的守护进程.bind的主页是[url]http://www.isc.org[/url]

zhaojie78 发表于 2007-11-15 10:56

[b]2. 安装服务器软件
[/b]  
   2.1 取得bind软件包(现在新的版本为8.2.2 p5)
  
   从bind的主页[url]http://www.isc.org[/url]上取得最新stable版的三个文件:
  
   bind-contrib.tar.gz
  
   bind-doc.tar.gz
  
   bind-src.tar.gz
  
   或者从[url]http://www.redhat.com[/url]上取得三个文件:
  
   bind-8.2.2-p5-9.i386.rpm
  
   bind-devel-8.2.2-p5-9.i386.rpm
  
   cache-nameserver-6.2-2.noarch.rpm
  
   2.2 安装bind软件包
  
   安装tar封装的软件包:
  
   先解压软件包
  
   tar zxpf bind-contrib.tar.gz
  
   tar zxpf bind-doc.tar.gz
  
   tar zxpf bind-src.tar.gz
  
   编辑修改Makefile.set 文件,增加或修改
  
   'DESTLIB=/usr/lib/bind/lib'
  
   'DESTINC='/usr/lib/bind/include'
  
   编译并安装
  
   make
  
   make install
  
   安装rpm封装的软件包:
  
   rpm -Uhv bind-8.2.2-p5-9.i386.rpm
  
   rpm -Uhv bind-devel-8.2.2-p5-9.i386.rpm
  
   rpm -Uhv cache-nameserver-6.2-2.noarch.rpm

zhaojie78 发表于 2007-11-15 10:56

[b]3.让服务器跑起来---基本篇
[/b]  
   3.1
  
   BIND可被配置成几种不同的运行方式,通用的BIND配置为纯解析器系统,纯缓存服务器,主服务器,辅服务器.
  
   解析器是指通过域名服务器查询域信息的程序代码,在unix系统中,它是以库例程的方式实现的,而并不是一个单独的客户程序.纯解析器系统很容易配置,只要设置一下/etc/resolv.conf文件.这种方式通常用于由于某些限制不能在本地运行域名服务器软件的系统中.
  
   例如:/etc/resolv.conf内容类似为:
  
   search test.com
  
   nameserver 127.0.0.1
  
   nameserver 172.16.0.1
  
   当配置解析器库以使用BIND名字服务进行主机查找,你也必须告知它使用哪个名字服务器。对此有一个独立的文件,称为resolv.conf。如果这个文件不存在或是空的,那么解析器就假设名字服务器在你本地的主机上。
  
   如果在你的本地主机上运行一个名字服务器,你必须单独地设置它。
  
   resolv.conf中最重要的选项是nameserver,它给出了要使用的名字服务器的IP地址。如果你通过几次给出nameserver选项指定了几个名字服务器,那么它们会以给出的顺序试用。因此,你应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。
  
   如果没有给出nameserver选项,那么解析器试图连接本地主机上的名字服务器。
  
   其它两个选项,domain和search涉及到如果BIND不能用第一个请求解析主机名时附加在主机名上的缺省域。search选项指定了一个试用的域名列表。列表项是用空格或制表符分开的。
  
   如果没有给出search选项,就会通过使用域名本身从本地域名以及直至root的父域中建立一个搜寻列表。本地域名可以使用domain语句给出;如果一个也没有给出,那么解析器就通过系统调用getdomainname(2)来获取。
  
   3.2 其它三类配置方式是用于域名服务器的
  
   纯缓存服务器
  
   纯缓存服务器运行域名服务器软件,但并没有域名服务器数据库文件,它记录下每一个从远程域名服务器获得的数据,以回答将来对同一信息的查询.
  
   纯缓存服务器所需的三个基本配置文件:
  
   /etc/named.conf
  
   /var/named/named.ca
  
   /var/named/named.local
  
   创建或修改/etc/named.conf:
  
   // generated by named-bootconf.pl
  
   options {
  
   directory "/var/named";
  
   /*
  
   * If there is a firewall between you and nameservers you want
  
   * to talk to, you might need to uncomment the query-source
  
   * directive below. Previous versions of BIND always asked
  
   * questions using port 53, but BIND 8.1 uses an unprivileged
  
   * port by default.
  
   */
  
   // query-source address * port 53;
  
   forwarders {172.16.0.1;172.16.0.11;};
  
   };
  
   //
  
   // a caching only nameserver config
  
   //
  
   zone "." {
  
   type hint;
  
   file "named.ca";
  
   };
  
   zone "0.0.127.in-addr.arpa" {
  
   type master;
  
   file "named.local";
  
   };
  
   在文件中"forwarders {172.16.0.1;172.16.0.11;};"其中的IP地址是你网络中主服务器和辅服务器的IP地址.
   创建或修改/var/named/named.local
  
   @ IN SOA localhost. root.localhost. (
  
   1997022700 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS localhost.
  
   1 IN PTR localhost.
  
   创建或修改/var/named/named.ca:
  
   至于/var/named/named.ca就要从redhat linux光碟获得了.也用命令从互联网上获得:
  
   dig @.aroot-servers.net.ns > /var/named/named.ca
  
   如果是用rpm封装的软件包安装的话,这三个文件会自动生成,我们只需要修改/etc/named.conf.其中/var/named.ca一般是不用修改的.
  
   主服务器
  
   主服务器是给定域的所有信息的授权来源.它所装载的域信息来自于由域管理员所创建并在本地维护的磁盘文件.
  
   我们用"test.com"作为例子,我们需要五个基本配置文件:
  
   /etc/named.conf
  
   /var/named/named.ca
  
   /var/named/named.local
  
   /var/named/named.test.com
  
   /var/named/named.172.16.0
  
   创建或修改/etc/named.conf:
  
   // generated by named-bootconf.pl
  
   options {
  
   directory "/var/named";
  
   /*
  
   * If there is a firewall between you and nameservers you want
  
   * to talk to, you might need to uncomment the query-source
  
   * directive below. Previous versions of BIND always asked
  
   * questions using port 53, but BIND 8.1 uses an unprivileged
  
   * port by default.
  
   */
  
   // query-source address * port 53;
  
   };
  
   //
  
   // a PM nameserver config
  
   //
  
   zone "." {
  
   type hint;
  
   file "named.ca";
  
   };
  
   zone "0.0.127.in-addr.arpa" {
  
   type master;
  
   file "named.local";
  
   };
  
   //there are our primary zone files
  
   zone "test.com" {
  
   type master;
  
   file "named.test.com";
  
   };
  
   zone "0.16.172.in-addr.arpa" {
  
   type master;
  
   file "named.172.16.0";
  
   };
  
   文件中的zone "test.com"段是声明这是用于test.com域的主服务器,用于该域的数据从/var/named/named.test.com文件中装载.
  
   文件中的zone "0.16.172.in-addr.arpa"段是指向映射IP地址172.16.0.* 到主机名的文件.用于该域的数据从/var/named/named.172.16.0文件中装载.
  
   创建或修改/var/named/named.local
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   1 IN PTR localhost.
  
   注意:在修改named.*文件时每次存盘时要注意增加Serial值.如使用绝对域名时千万别忘了后面带的"."
  
   资源记录中的@字符转变为当前的域test.com,IN表示资源记录使用TCP/IP地址,SOA表示管辖开始记录.ns.test.com. 是这个域的主DNS服务器的标准名称,在之后是联系的EMAIL地址,其中@字符必须用"."代替.
  
   创建或修改/var/named/named.test.com
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   ns A 172.16.0.1
  
   ns2 A 172.16.0.11
  
   www A 172.16.0.2
  
   ftp CNAME [url=http://www.test.com./][color=#606060]www.test.com.[/color][/url]
  
   mail A 172.16.0.3
  
   MX 10 mail.test.com.
  
   创建或修改/var/named/named.172.16.0
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expi

zhaojie78 发表于 2007-11-15 10:57

[b]4.标准资源记录
[/b]  
   -----------------------------------------------------------------------
  
   资源记录文本名 意义 记录类型 功能
  
   -----------------------------------------------------------------------
  
   Start of Authority 授权开始 SOA 标记区数据的开始,定义影响整个区的参数
  
   Name Server 名字服务器 NS 标明域的名字服务器
  
   Address 地址 A 转换主机名到地址
  
   Pointer 指针 PTR 转换地址到主机名
  
   Mail Exchange 邮件交换 MX 标明发往给定域名的邮件应传送到的位置
  
   Canonical Name 正规名 CNAME 定义主机名别名
  
   HOST information 主机信息 HINFO 描绘主机硬件和操作系统的信息
  
   Wellknown Service 著名服务 WKS 通告网络服务
  
   DNS使用MX记录来实现邮件路由,它规定了域名的邮件服务器要么处理,要么向前转发有关该域名的邮件.处理邮件是指将其传送给其地址所关联的个人,向前转发邮件是指通过SMTP协议将其传送给其最终目的地.为了防止邮递路由,MX记录除了邮件交换器的域名外还有一个特殊参数:优先级值.优先级值是个从0到65535的无符号整数,它给出邮件交换器的优先级别.
  
   优先级值自身并不重要,关键在于它同其它邮件交换器的优先级值的相对大小,优先级值相对越小,优先级越高.邮件总是首先试图传递给优先级值相对最小的邮件交换器.失败后才试图传递给优先级值稍大的邮件交换器.邮件总是试遍了同一优先级的邮件交换器,失败后才试图传递给优先级稍低的邮件交换器.
  
   注意你列为邮件交换器的主机必须拥有地址记录.
  
   例如:
  
   mail A 172.16.0.3
  
   MX 10 mail.test.com.

zhaojie78 发表于 2007-11-15 10:57

[b]5.管理工具
[/b]  
   5.1 dig
  
   named.ca文件的作用是告诉你的服务器在哪里可以找到根域的域服务器,这个文件 一定要保证正确无误,一般来说,这个文件几乎不会变动,但是不能保证不会变动,最好是 每一,两个月同步一下.
  
   使用下面的命令获得新的named.ca文件
  
   dig @.aroot-servers.net.ns >/var/named/named.ca
  
   5.2 ndc
  
   ndc这个指令是由系统管理员用来管理域服务器的操作,在终端中输入ndc help可
  
   得到帮助.
  
   ndc restart 用来重新启动named进程;
  
   ndc reload 用来装入新的数据库.
  
   5.3 nslookup
  
   nslookup是用来询域名信息的命令,它分交互模式和非交互模式两种方式.
  
   非交互模式:nslookup [url]www.zhuhai.gd.cn[/url]
  
   交互模式:nslookup   
  
   注意,当用nslookup查询时出现"Non-authoritative answer:",表明这次并没有到 网络外去查询,而是在缓存区中查找并找到数据.
  
   交互模式除了能查询单个的主机,还可以查询DNS记录的任何类型,并且传输 一个域的整个区域信息。 当不加参数地调用,nslookup将显示它所用的名字服务器, 并且进入交互模式。
  
   在’>’提示符下,你可以键入任何想要查询的域名。缺省地,它请求类A记录, 这些是包含与域名相关的IP地址的。
  
   你可以通过发出“set type=type”来改变这个类型,这里type是上面描 述的资源记录名,或ANY。
  
   例如,你可以与它进行下面的对话:
  
   $ nslookup
  
   Default Name Server: rs10.hrz.th-darmstadt.de
  
   Address: 130.83.56.60
  
   > sunsite.unc.edu
  
   Name Server: rs10.hrz.th-darmstadt.de
  
   Address: 130.83.56.60
  
   Non-authoritative answer:
  
   Name: sunsite.unc.edu
  
   Address: 152.2.22.81
  
   如果你试者去查询一个没有相应IP地址的名字,但DNS数据库中能找到其它的记 录,nslookup将返回一个错误信息说“No type A records found”(“没有类型A记录 发现”)。然而,你可以通过发出“set type”命令来查询不是类型A的其它记录。例如, 要得到unc.edu的SOA记录,你要发出:
  
   > unc.edu
  
   *** No address (A) records available for unc.edu
  
   Name Server: rs10.hrz.th-darmstadt.de
  
   Address: 130.83.56.60
  
   > set type=SOA
  
   > unc.edu
  
   Name Server: rs10.hrz.th-darmstadt.de
  
   Address: 130.83.56.60
  
   Non-authoritative answer:
  
   unc.edu
  
   origin = ns.unc.edu
  
   mail addr = shava.ns.unc.edu
  
   serial = 930408
  
   refresh = 28800 (8 hours)
  
   retry = 3600 (1 hour)
  
   expire = 1209600 (14 days)
  
   minimum ttl = 86400 (1 day)
  
   Authoritative answers can be found from:
  
   UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
  
   SAMBA.ACS.UNC.EDU internet address = 128.109.157.30
  
   以同样的方式你可以查询MX记录,等等。使用一个ANY类型将返回与一个给出的 名字关联的所有资源记录。
  
   > set type=MX
  
   > unc.edu
  
   Non-authoritative answer:
  
   unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu
  
   lambada.oit.unc.edu internet address = 152.2.22.80
  
   Authoritative answers can be found from:
  
   UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
  
   SAMBA.ACS.UNC.EDU internet address = 128.109.157.30
  
   除了调试,nslookup的一个实际应用是为named.ca文件获取根名字服务器的当前 列表。你可以通过查询与根域相关的所有NS类型记录来做到:
  
   > set type=NS
  
   > .
  
   Name Server: fb0430.mathematik.th-darmstadt.de
  
   Address: 130.83.2.30
  
   Non-authoritative answer:
  
   (root) nameserver = NS.INTERNIC.NET
  
   (root) nameserver = AOS.ARL.ARMY.MIL
  
   (root) nameserver = C.NYSER.NET
  
   (root) nameserver = TERP.UMD.EDU
  
   (root) nameserver = NS.NASA.GOV
  
   (root) nameserver = NIC.NORDU.NET
  
   (root) nameserver = NS.NIC.DDN.MIL
  
   Authoritative answers can be found from:
  
   (root) nameserver = NS.INTERNIC.NET
  
   (root) nameserver = AOS.ARL.ARMY.MIL
  
   (root) nameserver = C.NYSER.NET
  
   (root) nameserver = TERP.UMD.EDU
  
   (root) nameserver = NS.NASA.GOV
  
   (root) nameserver = NIC.NORDU.NET
  
   (root) nameserver = NS.NIC.DDN.MIL
  
   NS.INTERNIC.NET internet address = 198.41.0.4
  
   AOS.ARL.ARMY.MIL internet address = 128.63.4.82
  
   AOS.ARL.ARMY.MIL internet address = 192.5.25.82
  
   AOS.ARL.ARMY.MIL internet address = 26.3.0.29
  
   C.NYSER.NET internet address = 192.33.4.12
  
   TERP.UMD.EDU internet address = 128.8.10.90
  
   NS.NASA.GOV internet address = 128.102.16.10
  
   NS.NASA.GOV internet address = 192.52.195.10
  
   NS.NASA.GOV internet address = 45.13.10.121
  
   NIC.NORDU.NET internet address = 192.36.148.17
  
   NS.NIC.DDN.MIL internet address = 192.112.36.4
  
   nslookup完整的命令集可以通过nslookup中的help命令得到.

   [b]6.提高域名服务器的安全[/b]
  
   为了提高域名服务器的安全性,必须要控制区文件的传输.在配置named.conf时,可以采取几方面的控制来加强安全.
  
   options {
  
   allow-transfer {202.103.166.100;};
  
   };
  
   这句指令指定只有授权的辅服务器才能从本主服务器上获得区数据信息
  
   options {
  
   allow-query {192.168.1/24;127.0.0/8;};
  
   };
  
   这句指令指定只有授权的客户才能从本服务器上获得区数据信息.  
  
   options {
  
   forwarders {202.103.166.194;202.105.177.100;};
  
   forward-only;
  
   };
  
   这句指令指定只有指定的服务器才能被本缓存服务器访问.

zhaojie78 发表于 2007-11-15 10:58

[b]7.应用实例
[/b]  
   假设有一个网络,网络由proxy分成internet和intranet两部分:为了保护mail server的安全,将它安置在intranet上.内部用户通过内部mail server收发信件.
  
   proxy server主机上同时建有proxy server ,dns server 和smtp server.
  
   eth0 ip address:192.168.1.1
  
   eth1 ip address:172.16.0.1
  
   mail server主机上同时建有smtp server,pop3 server.
  
   ip address:172.16.0.2
  
   用户的网关 为172.16.0.1
  
   dns server 为172.16.0.1
  
   smtp server为mail.test.com
  
   pop3 server为mail.test.com
  
   我们还是用"test.com"作为例子,我们需要六个基本配置文件:
  
   /etc/named.conf
  
   /var/named/named.ca
  
   /var/named/named.local
  
   /var/named/named.test.com
  
   /var/named/named.172.16.0
  
   /var/named/named.192.168.1
  
   7.1 创建或修改/etc/named.conf:
  
   // generated by named-bootconf.pl
  
   options {
  
   directory "/var/named";
  
   /*
  
   * If there is a firewall between you and nameservers you want
  
   * to talk to, you might need to uncomment the query-source
  
   * directive below. Previous versions of BIND always asked
  
   * questions using port 53, but BIND 8.1 uses an unprivileged
  
   * port by default.
  
   */
  
   // query-source address * port 53;
  
   };
  
   //
  
   // a PM nameserver config
  
   //
  
   zone "." {
  
   type hint;
  
   file "named.ca";
  
   };
  
   zone "0.0.127.in-addr.arpa" {
  
   type master;
  
   file "named.local";
  
   };
  
   //there are our primary zone files
  
   zone "test.com" {
  
   type master;
  
   file "named.test.com";
  
   };
  
   zone "0.16.172.in-addr.arpa" {
  
   type master;
  
   file "named.172.16.0";
  
   };
  
   zone "1.168.192.in-addr.arpa" {
  
   type master;
  
   file "named.192.168.1";
  
   };
  
   文件中的zone "test.com"段是声明这是用于test.com域的主服务器,用于该域的数据从/var/named/named.test.com文件中装载.文件中的zone "0.16.172.in-addr.arpa"段是指向映射IP地址172.16.0.* 到主机名的文件.
  
   用于该域的数据从/var/named/named.172.16.0文件中装载.文件中的zone "1.168.192.in-addr.arpa"段是指向映射IP地址192.168.1.* 到主机名的文件.用于该域的数据从/var/named/named.192.168.1文件中装载.
  
   7.2 创建或修改/var/named/named.local
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   1 IN PTR localhost.
  
   注意:在修改named.*文件时每次存盘时要注意增加Serial值.如使用绝对域名时千万别忘了后面带的"."
  
   7.3 创建或修改/var/named/named.test.com
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   ns A 192.168.1.1
  
   ns A 172.16.0.1
  
   MX 10 ns.test.com.
  
   www A 192.168.1.2
  
   mail A 172.16.0.2
  
   MX 10 mail.test.com.
  
   MX 20 ns.test.com.
  
   7.4 创建或修改/var/named/named.192.168.1
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   1 IN PTR ns.test.com.
  
   2 IN PTR [url=http://www.test.com./][color=#606060]www.test.com.[/color][/url]
  
   7.5 创建或修改/var/named/named.172.16.0
  
   @ IN SOA ns.test.com. root.ns.test.com. (
  
   2000051500 ; Serial
  
   28800 ; Refresh
  
   14400 ; Retry
  
   3600000 ; Expire
  
   86400 ) ; Minimum
  
   IN NS ns.test.com.
  
   1 IN PTR ns.test.com.
  
   2 IN PTR mail.test.com.
  
   假设用户发一份邮件到[email=tom@hotmail.com][color=#606060]tom@hotmail.com[/color][/email]时,信件先投递到mail.test.com主机,
  
   由mail.test.com主机再传递给ns.test.com主机,再由ns.test.com主机投递给mail.hotmail.com.然后再由用tom从mail.hotmail.com主机取得邮件.
  
   当hotmail.com上的tom想发邮件给mail.test.com上的用户时,tom机器上的解析器先获得test.com的域名信息,然后邮件客户端根据邮件投递路由首先发给mail.test.com主机,由于mail.test.com主机为内部主机,internet用户无法访问.然后邮件客户端根据邮件投递路由发给ns.test.com主机.由于ns.test.com主机为于internet上,ns.test.com主机收到邮件后再转发到同一网段的mail.test.com主机上,然后再由用户从mail.test.com主机取得邮件. 
  
   [b]8.与Microsoft dns 的集成[/b]
  
   Microsoft dns 定义了一个新的类型WINS的资源记录,它附属在域的根区.这个记录告诉Microsoft的DNS服务器如何与WINS服务器取得联系,解决对没有静态DNS记录的主机的名称查询问题.
  
   示例,一个WINS资源记录如下:
  
   @ IN WINS 192.168.1.100
  
   为了使DNS和WINS合作,在Microsoft的DNS服务器配置中选择相应域的properties记录,并且在WINS LOOKUP标签中启用WINS解决.
  
   由于采用了非标准的资源记录,大多数其他DNS并不支持这种资源记录,如非Microsoft dns的计算机企图从有DNS-WINS资源记录的microsoft的DNS服务器中进行区传送时,那么,该计算机就很可能出错.
  
   [b]9.DNS故障诊断[/b]
  
   大多数DNS故障的原因是配置文件的语法错误,或者是对错误的计算机分配了错误的地址.当进行DNS故障诊断时,参照下面的指导方针.
  
   9.1 对全部记录,检查和确认主机名称的拼写.记住绝对地址是以"."结尾.
  
   9.2 如果在区文件中作了任何修改,务必修改SOA记录中的序列号.这将保证服务器正确地重新上载文件.
  
   9.3 确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息.
  
   9.4 Microsoft的DNS服务器采用了非标准的资源记录,可能会导致问题.

chinaman009 发表于 2007-11-21 16:30

看到了,留个脚印!

hinihaoa 发表于 2007-11-22 23:32

过来这边学习!

8wy3458177 发表于 2007-11-26 02:30

linux下dns的配置比较难,谢楼主分享!~

williamhai 发表于 2007-11-26 17:46

学习了,很不错,谢谢

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com