<b> </b>
<b>《linux</b><b>網絡服務</b><b>》</b>
<b>第三章</b><b>建構域名伺服器</b>
一. <b>DNS</b><b>系統概述</b>
1. <b>DNS</b><b>系統的作用</b>
a. <b>正向解析:根據主機名稱(域名)查找對應的</b><b>IP</b><b>位址</b>
b. <b>反向解析:根據</b><b>IP</b><b>位址查找對應的主機域名</b>
2. <b>DNS</b><b>系統的分布式資料結構</b>
3. <b>DNS</b><b>查詢方式:</b>
a. <b>遞歸查詢</b>
大多數客戶機向DNS伺服器解析域名的方式
b. <b>疊代查詢</b>
大多數DNS伺服器向其他DNS伺服器解析域名的方式
二. <b>DNS</b><b>伺服器的類型(角色)</b>
1. <b>緩存域名伺服器</b>
a. <b>也稱為</b><b>唯高速緩存伺服器</b>
b. <b>通過向其他域名伺服器查詢獲得域名</b><b>->IP</b><b>位址記錄</b>
c. <b>将域名查詢結果緩存到本地,提高重複查詢時的速度</b>
2. <b>主域名伺服器</b>
a. <b>特定</b><b>DNS</b><b>區域的官方伺服器,具有唯一性</b>
b. <b>負責維護該區域内所有域名</b><b>->IP</b><b>位址的映射記錄</b>
3. <b>從域名伺服器</b>
a. <b>也稱為</b><b>輔助域名伺服器</b>
b. <b>其維護的</b><b>域名</b><b>->IP</b><b>位址記錄</b><b>來源于主域名伺服器</b>
三. <b>BIND</b><b>域名服務基礎</b>
1. <b>BIND</b><b>(</b><b>Berkeley Internet Name Daemon</b><b>)</b>
<b>伯克利</b><b>Internet</b><b>域名服務</b>
<b>官方站點:</b><b>https://www.isc.org/</b>
2. <b>相關軟體包</b>
<b>bind-9.3.3-7.el5.i386.rpm </b><b>主程式包</b>
<b>bind-utils-9.3.3-7.el5.i386.rpm </b><b>工具</b>
<b>bind-chroot-9.3.3-7.el5.i386.rpm </b><b>安全牢籠</b><b>(</b><b>僞裝根目錄</b><b>)</b>
<b>caching-nameserver-9.3.3-7.el5.i386.rpm </b><b>模闆</b>
3. <b>BIND</b><b>伺服器端程式</b>
<b>主要執行程式:</b><b>/usr/sbin/named</b>
<b>服務腳本:</b><b>/etc/init.d/named</b>
<b>預設監聽端口:</b><b>53</b>
<b>主配置檔案:</b><b>/var/named/chroot/</b>etc/named.conf
<b>儲存</b><b>DNS</b><b>解析記錄的資料檔案位于:</b>
<b>/var/named/chroot/</b>var/named/
注意: named預設監聽TCP、UDP協定的53端口,以及TCP的953端口:
其中UDP 53端口一般對所有客戶機開放,以提供解析服務;
TCP 53端口一般隻對特定從域名伺服器開放,提高解析記錄傳輸通道;
TCP 953端口預設隻對本機(127.0.0.1)開放,用于為rndc遠端管理工具提供控制通道
如果沒有安裝bind-chroot軟體包,則主配置檔案預設位于 /etc/named.conf,資料檔案預設儲存在 /var/named/ 目錄
四. <b>主配置檔案</b><b>named.conf</b>
<b>全局配置部分</b>
<b>options {</b>
<b> listen-on port 53 { 173.16.16.1; };</b><b>監聽端口号</b>
<b> directory "/var/named";</b>
<b> allow-query { 192.168.1.0/24; 173.16.16.0/24; };</b><b>允許查詢的客戶機位址</b>
<b> recursion yes;</b><b>是否允許為客戶機進行遞歸查詢</b>
<b>};</b>
<b>根區域配置部分</b>
<b>zone "." IN { </b><b>定義根區域</b>
<b> type hint;</b><b>hint</b><b>表示根區域</b><b>;master</b><b>表示主區域</b><b>;slave</b><b>輔助區域</b><b> </b>
<b> file "named.ca"; file </b><b>用于設定</b><b>該區域對應的資料檔案名</b>
<b>自己定義的區域配置部分</b>
<b>zone "benet.com" IN { benet</b><b>域名的正向區域</b>
<b> type master; </b><b>主</b><b>dns</b>
<b> file "benet.com.zone"; </b><b>正向區域的配置檔案名字</b>
<b> allow-transfer { 173.16.16.2; };</b><b>允許下載下傳該區域解析記錄的從域名服務的位址</b>
<b> allow-update { none; }; </b><b>允許動态更新哪些客戶機位址,</b><b>none </b><b>表示全部禁止</b>
<b>zone "16.16.173.in-addr.arpa" IN {benet</b><b>域名的反向區域</b>
<b> type master; </b><b>主</b><b>dns </b>
<b> file "173.16.16.arpa"; </b><b>反向區域配置檔案</b>
五. <b>區域資料配置檔案</b>
1)正向區域檔案内容
<b>$TTL 86400 ; </b><b>有效位址解析記錄的預設緩存時間</b>
<b>@ IN SOA benet.com. admin.benet.com. (</b>
<b> 2009021901 ;</b><b>更新序列号</b>
<b> 3H ;</b><b>重新整理時間</b>
<b> 15M ;</b><b>重試延時</b>
<b> 1W ;</b><b>失效時間</b>
<b> 1D ;</b><b>無效位址解析記錄的預設緩存時間</b>
<b>)</b>
<b>@ IN NS ns1.benet.com.</b><b>指定誰是域名伺服器</b>
<b> IN MX 10 mail.benet.com.</b><b>指定郵件解析記錄</b>
<b>ns1 IN A 173.16.16.1</b>
<b>mail IN A 173.16.16.1</b>
<b>www IN A 173.16.16.1</b>
<b>ftp IN CNAME www</b><b>别名記錄</b>
2)反向區域檔案内容
把A記錄換為PTR記錄,别的内容保持不變
<b>1 IN PTR www.benet.com. </b>
<b>4 IN PTR study.benet.com. 4</b><b>表示最後一位</b><b>ip</b>
六. <b>區域資料檔案的幾個特殊應用</b>
1. <b>基于域名解析的負載均衡</b>
<b>同一域名對應到多個</b><b>IP</b><b>位址</b>
<b> </b><b>例如有一個網站是</b><b>movie.benet.com</b>
<b> movie IN A 173.16.16.11</b>
<b>movie IN A 173.16.16.12</b>
<b>movie IN A 173.16.16.13</b>
2. <b>泛域名解析</b>
<b>找不到精确對應的</b><b>A</b><b>記錄時,使用“</b><b>*</b><b>”進行比對</b>
<b>* IN A 173.16.16.173</b>
3. 子域授權
<b>cn IN A 173.16.16.2</b>
<b> IN NS ns.jv.net.cn.</b>
<b>ns.jv.net.cn. IN A 173.16.16.2</b>
七. <b>對配置檔案進行文法檢查</b>
<b>1. named-checkconf</b><b>工具</b>
<b>named-checkconf named.conf</b>
<b>2. </b><b>named-checkzone</b><b>工具</b><b> </b><b>後面加域名</b><b> </b><b>然後是正</b><b>/</b><b>反向檔案</b>
<b>例如</b><b>:named-checkzone benet.com benet.com.zone</b>
<b>八</b><b>.</b><b>在</b><b>dns</b><b>的主配檔案當中</b><b>,</b><b>可以用</b><b>”#”,”//”,</b><b>或者</b><b>”/*……*/”</b>
<b> </b><b>但區域檔案當中</b><b>,</b><b>隻能以</b><b>”;”</b><b>來表示注釋</b><b>. </b><b>切記</b><b>!!!!</b>
<b>補充:下面的的指令可以更新根區域配置檔案</b>
dig @a.root-servers.net ns > /var/named/chroot/var/named/named.ca