0350dns.htm
来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 1,074 行 · 第 1/5 页
HTM
1,074 行
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head> <meta http-equiv="Content-Type" content="text/html; "> <meta name="Author" content="VBird"> <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]"> <meta name="Description" content="關於 domain name server 的設定方法介紹喔!"> <title>鸟哥的 Linux 私房菜 -- DNS server</title><!-- saved from url=(0022)http://internet.e-mail --><style> <!-- body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED} --></style></head><body nosave="" background="0350dns_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0350dns_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0350dns_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0350dns_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0350dns_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0350dns_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0350dns_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org/linux_server/0350dns.php" target="_self"><font face="SimSun">简易</font><font face="Times New Roman,Times">DNS </font><font face="SimSun">服务器设定</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/10/08</font></div><font size="-2" color="#000099"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">无论任何时刻,主机名称与 IP 对应的查询都是很重要的一环!因为人脑对于数字组成的IP 的记忆实在是.....不怎么样,所以,才会发展出可以经由主机名称(hostname)对应到计算机IP 的一个模式,这样我们就可以轻轻松松的记住主机名称即可,计算机 IP 那就交给Domain Name System 去搞定吧!那个 DNS 系统是由柏克莱大学发展的 bind 这个套件(BerkeleyInternet Name Domain)所提供的啦!基本上,DNS 最大的工作就是将 Hostname对应到 IP 这个功能了,不过,要架设一个成功的 DNS 主机的话,还得要对于 DNS的运作很清楚才行啊!否则架设的不对,还反而会造成大家的问题喔!这个章节当中,要学会的数据其实还蛮多的,需要了解:什么是正解、什么是反解、什么是Zone、客户端(Client) 是经由什么咚咚来查询得到 IP 的呢?!以及 DNS 的授权问题等等,哇!赶快清一清脑门,要好好的用功啰!^_^</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font size="+1" color="#000099"><a href="#theory">原理部分</a>:</font><br><font color="#000099"><font size="+1"> <a href="#Whatisdns">什么是Domain Name System</a></font>:</font><br><font color="#000099"><font size="+1"> <a href="#DNS_search">DNS 的查询过程</a></font>:</font><br><font color="#000099"><font size="+1"> <a href="#DNS_register">关于『授权』的意义</a></font>:</font><br><font color="#000099"><font size="+1"> <a href="#DNS_settingorupper">网站代管还是自己设定DNS</a></font>:</font><br><font color="#000099"><font size="+1"> <a href="#DNS_Zones">正解与反解的Zone 意义</a></font>:</font><br><font size="+1" color="#000099"><a href="#what_software">安装部分</a>:</font><br><font color="#000099"><font size="+1"> <a href="#what_software">架设DNS 所需要的套件</a></font>:</font><br><font size="+1" color="#000099"><a href="#server_settings">设定部分</a>:</font><br><font color="#000099"><font size="+1"> 设定一:<a href="#forwards">单纯的forward DNS 主机设定</a></font>:</font><br><font color="#000099"><font size="+1"> 设定二:<a href="#DNS_settings">DNS主机的详细设定</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#DNS_resolver">Client端的设定</a></font>:</font><br><font color="#000099"> /etc/nsswitch.conf</font><br><font color="#000099"> /etc/hosts</font><br><font color="#000099"> /etc/resolv.conf</font><br><font color="#000099"> 查询指令:host, nslookup, dig, whois</font><br><font size="+1" color="#000099"><a href="#upgrade">进阶设定</a>:</font><br><font color="#000099"> <a href="#sub_net">子网域授权问题</a>:</font><br><font color="#000099"> <a href="#OK_DNS">架设一个合法授权的 DNS主机</a>:</font><br><font color="#000099"> <a href="#Lame_server">LAME Server 的问题</a>:</font><br><font size="+1" color="#000099"><a href="#important">重点回顾</a></font><br><font size="+1" color="#000099"><a href="#lpi">本章与 LPI 的关系</a></font><br><font size="+1" color="#000099"><a href="#reference">参考资源</a>:</font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="theory"></a><font size="+1" color="#000099">原理部分</font><ul>要设定 DNS 之前,必须要了解什么是 FQDN 呢?什么是 Hostname 与对应到IP 的流程呢?还有,为什么要有 DNS 这个系统呢?以及我们常常会提到的『什么是正解、反解啊!』这些都是很基础的咚咚,得要理解得很清楚才行!这个DNS 可以说是架设网站的第一步啦!因为我们总是希望自己的网站容易让人家来记忆嘛!那么总不能叫大家被您的主机所在的IP 吧!您说是吧!因此,申请一个合法的主机名称,或者设定一部经过合法授权的DNS 主机,那可是相当重要的一件事啊!<br> <br><hr width="100%"><a name="Whatisdns"></a><font size="+1" color="#000099">什么是Domain Name System:</font><br> <br>DNS 的全名是『 <font color="#000066">Domain name system </font>』是也,中文译名为『<font color="#000066">领域名称系统</font>』,这个咚咚的用途是什么哇!为什么我们的计算机或者是Internet 一定需要他 ( 尤其是以 WWW 的方式来上网时 ) ?呵呵!他最大的用途就是『<b><font color="#000066">造福懒惰与记忆性薄弱的人类</font><font color="#3333ff">~</font></b>』哈哈!没错!为什么说他是造福人类呢?且听我娓娓道来:<br> <ul><li><b><font color="#000099">/etc/hosts 的历史:</font></b></li><br>还记得我们在前几章当中提过的 <a href="http://linux.vbird.org/linux_server/0110network_basic.php">网络基础</a>里面吧?目前在 Internet 上面通用的通讯协议为 TCP/IP ,那么数据传送是以TCP 封包来传送,他还是建置在 IP 协议之上的,而众所皆知的, IP 是由四组8 bit 的数字组成的,也就是类似『<font color="#000066" face="SimSun">xxx.yyy.zzz.www</font> 』这样的型态,好啦,那么如果我们要连上某一部计算机,就要在网址列输入该计算机主机的IP 才能连接的上,如果是一部或两部计算机那还无所谓,如果像目前这种 Internet的主机数目.....嘿!谁记得住这么多的 IP 呀!?由于 IP 是一堆数字所组成的,实在不容易被懒惰与记忆性薄弱的人类所接受( 说的是鸟哥自己 ....) ,那如果将这些数字以『名字』来取代呢?那又如何?也就是说,<b><font color="#000066">只要输入一个『计算机的名字』而我们的系统就会自动的将这个名字转成计算机了解的IP !</font></b>嘿嘿!如此一来,我要记得『名字』总是比 IP 容易的多了!早期的人类早就想到这个简单又偷懒的方式了,那就是<b><font color="#000066">/etc/hosts</font> </b>这个档案的由来!例如,只要您输入『 <font color="#000066" face="SimSun">ping-c 5 localhost</font> 』您的 Linux 马上可以印出 127.0.0.1 这个 IP, Why ?您去看一下 <a href="http://linux.vbird.org/linux_server/0130internet_connect.php#etc_hosts">/etc/hosts</a>就知道为什么了!所以啰,只要将您常常上网的『网址对应的 IP 』写到这个 /etc/hosts底下,您的 IP 搜寻速度就会快上很多~(<i>注:再次强调,在您的私有网域内部,最好将所有的IP 都写入这个档案中啦!</i>)<br> <li><b><font color="#000099">DNS 的历史:</font></b></li><br>早期(大约20~30年前)的计算机可是贵重物资,一般人是可望而不可及的,因为计算机数量太少,所以可以使用/etc/hosts 来记忆这些 IP 与名称的对应。但是在现代, Internet 上面这么多主机,并且常常会突然的『噗通』又多出一部主机来服务,那么我们总不能一个一个的将他输入在/etc/hosts 里面吧!?对呀!真不聪明!所以后来的这个时候就有所谓的『<font color="#000066">领域名称解析系统,DNS</font>』出现啦!DNS 利用类似树状目录的型态,将主机名称的管理分配在不同层级的DNS 主机当中,经由分层管理,所以每一部主机的记忆的信息就不会很多,而且异动上面也相当的容易修改!那么这个DNS 的功能您知道了吗?对啦!就是『<b><font color="#000066">将计算机主机的名称转译成IP </font></b>』就是了!当然啰,他的额外功能还很多!总之,他的最大功能就是『<font color="#000066">让有意义的,人类较容易记忆的主机名称(英文字母),转译成为计算机所熟悉的IP 地址!</font>』举个例子来说好了,奇摩雅虎的网站的 IP 是 202.1.237.21,所以您可以在您的浏览器上面输入『 http://202.1.237.21 』来连上奇摩雅虎!不过,我想没有几个人能够将这个IP 背的起来的吧?!反之,我们却都知道奇摩雅虎的网址为 tw.yahoo.com ,那么您只要输入『http://tw.yahoo.com 』就可以连上 Internet 啦!很容易记忆吧!<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffff00">/etc/hosts</font><font color="#ffffff"> :直接在档案内输入主机名称对应的 IP 来查询;</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">DNS 系统   </font><font color="#ffffff">:在 Client 端以 resolver 的方式到 DNS 主机上面搜寻 IP 与名称的对应!</font></font></td></tr></tbody></table> <li><b><font color="#000099">Fully Qualified Domain Name ( FQDN )</font></b></li><br>在提到名称与 IP 的解析之前,我们还必需来讨论一下『<font color="#000066">什么是domain name 与 host name</font> ?』也就是,领域名称与主机名称。在讨论这个主题之前,我们来聊一聊比较生活化的话题,请注意喔!底下的例子不涉及政治!呵呵!先提一下,免得大家敏感:</ul> <ul><ul><li>我们晓得全台湾有很多个『李登辉』,这个『李登辉』就代表每一个独立的个人!但是您怎么知道这个李登辉跟前总统李登辉是否为同一个人?咦!每个李登辉都来自不同的县市嘛!对啦,所以我们就以县市来做为区分,所以有台北的李登辉跟高雄的李登辉,这两个就可以分辨了!嗄!万一不幸,台北还有两个李登辉怎么办?那就用乡镇来分呀!所以有台北、三芝的李登辉跟台北、仁爱的李登辉,如果我们将他列出来,可以这样看:</li><table bgcolor="#000000" border="1" cols="1" width="400"><tbody><tr><td><font size="-1" color="#ffffff" face="SimSun">李登辉、三芝、台北</font><br><font size="-1" color="#ffffff" face="SimSun">李登辉、仁爱、台北</font><br><font size="-1" color="#ffffff" face="SimSun">李登辉、高雄</font><br><font size="-1" color="#ffffff" face="SimSun">....</font></td></tr></tbody></table>是否就可以分辨他的不同点了呢?呵呵!没错!就是这样!</ul> <ul><li>另外一个例子可以使用电话号码来看,假如高雄有个 1234567 而台南也有个 1234567,那么(1)您在高雄直接拨接 1234567 时,他会直接挂入高雄的 1234567 电话中,(2)但如果您要拨到台南去,就得加入(06)这个区码才行!我们就是使用区码来做为辨识之用的!</li></ul></ul> <ul>是否还不清楚我要说什么?呵呵!我们常常会发现主机名称都是 www 的网站,例如www.gov.tw, www.seednet.net, www.hinet.net 等等,那么我们怎么知道这些 www名称的主机在不同的地方呢?就需要给他领域名称啰!也就是 gov.tw, seednet.net,hinet.net 等等的不同,所以即使您的主机名称相同,但是只要不是在同一个领域内,那么就可以被接受啰!基本上,我们知道DNS 是有层级之分的,那么每个层级的 Hostname 与 Domain name 可是不一样的咚咚ㄋㄟ~我们可以使用我们的主机来加以说明,如下图所示:</ul></ul><center><img src="0350dns_files/0350dns-1.jpg" nosave="" height="435" width="642"><br><a name="fig_01"></a><font color="#000066">图一、分层次的 DNS 架构( Hostname 与 Domain name )</font></center><ul>在上面的例子当中,第二层里面,那个 .tw 是 domain name ,而 com, edu,gov 则是主机的名称,而在这个主机的名称之管理下,还有其它更小网域的主机,所以在第三层的时候,基本上,那个edu.tw 就变成了 domain name 了!而成大与中山的 ncku, nsysu 则成为了 hostname啰!呵呵!以此类推,最后得到我们的主机那个 aerosol 是主机名称,而 domainname 是由 ev.ncku.edu.tw 那个名字所决定的!自然,我们的主机就是让管理 ev.ncku.edu.tw这个 domain name 的 DNS 主机所管理的啰!这样是否了解了 domain name 与 hostname的不同了呢?<br> <br><hr width="100%"><a name="DNS_search"></a><font size="+1" color="#000099">DNS的查询过程:</font><br><font size="+1" color="#000099"> </font><br>接下来我们要谈一谈,那么 DNS 的 (1)架构是怎样? (2)查询原理是怎样?总是要先知道架构才能知道如何查询的吶!所以底下我们先来介绍一下整体的架构。<br> <ul><li><b><font color="#000066">DNS 的架构:</font></b></li></ul></ul><center><img src="0350dns_files/0350dns-2.jpg" nosave="" height="417" width="630"><br><a name="fig_02"></a><font color="#000066">图二、DNS 层阶概念示意图</font></center><ul><ul>上面就是一个简单的 DNS 阶层架构啰,<b><font color="#000066">最上方一定是. 这个 root 的 DNS 主机,</font></b>他底下管理的就只有 com, edu, gov, mil,org 与以国家为分类的第二层的主机名称了!例如台湾地区最上层的领域名称是以.tw 为开头,管理这个领域名称的这部机器的 IP 是在台湾,但是他的记录则是记录在. (root)那部机器里面的!还有其它的国家的最上层如 .cn 指的是大陆,.de 指的是德国一样!那么每个国家之下记录的主要的下层有哪些领域呢?呵呵!主要就是有这六大类:<br> <table border="1" width="500"><tbody><tr><td bgcolor="#ffcccc" width="200"><center>名称</center>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?