田明山

摘 要:有關Linux操作系統下的DNS服務器配置的文章很多,但缺乏系統的、全面的、詳實的講解,本文以配合實例的介紹方法從最基本的DNS配置講起,并深入分析最新的DNS配置技術,同時介紹不同版本Linux的DNS配置的差別。
關鍵詞:Linux操作系統;DNS配置
1 DNS簡介
DNS是域名系統的縮寫,可實現IP地址與域名的轉換,能夠使人更方便的訪問互聯網。Linux環境下實現DNS服務器配置通常是使用Bind來實現的。Bind(Berkeley Internet Name Domain Service)是Linux環境中實現DNS服務的開放源碼軟件。目前因特網上大多數的DNS服務都是用Bind來構建的。
DNS服務器可以配置成以下3類:⑴主DNS服務器:一個區域內只能有一個主服務器。⑵輔DNS服務器:從主服務器定期下載整個區域數據庫,并保存一個該區域的副本,也叫備份服務器,可以有多個。⑶緩存專用服務器:對任何區域沒有授權,處理本地請求,跟蹤應答并把應答保存到緩存里,只能從緩存里直接響應DNS查詢請求,其他的請求被轉發到一個授權服務器那里。
2 DNS快速上手配置
本文的配置環境預設為CENTOS6.4,主配置文件是named.conf,其路徑為/etc/(早期版本的LINUX中,named.conf的路徑為/etc/named/),區域配置文件name.rfc1912.zones包含于named.conf中,其路徑也在/etc/,在其最后添加
Zone ”mytest.com” IN { type master;file ”mytest.com. zone”; allow-transfer{ none; }; };
再進入/var/named/目錄下,創建:mytest.com.zone,其內容為”www IN A 192.168.0.8”,開啟named進程,即可將www.mytest.com解析至192.168.0.8。
【實例】要添加一個域名為“center.mytest.com”,IP地址為192.168.16.177;域名“mail.mytest.com”,IP地址為192.168.16.179則可在hosts文件中添加如下記錄。
【步驟1】設置主區域,編輯/etc/name.rfc1912.zones,添加如下代碼。
zone “mytest.com" IN{ //主區域名稱為mytest.com
type master; //設置區域的類型為master
file “mytest.com.zone”; //設置主區域文件的名稱為mytest.com.zone
【步驟2】DNS服務器的區域數據文件一般存放在/var/named/目錄下,創建/var/named/mytest.com.zone文件,完成以下配置。
center IN A 192.168.16.177 //設置主機地址A資源記錄
mail IN MX 10 192.168.16.179 //設置郵件交換器MX資源記錄
反向解析略。
3 DNS高級配置(bind9以上版本acl、view的使用)
許多公司希望DNS對于內網訪問和外網(Internet)訪問看起來不一樣,這種類型的配置稱為“分離DNS(Split DNS)”,在bind9以上版本中,可以利用acl和view的配合實現。
ACL(訪問控制列表):命名的地址匹配列表。使用訪問控制列表可以讓配置文件看起來簡單而又清晰,眾多的地址列表可以轉換為有意義的列表名,定義一次可以多處使用,同時也不會使配置文件因為使用大量的IP地址而變得不易讀。
ACL語句可以在DNS的主配置文件/etc/named.conf中實現。acl語句的語法為:acl nameofacl { address _list;};
BIND程序中默認定義了4個常用的名稱地址匹配列表,他們可以被使用者直接使用,分別是any:所有主機;localhost:本地主機;localnets:本地網絡上的所有主機;none:不適用任何主機。
注:acl是DNS主配置文件named.conf中的最頂級語句,不能將其寫入其他的語句中,通常在配置文件的最開始就進行acl的定制。
在BIND 9及以上版本中可以使用view語句進行分離DNS的配置。view語句的語法如下:
view nameofview { match-hosts { address_list };
[ view_option; ...]
zone_statement; ...};
其中:match- hosts子句非常重要,它用于標識誰能看到本view,address_list可以利用ACL語句來定義。
需要注意的是,在使用了view語句后,所有的zone語句必須被包含在view語句中,否則將會報錯;同時,配置內網的view應該置于外網的view之前。
[參考文獻]
[1]葛慧娟.《基于LINUX操作系統的DNS服務器配置》.西安電子科技大學.
[2]余金棟.《基于VMware的DNS服務器仿真實驗平臺的設計及實現》.數字技術與應用.