■北京 趙琳
DNS 即Domain Name System(域 名系統)的縮寫,它是一種將IP 地址轉換成對應的主機名或將主機名轉換成與之相對應IP 地址的一種機制。

圖1 修改主配置文件
通過局域網內DNS服務器的搭建,讓局域網內所有用戶的DNS 服務器地址都指向到這臺服務器上,通過這個本地的DNS 服務器來進行解析,代替常用的DNS 服務器。
通過自定義自己內部的域名,局域網內所有用戶可以使用域名來訪問局域網內的服務器,這樣局域網內的辦公系統、網站等等,都可以直接輸入網址進行訪問。

在安裝完BIND 后,系統會多一個用戶named。





對于BIND 服務,需要配置的主要文件為/etc/named.conf。另外兩個文件,/etc/named.isc-dlv.key保存加密用,/etc/named.rfc1912.zones 擴展配置文件。
在修改之前必須先進行備份,命令:cp -p/etc/named.conf /etc/named.conf.bak
備份命令中,參數-p 表示備份文件與源文件的屬性一致。
vim/etc/named.conf修改文件。
常用主配置文件參數簡介(options 塊):
(1)listen-on port:指定DNS 監聽的端口和地址。如果監聽在本機的所有地址,可以用any,如listen-on port 53 {172.17.100.1;}。
(2)listen-on-v6 port:指定DNS 監聽的IPV6 地址和端口,如listen-on-v6 port 53 {::1;}。
(3)directory:指定區域數據文件所在的路徑。默認為"/var/named"。如果使用了chroot,則該路徑為相對路徑,為/var/named/chroot/var/named。
(4)query-source port:指定DNS 客戶端在查詢時必須使用的源端口。該參數通常不設置。
(5)allow-query:允許哪些客戶端進行查詢,如果沒有定義此選項,則表示允許所有的客戶端提交的DNS 查詢請求。如:allowquery {172.17.100.200;1 72.17.100.210;};則表示僅允許172.17.100.200 和172.17.100.210 這兩個客戶端提交的DNS 查詢請求。allow-query 由外向內。通常都是使用any 參數,允許所有的客戶端查詢。
(6)allow-recursion:允許哪些客戶端執行遞歸查詢。如果該DNS 服務器不對外開放,即不允許互聯網的用戶執行查詢時,則開啟該選項。與allow-query 不同的是,不執行客戶端提交的遞歸查詢。allow-query允許迭代查詢和遞歸查詢。allow-recursion 由內向外,通常需要放行本地網段和127.0.0.0/8 的。
(7)recursion yes:默認為yes,表示給所有的客戶端執行遞歸。這樣就成為一個開放的DNS 服務器。
(8)forwarders:指定轉發服務器。如果定義了多個轉發服務器,則依次進行嘗試,直到獲得查詢信息為止。本地DNS 服務器會將查詢請求轉發到轉發服務器。如果該項目設置在區域定義之外的話,是對所有非本地區域的解析都轉發到指定的DNS服務器;如果定義在某個區域內,則是將對該區域的解析轉發到指定服務器。
(9)forward only|first:only 表示只將查詢請求轉發到所定義的轉發服務器,不通過本機查詢。first 表示先將查詢轉發到所定義的轉發服務器,如果沒有響應,則通過本機進行迭代查詢。默認為first。
(10)querylog:yes 啟用查詢日志記錄功能,no 關閉查詢日志記錄功能。
(11)allow-transfer:允許哪些slave DNS 服務器進行區域傳輸。
(12)recursion:選項指定是否允許客戶端遞歸查詢其他域名服務器。如果希望對本地客戶端的查詢允許遞歸,但對來自外部的查詢請求禁止遞歸,可以通過“allow-recursion”選項進行定義。allow-recursion選項可以指定一個允許執行遞歸查詢操作的地址列表。

圖2 使用命令進行配置
(13)transfersource x.x.x.x:指定slave 在向master 進行區域傳輸時所使用的源地址。
(14)notify:是否啟用notify 功能。yes 表示當Master 端數據修改時,通知Slave 進行區域傳輸,no 表示不通知slave。
(15)allow-update:是否允許通過DHCP 獲取IP 地址的機器動態更新DNS 信息,none 表示不允許。
(16)dnssec-enable:設定BIND 是否支持DNSSEC,該技術并不對數據進行加密,它只是驗證所訪問的站點地址是否有效,是一種端到端的安全協議,默認為yes,在做子域授權時,需要設置為no。
(17)dnssec-validatio n:默認為yes,在做子域授權時,需要設置為no。

修改內容示例如下:


添加正向解析域cise.sdkd.net.cn;DNS 服務類型,默認為master 即主服務器;其對應的域解析文件是由file 指定的master.cise.sdkd.net.cn.zone

