CentOS 8 內部DNS設定(編輯中)

回覆文章
Lexaul
文章: 231
註冊時間: 2019-10-18, 14:28

CentOS 8 內部DNS設定(編輯中)

文章 Lexaul » 2019-11-26, 10:32

參考資料:http://linux.vbird.org/linux_server/035 ... _master_rr

服務:named

1.安裝:yum install bind bind-utils
2.確認主機名稱:
3.確認DNS伺服器位址:
4.修改 bind設定

代碼: 選擇全部

vi /etc/named.conf
*於options設定中,新增允許查詢的網域/禁用zone轉移

代碼: 選擇全部

options {
..
recursing-file "/var/named/data/named.recursing";
//新增以下
allow-query	{ localhost; 192.168.100.0/24;	}; //只給內網用戶查詢
allow-transfer	{ none;	}; //不允許別人進行zone轉移
/*
 -If you ....
 ...
 }
 
  • allow-query { any; };
這個是針對用戶端的設定,到底誰可以對我的 DNS 服務提出查詢請求的意思。原本的檔案內容預設是針對 localhost 開放而已, 我們這裡改成對所有的用戶開放 (當然啦,防火牆也得放行才行)。不過,預設 DNS 就是對所有用戶放行,所以這個設定值也可以不用寫。
  • allow-transfer ( none; };
是否允許來自 slave DNS 對我的整個領域資料進行傳送?這個設定值與 master/slave DNS 伺服器之間的資料庫傳送有關。除非你有 slave DNS 伺服器,否則這裡不要開放喔!因此這裡我們先設定為 none。

於zone區域,新增正解zone

代碼: 選擇全部

zone "cystar.nctu.me" {
	type master;
	file "named.cystar"; //自訂檔案名稱
};
新增反解zone

代碼: 選擇全部

zone "100.168.192.in-addr.arpa" IN {
	type master;
	file "named.192.168.100";
};
新增zone file
建立檔案

代碼: 選擇全部

vi /var/named/cystar.nctu.me
Bind Zone File 格式
行首
  • 所有設定資料一定要從行首開始,前面不可有空白字元。若有空白字元,代表延續前一個 domain 的意思~非常重要~
@
  • 這個符號代表 zone 的意思!例如寫在 zone 中,@ 代表 cystar.nctu.me.,如果寫在 named.192.168.0 檔案中,則 @ 代表 0.168.192.in-addr.arpa. 的意思 (參考 named.conf 內的 zone 設定)
.
  • 這個點 (.) 表示完整主機名稱 (FQDN)! 若沒有(.)僅表示 hostname 。舉例來說,在 zone 當中寫 mail.cystar.nctu.me 則代表 FQDN 為 mail.cystar.nctu.me.@ 也就是 mail.cystar.nctu.me.cystar.nctu.me. !因此要寫成 mail.cystar.nctu.me. 才是代表完整主機名稱,而不是hostname!
;
  • 註解
# 常見的正解檔 RR 相關資訊
[domain] IN [[RR type] [RR data]]
主機名稱. IN A IPv4 的 IP 位址
主機名稱. IN AAAA IPv6 的 IP 位址
領域名稱. IN NS 管理這個領域名稱的伺服器主機名字.
領域名稱. IN SOA 管理這個領域名稱的七個重要參數(見下說明)
領域名稱. IN MX 順序數字 接收郵件的伺服器主機名字
主機別名. IN CNAME 實際代表這個主機別名的主機名字.

參數說明
Master DNS 伺服器主機名稱:這個領域主要是哪部 DNS 作為 master 的意思。在本例中, ns.cystar.nctu.me 為 cystar.nctu.me 這個領域的主要 DNS 伺服器囉;

管理員的 email:那麼管理員的 email 為何?發生問題可以聯絡這個管理員。要注意的是, 由於 @ 在資料庫檔案中是有特別意義的,因此這裡將 [email protected] 寫成 lexaul.mail.cystar.nctu.me

序號 (Serial):這個序號代表的是這個資料庫檔案的新舊,序號越大代表越新。 當 slave 要判斷是否主動下載新的資料庫時,就以序號是否比 slave 上的還要新來判斷,若是則下載,若不是則不下載。 所以當你修訂了資料庫內容時,記得要將這個數值放大才行! 為了方便使用者記憶,通常序號都會使用日期格式『YYYYMMDDNU』來記憶,例如 2019112869 序號代表 2019/11/28 當天的第 69 次更新的感覺。不過,序號不可大於 2 的 32 次方,亦即必須小於 4294967296 才行喔。

更新頻率 (Refresh):這個數值定義何時 slave 會去向 master 要求資料更新。例如 DNS 設定每 1800 秒進行一次 slave 向 master 要求資料更新。那每次 slave 去更新時, 如果發現序號沒有比較大,那就不會下載資料庫檔案。

失敗重新嘗試時間 (Retry):如果因為某些因素,導致 slave 無法對 master 達成連線, 那麼在多久的時間內,slave 會嘗試重新連線到 master。例如設定為900 :意思是說,每 1800 秒 slave 會主動向 master 連線,但如果該次連線沒有成功,那接下來嘗試連線的時間會變成 900 秒。若後來有成功,則又會恢復到 1800 秒才再一次連線。

失效時間 (Expire):如果一直失敗嘗試時間,持續連線到達這個設定值時限, 那麼 slave 將不再繼續嘗試連線,並且嘗試刪除這份下載的 zone file 資訊。若設定為 604800 秒,意思是說,當連線一直失敗,每 900 秒嘗試到達 604800 秒後, slave 將不再更新,只能等待系統管理員的處理。

快取時間 (Minumum TTL):如果這個資料庫 zone file 中,每筆 RR 記錄都沒有寫到 TTL 快取時間的話,那麼就以這個 SOA 的設定值為主。

一個正解的資料庫設定中,至少應該要有 $TTL, SOA, NS (與這部 NS 主機名稱的 A)

格式

代碼: 選擇全部

$TTL 86400
@				IN	SOA	ns.cystar.nctu.me. mail.cystar.nctu.me. (;masterDNS主機 信箱
						2019112801 43200 3600 3600000 2592000);序號 更新頻率 重試頻率 過期時間 快取時間
				IN	NS	ns.cystar.nctu.me.;行首有空格,延續@設定值
				IN	A	192.168.100.10
				IN	MX	10	mail.cystar.nctu.me.

			
[email protected]
github.com/Lexaul

回覆文章