Linux DNS服务详解——DNS实战配置
今天繼續給大家介紹Linux基礎知識,本文主要內容是DNS的實戰配置。
一、DNS安裝與配置文件
如果采用YUM的安裝方式,DNS設計到三個包,相關命令如下:
yum install -y bind bind-chroot bind-utilsbind是DNS的服務端軟件,其中bind的英文全稱是Berkeley Internet Name Domain,即伯克利因特網域名,bind-chroot是DNS的補充軟件,主要實現了牢籠機制,所謂牢籠機制就是創建一個目錄,作為DNS服務的根目錄,以防止當DNS服務被攻擊后波及系統安全,bind-utils是DNS的客戶端軟件,主要是包含了nslookup等命令。
對于DNS客戶端而言,配置文件在/etc/目錄下,并且以named開頭,如下所示:
在上述文件中,/etc/named.conf是全局配置文件,/etc/named.rfc1912.conf是區域配置文件,我們在配置DNS服務端時最主要使用的就是這兩個配置文件。
二、DNS配置文件重要參數介紹
在DNS的全局配置文件/etc/named.conf中,options選項是全局配置參數,其中重要參數如下:
listen-on port:指定DNS要監聽的IP地址和端口號,在配置時必須將原始配置文件中的127.0.0.1改為any或者指定網段的地址,否則DNS無法正常對外提供服務。
allow-query:指定允許訪問的客戶端網址,在配置時如同listen-on port參數一樣,也是必須將127.0.0.1修改稱為any或者別的網段的地址。
recursion:表示是否允許DNS服務器采用遞歸查詢的方式,此選項默認是yes,表示支持遞歸查詢的方式,但是如果配置時同時啟用了加密功能,則遞歸配置不生效。
dnssec-enable、dnssec-validation:表示是否啟用DNS加密。
bind-keyfile:表示DNS加密時使用的加密文件。
zone是區域配置參數,重要參數如下:
type:指定區域的類型,對于該區域有重要作用。type字段的值可以為以下5種:
①Master:表示為主DNS服務器,擁有區域數據文件,并向從DNS服務器進行文件備份。
②Slave:表示為從DNS服務器,從DNS服務器上本身沒有區域數據文件,但是該服務器會從主DNS服務器上下載區域數據文件,也能夠提供DNS服務。
③Stub:stub區域與Slave區域類似,兩者之間的區別在于Stub只復制DNS服務器上的NS記錄而不是復制所有區域數據。
④Forward:forward區域是轉發區域,類似于一個DNS的緩存服務器,采用該配置的DNS區域會從外網其他DNS服務器復制數據并起到向導的作用。一個forward區域可以包含一個forward或者forwards語句,這些語句指定了查詢的域。
⑤Hint:根域名服務器的初始化組指定使用的線索區域,當服務器啟動時,還會使用跟線索查找根域名服務器,并找到最近的根服務器列表。
file:配置DNS服務器生成的各項記錄數據文件名稱
allow-update:當配置DNS主從架構時使用,在主服務器上配置允許進行同步的從服務器。
三、DNS配置文件示例
接下來,我們就來配置一個簡單的DNS服務,實現本地的DNS服務器搭建。要實現DNS服務器的運行,首先要實現的就是主配置文件的編寫,具體內容如下(注釋內容略):
options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file "/var/named/data/named.recursing";secroots-file "/var/named/data/named.secroots";allow-query { any; };recursion yes;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.root.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key"; }; logging {channel default_debug {file "data/named.run";severity dynamic;}; }; zone "." IN {type hint;file "named.ca"; }; zone "pzz.com." IN {type master;file "pzz.com.zone"; }; zone "136.168.192.inaddr.arpa" IN {type master;file "192.168.136.arpa"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";之后,我們需要寫正向解析文件和反向解析文件,關于這兩個文件,文件名應該與主配置文件中的pzz.com.zone和192.168.136.arpa保持一致,并且在/var/named目錄下。正向解析文件可以直接復制/var/named/named.localhost,反向解析文件可以直接復制/var/named/named.loopback。我們在復制時,可以使用cp -a命令,連帶著文件屬性一起復制,關于這兩個文件,不管采用何種方式創建、授權,都必須要保證named用戶有讀的權限,否則DNS服務就會啟動失敗。
在本實驗中,pzz.com.zone文件內容如下:
在該配置文件第一行,TTL為外DNS服務器在本DNS服務器的查詢結果的緩存時間,單位為秒。配置文件上半部分,為SOA記錄,serial為修改次序,如果做DNS主從架構,則每次修改該號碼加1,這樣DNS從服務器就可以通過號碼得知記錄的新舊,從而決定自身是否要同步信息。refresh為DNS主從同步時的同步時間,retry表示DNS從服務器更新失敗后的重試時間,expire為數據過期時間,即當超過該時間后,從DNS服務器會放棄與主DNS服務器的重試鏈接。minimum為最小的TTL值。前面的單位D表示天,H表示小時,W表示周。后面的大都是NS記錄和A記錄需要注意的是每個域名的后面必須以“.”結束。
192.168.136.arpa文件內容如下:
該配置文件的前半部分和正向配置文件類似,后版部分為PTR記錄,配置文件中的101為簡寫,實際上指的是配置文件中A記錄的網段,即192.168.136.101,我們也可以直接寫這個IP地址。
四、DNS服務運行與驗證
上述配置文件寫好后,我們啟動DNS服務,相關命令如下所示:
systemctl start named完成后發現系統監聽53端口,如下所示:
接下來,我們選擇一臺主機(也可以是本機器),將其DNS服務器修改為192.168.136.101。修改方式有兩種,一種是通過修改網卡配置文件,然后重啟網卡,另一種是直接修改/etc/resolv.conf配置文件,將設備的DNS服務器指向本設備。之后,我們可以直接PING測試www.pzz.com等我們前面配置的域名,觀察其解析后的IP地址,結果如下所示:
另外,我們也可以使用nslooup工具查詢DNS的反向記錄,查詢結果如下:
由上述驗證結果可知,我們的DNS服務器配置成功并且能夠正常運行了。
原創不易,轉載請說明出處:https://blog.csdn.net/weixin_40228200
總結
以上是生活随笔為你收集整理的Linux DNS服务详解——DNS实战配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言自动贩卖机设计报告,自动贩卖机电子
- 下一篇: 中兴霸道女总裁何雪梅投案自首 案发前净身