北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>

                鸟哥的 Linux 私房菜
                目次 | Linux 根底篇 | Linux 效劳器篇 | Linux 企业使用篇 | 平安办理
                     
                 
                近来更新日期:2007/06/25
                我们晓得电脑网络零碎只看法所谓的 IP ,但是,您能够记得住网络下面一切主机的 IP 吗? 就鸟哥来说,连本人的主机的 IP 都记不起来了,怎样能够连其他的主机 IP 都记的住! 由于,人脑关于数字构成的 IP 的影象真实是......不怎样样。 但是,绝对来说,人们关于由笔墨所构成的主机称号那可以容易影象的多了~ 以是,才会开展出可以经过主机称号( hostname )对应到电脑 IP 的一个形式,如许我们就可以悄悄松松的记着主机称号即可,电脑 IP 那就交给 Domain Name System ( DNS )去搞定吧!

                谁人 DNS 零碎是由柏克莱大学开展的 bind 这个套件( Berkeley Internet Name Domain )所提供的啦!根本上,DNS 最次要的任务便是将 Hostname 对应到 IP 这个功用了,不外,要搭建一个乐成的 DNS 主机的话,还得要关于 DNS 的运作很清晰才行啊!不然搭建的不合错误,还反而会形成各人的题目喔!这个章节当中, 要学会的材料实在还蛮多的,需求理解:什么是正解、什么是反解、什么是 Zone、客户端 ( Client ) 是经过什么咚咚来盘问失掉 IP 的呢?!以及 DNS 的受权题目等等。 哇!从速清一清脑门,要好好的勤奋啰! ^_^

                1. 本章的行前预备任务
                2. 什么是 DNS
                  2.1 什么是 Domain Name System
                  2.2 DNS 的盘问进程
                  2.3 关于‘受权’的意义
                  2.4 网站代管照旧本人设定 DNS
                  2.5 正解与反解的 Zone 意义
                3. DNS 效劳器的套件、品种与 cache only 主机设定
                  3.1 搭建 DNS 所需求的套件
                  3.2 BIND 的预设途径设定与 chroot, /etc/sysconfig/named
                  3.3 DNS 的 master/slave 架构
                  3.3 单纯的 cache-only 与 forwarding DNS 主机设定
                4. DNS Master 效劳器机的细致设定
                  4.1 一个复杂案例阐明
                  4.2 /etc/named.conf 设定档
                  4.3 最下层 DNS (root) 材料库文件的设定
                  4.4 正解材料库文件的设定范畴 RR, master/slave RR, 范畴剖析 NS, 正解标记
                  4.5 反解材料库文件的设定反解 RR
                  4.6 DNS 的启动与察看
                  4.7 材料库的更新
                  4.8 测试
                5. Master/Slave 架构的细致设定
                  5.1 master DNS 权限的开放
                  5.2 slave DNS 的设定
                6. Client 真个设定
                  6.1 相干设定档: /etc/hosts, /etc/resolv.conf, /etc/nsswitch.conf
                  6.2 DNS 的盘问指令host, nslookup, dig
                  6.3 Domain 的资讯盘问: whois
                7. DNS 效劳器的进阶设定
                  7.1 子网络受权题目
                  7.2 搭建一个正当受权的 DNS 主机
                  7.3 LAME Server 的题目
                  7.4 应用 RNDC 指令办理 DNS 效劳器
                  7.5 搭建静态 DNS 主机:让你成为 ISP 啦!
                8. 重点回忆
                9. 课后训练
                10.参考材料
                11.针对本文的发起:http://phorum.vbird.org/viewtopic.htm?p=115692

                大标题的图示本章的行前预备任务
                人类的脑壳关于数字终究不比笔墨来的敏感,偏偏电脑的天下仅看法 0/1 罢了。 为了将两者兜在一同于是有了主机称号与 IP 的对应啊~而这个对应的协议便是 DNS 了。 学习 DNS 你必须要对网络有肯定的观点,尤其是主机称号的阐明喔!

                大标题的图示什么是 DNS
                现在的 Internet 天下最常用的照旧所谓的 TCP/IP 协议,此中 IP 协议为第四版的 IPv4 。 不外,这个 IPv4 是由 32 个位元 (32 bits) 所构成,为了人脑曾经转成四组十进位的数字了, 比方 123.234.56.78 如许的款式。当我们应用 Internet 传送材料的时分, 就需求这个 IP ,不然材料怎样晓得要被送到那边去?
                Tips:
                传送材料的办法有许多,不见得全部都是透过 IPv4 这个协议,比方在 LAN 外面常用的 NetBIOS 便是一例。 不外,在这里,我们不讨论其他的传输办法,专门讨论 IPv4 这个协议喔!
                鸟哥的图示
                但是人脑关于 IP 这种数字的玩意儿,影象力真实是不怎样样。但是如上所说, 当我们需求材料传输时,又很需求对方的 IP ,怎样办?为了应付这个题目, 晚期的冤家想到一个办法,那便是应用某些特定的文件将主机称号与 IP 作一个对应, 让主机称号与 IP 有干系性,云云一来,我们就可以透过主机称号来获得该主机的 IP 了! 真是个好主见,由于人类关于名字的影象力可就很多多少了! ^_^y。

                惋惜的是,该办法照旧有缺憾的,那便是主机称号与 IP 的对应无法主动于一切的电脑内更新, 且要参加该对应仅能向 INTERNIC 注册,若 IP 数目太多时,该文件会大到不像话,也就倒霉于主机同步化了。 而为了弥补这个缺憾,柏克莱大学开展出别的一套阶级式办理主机称号对应 IP 的零碎, 我们称他为 Berkeley Internet Name Domain, BIND ,这个零碎可就良好的多了~ 透过阶级式办理,可以轻松的停止维护的任务~太棒了! 这也是现在全天下运用最普遍的范畴称号零碎(Domain Name System, DNS)哩~ 透过 DNS ,我们不需求晓得主机的 IP ,只需晓得该主机的称号,就可以随便的连上该主机了!
                Tips:
                在底下的阐明当中,我们偶然会提到 DNS 偶然会提到 BIND ,这有什么差别? 由下面的阐明外面,您可以理解到, DNS 是一种网际网络的通讯协议称号, 至于 Bind 则是提供这个 DNS 效劳的套件~如许您理解了吗?!
                鸟哥的图示
                那么要立即来搭建 DNS 主机吗?固然不是~好像下面说的,网际网络下面, 材料的传输最紧张的便是得要晓得对方的 IP,云云才干告竣连线。因而, 搭建 DNS 就必需要理解全体网际网络的范畴称号架构,不然,一旦 DNS 搭建错误, 能够会形成您所统领的主机无法准确的在 Internet 上头传输材料的题目!

                以是,要设定 DNS 之前,您必需要就范畴称号零碎外面习用的 FQDN、Hostname 与 IP 的盘问流程, 正解与反解、正当受权的 DNS 主机之意义,以及 Zone 等等的知识作一个看法才行! 这但是很紧张的,不要忽视他了!
                Tips:
                现实上,由于 IPv4 的 IP 数目曾经缺乏了,为了应付将来的网络架构而开辟了 IPv6 出来。 但是 IPv6 的‘数字数目’是比 IPv4 要多出很多多少很多多少的!可想像的到的是,当时 DNS 可就更紧张了!@_@
                鸟哥的图示

                小标题的图示 什么是 Domain Name System:
                DNS 的全名是‘ Domain name system ’, 中文译名为‘范畴称号零碎’, 这个咚咚的用处是什么哇!为什么我们的电脑或许是 Internet 肯定需求他 (尤其因此 WWW 的方法来上彀时) ?呵呵! 他最大的用处便是‘造福懒散与影象性单薄的人类~’ 哈哈!没错!为什么说他是造福人类呢?且听鸟哥娓娓道来:

              2. /etc/hosts 的汗青:
                好像后面以及网络根底章节当中谈到的,IPv4 的 IP 是由 32bits 所构成,转成十进位的话则是四组 0-255 的数字所构成的。 由于不容易影象,因而就有了主机称号与 IP 对应的想法出来。也便是说, 只需输出一个‘电脑的名字’而我们的零碎就会主动的将这个名字转成电脑理解的 IP !嘿嘿!云云一来,我要记得‘名字’总是比 IP 容易的多了!

                根据这个想法而有了 /etc/hosts 这个文件!比方,只需您输出 ‘ ping -c 5 localhost ’ 您的 Linux 立刻可以印出 127.0.0.1 这个 IP , Why ?您去看一下 /etc/hosts 就晓得为什么了!以是啰,只需将您经常上彀的‘网址对应的 IP ’写到这个 /etc/hosts 底下,您的 IP 搜索速率就会快上许多~
                Tips:
                再次夸大,在您的公有网络外部,最好将一切的 IP 都写入这个文件中啦!
                鸟哥的图示
              3. DNS 的汗青:
                晚期(约莫20~30年前)的电脑但是宝贵物资,普通人是可望而不行及的,由于电脑数目太少, 以是运用 /etc/hosts 来影象这些 IP 与称号的对应还尚可应付。但是在古代, Internet 下面这么多主机,而且经常会忽然的‘噗通’又多出一台主机来效劳, 那么我们总不克不及一个一个的将他输出在 /etc/hosts 外面吧?对呀!真不智慧! 并且也无法立即让全天下的电脑都同步更新他们本人的 /etc/hosts 文件啊! 以是厥后的这个时分就有所谓的‘范畴称号剖析零碎, DNS’呈现啦!

                DNS 效劳应用相似树状目次的型态,将主机称号的办理分派在差别层级的 DNS 效劳器当中,经过分层办理,以是每一台主机影象的资讯就不会许多, 并且如有 IP 异动时也相称容易修正!那么这个 DNS 的功用您晓得了吗?对啦!便是‘将电脑主机的称号转译成 IP ’便是了!固然啰,他的额定功用还许多!总之,他的最大功用便是‘ 让故意义的,人类较容易影象的主机称号(英笔墨母),转译成为电脑所熟习的 IP 位址!

                举个例子来说好了,奇摩雅虎的网站的 IP 是 202.43.195.52 ,以是您可以在您的阅读器下面输出‘ http://202.43.195.52 ’来连上奇摩雅虎! 不外,我想没有几团体可以将这个 IP 背的起来的吧?反之,我们却都晓得奇摩雅虎的网址为 tw.yahoo.com ,那么您只需输出‘ http://tw.yahoo.com ’就可以连上该主机啦!很容易影象吧!
                /etc/hosts :间接在 Client 真个文件内输出主机称号对应的 IP 来盘问;
                DNS 零碎   :应用额定的DNS效劳,让Client端可以透过称号剖析来获得目标田主机的IP
              4. Fully Qualified Domain Name ( FQDN )
                在提到称号与 IP 的剖析流程之前,我们还必须来讨论一下‘什么是 domain name 与 host name?’也便是范畴称号与主机称号。 在讨论这个主题之前,我们来聊一聊比拟生存化的话题:
                • 网络天下实在有许多人自称为‘鸟哥’的,包罗敝人在下小生我啦!那么你怎样晓得此鸟哥非彼鸟哥呢? 这个时分你可以应用每个鸟哥的地点地来作为区分啊,比方说台南的鸟哥与台北的鸟哥等。 那万一台南另有两团体自称鸟哥怎样办?不要紧,你还可以按照州里来区分呢!比方说台南北区的鸟哥及台南中区的鸟哥。 假如将这个咚咚列出来,就有点像如许:
                  鸟哥、北区、台南
                  鸟哥、中区、台南
                  鸟哥、台北
                  ......
                  能否就可以辨别他的差别点了呢?呵呵!没错!便是如许!

                • 别的一个例子可以运用德律风号码来看,假设高雄有个 1234567 而台南也有个 1234567 ,那么(1)您在高雄间接拨接 1234567 时,他会间接挂入高雄的 1234567 德律风中, (2)但假如您要拨到台南去,就得参加(06)这个区码才行!我们便是运用区码来做为辨识之用的!
                能否还不清晰鸟哥要说什么?我们经常会发明主机称号都是 www 的网站,比方 www.gov.tw, www.seednet.net, www.hinet.net 等等,那么我们怎样晓得这些 www 称号的主机在差别的中央呢?就需求给他范畴称号啰!也便是 gov.tw, seednet.net, hinet.net 等等的差别,以是即便您的主机称号相反,但是只需不是在统一个范畴内, 那么就可以被承受啰!

                根本上,我们晓得 DNS 是有层级之分的,那么每个层级的 Hostname 与 Domain name 但是纷歧样的咚咚ㄋㄟ~鸟哥运用我们的主机来加以阐明,如下图所示:

                分条理的 DNS 架构
                图一、分条理的 DNS 架构 ( Hostname 与 Domain name )

                在下面的例子当中,由上向下数的第二层外面,谁人 .tw 是 domain name ,而 com, edu, gov 则是主机的称号,而在这个主机的称号之办理下,另有其他更小网络的主机, 以是在第三层的时分,根本上,谁人 edu.tw 就酿成了 domain name 了!而成大与中山的 ncku, nsysu 则成为了 hostname 啰!

                呵呵!以此类推,最初失掉我们的主机谁人 aerosol 是主机称号,而 domain name 是由 ev.ncku.edu.tw 谁人名字所决议的!天然,我们的主机便是让办理 ev.ncku.edu.tw 这个 domain name 的 DNS 效劳器所办理的啰!如许能否理解了 domain name 与 hostname 的差别了呢?

              5. 小标题的图示DNS 的盘问进程:
                接上去我们要谈一谈,那么 DNS 的 (1)架构是怎样? (2)盘问原理是怎样?总是要先晓得架构才干晓得怎样盘问的呐!以是底下我们先来引见一下全体的架构。

              6. DNS 的架构:
                DNS 层阶观点表示图
                图二、DNS 层阶观点表示图

                下面便是一个复杂的 DNS 阶级架构啰,在整个 DNS 零碎的最上方肯定是 . (小数点) 这个 root 的 DNS 主机,他底下办理的就只要 com, edu, gov, mil, org 与以国度为分类的第二层的主机称号了!这两者称为 Top Level Domains (TLDs) 喔!
                • 普通最下层范畴称号 (Generic TLDs):比方 .com, .org, .gov 等等;
                • 国码最下层范畴称号 (Country code TLDs):比方 .tw, .uk, .jp 等
                比方台湾地域最下层的范畴称号因此 .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 即可!不需求超过下层,除错下面也会比拟复杂呢!

              7. DNS 的搜索流程:
                方才说过 DNS 因此相似‘树状目次’ 的型态来停止称号的办理的!以是每一台 DNS 主机都‘仅办理下一层 DNS 主机的称号转译’罢了, 至于上层的上层,则‘受权’给上层的 DNS 主机来办理啦!如许说仿佛很绕口,好吧!我们就以下图来说一说原理啰:

                DNS 主机盘问流程表示图
                图三、DNS 主机盘问流程表示图

                起首,当您在阅读器的网址列输出 http://aerosol.ev.ncku.edu.tw 时,您的电脑就会根据相干设定( 在 Linux 底下便是应用 /etc/resolv.conf 这个文件 ) 所提供的 DNS 的 IP 去停止连线盘问,好了,由于现在最罕见的 DNS 主机就属 Hinet 的 168.95.1.1 这个 DNS 了,以是我们就拿他来做例子吧!嗯!这个时分, hinet 的这部主时机如许任务:
                1. 先检查自身有没有记录
                  方才说过啦,由于 DNS 是层阶式的架构,任何一台 DNS 都仅记载下一层外面的主机称号对应的 IP 罢了,由于 hinet 并非学术网络外面的主机,以是天然也就没有方法间接提供应 client 端关于 aerosol.ev.ncku.edu.tw 这部呆板的 IP 了,以是啦,普通而言,这个时分 168.95.1.1 就会向最顶层,也便是 . (root) 的主机盘问 .tw 这部呆板的位址;

                2. 向最顶层 ( root )盘问
                  由于 168.95.1.1 没有记录我们主机的 IP ,这个时分他就会向‘最顶层’的 . (root) 这部主机来盘问 . (root) 的下一层,也便是 .tw 这部呆板的材料了!这个时分, . (root) 就会通知 168.95.1.1 说‘嘿!您要查 .tw 这个网络的办理者呀?我这里有 .tw 这个网络的办理的主机之 IP 资讯,您可以间接去找他!’;

                3. 向第二层盘问
                  168.95.1.1 接着又到 .tw 去盘问,而该部呆板办理的又仅有 .edu.tw, .com.tw, gov.tw... 那几部主机,颠末比对后发明我们要的是 .edu.tw 的网络,以是这个时分 .tw 又通知 168.95.1.1 说:‘您要去办理 .edu.tw 这个网络的主机那边盘问,我有他的 IP !’;

                4. 向上层继续盘问
                  好了,一步一步上去, .edu.tw 可以查到办理 .ncku.edu.tw 的主机 IP ; .ncku.edu.tw 可以查到办理 .ev.ncku.edu.tw 的主机 IP ,而最初我们 aerosol.ev.ncku.edu.tw 就可在办理 .ev.ncku.edu.tw 网络的那部主机的设定记录当中盘问到啦!

                5. 记载暂存影象体
                  查到了 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 天后才干片面的启用的缘故啦!

                • 每一台可以记载主机称号与 IP 对应的 DNS 效劳器都可以随意变动他本人的材料库对应, 因而主机称号与网络称号在各个主机底下都不相反。举例来说, idv.tw 是仅有台湾才有这个 idv 的网络~ 由于这个 idv 是由 .tw 所办理的,以是只需台湾 .tw 维护小组赞同,就可以树立该网络喔!
                好啦!既然 DNS 这么棒,然后我们又需求搭建效劳器,以是需求一个主机的称号,因而, 那么我们需求搭建 DNS 了吗?固然不是,为什么呢? 方才鸟哥提到了许多次的‘正当’的字眼,由于他就扳连到‘受权’的题目了! 我们在后面的‘请求正当的主机称号’当中也提到, 只需主机称号正当即可,不见得需求搭建 DNS 的啦!

              8. DNS 运用的 port number :
                好了,既然 DNS 零碎运用的是网络的盘问,那么天然需求有开 Listen 的 port 啰 ( 监听的埠号 )!没错!很公道!那么 DNS 运用的是那一个 port 呢?那便是 53 这个 port 啦!您可以到您的 Linux 底下的 /etc/services 这个文件看看!搜索一下 domain 这个要害字,就可以查到 53 这个 port 啦!

                但是这里需求跟各人陈诉的是,通常, DNS 盘问的时分,因此 udp 这个较疾速的材料传输协议 (protocol) 来盘问的,但是万一没有方法盘问到完好的资讯时,就会再次的以 TCP 这个协议来重新盘问的!以是启动 DNS 的 daemon (便是 named 啦) 时,会同时启动 TCP 及 udp 的 53 这个 port number 喔!

              9. 小标题的图示 关于‘受权’的意义:
                许多冤家都以为‘ 搭建 DNS 可以设定主机的称号,而我要搭建效劳器需求主机著名字,因而肯定需求搭建 DNS ,只需有 DNS,我的主机就可以著名字了! ’是如许吗?固然不是!这是错误的看法!怎样说呢?

                下面图三的图示当中,您应该不难发明,当我要搜索 aerosol.ev.ncku.edu.tw 主机时,就需求向办理 .ev.ncku.edu.tw 这个网络的那部呆板盘问才行,而要盘问 .ev.ncku.edu.tw 则需求在 .ncku.edu.tw 下面讯问才可以!这是由于‘下层 DNS 主机 .ncku.edu.tw 曾经将 .ev.ncku.edu.tw 这个网络的办理权 "受权" 给 green.ev.ncku.edu.tw 这部呆板,当有人要盘问 .ev.ncku.edu.tw 这个网络的主机 IP 时, .ncku.edu.tw 将会把盘问的义务间接转给 green.ev.ncku.edu.tw 去办理了!今后, .ncku.edu.tw 这个网络的办理主机,将不会再接收 ev.ncku.edu.tw 这个网络的称号办理! ’能否很像人类社会的‘受权’的观点?

                也便是说,当您老板充沛的‘受权’给您某项任务的时分,今后, 要停止该项任务的任何人,从老板那里晓得您才是真正‘有权’的人之后,都必需要向您叨教一样! ^_^!以是啰,假如您要搭建 DNS ,并且是可以连上 Internet 下面的 DNS 时,您就必需要透过‘下层 DNS 主机的受权’才行!这是很紧张的看法喔!等一下我们在底下会引见一个怎样搭建一个 ‘颠末正当受权的 DNS 主机’哩!

                实在,假如将下面的话更换成:‘ 我要搭建效劳器,以是我要让我的主机有一个正当的名字! ’那样就公道了!怎样说呢?由于我可以请下层 DNS 帮我设定主机称号对应 IP 就可以啦!云云一来,要找我的 hostname 对应 IP 的人,都可以间接在我的下层 DNS 外面找到,基本不需求透过我的 Linux 主机呐!比方鸟哥研讨室的 aerosol.ev.ncku.edu.tw 就可以在 green.ev.ncku.edu.tw 这部办理 DNS 的 server 下面找到ㄋㄟ~不用亲身来我的 aerosol.ev.ncku.edu.tw 下面找!

                也便是说,藉由 DNS 零碎最大的功用‘主机称号转译成 IP ’ 这个举措,那么您只需向任何一个正当的 DNS 主机请求一个‘主机称号, hostname ’给您的 Linux 主机,让各人都可以藉由该 DNS 主机来盘问到您的 Linux 之 IP ,就可以运用该主机称号来搭建效劳器啦!便是这么复杂!

                好了,那么您就应该晓得了,要让您的主机称号对应 IP 且让 Internet 下面的电脑都可以盘问的到,就需求:
                1. 下层 DNS 的受权让您设定 DNS 主机,或许是;
                2. 间接请下层 DNS 主机来帮您设定!
                这两种形式。举例来说,鸟哥的 Linux 讲授网站主机名为 linux.vbird.org ,鸟哥是向下层 .org 的 ISP 注册了 vbird.org 的范畴称号,但鸟哥请求的是本人办理 DNS 效劳器,以是我网站的材料库放在那边呢?

                受权与材料库的差别
                图四、受权与材料库的差别

                看到了吗?vbird.org 是向下层 ISP 注册的,而 ISP 则是提供受权给鸟哥 (NS 的标记), 至于鸟哥的 linux.vbird.org 则是间接记载在鸟哥的 DNS 效劳器下面。以是,万一鸟哥的 DNS 效劳器挂点, 那么固然 ISP 有记录 dns.vbird.org 这一台主机的 IP ,但是各人都无法查到 dns.vbird.org 的 IP 喔! 为什么呢?瞧一瞧图三啊!由于受权的干系嘛!关于 NS 及 A 标记不熟不要紧, 前面就会立即讲到这个咚咚啰!

                那么哪种形式比拟好呢?这没有肯定的答案, 底下我们来谈一谈,您比拟合适哪一种形式的设定呢?


                小标题的图示 网站代管照旧本人设定 DNS:
                假如您已经请求过 domain name 的话,比方向 Hinet 或 Seednet 等台湾各大次要 ISP 请求 domain name 的话,应该都市晓得有两种次要的形式,便是方才上头提到的 DNS 受权,或许是间接交给 ISP 来办理。交给 ISP 办理的, 就可以称作是网络称号代管啦!固然啦,假如您是学校单元的话,或许是企业外部的小单元,那么就得请您向下层 DNS 主机的担任人要求啰!无论怎样,您只能有两个选择便是了,要不便是请他帮助您设定好 hostname 对应 IP ,要嘛便是请他间接将某个 domain name 段受权给您做为 DNS 的次要办理网络。

                那么我怎样晓得谁人方法对我比拟好呢?请留意,由于 DNS 搭建之后,会多出一个监听的 port ,以是实际上,是比拟不平安的!因而,能不设固然就不要设定比拟好啰!以是,这里的发起如下:

              10. 需求搭建 DNS 的机遇:
                • 您所担任需求连上 Internet 的主机数目巨大:比方您一团体担任整个公司十几部的网络 Server ,而这些 Server 都是挂载您的公司网络之下的。这个时分想要不搭建 DNS 也粉难啦!
                • 您能够需求时常修正您 Server 的名字,或许是您的 Server 有随时添加的能够性与变化性;
              11. 不需求搭建 DNS 的机遇:
                • 网络主机数目很少:比方家里或公司只要需求一台 mail server 时;
                • 您可以间接请下层 DNS 主机办理员帮您设定好 Hostname 的对合时;
                • 您关于 DNS 的认知缺乏时,假如搭建反而容易形成网络欠亨的状况;
                • 搭建 DNS 的用度很高时!

              12. 小标题的图示 正解与反解的 Zone 意义:
                讲了这很多,还得再提一提关于正解、反解与 Zone 的题目才行啊!

              13. 什么是正解与反解?
                我们在前头的开门见山当中就提到啦, DNS 零碎原本最次要的功用便是在转译 hostname 与 IP 啰,由于电脑在网络下面实在看法的只是 IP 啦,以是,普通来说,我们称‘由 hostname 去寻觅出 IP 的顺序称为‘ 正解 ’’, 至于由 IP 去盘问失掉 hostname 那就被称为反解了!正反解的设定状况是差别性很大的!怎样说呢?
                • 正解:
                  在正解的状况之下,我们可以透过主机分层设定的方法来盘问 (比方后面的图三),而由于是 Hostname 对应 IP ,以是即便在差别网段的 IP ,依然可以写在统一个 domain 之中!比方鸟哥的主机是在学校外面 (140.116.xxx.xxx),但是鸟哥请求的是 vbird.idv.tw 这个 domain 的称号,而许多冤家则因此 ISP 提供的 IP (比方 61.xxx.xxx.xxx) 来停止 *.idv.tw 的请求的!呵呵!那么一来,我的 vbird.idv.tw 就与各人的 *.idv.tw 在统一个 domain 的设定当中啰,但是这些主机倒是在差别的网络之中喔 (140.116.xxx.xxx 不会跟 61.xxx.xxx.xxx 在统一个网段中吧! ^_^) !以是啰,任何一台 DNS 都可以将您的 IP 写入他们的正解当中啰!

                • 反解:
                  但是反之则不可!怎样说呢?由于现在 IP 计划分派的时分,就必须要一个地区一个地区的分别的,以是固然不行能统一个网段的 IP 在差别的中央呈现吧!由于这触及到 TCP/IP 的协议与 router 的架构ㄋㄟ~因而,统一个 IP 网段的反解就真的得要透过下层 IP 网络的 DNS 效劳器设定才行了!以是由 IP 反查 hostname 的话,大局部的状况下就需求向直属的下层 IP 网络请求了!
                举个例子来说:我想要本人的范畴称号的名字,以是我可以去里面的 ISP 请求注册一个正当的名字来搭建我的 DNS !今后之后,他人就可以颠末我的 DNS 正解盘问失掉我的主机 IP。但是假如要由 IP 反查回 hostname 的话,我就‘肯定必须要’请办理我主机地点网络的下层的 DNS 办理员来设定才行ㄋㄟ!这也是现在比拟费事的中央,由于正解您可以自行设定, 但是反解则必须要请下层的办理员设定!假如是向 ISP 请求的 IP ,那就得向 ISP 请求反解称号更换,这个局部通常很费事~

              14. 什么是 Zone ?
                晓得正反解之后,再来要来晓得一下,什么又是 Zone (地区) 呢?说的复杂一点的话,一个正解或反解的设定便是一个 zone ,比方我要标准 vbird.idv.tw 这个 domain 的设定内容,那么他便是一个 zone !通常,‘一个设定档便是一个 zone ’! 假如以鸟哥的 vbird.idv.tw 这个例子来说,共同下面的 图三 来阐明, 那鸟哥的 vbird.idv.tw 那部主机外面至多需求晓得 . (root) 以及鸟哥本身的设定, 以是,这个 domain 的 DNS 设定档外面,必须要有:
                • hint( root ) 的设定;
                • vbird.idv.tw 这个 domain 的正解设定;
                • localhost 的正解设定(非须要);
                • localhost 的反解设定(非须要)。
                那么我就有四个 zone 了!假如以我们系馆的 DNS 主机 green.ev.ncku.edu.tw 来说的话,他至多要有:
                • hint(root);
                • ev.ncku.edu.tw 正解;
                • ev.ncku.edu.tw 反解以及 ;
                • localhost 正解;
                • localhost 反解。
                等五个 zone 的界说啰!嘿!您会发明,我没有 vbird.idv.tw 这个 domain 的反解设定~为什么呢?请参考下面的阐明吧!由于反解需求要求 IP 协议的下层来设定才行!而且,需求特殊注意的是,‘每一个 zone 都有一个设定档,而规则这些设定档档名的,就交给 /etc/named.conf 这个参数档来设定!
                Tips:
                在新版的 Linux distribution 当中,为了平安性的考量, 以是将这个文件安排在 /var/named/chroot 当中喔!需求特殊留意!
                鸟哥的图示
                也便是说, DNS server 运用的 bind 这个套件中,他的次要参数档是 /etc/named.conf ,而这个文件当中便是记载了每一个 zone 的设定档档名!实践上,主机称号与 IP 的对应便是记载在各个 zone 的设定档内~

              15. 正反解肯定要成套吗?
                好了,正反解需不需求成套发生,在这里不必多阐明了吧? ^_^!请留意喔,在许多的状况下,尤其是现在很多多少莫明其妙的范畴称号发生出来, 以是,经常会只要正解的设定需求罢了。不外也不需求太甚担忧啦, 由于通常在反查的状况中,假如您是运用现在台湾地域最盛行的 ADSL 上彀的话,那么 ISP 早就曾经帮您设定好反解了!比方:211.74.253.91这个 seednet 的浮动式 IP 反查的后果会失掉 91.253.74.211.in-addr.arpa 如许的主机称号!以是在普通我们自行请求范畴称号的时分,您只需担忧正解的设定即可! 否则的话,横竖反解的受权基本也不会开放给您,您本人设定得很快乐也没有效呀! ^_^
                Tips:
                现实上,需求正反解成对的大约仅有 mail server 才需求吧!由于现在网络频宽总是被渣滓、告白邮件占光, 以是 Internet 的社会关于正当的 mail server 规则也就越来越严厉。假如您想要搭建 mail server 时, 最好具有牢固 IP ,如许才干向你的 ISP 要求设定反解喔!以 hinet 为例的反解请求:
                http://hidomain.hinet.net/top1.html
                鸟哥的图示

              16. 大标题的图示DNS 效劳器的套件、品种与 cache only 主机设定:
                谈完了一些根底观点后,接上去让我们来聊一聊,那怎样设定好 DNS 效劳器啊? 这固然就得由套件装置谈起啦!赶忙来玩一玩吧!


                小标题的图示搭建 DNS 所需求的套件:
                终于空话都说完了!置信您大约也有点累的吧?鸟哥是蛮累的啦,由于手臂、 肩颈酸痛的缺点颇严峻....咦!讲这个干嘛? @_@ 好啦,我们终于要来装置 DNS 所需求的套件了!还记得后面提过的,我们要运用的 DNS 便是运用柏克莱大学开展出来的 BIND (Berkeley Internet Name Domain, BIND) 这个套件啦!那么怎样晓得您装置了没?还记得 根底篇 外面的 RPM 吗?对啦!便是运用 RPM 来查验啰:
                [root@linux ~]# rpm -qa | grep bind
                bind-utils-9.2.4-16.EL4    <==这个是用户端搜索主机称号的相干指令
                bind-9.2.4-16.EL4          <==这个才是 DNS 效劳器主顺序
                bind-chroot-9.2.4-16.EL4   <==将 bind 主顺序关在家外面! ^_^
                
                万一没装怎样办?嗄!还问我ㄌㄟ~从速将您的原版光碟拿出来,然后将他装置上去先~不会装置? 请自行拿出‘鸟哥的 Linux 私房菜 -- 根底学习篇’去察看一下 RPM 的用法吧! 固然啦,更好的作法便是应用 yum install bind 即可啊!

                别的,谁人 bind-chroot 是干嘛用的?所谓的 chroot 代表的是‘ change to root ’的意思, 谁人 root 代表的是根目次。晚期的 bind 预设将顺序启动在 /var/named 当中,但是该顺序可以在根目次四处转移, 因而若 bind 的顺序有题目时,则该顺序会形成整个零碎的危害。为防止这个题目, 以是我们将某个目次指定为 bind 顺序的根目次,由于是根目次, 以是 bind 便不克不及分开该目次!以是假如该顺序被打击,了不得也是在某个特定目次底下搞毁坏罢了。 CentOS 预设将 bind 锁在 /var/named/chroot 目次中喔! ^_^


                小标题的图示BIND 的预设途径设定与 chroot
                好了,如今我们晓得 BIND 这个 DNS 效劳器的设定需求有
                • 自身的设定档:次要标准主机的设定、zone file 的地点、权限的设定等;
                • 材料库文件:记载主机称号与 IP 对应的等。
                此中 BIND 的设定档为 /etc/named.conf ,而在这个文件外面可以标准 zone file 的完好档名喔! 也便是说,你的 zone file 实在是由 /etc/named.conf 所指定的,以是 zone file 档名可以随意取啦! 只需 /etc/named.conf 内标准为准确即可。普通来说, CentOS 的预设目次是如许的:
                • /etc/named.conf :这便是我们的设定档啦!
                • /etc/sysconfig/named :能否启动 chroot 及额定的参数,就由这个文件控制;
                • /var/named/ :材料库文件预设安排在这个目次
                • /var/run/named :named 这支顺序实行时预设安排 pid-file 在此目次内。
                不外,为了零碎的平安性考量,普通来说现在各次要 distributions 都曾经主动的将你的 bind 相干顺序给他 chroot 了! 那你怎样晓得你 chroot 所指定的目次在那边呢?便是下面提到的谁人 /etc/sysconfig/named 啦! 你可以先查阅一下:
                [root@linux ~]# vi /etc/sysconfig/named
                ROOTDIR=/var/named/chroot
                
                现实上外面故意义的就只要下面这一行,意思是说:‘我要将 named 给他 chroot ,而且变卦的根目次为 /var/named/chroot ’喔!由于根目次曾经被变卦到 /var/named/chroot 了,但 bind 的相干顺序是需求 /etc, /var/named, /var/run .... 等目次的,以是实践上我们 bind 的相干顺序所需求的一切材料会是在:
                • /var/named/chroot/etc/named.conf
                • /var/named/chroot/var/named/zone_file1
                • /var/named/chroot/var/named/zone_file.....
                • /var/named/chroot/var/run/named/...
                哇!真是好费事~不外,不要太担忧!由于新版本的 distributions 通常帮您作好一些保持对应了! 举例来说,你照旧可以运用 /etc/named.conf 来设定你的 DNS ,为什么呢?由于 CentOS 自动的帮你将 /var/named/chroot/etc/named.conf 保持到 /etc/named.conf 啰! 别的,绝大局部预设的 zone file 材料库文件也都自动的帮你做好保持了!请自行进入 /var/named 去 ls 一下吧! ^_^
                Tips:
                现实上, /etc/sysconfig/named 是由 /etc/init.d/named 启动时所读入的, 以是你也可以间接修正 /etc/init.d/named 这个 script 哩!
                鸟哥的图示
                别的你需求留意到的是 /var/run/named/ 这个目次是要让 bind 的顺序 (named) 写入用的, 以是他的权限必须要让 named 这个运用者可以写入才行!这个可紧张的很!

              17. BIND 的晋级:
                必需请各人留意的是,这个 DNS 的 53 port 实在也不是个很平安的咚咚,以是呢,非须要,实在是不太发起启用 DNS 的啦!不外,假如真的要装置的话,那么请随时留意您的 Linux distribution 能否有定时的通告的破绽修补套件呢?这个真的很紧张,由于鸟哥好久好久曩昔,便是被这个 port 53 给莳植了一个蠕虫,真是厌恶的很! @_@

                别的,旧版的运用者运用新的 9.x 版当前的 BIND 时,由于自动帮你设定好 chroot , 你能够一开端会不太顺应,不外,不发起你拿失 chroot 的功用!终究 DNS 的 port 53 是需求 root 身份启动的, 具有肯定的风险性,以是,给他 chroot 终究是比拟妥当啦!您说是吧!

              18. 小标题的图示DNS 的 master/slave 架构
                在 DNS 的设定下面,根本上,您必需要曾经很清晰 zone 是什么了,不然很难持续设定喔!会搞的一塌懵懂的~无论怎样,您肯定要晓得的是, bind 的设定档,便是 /etc/named.conf。 不外,由于 chroot 的干系,这个文件也能够会在 /var/named/chroot/etc/ 当中, 别的,针对 DNS server 的范例大抵上可以分为三类,辨别是:

              19. Master:
                这品种型的 DNS 自身含有范畴称号的设定档 (便是有 Zone 啦!), 这个设定档便是设定正解或许是反解的‘Database’啰!以是他自身是具有提供 Internet 盘问所需的材料喔!比方我可以在我的主机下面设定提供 vbird.idv.tw 这个网络,那么我的主机便是 master 范例的主机啦!

              20. Slave:
                假定你的 DNS 效劳器统共办理 50 部主机的 IP 与主机称号的对应好了, 同时假定你只要一台 DNS 效劳器时,那么万一由于网络题目或许是主机的软、硬体题目,招致这个效劳停止了, 想一想,你那 50 部主机的 hostname 与 IP 的对应还能不克不及找的到?是吧! 以是,普通来说, DNS 零碎通常会发起您至多要有两部主机提供 DNS 的效劳~

                不外,假如您有四部 DNS 主机提供如许的称号剖析效劳, 并且这四部是相互为备援的,也便是说,这四部主机的内容实在是如出一辙的, 那么假如您要变动一个 IP 与称号的对合时,就必需要手动去修订四部主机的内容, 如许会不会很费事啊?!

                这个时分就有 slave 范例的 DNS 主机呈现了!不外,slave主机必需要与 master 主机互相搭配喔! 以下面的案例来阐明,假如我必需要有四部主机提供 DNS 效劳,且四部内容相反, 那么我只需指定一台主机为 Master ,其他三部为该 Master 的 Slave 主机, 那么当要修正一台称号对合时,我只需手动变动 master 那部呆板的设定档,然后, 重新启动 BIND 这个效劳后,呵呵!其他三部 slave 就会主动的被告诉更新了! 如许一来,在维护下面可就轻松满意的多了~
                Tips:
                假如您设定 Master/Slave 架构时,您的 Master 主机必需要限定 只要某些特定 IP 的主性能够获得您 Master 主机的正反解材料库权限才好! 以是,下面才会提到 Master/Slave 必需要相互搭配才行!
                鸟哥的图示
                别的,既然我的一切 DNS 效劳器是需求同时提供 internet 下面的范畴称号剖析的效劳, 以是不管是 Master 照旧 Slave 主机,他都必需要可以同时提供 DNS 的效劳才好! 由于在 DNS 零碎当中,范畴称号的盘问是‘先争先赢’的形态, 我们不会知道哪一台主机的材料会先被盘问到的! 为了提供精良的 DNS 效劳,每部 DNS 主机都要能正常任务才好啊! 并且,每一台 DNS 效劳器的材料库内容需求完全分歧,不然就会形成用户端找到的 IP 是错误的!

              21. Cache-only:
                这品种型的 DNS 主机没有本人的材料库,单纯仅协助 Client 端向内部的 DNS 主秘密求材料罢了~复杂的来说,他可以想成是一个‘署理人’的脚色罢了~ 通常设定在防火墙下面的呢!

                那么 Master/Slave 的材料更新究竟是怎样举措的呢?请留意,Slave 是需求更新来自 Master 的 DNS 材料啊!以是固然 Slave 在设定之初就需求存在 Master 才行喔!好了, Master 与 Slave 的材料同步举措可以由底下的图示来看:

                Master/Slave 的 DNS 主机材料同步进程
                图五、Master/Slave 的 DNS 主机材料同步进程

                整个更新的进程是如许的:
                1. Slave 判别能否需求更新(1.1):
                  我们可以在 Slave 设定好向 Master DNS 主秘密求材料更新的周期工夫,则每当抵达更新工夫时, Slave 会向 Master 讨取能否需求更新材料,这个更新材料的判别则以 Serial number 能否差别来停止更新喔!

                2. Master 判别能否需求更新(1.2):
                  除了由 Slave 向 Master 的盘问之外,Master 假如 DNS 材料颠末变卦,且想要 Slave 同步更新时,也可以自动的向 Slave 停止更新告诉!

                3. 材料同步化(2):
                  最初固然便是材料由 Master 传送到 Slave 来更新 Slave 的 DNS 材料啰!
                假如您想要搭建 Master/Slave 的 DNS 架构时,两部主机 (Master/Slave) 都需求您可以掌控才行!网络上许多的文件在这个中央都有点‘闪失’, 请特殊的注意啊!

                底下我们就先来讲一个不需求材料库文件的 cache only 的 DNS 效劳器吧!


              22. 小标题的图示单纯的 cache-only 与 forwarding DNS 主机设定
              23. 什么是 cache-only 与 forwarding DNS 的主机呢?
              24. 在引见怎样设定每一个正反解的 zone 之前,我们先来玩一个复杂的 DNS 主机!便是 cache-only (仅快取) DNS server!望文生义,这个 DNS server 只要 cache (快取) 的功用,也便是说,他自身并没有主机称号与 IP 正反解的设定档, 完满是由对外的盘问来提供他的材料泉源!

                至于 forwarding (转递) 的 DNS server 则是将用户端所需求盘问的资讯转交给 forwarding DNS server 来代为盘问, 比及盘问完毕后,我们的 DNS server 才将后果快取后回传给用户端。这两者的整个运作流程可以当作是这个样子:

                Cache-Only 与 Forwarding DNS 主机的运作流程
                图六、Cache-Only 与 Forwarding DNS 主机的运作流程

                察看一下图六上下两个图示,你可以发明 cache-only 需求晓得 . (root) DNS 的位址, 以是 cache-only 必需要指定出 . (root) DNS 的材料库地点文件才行。至于 Forwarding DNS 主机, 他是间接将盘问的材料丢给另一台下层 DNS 来盘问,自身可以不用晓得 . (root) DNS 的位址! 普通来说,假如你的情况需求搭建一个 cache-only 的 DNS server 时,实在可以间接运用 forwarding 的机制, 选择的那部 DNS 主机流量要可以负荷较大流量为佳!

                要留意的是,不管是 cache-only 照旧 forwarding DNS 主机,他们自身都没有办理 zone (谁人 root DNS 破例) 的设定档, 以是说,根本上这两个 DNS 主机只是作为一其中间通报材料的脚色而已!那么为什么要搭建如许的一个 DNS 主机呢?闲闲没事干?固然不是!这是有缘由的啦!底下说给您听啰!

              25. 什么时分运用 cache-only DNS?
              26. 在某些公司行号外头,为了防备员工应用公司的网络资源作本人的事变,以是都市针对 Internet 的连线作比拟严厉的限定。固然啦,连 port 53 这个 DNS 会用到的 port 也能够会被挡在防火墙之外的~这个时分, 您可以在‘防火墙的那部呆板下面,加装一个 cache-only 的 DNS 效劳!’这是什么意思呢?很复杂啊!便是您本人应用本人的 防火墙主机上的 DNS 效劳去帮您的 Client 端解译 hostname <--> IP 啰!由于防火墙主机 可以设定放行本人的 DNS 功用,而 Client 端就设定该防火墙 IP 为 DNS 主机的 IP 即可! 哈哈!如许就可以获得主机称号与 IP 的转译啦!

                那怎样在你的 Linux 主机上搭建一个 cache-only 的 DNS 主机呢? 实在真的很复杂的啦!由于不需求设定正反解的 Zone ,以是只需设定一个文件 (便是 named.conf) 即可!真是高兴得不得了呐! 别的,Cache-only 只需加上个 Forwarders 的设定即可指定 Forwarding 的材料, 以是底下我们将设定具有 Forwarding 的 cache-only DNS 效劳器吧!


                1. 编辑次要设定档 /etc/named.conf
                  在这个文件中,次要是界说跟主机有关的事变,以及各个 Zone 的代表含义与文件,在鸟哥的这个案例当中, 由于运用了 forward 的机制,以是鸟哥的这个 cache-only DNS 效劳器并没有 Zone ,以是我们只需设定好跟主机有关的设定即可。设定这个文件的时分请留意:

                  • 表明材料因此两条斜线‘ // ’来作设定的!
                  • 每个段落之后都需求以‘ ; ’来做为开头!

                  那么您可以如许设定这个文件啦!
                  [root@linux ~]# vi /etc/named.conf
                  // 固然 CentOS 将这个文件安排到 /var/named/chroot/etc 当中,
                  // 不外他很好意的帮我们作了个保持,以是你照旧可以间接编辑这个文件啦!
                  options {
                          directory "/var/named";
                          dump-file "/var/named/data/cache_dump.db";
                          statistics-file "/var/named/data/named_stats.txt";
                          pid-file "/var/run/named/named.pid"; 
                          forward only;            //只容许 forward!
                          forwarders {
                                  168.95.1.1;      //我这里运用 hinet 的 DNS !
                                  139.175.10.20;   //这个是 seednet 的 DNS !
                          };
                  };
                  include "/etc/rndc.key";
                  
                  鸟哥在上头的设定当中含有 pid-file 的设定,以是得要特殊留意了!由于 pid-file 地点的目次下,也便是谁人 /var/run/named 目次,我的 bind 实行档顺序的拥有人 (普通应该是 named 这个运用者) 必需要 可以写入!也便是说, /var/run/named 的 owner 必需 是 named 这个 user 才行喔!但由于我们有运用 chroot , 因而实践的目次会是 /var/named/chroot/var/run/named 喔!以是你还得要如许确认:
                  [root@linux ~]# ls -ald /var/named/chroot/var/run/named
                  drwxrwx---  2 named named 4096 Oct 12 11:48 /var/named/chroot/var/run/named
                  
                  我们仅动用到 option 这个参数罢了,外面的设定值意义为:

                  • pid-file
                    指的是每一个 services 记载本人的 PID (Process ID) 的文件啰!这个文件通常用在重新启动或许是 reload 整个 services 最常被运用到的!由于可以运用 kill -1 PID 来重新启动啊!嗄!遗忘什么是 PID ?从速拿出根底篇温习一下!

                  • forwarders
                    (不要遗忘谁人 s 喔!)便是要设定往前寻觅的谁人‘正当’的 DNS 啰!每一个 forward 的主机之 IP 都需求有‘ ; ’来做为开头!

                  • forward only
                    这个设定可以让您的 DNS 主机仅停止 forward 罢了!是 Cache-Only 主机最罕见的设定了!

                  很复杂吧!至于更多的参数我们会在后续篇幅当中渐渐引见的。 如许就曾经设定完成了最复杂的 cache-only 的 DNS 主机了!


                2. 启动 named
                  启动总不会遗忘吧!?从速去启动一下吧!
                  [root@linux ~]# /etc/init.d/named start
                  Starting named:                     [  OK  ]


                3. 察看 port 的变革
                  请特殊的留意喔!并不是启动的时分表现 OK 你的 DNS 就会乐成的!以是,还要从速的来看一下您的 port 53 有没有启动ㄋㄟ~
                  [root@linux ~]# netstat -utln
                  Active Internet connections (only servers)
                  Proto Recv-Q Send-Q Local Address        Foreign Address     State
                  tcp        0      0 192.168.1.254:53     0.0.0.0:*           LISTEN
                  tcp        0      0 127.0.0.1:53         0.0.0.0:*           LISTEN
                  udp        0      0 192.168.1.254:53     0.0.0.0:*
                  udp        0      0 127.0.0.1:53         0.0.0.0:*
                  
                  特殊需求注意的是,假如没有指定介面的话,那么一切的网络介面,包括 lo, eth0, ... 等介面都市被设定为可以承受 domain name 要求的回应介面!别的, 还记得我们在后面提到的,每个介面同时都市提供 TCP 与 UDP 封包的效劳喔! 如许看起来好像真的有启动的样子,不外,我们照旧得瞧一瞧设定方面有没有什么大题目呢?


                4. 反省 /var/log/messages 的内容讯息
                  named 这个效劳的记载档就间接给他安排在 /var/log/messages 外面啦,以是来看看外面的几行吧!
                  [root@linux ~]# tail -n 15 /var/log/messages | grep named
                  Oct 16 15:08 linux named[76]: starting BIND 9.2.4 -u named -t /var/named/chroot
                  Oct 16 15:08 linux named[76]: using 1 CPU
                  Oct 16 15:08 linux named[76]: loading configuration from '/etc/named.conf'
                  Oct 16 15:08 linux named[76]: listening on IPv4 interface lo, 127.0.0.1#53
                  Oct 16 15:08 linux named[76]: listening on IPv4 interface eth0, 192.168.1.254#53
                  Oct 16 15:08 linux named[76]: command channel listening on 127.0.0.1#953
                  Oct 16 15:08 linux named[76]: command channel listening on ::1#953
                  Oct 16 15:08 linux named[76]: running
                  Oct 16 15:08 linux named: named startup succeeded
                  
                  Tips:
                  假如你在 /var/log/messages 外面不断看到如许的错误资讯:
                  couldn't add command channel 127.0.0.1#953: not found
                  那表现你还必须要参加 rndc key ,请参考本章前面的 应用 RNDC 指令办理 DNS 效劳器 的引见,将他参加你的 named.conf 中!
                  鸟哥的图示
                  由下面第一行呈现的谁人‘ -t ... ’可以理解到 chroot 的次要目次啦!你可以运用 man named 去查阅一番。 呵呵!看起来好像是没有题目的样子了!那么就间接来测试看看吧!


                5. 测试:
                  这局部请参考: Client 真个测试项目

              27. 特殊阐明:Forwarders 的益处与题目剖析
              28. 关于 forwarder 的益处与害处,实在有许多种的意见!大抵的意见可分为这两派:
                • 应用 Forwarder 的功用来增长效能的实际
                  这些冤家们以为,当许多的上层 DNS 主机都运用 forwarder 时, 那么谁人被设定为 forwarder 的主机,由于会记载许多的资讯记载(请参考图三的阐明), 因而,关于那些上层的 DNS 主机而言,会增快许多,亦即会节流许多的盘问工夫!根本上,这些根本的流程可以当作如下图所示:

                  Forwarder 参数的运作阐明
                  图七、Forwarder 参数的运作阐明

                  一切的 cache-only 都设定 forwarder 为‘主 DNS 主机’那一台,则由于主 DNS 主机曾经记载了较多的资讯了(每团体都来要求嘛!)以是,当其别人来要求相反的盘问材料时,则主 DNS 那部呆板将会间接由其 cache 当中读取,因而,盘问服从就变快了!

                • 应用 Forwarder 反而会使全体的效能低落
                  但是别的一派则持相反的见地!这是由于当主 DNS 自身的‘业务量’就很忙碌的时分,那么您的 cache-only 主机还向他要求材料,那么由于他的材料传输量太大,频宽方面能够负荷不量,而太多的上层 DNS 又向他要求材料,以是他的盘问速率会变慢!由于盘问速率变慢了,而您的 cache-only 主机又是向他提出要求的,以是天然双方的盘问速率就会同步降落!
                许多种说法啦!鸟哥自己也以为很风趣哩!只是不晓得哪一派较准确便是了 >_<"" ,不外可以晓得的是,假如下层的 DNS 速率很快的话,那么他被设定为 forwarder 时,大概真的可以添加不少效能哩!

                大标题的图示DNS 主机的细致设定:
                好了,颠末下面的阐明后,我们大约晓得 DNS 的几个小细节是如许的:
                1. 次要设定档是 /etc/named.conf;
                2. 每个正解、反解都需求一个文件,而文件的档名是由 /etc/named.conf 所设定;
                3. 现在的 bind 顺序曾经停止 chroot 了,可以参考 /etc/sysconfig/named ;
                4. 当 DNS 盘问时,若自身没有材料库,则前去 root (.) 或 forwarders 主机盘问;
                5. DNS 效劳器的搭建需求下层 DNS 的受权才可以成为正当的 DNS 效劳器。
                6. named 能否启动乐成务须要查阅 /var/log/messages 内的资讯!
                此中第五点很紧张,由于我们并没有向下层 ISP 注册正当的范畴称号,以是我们固然就没有权益搭建正当的 DNS 效劳器了。 而由于担忧我们的 DNS 效劳器会与内部网际网络情况相互搅扰,以是底下鸟哥将次要以一个 vbird.tsai 的范畴称号来搭建 DNS 效劳器,云云一来我们就可以好好的玩一玩本人地区网络内的 DNS 啦!

                别的,谁人 chroot 是很紧张的看法,假如你是跳到这个中央来看或许因此前运用的是旧版的 bind 的话,那么请再次阅读一下前两大节谈到的 bind 的 chroot 局部喔! 底下的文章就不再提及这些根底看法啦!


                小标题的图示一个复杂的案例阐明
                假定鸟哥的这部 DNS 效劳器将针对 vbird.tsai 这个范畴来设计,而且对应的反解为 192.168.1.0/24 这个网络,别的我也针对本机 localhost 以及 127.0.0.1 这个预设的范畴来对应喔!别的, 固然要包括最下层 (root, .) 这个范畴的主机称号材料库才行! 以是我的设定档及正反解 zone 的材料库文件应该有:
                1. named.conf       :设定档
                2. named.vbird.tsai :vbird.tsai 的正解
                3. named.192.168.1  :192.168.1.0/24 的反解
                4. named.root       :root (.) 的材料库
                5. named.localhost  :localhost 的正解
                6. named.127.0.0    :127.0.0.1/24 的反解
                假如我还想要参加其他的范畴,比方 niki.tsai 可不行以啊?固然可以啊!就再多一个材料库正解文件即可! 另有,鸟哥上头这个设定材料为外部公有的,以是你可以完全照着玩!并不会影响到内部的网际网络啦! 只是,你的 DNS 设定网际网络也查不到便是了~横竖是练功嘛!^_^

                至于材料库的对应方面,鸟哥估计的计划是如许的:

                作业零碎与 IP对应之主机称号阐明
                OS: Linux
                IP: 192.168.1.254
                linux.vbird.tsai
                www.vbird.tsai
                ftp.vbird.tsai
                forum.vbird.tsai
                这部是次要的 DNS 效劳器,次要主机称号为 linux.vbird.tsai ,其他的三部主机称号为主机又名。
                OS: Linux
                IP: 192.168.1.150
                slave.vbird.tsai
                次要作为 slave DNS 主机, 相干的 slave 设定将在下个大节才会引见的啦!
                OS: Windows XP
                IP: 192.168.1.100
                winxp.vbird.tsai某一台主机的 IP 与主机称号对应
                OS: Sun
                IP: 192.168.1.200
                sun.vbird.tsai某一台主机,用来玩的罢了!

                请特殊注意啊,一个 IP 可以对应给多个主机称号,异样的,一个主机称号可以赐与多个 IP 喔! 次要是由于那部 linux.vbird.tsai 的呆板将来的用处相称的多, 鸟哥盼望那一台主机有多个称号,以方便将来额定的计划啊,以是就对该 IP 对应了四个主机称号啊!


                小标题的图示/etc/named.conf 设定档
                这个设定档是整个 Linux 上 DNS 的中心啦!他最次要便是在:
                • 标准 DNS 效劳器的运用权限 (能否盘问、forward 与否、master/slave 架构等);
                • 设定出 zone (domain name) 以及 zone file 的地点;
                • 设定 DNS 本机办理介面以及其相干的金钥文件 (key file)。
                根本上,这个文件的内容次要便是分为上头的三大局部啦!至于设定方面你要留意的有:
                • 在全体效劳器的情况与运用权限方面,次要是透过 options {....} 这个设定来处置的;
                • 照旧要留意,在 named.conf 当中表明运用 // ,而每一个设定项目最初需求分号 (;)
                我们方才标准的 zonefile 档名以及对应的 domain name 还没有遗忘吧?那怎样处置这个设定档呢? 最复杂的计划如下所示:
                [root@linux ~]# vi /etc/named.conf
                // 先界说出整个 DNS 效劳器的相干情况,包罗盘问、文件安排目次等
                options {
                        directory       "/var/named";
                        dump-file       "/var/named/data/cache_dump.db";
                        statistics-file "/var/named/data/named_stats.txt";
                        pid-file        "/var/run/named/named.pid";
                        forwarders     { 168.95.1.1; 139.175.10.20; };
                        allow-query    { any; };  // 能否容许被盘问?固然要可以被盘问;
                        allow-transfer { none; }; // 能否容许传送 zone ,预设不行
                };
                
                // 关于 DNS 效劳器的一些加密材料,先疏忽过来先!
                include "/etc/rndc.key";
                
                // 关于 root (.) 的设定喔:
                zone "." {
                        type hint;                // 特别的种别!专给 root (.) 用的
                        file "named.root";        // 便是档名的界说啦!
                };
                
                // 关于本机 localhost 的正反解
                zone "localhost" {
                        type master;
                        file "named.localhost";
                };
                zone "0.0.127.in-addr.arpa" {
                        type master;
                        file "named.127.0.0";
                };
                
                // 这里标准出我们的 vbird.tsai 范畴名
                zone "vbird.tsai" {
                        type master;
                        file "named.vbird.tsai";
                };
                zone "1.168.192.in-addr.arpa" {
                        type master;
                        file "named.192.168.1";
                };
                
                这是一个最根底的 named.conf 的内容,在 options 局部你得要晓得的有这些设定值:

                options 内的相干参数阐明
                设定值意义
                directory这个设定值便是在指定你的 zone file 要安排到哪个目次啦! 十分紧张的设定值。与底下 zone 设定项目标 file 共同而成完好档名。
                dump-file图三我们晓得 DNS 效劳器会将搜索到的主机 IP 对应材料安排到快取影象体中, 那假如你想要将现在的快取材料记载上去时,就用这个设定值指定文件
                statistics-file我们 DNS 的一些统计材料,想要列出时就写入这个设定值指定的档名内
                pid-file将 named 这个顺序的 PID 记载上去的一个文件,这个文件通常可以在 named 启动、封闭时提供准确的 PID 啦!
                forwarders后面谈到 cache-only 的 DNS 效劳器设定值曾经谈过了,请前去参考。
                allow-query能否容许用户真个盘问。盘问的重点便是读取材料库的内容, 既然要搭建 DNS ,固然要容许用户真个盘问啦。内容可以填写任何泉源 (any) 或 IP 或网络 (IP/netmask) 的款式。
                allow-transfer能否容许 slave DNS 的整个范畴材料的传送?这个设定值与 master/slave DNS 效劳器之间的材料库传送有关。除非你有 slave DNS 效劳器,不然这里不要开放喔!

                在 options 之外便是每个正反解的文件啦!留意看到了没?每个正反解便是应用 zone 这个设定值来处置的啦! 最罕见的设定值实在只要上头那两个,辨别是如许的意义:

                zone 内的相干参数阐明
                设定值意义
                type该 zone 的范例,次要的范例有: master, slave 及 hint。 此中需求留意最下层的 DNS (.) 运用的是 hint 的范例,然后 master 主机用 master 啊! slave 主机就用 slave ㄇㄟ!
                file便是 zone file 啦!那么完好的 zone file 在那边啊?在这里:
                  [chroot_dir]/[options 内的 directory]/[file 设定值]
                以是说,root (.) 设定档就在:
                /var/named/chroot/var/named/named.root
                反解 zone正解的 zone 很好了解,反解的 zone 怎样那么奇异啊?就好像 linux.vbird.org 要追踪时是由 org -> vbird -> linux 一样,至于反解则比方 192.168.1.1: 192 -> 168 -> 1 -> 1。 由于 DNS 的范畴称号都是由后往前找,且反解是个特别的范畴,以是必须要 将 IP 反过去写,同时在最初面加上‘ .in-addr.arpa ’来表现反解宣告!以是 192.168.1 这个 zone 就得要写成 1.168.192.in-addr.arpa

                以是我们才会说,你的 zone file 档名都是透过 named.conf 这个设定档来标准的啊!在设定完了 named.conf 后,接上去便是那五个 zone file 的设定了,底下我们就一个一个材料库文件来设定设定先!


                小标题的图示最下层 DNS (root) 材料库文件的设定
                为什么肯定要有 root (.) 这个最顶层的 DNS 效劳器主机的对应呢?请回到图三的画面中, 普通来说,用户端运用我们 DNS 效劳器来盘问时,假如盘问的目的不在我们 DNS 自身的材料库文件时, 我们的 DNS 就失掉 root 去讯问啦!那么假如有设定 forwarders 呢?那么搜索的题目就会丢给 forwarders 那部主机行止理。

                不论怎样说,我们的 DNS 效劳器最好照旧得要有 root 主机的对应喔。那你怎样晓得 root 那几部主机的 IP 啊?呵呵~鸟哥固然也不晓得,不外掌管网际网络的 rs.internic.net 这个网站有提供啊! 你可以运用阅读器应用 ftp 的通讯协议来下载:
                这个文件的内容便是每一台最下层的 root (.) 的 IP 对应啦!假如你运用 vi 来查阅一下, 可以看到这个文件的内容有点相似如许:(你应该要将这个文件安排到 /var/named 当中喔!)
                [root@linux ~]# vi /var/named/chroot/var/named/named.root
                ; 负疚,版权宣告局部先省略~
                .                      3600000  IN  NS  A.ROOT-SERVERS.NET.
                A.ROOT-SERVERS.NET.    3600000      A   198.41.0.4
                ;主机称号或范畴称号    TTL          RR  绝对应的材料
                ; 以下省略
                
                在这个文件当中有好几行,每两行成一对,别的,这个文件当中的表明运用的是分号 (;) 喔!与 /etc/named.conf 纷歧样!要留意喔!在上表当中鸟哥仅取两行作为典范, 每一行可以区分为四个栏位,这两行的意思是:
                1. root (.) 的称号效劳器主机 (Name server, NS) 在 A.ROOT-SERVERS.NET. 这部主机上;
                2. A.ROOT-SERVERS.NET. 这部主机的 IP (A) 为 198.41.0.4
                这两行有对应啊!看出来了没?谁人 IN 代表的是运用谁人 RR (Resource Record, 资源记载) 的意思, 至于 NS 与 A 我们将在下一大节引见。那么谁人 TTL 是啥?便是这条记录会安排到 DNS 效劳器的快取多久啦! 单元是秒啊~

                这个文件的内容你不要修正啊~由于这个内容是 Internet 下面通用的材料,普通来说,也不会经常变化, 以是不需求变动他,将他安排到准确的目次并改成你所指定的档名即可啊!接上去可以看看正解文件啦!


                小标题的图示正解材料库文件的设定
                就好像案例设定当中提到的,我们共有两个正解档,辨别是针对 localhost 以及 vbird.tsai 这两个范畴称号。 在正反解的设定档当中可以复杂的分红几局部来察看:
                1. 关于身手域的根底设定方面:比方快取影象工夫 (TTL) 、范畴称号 (ORIGIN) 等等;
                2. 关于 master/slave 的认证方面 (SOA);
                3. 关于身手域的范畴称号效劳器地点主机称号与 IP 对应 (NS, A, PTR);
                4. 其他正反解相干的资源记载 (RR)。
                起首先来谈谈比拟复杂的 localhost 这个范畴的正解设定档,named.localhost 的内容有点像如许:
                [root@linux ~]# vi /var/named/chroot/var/named/named.localhost
                ; 1. 起首是主机相干的设定
                $TTL    600
                
                ; 2. 关于 master/slave 的受权内容,假如没有 slave 主机,照旧要设定喔!
                @    IN   SOA  localhost.   root.localhost.  (
                               2006102001  ; Serial  仅作为序号罢了
                               28800       ; Refresh slave 效劳器的更新工夫
                               14400       ; Retry   当 slave 主机更新失败,多久再重新更新一次
                               720000      ; Expire  反复 retry 多久后就宣告不治....不再更新
                               86400 )     ; Minimum 可视为 TTL ,尤其是你没有设定 $TTL 时
                
                ; 3. 身手域的 DNS 效劳器的主机称号与 IP 的对应
                @          IN   NS   localhost.  ; 特殊注意最初面的谁人小数点!
                localhost. IN   A    127.0.0.1
                
                ; 4. 其他 RR 可以参加的中央。 
                
                普通第一次看到这个文件的冤家都市很头痛~许多工具看不懂~实在将他拆成几个小局部来看,你就会看懂啦! 底下我们就下面提到的四大局部辨别来谈一谈先:

                关于身手域的一些设定值
                设定值阐明
                $TTL还记得图三的流程吧?当有内部 DNS 效劳器对你的 DNS 的这个范畴停止盘问时,这一条记录会安排在对方 DNS 效劳器内几秒钟的意思。
                $ORIGIN这个设定值可以重新指定 zone 的界说。在预设的状况下, 这个正反解材料库文件中的 zone 是由 /etc/named.conf 所指定的,便是 zone 谁人参数的功用。 不外,这个 zone 是可以改的,便是用 $ORIGIN 来修订便是了。通常这个设定值不会用到的。

                我们后面讲到许多 DNS 快取 (cache) 的功用对吧!便是向外盘问时所盘问到的材料会暂存在本人的快取影象体中。 那么这条记录可以放在我的 DNS 主机内多久?那便是 "对方" 设定的 $TTL 这个变数的功用了。

                以是,当你的某个范畴称号内的主机对应经常变化时,则这个 $TTL 应该要设定小一点, 以免你的变化总是无法被盘问到 (由于对方能够会快取住你之前旧的材料!)。而假如你的 DNS 内容曾经很波动了, 那么这个数值可以设定大一点 (比方 86400 或三天),云云一来内部的 DNS 才不会经常对你的 DNS 要求, 而形成你的 DNS 繁忙的题目。

                要留意的是,底下开端每一行的设建都会是如许的:
                  [主机或范畴称号] [TTL] IN [RR] [RR 内容]
                中括号的内容是你要理解的,尤其是各项资源记载标记 [RR] 这个项目! 固然我们在全体的设定当中可以间接指定 $TTL 了,不外针对每条记录还可以自行设定 TTL 啦! 但在这个设定当中, TTL 通常是省略失的! 别的,我们称 RR (Resource Record) 为标记或记载,各个 RR 的对应内容都不相反。 接上去让我们看一看 master/slave DNS 效劳器之间是怎样停止 zone file 材料库的传输的? 那便是 SOA 那一行的内容啰!

                关于 master/slave 受权方面的设定值
                标记与 RR阐明
                @这个标记代表 zone 的意思! 以下面的 named.local 来说, 这个文件由 /etc/named.conf 界说出 zone 为 localhost. ,因而在本文件的 @ 就代表 localhost. 啰!
                .这个点 (.) 很紧张!由于他代表一个完好主机称号 (FQDN) 而不是仅有 hostname 罢了。举例来说,假如你在本设定档下面标准一个主机称号为 www 时,那部主机的 FQDN 为 www.localhost. 假如你写出 www.localhost 时,由于着末没有谁人小数点,则 zone 会自动参加该主机称号, 以是终极的 FQDN 会酿成 www.localhost.localhost. 喔!
                SOAStart of Authority 的意思。 这个标记代表着 master/slave 相干的认证、受权材料。 不管你的 DNS 零碎有没有设定 master/slave 的架构,都需求含有这个设定才好。 SOA 前面共带有三个参数,以是该举动:
                  [zone] IN SOA [主机名] [办理员 email] ([五组更新工夫参数])
                每个设定项目你可以如许看:
                • 主机名:便是 master DNS 的主机称号,通常填写自身主机名即可。照旧要留意谁人小数点的存在与否喔!十分紧张!
                • 办理员 email:原本应该是 "root@localhost." 的,不外由于 @ 曾经被作为特别代号 (zone), 以是就用小数点来代替,因而 email 就成为 "root.localhost." 啰!
                • (五组数字):这五个数字辨别代表 serial, refresh, retry, expire, ttl。
                至于那五个数字的意义是如许的:
                1. Serial :只是一个序号,但这个序号可被用来作为 slave 与 master 更新的根据。 举例来说, master 序号为 100 但 slave 序号为 90 时,那么这个 zone file 的材料就会被传送到 slave 来更新了。 由于这个序号代表新旧材料,通常我们发起你可以应用日期来设定!举例来说,下面的材料是鸟哥在 2006/10/20 所写的第一次,以是鸟哥用 2006102001 作为序号代表!
                2. Refresh :除了依据 Serial 来判别新旧之外,我们可以应用这个 refresh(更新) 下令 slave 多久停止一次自动更新;
                3. Retry :假如到了 Refresh 的工夫,但是 slave 却无法衔接到 master 时, 那么在多久之后,slave 会再次的自动实验与主机连线;
                4. Expire :假如 slave 不断无法与 master 衔接上,那么颠末多久的工夫之后, 则下令 slave 不要再衔接 master 了! 也便是说,此时我们假定 master DNS 能够遇到严重题目而无法上线,则等候零碎办理员处置终了后, 再重新离开 slave DNS 重新启动 bind 吧!
                5. Minimun :这个就有点像是 TTL 啦!
                别的,这几个数字的巨细是无限制的!你必须要理解喔:
                • Serial <= 2^32 = 4294967296
                • Refresh >= Retry * 2
                • Refresh + Retry < Expire
                • Expire >= Retry * 10
                • Expire >= 7Days

                诚实说,首次设定 DNS 的冤家大约都市被谁人小数点 (.) 玩去世~实在你不要太告急,只需记着:‘ 加上了 . 表现这个完好的主机称号,亦便是 "hostname + domain name" 了, 假如没有加上 . 的话,表现该称号仅为 "hostname" 罢了!至于 SOA 的话,那五个数字通常你可以照抄啦!只需改序号 (Serial) 即可!

                接上去则是设定我们的 DNS 效劳器本人的范畴与该范畴的称号剖析器 (name server, NS) 啰!

                DNS 本人的范畴之称号剖析器
                标记与 RR阐明
                NS便是 name server 的缩写,这个标记的参数是:
                  [zone] IN NS [主机称号]
                留意喔, NS 前面接的肯定是主机称号喔!代表的意思是说:‘这个 zone 的盘问请向前面这部主秘密求’的意思。 以是,假如你这个 zone 有两部以上的 DNS 效劳器担任时,那就必须要写两个 NS 了!而 NS 前面接的主机称号必须要有 IP 的对应啊!因而就需求 A 这个标记了!
                A是正解的标记,参数是:
                  [hostname] IN A [IP]
                意思是说该部主机的 IP 对应之意!也是最常用的一个标记了!

                要留意喔,每个 zone 至多要一个 NS 才行!而谁人 NS 前面的主机能够是你本人,也能够是你的子网络受权啊! 你必须要很清晰晓得 NS 的意义才行!下面三个局部是简直一切正反解文件所必须要的标记, 而我们最单纯复杂的 localhost 范畴只需如许设定就妥当了! 接上去让我们看一看 vbird.tsai 这个范畴的主机称号材料库设定档吧!
                [root@linux ~]# vi /var/named/chroot/var/named/named.vbird.tsai
                $TTL    600
                @ IN SOA linux.vbird.tsai. root.linux ( 2006102001 28800 14400 720000 86400 )
                ; 身手域的 DNS 效劳器的主机称号与 IP 的对应
                @          IN   NS     linux.vbird.tsai.
                @          IN   NS     slave.vbird.tsai.
                linux      IN   A      192.168.1.254
                slave      IN   A      192.168.1.150
                @          IN   MX 10  linux
                
                ; 其他 RR 可以参加的中央
                www        IN   CNAME  linux
                ftp        IN   CNAME  linux
                forum      IN   CNAME  linux
                winxp      IN   A      192.168.1.100
                sun        IN   A      192.168.1.200
                sun        IN   TXT    "The sun solaris OS"
                sun        IN   HINFO  "Celeron 1G""Solaris 10"
                
                下面的表格当中,TTL 与 SOA 简直都没变,不外你要特殊留意 SOA 前面接的第二个参数也便是 email 的局部, 可以发明鸟哥仅写了个 root.linux 罢了,由于最着末没有小数点,以是 DNS 会自动的加上 zone 嘛! 以是 root.linux 相称于 root.linux.vbird.tsai 啰!^_^ !别的,那五组数字只需用空缺键离隔即可。

                至于身手域的剖析器方面,鸟哥运用了两种写法,辨别是 "linux.vbird.tsai." 及 "linux" ,留意赴任异了?没错,便是谁人小数点 (.) 啦!意义请自行参考后面提到的。 同时由于这个范畴有两个 DNS 担任,因而在这边用了两个 NS 喔! 我们这里再写出几个罕见的正解标记啰:

                关于正解的其他 RR 标记
                标记与 RR阐明
                MX便是 Mail eXchanger(MX) 的简写,他的参数是如许写的:
                  [hostname] IN MX [次序] [主机称号]
                留意啰,这个 MX 与 mail server 有关,没有 mail server 的冤家可以省略这个标记,但是假如你的范畴内有 mail server 时,就必须要设定这个 MX 才好。MX 的用处是在于‘邮件转递’或许是经过下层邮件主机备份的一个机制, 前面设定的谁人主机称号通常是你的下游邮件主机,相干的意义我们会在 mail server 章节再跟各人详谈。 别的, MX 前面接的数值是越小越优先,而接的主机称号必须要具有 A 的标记才可以!

                假如你不晓得怎样设定,通常发起你间接设定成你的 mail server 主机称号即可
                CNAME望文生义,这个标记在树立‘主机又名’的啦!参数为:
                  [hostname] IN CNAME [主机称号]
                留意一下, CNAME 前面接的是主机称号喔。由于有好几部主机称号都对应到统一个 IP 上头, 你固然可以针对每个主机称号赐与一个 A ,不外假如将来要改 IP 时,你就得改好几个啦! 此时改为 CNAME 来处置就很复杂。如上表所示,假如我想要晓得 ftp.vbird.tsai 的 IP 时, DNS 会先见告 ftp.vbird.tsai 属于 linux.vbird.tsai 的 CNAME ,然后再透过 linux.vbird.tsai 来失掉准确的 IP。
                TXT这个工具在停止‘阐明’罢了!亦便是后面那部主机的一些资讯。 特殊留意的是,没事的话,‘资讯不要写得太细致,有的时分乃至应该要写些错误的讯息!’ 为什么呢?假如写得太细致的话,那么那些个 cracker 不就很复杂的就可以将您的网站资讯获得, 并进而入侵了吗? @_@
                HINFO这个工具前面接两个咚咚,第一个接的是硬体的品级, 第二个接的则是作业零碎,这两个咚咚最好不要用在地下的 DNS 主机下面,跟 TXT 一样的题目啦!假如要设定的话, 最好运用双引号分开开来喔!

                如许应该就设定妥当啰。在 DNS 的正解局部,他的紧张资讯特殊的多,便是比拟难设定的意思~ 以是,您需求特殊注意每个设定值能否为准确喔!普通而言,我们会发起各人,设定完成而且实行完启动的 script ,万万要记得去 /var/log/messages 外头看一看有没有错误讯息喔! 接上去让我们看看反解吧!


                小标题的图示反解材料库文件的设定
                反解跟正解一样,还都需求 SOA 的标号,也需求 NS 这个咚咚,独一差别的大约便是由 IP 对应成为 hostname 的差别了吧!
                [root@linux ~]# vi /var/named/chroot/var/named/named.127.0.0
                $TTL    600
                @ IN SOA localhost. root.localhost. ( 2006102001 28800 14400 720000 86400 )
                
                ; 身手域的 DNS 效劳器的主机称号与 IP 的对应
                @          IN   NS   localhost.
                1          IN   PTR  localhost.
                
                反解通常只要一个需求留意的中央,那便是 PTR,这是啥?

                关于反解的 RR 标记
                标记与 RR阐明
                PTRPointer 的简写,他的参数是如许写的:
                  [IP] IN PTR [主机称号]
                由于这个文件的 zone 为 127.0.0 ,以是我们只需加一个数字 (最初一个 IP 的数字) 就可以啦!而谁人 1 表现的就成为了 127.0.0.1 啰!

                那么万一明天我们计划的是 B Class 的 zone 呢?比方 127.0 如许的 zone 呢?很复杂啦! 就填两个数字即可!也便是 0.1 啰!

                最紧张的中央便是:前面的主机只管即便运用完好 FQDN,亦即加上小数点 (.) !为什么呢?由于反解的 zone 是 0.0.127.in-addr.arpa,以是假如你写成 localhost 时,你的这个 IP 对应的主机称号将会酿成: localhost.0.0.127.in-addr.arpa 之类的独特主机称号啊!

                至于 192.168.1.0/24 这个网络的 DNS 反解则成为:
                [root@linux ~]# vi /var/named/chroot/var/named/named.192.168.1
                $TTL    600
                @ IN SOA linux.vbird.tsai. root.linux.vbird.tsai. (
                        2006102001 28800 14400 720000 86400 )
                
                ; 身手域的 DNS 效劳器的主机称号与 IP 的对应
                @          IN   NS   linux.vbird.tsai.
                @          IN   NS   slave.vbird.tsai.
                254        IN   PTR  linux.vbird.tsai.
                150        IN   PTR  slave.vbird.tsai.
                
                ; 其他 RR 可以参加的中央。
                100        IN   PTR  winxp.vbird.tsai.
                200        IN   PTR  sun.vbird.tsai.
                
                反解很复杂吧!只需设定好 IP 对应的主机称号即可!再次夸大要运用 FQDN 在反解当中喔!


                小标题的图示DNS 的启动与察看
                DNS 的启动也太复杂了吧?就间接应用零碎提供的启动 script 即可!
                [root@linux ~]# /etc/init.d/named start  <==也能够是需求 restart 喔
                
                但是这个启动可不见得是乐成的!你‘务必’要去 /var/log/messages 察看过才行!
                [root@linux ~]# tail -n 20 /var/log/messages | grep named
                named[28]: starting BIND 9.2.4 -u named -t /var/named/chroot
                # 由这个阐明我们可以晓得 chroot 的目次与 named 启动的参数等材料
                
                named[28]: using 1 CPU
                named[28]: loading configuration from '/etc/named.conf'
                # 由这个阐明,可晓得次要的设定档是由那边载入的!记得加上 chroot
                
                named[28]: listening on IPv4 interface lo, 127.0.0.1#53
                named[28]: listening on IPv4 interface eth0, 192.168.1.254#53
                named[28]: command channel listening on 127.0.0.1#953
                named[28]: command channel listening on ::1#953
                # 由这边可以查出 DNS 相干的效劳在哪几个介面有提供!
                # 至于谁人 command 我们将在前面再持续阐明。
                
                named[28]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2006102001
                named[28]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2006102001
                named[28]: zone localhost/IN: loaded serial 2006102001
                named[28]: zone vbird.tsai/IN: loaded serial 2006102001
                # 记得要有这些 loaded serial 的材料,而且不克不及呈现任何错误喔!
                
                named[28]: zone vbird.tsai/IN: sending notifies (serial 2006102001)
                named[28]: zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 2006102001)
                # 这个则是关于内部有其他 slave DNS 时,会发送留意讯息的阐明。
                
                Tips:
                假如你在 /var/log/messages 外面不断看到如许的错误资讯:
                couldn't add command channel 127.0.0.1#953: not found
                那表现你还必须要参加 rndc key ,请参考本章前面的 应用 RNDC 指令办理 DNS 效劳器 的引见,将他参加你的 named.conf 中!
                鸟哥的图示
                在上述的输入材料当中由于资讯太长了,以是鸟哥将工夫与主机的栏位拿失了!下面是顺遂启动时的情况, 假如呈现题目怎办?通常呈现题目的缘由是由于:
                • 语法设定错误:
                  这个题目好处理,由于在 /var/log/messages 外面有细致的阐明,依照内容去修订即可;

                • 逻辑设定错误:
                  这个就比拟困扰了!为什么呢?由于他次要发作在您设定 DNS 主机的时分,思索不周所发生的题目!比方遗忘加上 (.) , 零碎不会表现错误讯息,但是却会形成盘问的误判,而 MX 设定的主机称号错误,也不会呈现有题目的讯息,但是 mail server 便是会收不到信等等~这些错误都需求很细致的 DNS client 的测试才干晓得题目的地点。
                我们这里先就语法设定错误方面停止引见,至于逻辑设定的题目,谁人就需求多多的停止测试才干晓得了~ 底下的错误讯息都市记载在 /var/log/messages 外面喔!
                named: /etc/named.conf:11: missing ';' before '}'
                # 留意到下面提到的文件与数字吗?阐明的是 /etc/named.conf 的第 11 行,
                # 至于错误是由于短少分号 (;) 所致!去修正一下即可。
                
                dns_rdata_fromtext: named.vbird.tsai:5: near eol: unexpected end of input
                zone vbird.tsai/IN: loading master file named.vbird.tsai: unexpected end of input
                # 指的是 named.vbird.tsai 的第五行有题目,通常是 SOA 那五个数字没有完全!
                # 赶忙去修订一下即可啊!
                
                dns_rdata_fromtext: named.vbird.tsai:12: near 'linux': not a valid number
                zone vbird.tsai/IN: loading master file named.vbird.tsai: not a valid number
                # 阐明第 12 行在 linux 左近需求有一个正当的数字!赶忙去瞧瞧改改即可!
                
                通常最大的题目是....打错字!为了防止让您打错字,下面几个文件鸟哥将他打包了, 你可以在下列的保持下载上述的文件喔!

                小标题的图示材料库的更新
                再来谈一谈,那假如你的材料库需求更新时,应该做哪些活动啊? 举例来说,你的某个主机 IP 或许主机称号要变卦,也能够是新增某个主机称号与 IP 的对应呢! 很复杂啦,通常如许做就好了:
                1. 先针对要变动的谁人 zone 的材料库文件去做更新,便是参加 RR 的标记便是!
                2. 变动该 zone file 的序号 (Serial) ,便是谁人 SOA 的第一个数字, 由于这个数字会影响到 master/slave 的断定更新与否喔!
                3. 重新启动 named ,或许是让 named 重新读取设定档即可。
                就这么复杂啊!不外各人经常会遗忘第二个步调啦!便是将序号变大啊! 假如序号没有变大,那 master/slave 的材料库能够不会自动的更新, 会形成一些困扰喔!


                小标题的图示测试
                在下面的设建都搞定,而且启动之后,你的 DNS 效劳器应该是曾经妥当的在运作了。 那你怎样晓得你的设定能否公道?固然要作测试喔!测试有两种方法,一种是藉由 client 真个盘问功用, 目标是查验你的材料库设定有无错误;别的你也可以连上底下这个网站:
                这个网站可以帮你查验你的 DNS 效劳器的次要设定能否有题目!不外,这个网站的查验次要因此正当受权的 zone 为主,我们本人乱搞的 DNS 是没有方法反省的啦!真是惋惜~ 接上去,请查阅 在 Client 真个测试 吧!

                大标题的图示Master/Slave 架构的细致设定:
                谈完了 Master DNS 效劳器之后,接上去让我们来理解一下 slave DNS 效劳器的搭建方法吧! 在搭建之前,你应该要知道为何需求 slave DNS 呢?
                • 为了不连续的提供 DNS 效劳,你的范畴至多需求有两部 DNS 效劳器来提供盘问的功用;
                • 承上,这几部 DNS 效劳器应该要疏散在两个以上的差别 IP 网络才好;
                • 为方便办理,通常除了一台次要 Master DNS 之外,其他的 DNS 会运用 slave 的形式;
                • slave DNS 效劳器自身并没有材料库,他的材料库是由 master DNS 所提供的;
                • master/slave DNS 必须要可以互相传输 zone file 的相干资讯才行,这部份需求 /etc/named.conf 之设定辅佐。
                好了,那么让我们持续上一个案例的连续吧!前一大节是在 192.168.1.254 那部 master DNS 下面设定的, 底下的设定大局部都是在 192.168.1.150 那部 slave DNS 主机上设定的喔!假定我这部 slave.vbird.tsai 仅需求获得 vbird.tsai 以及 192.168.1 这两个范畴,其他的比方 named.root, named.localhost 及 named.127.0.0 都需求自理喔!


                小标题的图示master DNS 权限的开放
                我们在 /etc/named.conf 设定档当中的参数项目已经设定过 allow-transfer ,而且设定一切人均不得运用 zone 的传送 (transfer)。但是我们的 master DNS 必需要让 slave DNS 可以停止 zone 的传送啊,因而你必需要针对 vbird.tsai 及 192.168.1 这两个 zone 来启用 allow-transfer 的设定项目才行。整个进程很复杂:
                [root@linux ~]# vi /etc/named.conf
                ....后面省略....
                zone "vbird.tsai" {
                        type master;
                        file "named.vbird.tsai";
                        allow-transfer { 192.168.1.150; };
                };
                zone "1.168.192.in-addr.arpa" {
                        type master;
                        file "named.192.168.1";
                        allow-transfer { 192.168.1.150; };
                };
                ....前面省略....
                
                除此之外,在上头所列示的那两个材料库文件当中,你必需要填入所需求的 NS 标记才行! 这部份我们曾经在前一大节提过了,请你自行参考喔! 设定终了后请重新启动 named 啦!


                小标题的图示slave DNS 的设定
                根本上, slave DNS 的 /etc/named.conf 与 master DNS 简直如出一辙啊! 独一的差别在于两个 zone 的范例 (type) 罢了。设定方法独一的差别在这里:
                [root@slave ~]# vi /etc/named.conf
                ....后面省略....
                zone "vbird.tsai" {
                        type slave;
                        file "named.vbird.tsai";
                        masters { 192.168.1.254; };
                };
                zone "1.168.192.in-addr.arpa" {
                        type slave;
                        file "named.192.168.1";
                        masters { 192.168.1.254; };
                };
                ....前面省略....
                
                你得要特殊注意范例是 slave 之外,谁人主机泉源 (masters) 是有加 "s" 喔! 这点很容易遗忘啊!至于材料库文件外面,必需要存在的有:
                • named.root
                • named.localhost
                • named.127.0.0
                在 slave DNS 当中,这三个 zone 的范例辨别是 hint 与 master ,以是固然要预设存在, 至于谁人 named.vbird.tsai 及 named.192.168.1 就不要存在啦! 由于这两个 zone file 是由 master DNS 主机传送过去的!只是你要留意 /var/named/chroot/var/named 这个目次的权限必需要是 named 这个运用者可以写入的形态!这很紧张喔!
                [root@slave ~]# ls -l /var/named/chroot/var/named
                -rw-r--r--  1 root  root   229 Oct 18 14:44 named.127.0.0
                -rw-r--r--  1 root  root   675 Oct 18 13:44 named.localhost
                -rw-r--r--  1 root  root  2517 Oct 18 00:34 named.root
                # 留意,只需三个文件即可,其他两个 named.vbird.tsai 与
                # named.192.168.1 不行以存在!不然会有题目啊!
                
                [root@slave ~]# ls -ld /var/named/chroot/var/named
                drwxr-x---  4 named named 4096 Oct 19 01:17 /var/named/chroot/var/named
                # 留意到,这个目次的运用者必需要是 named ,然后分数至多得 750 才行!
                
                在这个最紧张的权限题目处置终了之后,接上去你可以在 slave DNS 这部效劳器下面启动 DNS 啦!
                [root@slave ~]# /etc/init.d/named start
                
                [root@slave ~]# tail -n 20 /var/log/messages
                zone 1.168.192.in-addr.arpa/IN: transferred serial 2006102001
                transfer of '1.168.192.in-addr.arpa/IN' from 192.168.1.254#53: end of transfer
                zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 2006102001)
                zone vbird.tsai/IN: transferred serial 2006102001
                transfer of 'vbird.tsai/IN' from 192.168.1.254#53: end of transfer
                zone vbird.tsai/IN: sending notifies (serial 2006102001)
                # 实际上,你应该会看到如上的输入资讯才对!零碎会见告 zone file 的传输后果
                
                [root@slave ~]# ls -l /var/named/chroot/var/named
                -rw-r--r--  1 root  root   229 Oct 18 14:44 named.127.0.0
                -rw-------  1 named named  472 Oct 19 01:29 named.192.168.1
                -rw-r--r--  1 root  root   675 Oct 18 13:44 named.localhost
                -rw-r--r--  1 root  root  2517 Oct 18 00:34 named.root
                -rw-------  1 named named  580 Oct 19 01:29 named.vbird.tsai
                
                您瞧!云云一来您的 zone file 就会自动的被树立起来喔!将来假如你的 master DNS 要更新材料库时, 只需修正过序号,偏重新启动 named 后,这部 slave DNS 就会随着更新啦!啊!真是‘福分啦!’!!

                不外,假如你发明到启动 slave DNS 时,你的登录资讯居然是如许:
                1  dumping master file: tmp-XXXXEnDd9D: open: permission denied
                2  transfer of 'vbird.tsai/IN' from 192.168.1.254#53: failed while receiving 
                   responses: permission denied
                3  transfer of 'vbird.tsai/IN' from 192.168.1.254#53: end of transfer
                
                假如呈现相似如许的三行时,不用疑心啦!一定是权限错误啦! 请再次反省你的材料库文件所安排的目次权限能否可以让 named 写入啊!处置处置就好了! 至于上述的相干文件可以在这里下载:

                大标题的图示Client 真个设定:
                说完了在 DNS Server 真个设定,接上去,我们再来聊一聊关于 Client 真个设定与测试吧!


                小标题的图示相干设定档
                后面的阐明外面,我们知道主机称号对应到 IP 有两种办法,晚期的办法是间接写在文件外面来对应, 厥后比拟新的办法则是透过 DNS 架构!那么这两种办法辨别运用什么设定档?可不行以同时存在? 若同时存在时,谁人办法优先?嗯!我们先来谈一谈几个设定档吧!
                • /etc/hosts :方才下面就提过了,这个是最早的 hostname 对应 IP 的文件;
                • /etc/resolv.conf :这个紧张!便是 DNS 主机的 IP;
                • /etc/nsswitch.conf:这个文件则是在‘决议’先要运用 /etc/hosts 照旧 /etc/resolv.conf 的设定!
                普通而言, Linux 的预设主机称号与 IP 的对应搜索都以 /etc/hosts 为优先, 为什么呢?您可以检查一下 /etc/nsswitch.conf ,并找到 hosts 的项目:
                [root@linux ~]# vi /etc/nsswitch.conf
                hosts:      files dns
                
                下面谁人 files 便是运用 /etc/hosts 而最初的 dns 则是运用 /etc/resolv.conf 的 DNS 主机 IP 搜索啦!因而,您可以先以 /etc/hosts 来设定 IP 对应ㄋㄟ! 固然啦,您也可以将他互换过去,不外,总是 /etc/hosts 比拟复杂,以是将他摆在后面比拟好啦!

                好啦,既然我们是要停止 DNS 测试的,那么 /etc/resolv.conf 的内容,天然就要填写我们本人的 IP 啰!以是您应该如许写:
                [root@linux ~]# vi /etc/resolv.conf
                nameserver 192.168.1.254
                nameserver 168.95.1.1
                nameserver 139.175.10.20
                
                DNS 主机的 IP 可以设定多个,这可以让您的团体电脑有备援的功用!举例来说, 我下面共设定了三部主机作为我的 DNS 盘问,当 192.168.1.254 那部主机挂点时, 我的 Client 电脑会立即以第二部主机作为 DNS 盘问的次要主机。以是, 通常我们都市发起人家在这个文件内可以设定三个左右的 DNS 主机称号!以保时时之需啊~

                别的,下面三个 DNS 的 IP 谁人会先被运用?固然是照次序来的~ 以是会先以 192.168.1.254 那部主机来盘问,若 192.168.1.254 挂了,才会运用 168.95.1.1 那部来盘问。

                Tips:
                只管即便不要超越三部以上的 DNS IP ,由于 DNS 的盘问也是要工夫的,假定如今你无法衔接到 DNS 主机是由于你本人的网络题目,而你设定了 10 部 DNS IP 在 /etc/resolv.conf 当中,那么你的 Linux 就会破费 10 倍的工夫去停止每一次无法乐成的主机称号与 IP 的对应喔!
                鸟哥的图示
                Tips:
                在自家设的没有颠末正当受权的 DNS 最好不要以 Internet 下面曾经存在的范畴称号来训练搭建! 举例来说,假定明天你以 192.168.1.254 那部呆板来搭建 *.yahoo.com 的范畴, 由于我将 192.168.1.254 安排在第一位,招致每次的盘问实在 yahoo.com 这个范畴的材料都是间接由 192.168.1.254 所提供,这很欠好~由于能够会形成您的用户真个方便~
                鸟哥的图示
                好了,我们要测试我们的 DNS 主机设定能否准确啰!


                小标题的图示DNS 的盘问指令: host, nslookup, dig
                测试 DNS 的顺序有许多,我们先来运用最复杂的 host 吧!然后另有 nslookup 及 dig 哩!


              29. host
              30. 语法:
                [root@linux ~]# host [-a] [FQDN] [server]
                [root@linux ~]# host -l [domain] [server]
                参数阐明:
                -a :代表列出该主机一切的相干资讯,包罗 IP、TTL 等等
                -l :若前面接的谁人 domain 设定容许 allow-transfer 时,则列出该 domain 
                     所办理的一切主机称号对应材料!
                server:这个参数无关紧要,当想要应用非 /etc/resolv.conf 内的 DNS 主机
                        来盘问主机称号与 IP 的对合时,就可以应用这个参数了!
                
                典范一:强迫以 192.168.1.254 这部 DNS 主机来盘问
                [root@linux ~]# host www.vbird.tsai 192.168.1.254
                Using domain server:
                Name: 192.168.1.254
                Address: 192.168.1.254#53  <==这里紧张!见告这条记录是哪部 DNS 效劳器去找的!
                Aliases:
                
                www.vbird.tsai is an alias for linux.vbird.tsai.
                linux.vbird.tsai has address 192.168.1.254
                
                有留意到下面输入的特别字体局部吗?许多冤家在测试本人的 DNS 时,经常会‘指定到错误的 DNS 盘问主机’了~ 由于他们的 /etc/reslov.conf 遗忘改,以是总是找不到本人设定的材料库 IP 材料。以是你要细心看啊!
                典范二:找出我们本人这个 vbird.tsai 范畴的一切主机对应
                [root@linux ~]# host -l vbird.tsai 192.168.1.254
                Using domain server:
                Name: 192.168.1.254
                Address: 192.168.1.254#53
                Aliases:
                
                vbird.tsai name server linux.vbird.tsai.
                vbird.tsai name server slave.vbird.tsai.
                linux.vbird.tsai has address 192.168.1.254
                slave.vbird.tsai has address 192.168.1.150
                ....前面省略....
                
                下面的资讯可就熟习多了吧?!没错!那便是我们在 named.vbird.tsai 外面的设定值啊! 不外,并不是一切的 domain 都可以作如许的事变~举例来说,假如我们下达:
                [root@linux ~]# host -l yahoo.com
                Host yahoo.com not found: 5(REFUSED)
                ; Transfer failed.
                
                如许的回应是由于在对方的 /etc/named.conf 外面并没有设定 allow-transfer 谁人设定选项的缘由啊! 至于 host -a 的输入资讯与 dig 是如出一辙的,以是我们先不引见,在 dig 处再细致阐明。


              31. nslookup
              32. 语法: 
                [root@linux ~]# nslookup [FQDN] [server]
                [root@linux ~]# nslookup
                参数阐明:
                1. 可以间接在 nslookup 加上待盘问的主机称号或许是 IP ,[server] 无关紧要;
                2. 假如在 nslookup 前面没有加上任何主机称号或 IP ,那将进入 nslookup 的盘问功用
                   在 nslookup 的盘问功用当中,可以输出其他参数来停止特别盘问,比方:
                   set type=any :列出一切的资讯‘正解方面设定档’
                   set type=mx  :列出与 mx 相干的资讯!
                
                典范一:间接搜索 winxp.vbird.tsai 的 IP 资讯 
                [root@linux ~]# nslookup winxp.vbird.tsai 192.168.1.254
                Server:         192.168.1.254
                Address:        192.168.1.254#53 <==异样的,请留意搜索的 DNS IP 喔!
                
                Name:   winxp.vbird.tsai
                Address: 192.168.1.100
                
                nslookup 可单纯的将 hostname 与 IP 对应列出罢了,不外,照旧会将盘问的 DNS 主机的 IP 列出来的! 假如想要晓得更多细致的参数,那可以间接进入 nslookup 这个软件的操纵画面中,如下典范:
                [root@linux ~]# nslookup  <==进入 nslookup 盘问画面
                > 192.168.1.254          <==实行反解的盘问
                > www.vbird.tsai         <==实行正解的盘问
                # 下面这两个仅列出正反解的资讯,没有啥了不得的中央啦!
                > tw.yahoo.com           <==实行非本机上的盘问
                Server:         192.168.1.254
                Address:        192.168.1.254#53
                
                Non-authoritative answer: 
                # 留意这边,由于不是本人的材料库,以是是未认证过的材料(能够是快取)
                tw.yahoo.com    canonical name = tw.yahoo-ap1.akadns.net.
                tw.yahoo-ap1.akadns.net canonical name = vip1.tw.tpe.yahoo.com.
                Name:   vip1.tw.tpe.yahoo.com
                Address: 202.43.195.52
                > set type=any           <==变卦盘问,不是仅有 A,全部资讯都列出来
                > sun.vbird.tsai
                Server:         192.168.1.254
                Address:        192.168.1.254#53
                
                Name:   sun.vbird.tsai
                Address: 192.168.1.200
                sun.vbird.tsai  text = "The sun solaris OS" <==看吧!更多资讯跑出来!
                sun.vbird.tsai  hinfo = "Celeron 1G" "Solaris 10"
                > exit <==分开吧!皮卡丘
                
                在下面的案例当中,请留意,假如您在 nslookup 的盘问画面当中,输出 set type=any 或其他参数, 那么就无法再停止反解的盘问了!这是由于 any 或许是 mx 等等的标记都是记载在正解 zone 当中的缘故!


              33. dig
              34. 语法: 
                [root @test root]# dig [@server] [FQDN] [type]
                参数阐明:
                @server :假如不想以 /etc/resolv.conf 来作为 DNS 主机,则可在此填入其他的 IP
                type    :预设是盘问 A 标记,你可以在这里入其他的标记,如 mx, ns 等。
                          此功用亦可运用 [-t type] 来处置。
                
                典范一:盘问 linux.vbird.tsai 吧!
                [root@linux ~]# dig @192.168.1.254 linux.vbird.tsai
                ; <<>> DiG 9.2.4 <<>> @192.168.1.254 linux.vbird.tsai
                ; (1 server found)
                ;; global options:  printcmd
                ;; Got answer:
                ;; -;>>HEADER<<- opcode: QUERY, status: NOERROR, id: 8977
                ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
                
                ;; QUESTION SECTION:
                ;linux.vbird.tsai.              IN      A
                
                ;; ANSWER SECTION:
                linux.vbird.tsai.       600     IN      A       192.168.1.254
                
                ;; AUTHORITY SECTION:
                vbird.tsai.             600     IN      NS      slave.vbird.tsai.
                vbird.tsai.             600     IN      NS      linux.vbird.tsai.
                
                ;; ADDITIONAL SECTION:
                slave.vbird.tsai.       600     IN      A       192.168.1.150
                
                ;; Query time: 4 msec
                ;; SERVER: 192.168.1.254#53(192.168.1.254)
                ;; WHEN: Thu Oct 19 15:34:23 2006
                ;; MSG SIZE  rcvd: 100
                
                在这个典范当中,我们可以看到整个表现出的讯息包罗有几个局部:
                • HEADER(标题):表现盘问的内容有哪些,包罗一个 query, 一个 answer 及两个验证局部。
                • QUESTION(题目):表现所要盘问的内容,由于我们是盘问 linux.vbird.tsai 以是这里天然便是表现这个讯息。
                • ANSWER(回应):根据方才的 QUESTION 去盘问所失掉的后果,由于在我们的设定当中仅有设定了 A 的标签,以是这里天然就....
                • AUTHORITY(验证):由这里我们可以查阅 vbird.tsai 这个范畴是由 linux.vbird.tsai 及 slave.vbird.tsai 来设定的~外面谁人 600 是什么呢?很复杂,他便是我们所设定的 ttl 谁人数值啦!
                典范二:盘问 vbird.tsai 这个范畴的 MX 吧!
                [root@linux ~]# dig @192.168.1.254 vbird.tsai mx
                ; <<>> DiG 9.2.4 <<>> @192.168.1.254 vbird.tsai mx
                ; (1 server found)
                ;; global options:  printcmd
                ;; Got answer:
                ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3390
                ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
                
                ;; QUESTION SECTION:
                ;vbird.tsai.                    IN      MX  <==瞧!要求的材料纷歧样了喔!
                
                ;; ANSWER SECTION:
                vbird.tsai.             600     IN      MX      10 linux.vbird.tsai.
                
                ;; AUTHORITY SECTION:
                vbird.tsai.             600     IN      NS      slave.vbird.tsai.
                vbird.tsai.             600     IN      NS      linux.vbird.tsai.
                
                ;; ADDITIONAL SECTION:
                linux.vbird.tsai.       600     IN      A       192.168.1.254
                slave.vbird.tsai.       600     IN      A       192.168.1.150
                
                ;; Query time: 4 msec
                ;; SERVER: 192.168.1.254#53(192.168.1.254)
                ;; WHEN: Thu Oct 19 15:45:58 2006
                ;; MSG SIZE  rcvd: 116
                
                由于 dig 的输入资讯真实是太丰厚了,又分红多个局部去停止报答,因而很合适作为 DNS 追踪报答的一个指令呢! 你可以透过这个指令来理解一下你所设定的 DNS 材料库能否准确,并停止除错喔! ^_^

                小标题的图示Domain 的资讯盘问: whois
                whois
                [root@linux ~]# whois [domainname]  <==留意啊!是 domain 而不是 hostnam
                [root@linux ~]# whois redhat.com
                Registrant:
                Red Hat, Inc.
                   P.O. Box 13588
                   Research Triangle Park, NC 27709
                   US
                
                   Domain Name: REDHAT.COM
                
                   Administrative Contact, Technical Contact:
                      Network, Operations               noc@REDHAT.COM
                      Red Hat, Inc.
                      1801 Varsity Drive
                      ATTN Domain Administrator
                      Raleigh, NC 27606
                      US
                      919.754.3700 fax: 919-754-3704
                
                   Record expires on 25-May-2011.
                   Record created on 26-May-1994.
                   Database last updated on 19-Oct-2006 03:58:04 EDT.
                
                   Domain servers in listed order:
                
                   NS3.REDHAT.COM               66.187.229.10
                   NS2.REDHAT.COM               66.187.224.210
                   NS1.REDHAT.COM               66.187.233.210
                
                whois 这个指令可以盘问到现在注册这个 domain 的运用者的相干资讯。不外, 由于比年来许多网络资讯平安的题目,这个 whois 所提供的资讯真的是太细致了, 为了维护运用者的隐私权,以是,现在这个 whois 所盘问到的资讯曾经不见得是完全准确的了~ 并且,在表现出 whois 的资讯之前,还会有一段宣告事变的见告呢~ ^_^y

                假如运用 whois 来反省鸟哥所注册的正当 domain 会是怎样呢?看看:
                [root@linux ~]# whois vbird.idv.tw
                [盘问 whois.twnic.net]
                [whois.twnic.net]
                Domain Name: vbird.idv.tw
                
                   Contact:
                      Der-Min Tsai
                      vbird@aerosol.ev.ncku.edu.tw
                
                   Record expires on 2008-09-17 (YYYY-MM-DD)
                   Record created on 2002-09-13 (YYYY-MM-DD)
                
                Registrar: HINET
                
                呵呵!这个 domain 会在 2008/09/17 生效的意思啦!陈诉终了!

                无论怎样,我们都可以透过 nslookup, host, dig 等等的指令来盘问主机称号与 IP 的对应, 这些指令的用法可以请您以 man command 来盘问更多的用法喔!

                大标题的图示DNS 效劳器的进阶设定:
                实在, DNS 主机的运作原理与搭建方法的变革,真的很一目了然的!在这里, 我们额定的提出一些比拟进阶的内容给各人参考参考,比方子网络的受权题目, 以及搭建一个正当受权的 DNS 主机。


                小标题的图示子网络受权题目
                好了,那么万一我的网络很大,我只想要担任下层的 DNS 罢了, 上层盼望间接交给各单元的担任人来担任,要怎样设定呢? 举个例子来说,以成大为例,成大计中仅办理各个系所的的主机 IP 罢了,由于各个系所的主机数目能够很大,假如每团体都要请计中来设定, 那么办理员能够会疯失,并且在实践设计上也不太兽性化。

                以是啰,计中就将各个 subdomain (子网络) 的办理权交给各个系所的主机办理员去办理,云云一来, 各系所的设定下面会比拟灵敏,且下层 DNS 主机也不必太费事呐!

                好了,那么怎样开放子网络受权呢?我们以方才在 master 下面树立的 vbird.tsai 这个 zone 为例, 假定明天你是个 ISP ,有团体想要跟你请求 domain name ,他要的 domain 是‘ niki.vbird.tsai ’, 那你该怎样处置?实在只需指定 NS 就好了啦!如下所示:

              35. 下层主机端 vbird.tsai 的设定:
              36. 下层 DNS 主机的设定实在很复杂啦!只需将子网络开放出来给他人运用就对了! 怎样设定呢?您可以间接修正后面谈到的 named.vbird.tsai ,使他酿成如下所示:
                [root@linux ~]# vi /var/named/chroot/var/named/named.vbird.tsai
                # 在这个文件的最下方添加这两行:
                niki        IN  NS  niki.vbird.tsai.
                niki        IN  A   192.168.100.100
                
                间接将 niki.vbird.tsai. 这个网络的 NS 权限 (name server) 转给 niki.vbird.tsai. 这部主机来办理,并同时列出 niki.vbird.tsai 的正解资讯! 那么将来当有人要盘问相似 www.niki.vbird.tsai 时,我们的 linux.vbird.tsai. 会间接将盘问的权限丢给 niki.vbird.tsai 行止理喔!

              37. 卑鄙主机 niki.vbird.tsai 的设定:
              38. 这个设定就复杂啦!间接参考一下我们下面写的材料,随着设定,但是您的 domain name 酿成 niki.vbird.tsai 便是了!复杂的很呐!以是鸟哥就不再多说了~

                小标题的图示搭建一个正当的受权的 DNS 主机:
                好啦!如今您应该晓得什么是‘经下游受权的正当 DNS 主机’了吧?! 没错!便是下游的 DNS 主机将子网络的考核权开放给您来设定就对啦!嗯!固然晓得原理, 但是那么我要怎样来搭建一个正当的 DNS 主机呢?好让我本人办理本人的 domain !举例来说,鸟哥的 vbird.idv.tw 便是鸟哥本人办理的哩~底下我们就来谈一谈,怎样向 ISP 请求一个正当受权的 DNS 主机,或许是正当的主机称号啊!


              39. 请求一个正当的 domain name ...便是要费钱!
              40. 既然是要树立一个正当的 domain name server ,天然就要向正当的 DNS 主机请求受权啰! 现在您可以究竟下的中央去请求喔!
                实在台湾地域的一些 domain 曾经不再于 TWNIC 受理了,以是您连上上述的网站之后, 可以点选外头相干的保持到各大 ISP 去注册!比方鸟哥就注册了 vbird.idv.tw 这个网络! 如今鸟哥就以 Hinet 的注册做为阐明吧
                1. 进入主画面:
                  间接保持究竟下的网页去: http://nweb.hinet.net

                2. 选择需求的网络称号,并盘问该网络能否已存在:
                  由于网络必须是无独有偶的,以是您必须运用该网页当中提供的盘问功用, 去盘问一下您想要的网络能否曾经被注册了呢?肯定要没有被注册的网络才可以喔!

                3. 逐渐停止注册:
                  你可以选择许多品种的范畴来注册,假如想要注册团体网站,请按下图八所指的 (1) 处, 假如想要注册相似 vbird.tw 这种网络的话,则可以选择 (2) 所指的谁人项目。 然后以该网站提供的功用一步一步的往下去停止,比方以鸟哥的‘团体网址’之注册为例, 按下团体网址之后,会呈现流程步调为:
                  以 Hinet 网站为根据引见注册 domain 的办法
                  图八、以 Hinet 网站为根据引见注册 domain 的办法

                  请依序一步一步的将他完成,最初你会失掉一组帐号暗码,就可以修正本人的范畴啦!

                4. 选择网站代管或搭建 DNS 形式:
                  还记得后面提到的看法吧?对啦!我们可以间接请 ISP 帮我们设定好 host 对应 IP 就好(最多三部),固然也可以自行设定一下我们所需求的 DNS 主机啦!假如将来您能够会搭建 mail server ,以是照旧自行设定 DNS 主机好了!你可以选择图八在 (3) 所指的‘DNS异动与盘问’项目, 会呈现上面图示。记得选择‘DNS’及填写您的 hostname 与准确的 IP 即可喔!留意: 要填选这个项目,最好您的 IP 是牢固制的,浮动制的 IP 不发起用这个选项!
                  以 Hinet 网站为根据引见注册 domain 的办法
                  图九、以 Hinet 网站为根据引见注册 domain 的办法

              41. DNS 主机的细致设定 之设定内容来设定您的主机:
                假如您曾经以 DNS 主机的方法请求了一个 domain name ,那么您就必需要设定您的 DNS 主机了! 请留意,这个状况之下,您只需设定您的注册的网络的正解即可! 反解局部则先不要理睬,固然,假如您有方法的话,最好照旧请下层的 ISP 帮您设定啰!


              42. 测试:
                设定一台正当的 DNS 终了后,发起你可以到这个网站去盘问一下你的设定能否妥当:
                云云一来,您的 DNS 主机下面设定的任何资讯,都可以透过 Internet 下面的任何一台主机来盘问到喔!够棒吧!心动了吗?从速去试看看吧! ^_^

              43. 小标题的图示LAME Server 的题目:
                大概你已经在 /var/log/messages 外面看到相似如许的讯息:
                [root@linux ~]# more /var/log/messages
                1 Oct  5 05:02:30 test named[432]: lame server resolving '68.206.244.205.
                  in-addr.arpa' (in '206.244.205.in-addr.arpa'?): 205.244.200.3#53
                2 Oct  5 05:02:31 test named[432]: lame server resolving '68.206.244.205.
                  in-addr.arpa' (in '206.244.205.in-addr.arpa'?): 206.105.201.35#53
                3 Oct  5 05:02:41 test named[432]: lame server resolving '68.206.244.205.
                  in-addr.arpa' (in '206.244.205.in-addr.arpa'?): 205.244.112.20#53
                
                这是什么工具呐?!依据官方提供的文件材料来看 ( 在您的 CentOS 4.x 的零碎下,请观察这个文件‘/usr/share/doc/bind-9.2.4/arm/Bv9ARM.ch06.html’ ),当我们的 DNS 主机在向里面的 DNS 零碎盘问某些正反解时,能够由于 ‘对方’ DNS 主机的设定错误,招致无法剖析到预期的正反解后果,这个时分就会发作所谓的 lame server 的错误!

                那么这个错误解让我们的 DNS 主机发作什么严峻的结果吗?既然仅是对方的设定错误, 以是天然就不会影响我们的 DNS 主机的正常作业了。 只是我们的 DNS 主机在盘问时,会发作无法准确剖析的正告讯息罢了, 这个讯息固然不会对我们的 Linux 主机发作什么困扰,不外,关于零碎办理员来说, 要每天盘问的 /var/log/messages 文件居然有这么多的登录资讯,这是很厌恶的一件事!

                好了,我们晓得 lame server 是对方主机的题目,对我们主机没有影响, 但是却又不想要让该讯息呈现在我们的登录档 /var/log/messages 当中, 怎样到达如许的功用呢?呵呵!就间接应用 BIND 这个套件所提供的登录档参数啊! 举措很复杂,在您的 /etc/named.conf 文件当中的最底下,参加这个参数即可:
                1. 修正 /etc/named.conf
                [root@linux ~]# vi /etc/named.conf
                // 参加底下这个参数:
                logging {
                        category lame-servers { null; };
                };
                
                2. 重新启动 bind
                [root@linux ~]# /etc/init.d/named restart
                
                根本上,谁人 logging 是主机的登录档记载的一个设定项目,由于我们不要 lame server 的资讯, 以是才将他设定为无 (null) ,如许就改完了! 记得重新启动 named 之后,照旧要观察一下 /var/log/messages 喔! 以确定 named 的准确启动与否!然后,嘿嘿,当前就不会看到 lame server 咯!


                小标题的图示应用 RNDC 指令办理 DNS 效劳器
                不晓得您会不会以为很奇异,那便是为啥启动 DNS 后,在 /var/log/messages 总是看到这一句话:
                command channel listening on 127.0.0.1#953
                
                并且在本机真个 TCP port 953 还多了个 named 所启动的效劳,那是啥?那便是所谓的 rndc 了。这个 rndc 是 BIND version 9 当前所提供的功用啦,他可以让你很轻松的办理你本人的 DNS 效劳器喔! 包罗可以反省曾经存在 DNS 快取当中的材料、重新更新某个 zone 而不需求重新启动整个 DNS , 以及反省 DNS 的形态与统计材料等等的,挺风趣的!

                不外,由于 rndc 可以很深化的办理你的 DNS 效劳器,以是固然要停止一些办理啦! 办理的方法是颠末 rndc 的设定来树立一支金钥 (rndc key),并将这支金钥相干的资讯写入你的 named.conf 设定档当中,重新启动 DNS 后,你的 DNS 就可以藉由 rndc 这个指令来办理啰! 现实上,新版的 distributions 通常曾经帮你自动的树立好 rndc key 了,以是你不需求繁忙~ 不外,假如你照旧在登录档当中发明一些错误,比方:
                couldn't add command channel 127.0.0.1#953: not found
                
                那就表现你 DNS 的 rndc key 没有设定好啦!那要怎样设定好?很复杂~ 只需先树立一把 rndc key ,然后加到 named.conf 当中去即可! 你可以运用 bind 提供的指令来停止如许的任务喔!
                1. 先树立 rndc key 的相干材料吧!
                [root@linux ~]# rndc-confgen
                # Start of rndc.conf
                key "rndc-key" {
                        algorithm hmac-md5;
                        secret "aoIyK4uoiR1hEqedk2D2lw==";
                };
                
                options {
                        default-key "rndc-key";
                        default-server 127.0.0.1;
                        default-port 953;
                };
                # End of rndc.conf
                # 下面的输入请将他贴到 rndc.conf 文件当中吧!
                # Use with the following in named.conf, adjusting the allow list as needed:
                # key "rndc-key" {
                #       algorithm hmac-md5;
                #       secret "aoIyK4uoiR1hEqedk2D2lw==";
                # };
                #
                # controls {
                #       inet 127.0.0.1 port 953
                #               allow { 127.0.0.1; } keys { "rndc-key"; };
                # };
                # End of named.conf
                # 至于下面的 key 及 controls 的项目则贴到 named.conf 当中去!
                # 请留意,这个 rndc-confgen 是应用乱数盘算出加密的那把 key ,
                # 以是每次实行的后果都纷歧样。以是上述的材料与你的荧幕会有点差别。
                
                2. 树立 rndc.conf 文件
                [root@linux ~]# vi /etc/rndc.conf
                # 在这个文件当中将本来的材料全部删除,并将方才失掉的后果给他贴上去
                key "rndc-key" {
                        algorithm hmac-md5;
                        secret "aoIyK4uoiR1hEqedk2D2lw==";
                };
                
                options {
                        default-key "rndc-key";
                        default-server 127.0.0.1;
                        default-port 953;
                };
                [root@linux ~]# chmod 640 /etc/rndc.conf  <==必须要设定好权限!
                [root@linux ~]# chown root.named /etc/rndc.conf
                
                3. 修正 named.conf
                [root@linux ~]# vi /var/named/chroot/etc/named.conf
                # 找到如下的这一行:
                include "/etc/rndc.key";
                
                # 将上述材料删除!由于该材料是旧的!然后参加这一段:
                key "rndc-key" {
                      algorithm hmac-md5;
                      secret "aoIyK4uoiR1hEqedk2D2lw==";
                };
                
                controls {
                      inet 127.0.0.1 port 953
                              allow { 127.0.0.1; } keys { "rndc-key"; };
                };
                
                [root@linux ~]# /etc/init.d/named restart
                
                树立了rndc key 而且启动 DNS ,同时你的零碎也曾经有 port 953 之后,我们就可以在本机实行 rndc 这个指令了。这个指令的用法请间接输出 rndc 来盘问即可:
                [root@linux ~]# rndc
                Usage: rndc [-c config] [-s server] [-p port]
                        [-k key-file ] [-y key] [-V] command
                
                command is one of the following:
                
                  reload        Reload configuration file and zones.
                  stats         Write server statistics to the statistics file.
                  dumpdb        Dump cache(s) to the dump file (named_dump.db).
                  flush         Flushes all of the server's caches.
                  status        Display status of the server.
                # 其他就给他省略啦!请自行输出这个指令来参考啰!
                
                那怎样运用呢?我们举几个小例子来阐明吧!
                典范一:将现在 DNS 效劳器的形态表现出来
                [root@linux ~]# rndc status
                number of zones: 6           <==这部 DNS 办理的 zone 数目
                debug level: 0               <==能否具有 debug 及 debug 的品级
                xfers running: 0
                xfers deferred: 0
                soa queries in progress: 0
                query logging is OFF         <==能否将盘问的材料记载上去?
                server is up and running     <==主机现在正在运作当中
                
                典范二:将现在零碎的 DNS 统计材料记载上去
                [root@linux ~]# rndc stats
                # 此时,预设会在 /var/named/chroot/var/named/data 内发生新文件,你可以去查阅:
                [root@linux ~]# cat /var/named/chroot/var/named/data/named_stats.txt
                +++ Statistics Dump +++ (1161322745)
                success 22
                referral 0
                nxrrset 0
                nxdomain 3
                recursion 6
                failure 0
                --- Statistics Dump --- (1161322745)
                
                典范三:将现在快取影象体当中的材料记载上去
                [root@linux ~]# rndc dumpdb
                # 与 stats 相似,会将 cache 的材料安排成为一个文件,你可以去查阅:
                # /var/named/chroot/var/named/data/cache_dump.db
                
                假如你在实行 rndc 指令时总是呈现如下错误:
                rndc: connection to remote host closed
                This may indicate that the remote server is using an older version of
                the command protocol, this host is not authorized to connect,
                or the key is invalid.
                
                这表现您的 /etc/rndc.conf 与 /var/named/chroot/etc/rndc.key 内金钥的编码差别所致。 请你自行以上述的 rndc-confgen 的方法自行处置你的 rndc key ,偏重新启动 named 即可啊! 用这工具办理,你就不需求每次都重新启动 named 啰! ^_^


                小标题的图示搭建静态 DNS 主机: 让你成为 ISP 啦!
                什么是静态 DNS (Dynamic DNS, DDNS) 主机呢?还记得我们在 正当的 DNS 主机 外面提到,假如我们自身因此拨接制的 ADSL 连上 Internet 时, 我们的 IP 通常是 ISP 随机提供的,因而每次上彀的 IP 都不牢固,以是, 我们没有方法以下面的 DNS 设定来赐与这种连上 Internet 的办法一个得当的主机称号。

                也因而,假如我们想要应用这种没有牢固 IP 的连线办法搭建网站时,就得要有特别的管道了~ 此中之一的办法便是应用 Internet 下面曾经提供的收费静态 IP 对应主机称号的效劳! 比方: http://www.no-ip.org

                提供如许的效劳应用的是什么原理呢?根本上, DNS 主机照旧得要提供 Internet 相干的 zone 的主机称号与 IP 的对应材料才行,以是,DDNS 主机 就必需要提供一个机制,让用户端可以透过这个机制来修正他们在 DDNS 主机下面的 zone file 内的材料才行

                那会不会很难啊?不会啊!我们的 BIND 9 就有提供相似的机制啦!那便是应用 update-policy 这个选项,共同认证用的 key 来停止材料文件的更新。复杂的说, 1) 我们的 DDNS 主机先提供 Client 一把 Key (便是认证用的材料, 你可以将他想成是帐号与暗码的观点), 2) Client 端应用这把 Key ,并共同 BIND 9 的 nsupdate 指令, 就可以连上 DDNS 主机,而且修正主机下面的 Zone file 内的对应表了。觉得上很像很复杂喔! 没错啊!搭建上真的很复杂的~底下我们就来实验设定一下喔:


              44. DDNS Server 真个设定:
              45. 假定我有一个冤家,他运用的 Linux 主机的 IP 是会随时变化的,但是他想要搭建 Web 网站, 以是他向我请求了一个范畴称号,那便是 web.vbird.tsai ,此时我必须要给他一把金钥, 而且设定我的 named.conf 让 vbird.tsai 这个 zone 可以承受来自用户真个材料更新才行! 起首来树立这把金钥吧!
                [root@linux ~]# dnssec-keygen -a [演算法] -b [暗码长度] -n [范例] 称号
                参数:
                -a :前面接的 [type] 为演算方法的意思,次要有 RSAMD5, RSA, DSA, DH
                     与 HMAC-MD5 等。发起你可以运用罕见的 HMAC-MD5 来演算暗码;
                -b :你的暗码长度为几多?通常赐与 128 位元就可以了;
                -n :前面接的则是用户端可以更新的范例,次要有底下两种,发起给 HOST 即可:
                     ZONE:用户端可以更新任何标记及整个 ZONE;
                     HOST:用户端仅可以针对他的主机称号来更新。
                
                [root@linux ~]# mkdir -p /var/named/keys; cd /var/named/keys
                [root@linux keys]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST web
                Kweb.+157+50096
                [root@linux keys]# ls -l K*
                -rw-------  1 root root 47 Oct 20 14:20 Kweb.+157+50096.key
                -rw-------  1 root root 81 Oct 20 14:20 Kweb.+157+50096.private
                # 下面那把是公钥,上面那把则是私钥文件!
                
                [root@linux keys]# cat Kweb.+157+50096.key
                web. IN KEY 512 3 157 +j8TSooNNIUPb3OR9Rh53Q==
                # 留意到最左边的谁人暗码长度,等一下我们要复制的仅有谁人中央!
                
                接上去你必须要:将公钥的暗码复制到 /etc/named.conf 当中,将私钥传给你的 web.vbird.tsai 那部主机上!好了,那就开端来修正 named.conf 内的相干设定吧!
                [root@linux ~]# vi /etc/named.conf
                // 先在恣意中央参加这个 Key 的相干暗码资讯!
                key "web" {
                	algorithm hmac-md5;
                	secret "+j8TSooNNIUPb3OR9Rh53Q==";
                };
                
                // 然后将你本来的 zone 参加底下这一段宣示
                zone "vbird.tsai" {
                        type master;
                        file "named.vbird.tsai";
                        allow-transfer { 192.168.1.150; };
                        update-policy {
                                grant web name web.vbird.tsai. A;
                        };
                };
                
                [root@linux ~]# chown named /var/named/chroot/var/named
                [root@linux ~]# /etc/init.d/named restart
                
                留意到上头的 grant web name web.vbird.tw. A; 那一行, grant 前面接的便是 key 的称号,也便是说,我这把 web 的 key 在这个 zone (vbird.tsai) 外面可以修正主机称号 web.vbird.tsai 的 A 的标记,亦便是修正主机的 IP 对应啦!语法也便是: grant [key_name] name [hostname] 标签 也便是说,我的一把 key 实在可以赐与多种权限喔!就看您怎样标准了。

                设定好之后,由于将来用户端传来的资讯是由我们主机的 named 所写入, 写入的目次在 /var/named/chroot/var/named/ 当中,以是你必须要修正一下权限喔! 给他重新启动 DNS,然后察看一下 /var/log/messages 外面有没有错误即可! 云云一来,DDNS 主机端就设定妥当啰!


              46. Client 真个更新:
                接上去则是 DDNS Client 真个更新了。起首,您必需要由 Server 端获得方才树立的那两个文件, 请将方才树立的 Kweb.+157+50096.key 及 Kweb.+157+50096.private 应用 SSH 的 sftp 传送到用户端, 亦便是那部 web.vbird.tsai 主机上头, 假定你曾经将这两个文件安排到 /usr/local/ddns 外面去,然后测试看看:
                [root@web ~]# cd /usr/local/ddns
                [root@web ddns]# nsupdate -k Kweb.+157+50096.key
                > server 192.168.1.254
                > update delete web.vbird.tsai                   <==删除原有的
                > update add web.vbird.tsai 600 A 192.168.1.222  <==更新到最新的
                > send
                > 最初在此按下 [ctrl]+D 即可
                
                请留意到‘ update add web.vbird.tsai 600 A 192.168.1.222 ’这行, 他的意义说的是,新增一笔材料, ttl 是 600 ,赐与 A 的标签, 对应到 192.168.1.222 的意思~ 至于 nsupdate -k 前面加的则是我们在 Server 端发生的谁人 key 文件!

                然后您就会发明到在 DNS 主机真个 /var/named/chroot/var/named/ 外面多出一个暂存档,那便是 named.vbird.tsai.jnl 固然,/var/named/chroot/var/named/named.vbird.tsai 就会随着用户真个要求而更新材料喔!

                由于手动更新仿佛挺费事的,我们就让 Client 主动更新吧!应用底下这个 script 即可!
                [root@web ~]# vi /usr/local/ddns/ddns_update.sh
                #!/bin/bash
                PATH=/sbin:/bin:/usr/sbin:/usr/bin
                export PATH
                
                # 0. keyin your parameters
                basedir="/usr/local/ddns"                  # 根本任务目次
                keyfile="$basedir"/"Kvbird.+157+05841.key" # 将档名填出来吧!
                ttl=600                                    # 你可以指定 ttl 的工夫喔!
                outif="ppp0"                               # 对外的连线介面!
                hostname="web.vbird.tsai"                  # 你向 ISP 获得的谁人主机称号啦!
                servername="192.168.1.254"                 # 便是你的 ISP 啊!
                
                # Get your new IP
                newip=`ifconfig "$outif" | grep 'inet addr' | \
                        awk '{print $2}' | sed -e "s/addr\://"`
                checkip=`echo $newip | grep "^[0-9]"`
                if [ "$checkip" == "" ]; then
                        echo "$0: The interface can't connect internet...."
                        exit 1
                fi
                
                # create the temporal file
                tmpfile=$basedir/tmp.txt
                cd $basedir
                echo "server $servername"                       >  $tmpfile
                echo "update delete $hostname A "               >> $tmpfile
                echo "update add    $hostname $ttl A $newip"    >> $tmpfile
                echo "send"                                     >> $tmpfile
                
                # send your IP to server
                nsupdate -k $keyfile -v $tmpfile
                
                您只需将上述的顺序外面,特别字体的局部给他修正一下,就可以以 /etc/crontab 的方法在您的零碎内主动实行了!这支顺序你也可以在底下的保持下载:
                应用 BIND 9 所提供的这个效劳,我们只需具有一组牢固的 IP ,并向 ISP 请求一个正当受权的 domain name, 就可以提供不管是牢固或许黑白牢固的 IP 运用者,一个正当的主机称号了! 而且,运用者也可以自行透过 nsupdate 来修正本人的 IP 对应!以让本人的主机 IP 永久与主机称号坚持准确的对应!这对只要拨接制上彀的用户来说,真是方便啊!

              47. 大标题的图示重点回忆:
                • 在 Internet 当中,任何一台正当的主机都具有无独有偶的主机称号,这个主机称号包括了 hostname 与 domain name ,并称为 Fully Qualified Domain Name (FQDN);
                • 为了克制人类关于 IP 不易影象的困扰,而著名称剖析器的发生,起首是 /etc/hosts ,然后则是 DNS 零碎的发生;
                • 现在 Unix Like 的呆板当中,都因此 BIND 这个柏克莱大学开展的套件来搭建 DNS 效劳器;
                • DNS 是个协议的称号,BIND 则是一个套件,这个套件提供的顺序为 named !
                • 在 DNS 当中,每一条记录我们就称他为 RR (Resource Record)。
                • 在 DNS 零碎中,正解为由 hostname 找 IP ,而反解则是由 IP 找 hostname ,至于 zone 则是一个或许是局部网络的设定值;
                • 在 bind 9 之后,预设的状况下 named 曾经作了 chroot 的举措。
                • DNS 效劳器的范例次要分为 master, slave 以及只停止快取记载的 cache-only 的 DNS 主机;
                • Master/Slave 架构下的 DNS 主机零碎,不管是 Master/Slave 主机均需求可以准确的提供 hostname 与 IP 的对应才行。
                • Slave 主机自身并没有自行设定 zone file ,其 zone file 是由 Master 主机传送而来,因而, master 主机必需要针对 slave 主机开放 allow-transfer 的设定项目才行。
                • 整个 DNS 搜索的流程当中,若找不到自身的材料,则会向 root(.) 要求材料;
                • bind 的设定档为 /etc/named.conf ,而 named.conf 可以标准出正反解 zone 的文件地点;
                • 正解的记录(record)次要有:SOA, A, MX, NS, CNAME, TXT 及 HINFO 等;
                • 反解的记录次要有: SOA, PTR 等;
                • 在 client 端设定 DNS 盘问次序与相干功用的几个紧张文件为: /etc/nsswitch.conf, /etc/hosts, /etc/resolv.conf 等;
                • DNS 盘问的指令次要有: host, nslookup, dig, whois 等等;
                • 在载入了 named 这个 daemon 之后,请务必前去 /var/log/messages 观察此 daemon 的乐成与否。
                • CentOS (Red Hat 零碎) 的 /etc/sysconfig/named 可以指定 chroot 的目次或取消 chroot 的功用等等。
                • Cache only DNS 效劳器常被运用于防火墙上,用来署理外部 LAN 的主机称号剖析要求!
                • 本章与 LPI 测验的干系:
                  在 LPI 网站 http://www.lpi.org 外面提到的,关于 NFS 的测验题库的中央,只要在 LPI level 1 的 102 ,外面的 topic 113 Networking Services ,第五点当中,浅易的 DNS 设定。夸大的是‘应试者需理解何谓正、反解、Zone 与 cache-only 的 DNS 主机’至于会考的文件与指令能够有这些:
                  • /etc/hosts
                  • /etc/nsswitch.conf
                  • /etc/resolv.conf
                  • /etc/named.boot(V4)及 /etc/named.conf(V8)
                  • named (这个 daemon )

                大标题的图示课后训练
                • 为何要有 DNS 零碎:
                  最次要的功用实在在于 Hostname 对应 IP 的盘问,可以让我们人类以电脑主机称号连上 Internet ,而不用背诵 IP 哩!
                • 那么讨教 Unix Like 零碎当中,次要运用谁人套件做为 DNS 主机的搭建,同时,他又是运用谁人 daemon 来启动 DNS 零碎?
                  在 Unix Like 零碎当中,运用 BIND 这个套件做为 DNS 的搭建,至于 daemon 则是运用 named 这个 daemon !
                • 最早的 Internet 实在是为了当局职员可以连上彀络以停止资源的分享,别的,则是电子邮件的运用。 而在晚期运用的紧张文件只要 /etc/hosts 这个,讨教这个 hosts 文件的内容含有什么项目?
                  这个文件的‘款式’为‘ [IP] [主机称号] [主机又名(aliase)]’,而,这个文件外面安排了至多一行,也便是:
                  127.0.0.1 localhost localhost.localdomain
                  别的,也可以将常常衔接的主机 IP 与 HOSTNAME 的对应给他写出去!
                • 请阐明 DNS 的三品种型与相干的内容:
                  DNS 主机次要分为: master, slave 与 cache-only 三品种型!在 master 当中,master 主机外面即有设定 DNS 材料文件,比方在 /var/named 外面的正反解文件。至于 slave 的 DNS 主机则次要在停止 master 主机的材料备份,同时也提供 Internet 下面的盘问功用。运用 master/slave 的最大长处在于“单点维护”的才能! 应用修正 master 即可让 slave 的材料同时更新,增加人力的糜费。至于 cache-only 仅停止快取的记录,自身并无材料库文件!
                • 正解文件(forward)反解文件(reverse)与外部回圈运用的文件(loopback)次要的记录功用为:
                  正解档在设定 hostname 对应到 IP 的记录,次要的记录有 A, NS, SOA, MX, CNAME 等等; 反解档次要设定 IP 对应到 Hostname 的记录,次要的记录为 SOA, NS 与 PTR 等。 外部回圈则是 localhost 与 127.0.0.1 的对应啦!
                • 在次要的 DNS 设定档 /etc/named.conf 当中,有一个较为特别的文件,他的范例为 hint ,叨教这个文件的功用为何?
                  这个文件次要是由 rs.internic.net 所下载上去的,次要记载了 root (.) 这个 zone 的 IP !可以让我们的 DNS Server 在找不到材料库时,可以到这个 root 去盘问材料!
                • 在 client 端搜索 HOSTNAME 对应到 IP 的盘问时,最紧张的文件,以及该文件的次要用处为何?
                  /etc/nsswitch.conf :可以用来设定盘问主机称号的次序!比方先盘问 /etc/hosts 再盘问 DNS 零碎;
                  /etc/hosts :最早的称号剖析器;
                  /etc/resolv.conf:这便是 DNS 零碎的 resolver (剖析器)了。
                • 普通来说,在 Client 端运用的盘问 HOSTNAME 的指令大多运用什么?
                  nslookup :可以用来搜集一台主机的相干资讯;
                  dig:可以用来搜集细致的主机资讯;
                  whois :可以用来搜集细致的 DNS 主机资讯。
                  host 则较为复杂喔!
                • 叨教 named 紧张的资讯登录在在谁人文件中?
                  在 /var/log/messages 当中

                大标题的图示参考资源:

                2002/12/10:初次完成
                2003/03/10:修正局部内容,而且新增 LPI 相干性与重点整理局部!
                2003/09/10:修正了局部的版面,并将 slave DNS 的错误修订终了!
                2003/10/08:新增了 lame server 的阐明,与处理之道!
                2004/10/29:新增了 rndckey 的阐明与处理之道!
                2004/10/30:新增了 Master/Slave 的架构设定
                2004/10/31:新增了 静态 DNS 主机的设定
                2005/07/19:添加了 SOA 内五个数字的巨细
                2006/10/17:将之前的旧文章挪动到此处
                2006/10/20:终于~不容易~将一些材料给他修订终了啦!
                2007/06/25:小州大大来信见告 Forwarding 与 cache-only 的引见可以加以修正。曾经处置成为如许

                 
                     
                中国存储网 ChinaStor.com排版整理
                原文作者鸟哥,主页,更多Linux学习材料在线看:Linux零碎办理员手册 - Linux下令大全 - Linux挪用大全- Linux专栏 - 国产Linux