【IT168 服务器学院】简易 DNS 服务器设定
学习本章的必备技巧:
欢迎再次来到鸟哥的『碎碎念时间』!在这个章节当中,我们要介绍的是领域名称系统 ( DNS ) 服务器的简单运作原理、简易设定参数、检测方法以及相关的讯息说明!所以啰,您最好务必具备底下的基本知识:
· 认识 vi
· 认识 BASH Shell
· 认识服务
· 网络基础
· 常用的网络指令
· 认识网络安全
· 简易防火墙架设
无论如何,将前面关于 Linux 基础与 网络基础 的内容看完,会是很好的一件事情!
什么是 Domain Name System:
DNS 的全名是『 Domain name system 』是也,中文译名为『领域名称系统』,这个咚咚的用途是什么哇!为什么我们的计算机或者是 Internet 一定需要他 ( 尤其是以 WWW 的方式来上网时 ) ?呵呵!他最大的用途就是『造福懒惰与记忆性薄弱的人类~』哈哈!没错!为什么说他是造福人类呢?且听我娓娓道来:
· /etc/hosts 的历史:
还记得我们在 网络基础 里面提过的吧?目前在 Internet 上面通用的通讯协议为 TCP/IP ,那么资料传送是以 TCP 封包来传送,他还是建置在 IP 协议之上的,而众所皆知的, IP 是由四组 8 bit 的号码组成的,也就是类似『 xxx.yyy.zzz.www 』这样的型态,好啦,那么如果我们要连上某一部计算机,就要在网址列输入该计算机主机的 IP 才能连接的上,如果是一部或两部计算机那还无所谓,如果像目前这种 Internet 的主机数目.....嘿!谁记得住这么多的 IP 呀!?由于 IP 是一堆没有意义的数字所组成的,实在不容易被懒惰与记忆性薄弱的人类所接受 ( 说的是鸟哥自己 ....) ,那如果将这些数字以『名字』来取代呢?那又如何?也就是说,只要输入一个『计算机的名字』而我们的系统就会自动的将这个名字转成计算机了解的 IP !嘿嘿!如此一来,我要记得『名字』总是比 IP 容易的多了!早期的人类早就想到这个简单又偷懒的方式了,那就是 /etc/hosts 这个档案的由来!例如,只要你输入『 ping -c 5 localhost 』你的 Linux 马上可以印出 127.0.0.1 这个 IP , Why ?你去看一下 /etc/hosts 就知道为什么了!所以啰,只要将你常常上网的『网址对应的 IP 』写到这个 /etc/hosts 底下,你的 IP 搜寻速度就会快上很多~(注:再次强调,在你的私有网域内部,最好将所有的 IP 都写入这个档案中啦!)
· DNS 的历史:
早期(大约20~30年前)的计算机可是贵重物资,一般人是可望而不可及的,因为计算机数量太少,所以可以使用 /etc/hosts 来记忆这些 IP 与名称的对应。但是在现代, Internet 上面这么多主机,并且常常会突然的『噗通』又多出一部主机来服务,那么我们总不能一个一个的将他输入在 /etc/hosts 里面吧!?对呀!真不聪明!所以后来的这个时候就有所谓的『领域名称解析系统, DNS』出现啦!DNS 利用类似树状目录的型态,将主机名称的管理分配在不同层级的 DNS 主机当中,经由分层管理,所以每一部主机的记忆的信息就不会很多,而且异动上面也相当的容易修改!那么这个 DNS 的功能你知道了吗?对啦!就是『将计算机主机的名称转译成 IP 』就是了!当然啰,他的额外功能还很多!总之,他的最大功能就是『让有意义的,人类较容易记忆的主机名称(英文字母),转译成为计算机所熟悉的 IP 地址!』举个例子来说好了,奇摩雅虎的网站的 IP 是 202.1.237.21 ,所以你可以在你的浏览器上面输入『 http://202.1.237.21 』来连上奇摩雅虎!不过,我想没有几个人能够将这个 IP 背的起来的吧?!反之,我们却都知道奇摩雅虎的网址为 tw.yahoo.com ,那么你只要输入『 http://tw.yahoo.com 』就可以连上 Internet 啦!很容易记忆吧!
![]() |
· Fully Qualified Domain Name ( FQDN )
在提到名称与 IP 的解析之前,我们还必需来讨论一下『什么是 domain name 与 host name ?』也就是,领域名称与主机名称。在讨论这个主题之前,我们来聊一聊比较生活化的话题,请注意喔!底下的例子不涉及政治!呵呵!先提一下,免得大家敏感:
o 我们晓得全台湾有很多个『小强』,这个『小强』就代表每一个独立的个人!但是你怎么知道这个小强跟前小强是否为同一个人?咦!每个小强都来自不同的县市嘛!对啦,所以我们就以县市来做为区分,所以有台北的小强跟高雄的小强,这两个就可以分辨了!嗄!万一不幸,台北还有两个小强怎么办?那就用乡镇来分呀!所以有台北、三芝的小强跟台北、仁爱的小强,如果我们将他列出来,可以这样看:
![]() |
是否就可以分辨他的不同点了呢?呵呵!没错!就是这样!
o 另外一个例子可以使用电话来看,假如高雄有个 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 可是不一样的咚咚ㄋㄟ~我们可以使用我们的主机来加以说明,如下图所示:
![]() |
在上面的例子当中,第二层里面,那个 .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 的不同了呢?
