这是来自鸟哥的 Linux 私房菜(http://vbird.dic.ksu.edu.tw/)请大家不要再次转载
DNS 服务器
我们知道计算机网络系统只认识所谓的 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.php?p=115692
本章的行前准备工作
人类的脑袋对于数字毕竟不比文字来的敏感,偏偏计算机的世界仅认识 0/1 而已。 为了将两者兜在一起于是有了主机名与 IP 的对应啊~而这个对应的协定就是 DNS 了。 学习 DNS 你必需要对网络有一定的概念,尤其是主机名的说明喔!
了解网络基础,防火墙与关闭 SELinux 模块等等。
? 由于你可能会手动修改 /etc/init.d/named ,所以 shell script 也要了解!
?
什么是 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 的方式来上网时) ?呵呵! 他最大的用途就是『造福懒惰与记忆性薄弱的人类~』 哈哈!没错!为什么说他是造福人类呢?且听鸟哥娓娓道来:
? /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 都写入这个档案中啦!
? 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 ? Fully Qualified Domain Name ( FQDN ) 在提到名称与 IP 的解析流程之前,我们还必需来讨论一下『什么是 domain name 与 host name?』也就是领域名与主机名。 在讨论这个主题之前,我们来聊一聊比较生活化的话题:
?
网络世界其实有很多人自称为『鸟哥』的,包括敝人在下小生我啦!那么你怎么知道此鸟哥非彼鸟哥呢? 这个时候你可以利用每个鸟哥的所在地来作为区分啊,比如说台南的鸟哥与台北的鸟哥等。 那万一台南还有两个人自称鸟哥怎么办?没关系,你还可以依照乡镇来区分呢!比如说台南北区的鸟哥及台南中区的鸟哥。 如果将这个咚咚列出来,就有点像这样:
鸟哥、北区、台南 鸟哥、中区、台南 鸟哥、台北 ......
相关推荐: