主要參考文檔:http://www.cnblogs.com/wangenzhi/p/6308957.html;
本文只是用到其中一小部分,僅搭建一個主DNS並只添加正向解析,即域名--》IP;
1、安裝bind
Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns協議的一種實現;其運行后的程序名為named;
切換成root用戶后,直接敲一下命令:
yum -y install bind
注意:bind程序安裝完成后,默認即可作為緩存服務器使用(不負責域解析);如果沒有專門負責解析的區域,直接可啟動服務;我們這里是需要一個主DNS服務器,所以需要繼續設置
2、配置解析一個正向區域
注意:以enzhi.com為列;
2.1、定義區域
在主配置文件中實現或主配置文件輔助配置文件中實現:/etc/named.conf或者/etc/named.rfc1912.zones
最后添加如下
格式
zone "ZONE_NAME" IN { type {master|slave|hint|forward}; file "ZONE_NAME.zone"; };
示例
[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones # 在對下面添加 zone "enzhi.com." IN { type master; file "enzhi.com.zone"; };
注意:區域名字即為域名;
2.2、建立區域數據文件
主要記錄為A或 AAAA;在/var/named/目錄下建立區域數據文件;
1、創建正向區域文件
[root@Bj-1-141 ~]# cd /var/named/ [root@Bj-1-141 named]# vim enzhi.com.zone $TTL 3600 $ORIGIN enzhi.com. @ IN SOA enzhi.com. admin.enzhi.com. ( 2 1H 10M 3D 1D) IN NS ns1.enzhi.com. IN MX 10 mail.enzhi.com. ns1 IN A 192.168.1.141 mail IN A 192.168.1.142 www IN A 192.168.1.143 bbs IN A 192.168.1.144 bbs IN A 192.168.1.145
注意:
$TTL 3600:表示定義默認TTL值,所以在下面的所有資源記錄都不用在寫TTL值; $ORIGIN enzhi.com.:作用是在資源記錄中像"ns1.enzhi.com."就可以簡寫為ns1,會繼承$ORIGIN后面定義的域名;
2、修改區域文件的權限及屬組
# 修改區域文件的屬組為named用戶 [root@Bj-1-141 named]# chown :named enzhi.com.zone # 修改區域文件的權限為640 [root@Bj-1-141 named]# chmod 640 enzhi.com.zone
3、檢查配置文件和區域文件是否有語法錯誤
[root@Bj-1-141 named]# named-checkconf [root@Bj-1-141 named]# named-checkzone enzhi.com. /var/named/enzhi.com.zone zone enzhi.com/IN: loaded serial 2 OK
特別提醒:①留意“.”號,不能少;
②每次更改(新增或者刪除)以上文件內容,都要變更那個serial號碼(括號中第一個數字),通常+1即可;
③正反向解析文件的屬組一定要改為named;
2.3、讓服務器重載配置文件和區域文件(如果此時服務未啟動,reload直接改為start)
[root@Bj-1-141 ~]# rndc reload server reload successful # 或者執行 [root@Bj-1-141 ~]# systemctl reload named.service
2.4、測試
1、解析www.enzhi.com的A記錄;
[root@Bj-1-141 ~]# dig -t A www.enzhi.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40269 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.enzhi.com. IN A ;; ANSWER SECTION: www.enzhi.com. 3600 IN A 192.168.1.143 ;; AUTHORITY SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:06:12 CST 2017 ;; MSG SIZE rcvd: 92
2、解析enzhi.com的NS記錄;
[root@Bj-1-141 ~]# dig -t NS enzhi.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27289 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;enzhi.com. IN NS ;; ANSWER SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 34 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:08:53 CST 2017 ;; MSG SIZE rcvd: 72
至此,正向解析主DNS搭建完畢,不過目前的配置應該還只是本機可以訪問,需要對配置文件做一下更改,然后重啟named服務局域網才能訪問:
vim /etc/named.conf,然后瞎改配置文件(紅色為添加,其中IP為當前服務器IP);
listen-on port 53 { 127.0.0.1; 192.168.1.141; };
//dnssec-enable yes;
//dnssec-validation yes;
//allow-query { localhost; };
然后執行systemctl restart named.service,后面把局域網自己的DNS設置為該服務器IP,同時需要防火牆開放DNS默認的53端口,即可進行正向解析!
備注:由於DNS服務器的特殊性,最好設置為靜態IP,具體設置方式及開放DNS端口請參考CentOS7如何設置靜態IP及開放DNS端口的隨筆,此處不再繼續說明。