添加反向解析域163.168.192.in-addr.arpa;DNS 服務類型,默認為master 即主服務器。
其對應的域解析文件是由file 指定的163.168.192.in-addr.arpa.zone。
備注:Bind 可以使用的區域類型及其說明如下:
master:主DNS區域。擁有該區域的區域數據文件,對該區域提供管理。
slave:從DNS 區域。擁有master 區域的區域數據文件的只讀副本,slave 區域從master 區域獲取所有的數據,這個過程稱為區域傳輸。
forward:轉發區域。用于轉發DNS 客戶端的查詢。
stub:存根區域。和slave 區域類似,但是只復制master 區域的NS 記錄和NS記錄對應的A 記錄。
hint:提示區域,定義根所在的位置,用于查找根DNS服務器的位置。
可以將模板文件復制一份,再進行修改。
使用命令cp -p/var/named/named.localhost /var/named/master.cise.sdkd.net.cn.zone
進入cise.sdkd.net.cn.zone 進行配置,如圖2所示。
SOA 是 Start Of Authority(開始驗證)的意思,與域有關,后面共會接7個參數,這7 個參數的意義依次是:
(1)Master DNS 服務器主機名,即在這個域中哪個DNS 作為主服務器。
(2)管理員的Email。即出現問題可給管理員發郵件。
(3)序號。這個序號代表這個數據庫檔案的陳舊,序號越大,代表越新。當slave 要判斷是否主動下載新的數據庫時,就以序號是否比slave 上的還有新來判斷。
(4)刷新頻率(Refresh)。即slave 向master 要求數據更新的頻率。
(5)失敗重新嘗試時間(Retry)。如果因為某些因素,導致slave 無法對master 達成聯機,那么在多久的時間內,slave 會嘗試重新聯機到master。
(6)失效時間(Expire)。如果一直失敗嘗試時間,持續聯機到達這個設定值時限,那么slave 將不再繼續嘗試聯機。
(7)存活時間(Minimum TTL)。如果在這個數據庫zone file 中,每筆記錄都沒有顯性設定TTL 存活時間的話,那么就以這個值為主。
備注:區域配置文件格式為:[名稱][TTL][網絡類型]資源記錄類型 數據
名稱:指定資源記錄引用的對象名,可以是主機名,也可以是域名。對象名可以是相對名稱也可以是完整名稱。完整名稱必須以點結尾。如果連續的幾條資源記錄類型是同一個對象名,則第一條資源記錄后的資源記錄可以省略對象名。相對名稱表示相對與當前域名來說的,如當前域名為cise.sdkd.net.cn,則表示www 主機時,完整名稱為www.cise.sdkd.net.cn.,相對名稱為www。
TTL:指定資源記錄存在緩存中的時間,單位為秒。如果該字段省略,則使用在文件開始出的$TTL 所定義的時間。
網絡類型:常用的為IN。
資源記錄類型:常用的有SOA、NS、A、PTR、MX、CNAM E。
在定義資源記錄時,一般情況下是SOA 記錄為第一行,NS 記錄第二行,接著是MX 記錄,其他的記錄可以隨便寫。
;:表示注釋。
():允許數據跨行。通常用于SOA 記錄。
@:表示當前域。根據主配置文件zone 中所定義的區域名稱。
*:用于名稱字段的通配符。
$ORIGIN:ORIGIN 后面跟上的是字符串,即要補全的內容。
這樣,如果黑客攻破了服務器,進入到的就是在偽根目錄下,不會危害到真正的根目錄,這是一個安全措施。
偽根目錄:/var/named/chroot/etc/named.conf
在這個目錄下,會產生完整的BIND 服務的結構,進到這個目錄下,會發現里面基本沒有文件,只有目錄文件夾,此時需要將真實的根目錄下BIND 的配置文件和一些需要的文件都復制一份到這個偽根下,或創建基礎文件,并給予相應權限:


如果是一個比較大的局域網,一臺主DNS 服務器顯然是不夠用的,此時就可以部署一臺或多臺從服務器來進行冗余備份。
從服務器的搭建,前面與主服務器的相同,只是配置文件不同,因為從服務器不能自己修改域配置,所有的域配置信息都是從主服務器上拉取過來的。


其他的與主服務器相同,正常啟動服務就可以了,然后可以去salve/目錄下查看是否正常拉取了主服務器的配置文件。
DNS 緩存服務器通過向局域網用戶提供DNS 解析服務,來減少對外網DNS 服務器訪問的流量和時間。
DNS 緩存服務器所有的安裝步驟都和主服務器相同。只在配置文件上不一樣。緩存服務器只要不自己設置任何的域配置文件,則可以正常作為一個遞歸的DNS 服務器,緩存網絡上的DNS 信息供局域網用戶使用,從而加快響應速度。

forwarders {114.114.1 14.114;};# 添加DNS 代理查詢地址,即本地找不到緩存就去這個地址查找。