8、構建緩存域名服務器linux
緩存域名服務器一般架設在公司的局域網內,主要目的是提升域名解析的速度,減小對互聯網訪問的出口流量。數據庫
①. 創建主配置文件named.confvim
若使用範本文件建立named.conf,應注意修改或刪除默認的監聽設置、查詢控制,以便可以爲局域網段的客戶機提供服務。另外,logging、view配置部分通常用不到,能夠先註釋以免其干擾。緩存
[root@localhost ~]# vim /etc/named.conf服務器
options {網絡
listen-on port 53 { 192.168.200.111; }; //監聽地址和端口dom
directory "/var/named"; //區域數據文件的默認存放位置oop
dump-file "/var/named/data/cache_dump.db"; //設置域名緩存數據庫文件位置測試
statistics-file "/var/named/data/named_stats.txt"; //設置狀態統計文件位置spa
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 192.168.200.0/24; }; //容許使用本DNS服務的網段
recursion yes;
};
zone "." IN { //正向「.」根區域
type hint; //類型爲根區域
file "named.ca"; //區域數據文件爲named.ca
};
上述配置內容中,dump-file、statistics-file、memstatistics-file等配置項用於指定緩存數據庫文件、狀態統計文件的位置。添加了「zone "." IN{ ……};」部分的根區域設置,儘管緩存服務器並無自主控制的區域數據,但能夠向根服務器進行迭代查詢,並將最終得到的解析結果反饋給客戶。
有時候爲了提升解析效率,也能夠不向根區域查詢,而是未來自客戶端的查詢請求轉發給國內電信運營商的DNS服務器(如北京的202.106.0.20、 202.106.148.1),緩存服務器收到返回的查詢結果後再傳遞給客戶端。只要去掉「zone "." IN{ ……};」的設置,並在全局配置中正確設置forwarders參數即可實現該功能。
[root@localhost etc]# vim named.conf
options {
…… //省略部份內容
forwarders{202.106.0.20; 202.106.148.1;};
};
②. 確認根域的區域數據文件named.ca
根區域的區域數據文件默認位於文件/var/named/named.ca中,該文件記錄了Internet中13臺根域服務器的域名和IP地址等相關信息。
[root@localhost ~]# ls /var/named/
data dynamic named.ca named.empty named.localhost named.loopback slaves
③. 啓動named服務
執行「systemctl start named」命令,啓動named服務,並經過netstat命令確認named服務的端口監聽狀態。若服務啓動失敗或發現沒有正常監聽UDP53端口,能夠根據錯誤提示信息(或者/var/log/messages文件中的日誌記錄)排除錯誤,而後再重啓服務便可。
[root@localhost ~]# systemctl start named
[root@localhost ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@localhost ~]# netstat -anpu | grep named
udp 0 0 192.168.200.111:53 0.0.0.0:* 63751/named
④. 驗證緩存域名服務器
在局域網內的客戶機中,將首選DNS服務器的地址設爲192.168.200.111.生效後,執行「nslookup
www.baidu.com」命令對其進行解析,驗證其是否可以得到該域名對應的IP地址信息。
9、構建主域名服務器
下面首先講解使用BIND構建主域名服務器的基本步驟。
①. 確認本機的網絡地址、主機映射、默認DNS服務器地址。
將主域名服務器的IP地址設爲192.168.200.1十一、主機名設爲ns1.crushlinux.com,經過修改網絡配置文件的方式進行。另外,爲了提升域名解析效率,建議將兩個DNS服務器的地址映射直接寫入到/etc/hosts文件中,並在/etc/resolv.conf文件中指定兩個DNS服務器的地址。
[root@localhost ~]# tail -2 /etc/hosts
192.168.200.111 nsl.crushlinux.com nsl
192.168.200.112 ns2.crushlinux.com ns2
[root@localhost ~]# tail -2 /etc/resolv.conf
nameserver 192.168.200.111
nameserver 192.168.200.112
②. 創建主配置文件named.conf
新建立的named.conf主配置文件,因爲只須要提供crushlinux.com域的正向解析和192.168.200.0/24網段的反向解析,所以相應地添加這兩個區域便可。根區域、迴環域等其餘配置內容能夠省略。
[root@localhost ~]# cd /etc/
[root@localhost etc]# vim named.conf
options {
directory "/var/named"; //區域數據文件的默認存放位置
};
zone "crushlinux.com" IN { //正向"crushlinux.com"區域
type master; //類型爲主區域
file "crushlinux.zheng"; //區域數據文件爲crushlinux. com. zone
allow-transfer { 192.168.200.112; };//容許下載的從服務器地址
};
zone "200.168.192.in-addr.arpa" IN { //反向"192.168.200.0/24"區域
type master;
file "crushlinux.fan";
allow-transfer { 192.168.200.112; };//容許從服務器地址下載反向域數據
};
當不須要創建從域名服務器時,上述配置內容中的「allow-transfer ……」部分能夠不添加,當不須要提供反向解析時,「zone "200.168.192.in-addr.arpa" IN { …… }」部分也能夠去掉。
③. 創建正向、反向區域數據文件。
根據named.conf中的zone區域設置,分別創建正向區域數據文件crushlinux.zheng.反向區域數據文件crushlinux.fan配置內容能夠參考區域數據文件/var/named/named.localhost。
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim crushlinux.zheng
$TTL 86400 ;有效解析記錄的生存週期
@ IN SOA crushlinux.com. admin.crushlinux.com. ( ;SOA標記、域名、管理郵箱
2011030501 ;更新序列號,能夠是10位之內的整數
3H ;刷新時間,從新下載地址數據的間隔
15M ;重試延時,下載失敗後的重試間隔
1W ;失效時間,超過該時間仍沒法下載則放棄
1D ;無效解析記錄的生存週期
)
@ IN NS ns1.crushlinux.com.
IN NS ns2.crushlinux.com.
IN MX 10 mail.crushlinux.com.
ns1 IN A 192.168.200.111
ns2 IN A 192.168.200.112
mail IN A 192.168.200.112
www IN A 192.168.200.111
study IN A 192.168.200.113
* IN A 192.168.200.111
[root@localhost named]# vim crushlinux.fan
$TTL 86400
@ IN SOA crushlinux.com. admin.crushlinux.com. (
2011030501
3H
15M
1W
1D
)
@ IN NS ns1.crushlinux.com.
IN NS ns2.crushlinux.com.
111 IN PTR www.crushlinux.com.
112 IN PTR mail.crushlinux.com.
113 IN PTR study.crushlinux.com.
111 IN PTR ns1.crushlinux.com.
112 IN PTR ns2.crushlinux.com.
④. 啓動named服務或重載配置。
啓動named服務,若是以前named服務已經在運行,也能夠重啓服務或重載配置。
[root@localhost named]# chgrp named crushlinux.zhengcrushlinux.fan
[root@localhost ~]# named-checkconf /etc/named.conf
[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.zheng
zone crushlinux.com/IN: loaded serial 2019010801
OK
[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.fan
zone crushlinux.com/IN: NS 'ns1.crushlinux.com' has no address records (A or AAAA)
zone crushlinux.com/IN: NS 'ns2.crushlinux.com' has no address records (A or AAAA)
zone crushlinux.com/IN: not loaded due to errors.
[root@localhost named]# systemctl reload named
[root@localhost ~]# chown :named /var/named/crushlinux.*
[root@localhost ~]# named-checkconf -z /etc/named.conf
[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.zheng
[root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.fan
[root@localhost ~]# systemctl restart named
iptables -F
systemctl stop firewalld
setenforce 0
⑤. 驗證主域名服務器。
客戶端將DNS服務器指向192.168.200.111 (主域名服務器的IP地址) ,使用nslookup命令驗證DNS查詢結果。例如,如下操做使用Windows 7客戶機分別驗證了正向解析、泛域名解析、反向解析的查詢結果。
C:\Users\Administrator> nslookup study.crushlinux.com //驗證正向域名解析
服務器: nsl.crushlinux.com
Address: 192.168.200.111
名稱: Study.crushlinux.com
Address: 192.168.200.113
C:\Users\Administrator>nslookup www.crushlinux.com
服務器: ns1.crushlinux.com
Address: 192.168.200.111
名稱: www.crushlinux.com
Address: 192.168.200.111
C: \Users\Administrator> nslookup xxyyzz.crushlinux.com //驗證泛域名解析
服務器: nsl.crushlinux.com
Address: 192.168.200.111.
名稱: xxyyzz.crushlinux.com
Address: 192.168.200.111
C:\Users\Administrator> nslookup192.168.200.112 //驗證反向域名解析
服務器: nsl.crushlinux.com
Address: 192.168.200.111
名稱: mai1.crushlinux.com
Address: 192.168.200.112
10、構建從域名服務器
①. 確認本機的網絡地址、主機映射、默認DNS服務器地址
將從域名服務器的IP地址設爲192.168.200.112,主機名設爲ns2.crushlinux.com,經過修改網絡配置文件的方式進行。另外,主機映射文件/etc/hosts和DNS解析文件/etc/resolve.conf的內容與主服務器中的內容相同。
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.200.111
nameserver 192.168.200.112
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.111 ns1.crushlinux.com
192.168.200.112 ns2.crushlinux.com
②. 創建主配置文件named.conf
在從域名服務器中,named.conf文件的內容與主服務器的內容大部分相同,只是不須要再設置「allow-transfer ……」,更關鍵的一點是, zone部分的區域類型應設置爲「slave」,並添加「masters { };」語句來指定主域名服務器的地址。
[root@localhost ~]# yum -y install bind
[root@localhost ~]# cd /etc/
[root@localhost etc]# vim named.conf
options {
directory "/var/named";
};
zone "crushlinux.com" IN { //正向"crushlinux.com"區域
type slave; //類型爲從區域
masters { 192.168.200.111; }; //指定主服務器的IP地址
file "slaves/crushlinux.zheng"; //下載的區域文件保存到slave/crushlinux. com.
};
zone "200.168.192.in-addr.arpa" IN { //反向"173.16.16.0/24"區域
type slave;
masters { 192.168.200.111; };
file " slave/Crushlinux.fan";
};
但須要注意的是,named服務默認以名爲「named」的用戶身份運行,所以要確認named用戶對存放目錄有寫入權限。
[root@localhost ~]# ls -l /var/named/slaves/
總用量 0
③. 啓動named服務,查看區域數據文件是否下載成功
在從域名服務器中啓動named服務,若配置無誤,則named將會從主域名服務器中自動下載指定的區域數據文件,並保存到「slaves/」目錄下。另外,經過系統日誌文件/var/log/messages也能夠觀察到下載區域數據文件的過程。
[root@localhost ~]# systemctl start named
[root@localhost ~]# ls -l /var/named/slaves/
總用量 8
-rw-r--r-- 1 named named 483 1月 8 23:03 crushlinux.fan
-rw-r--r-- 1 named named 538 1月 8 23:03 crushlinux.zheng
iptables -F
systemctl stop firewalld
setenforce 0
④. 驗證從域名服務器
驗證從域名服務器時,只須要將客戶端的首選DNS服務器地址設爲192.168.200.112(從域名服務器的IP地址),使用nslookup命令進行正常測試便可。例如,如下操做是使用Linux客戶機的測試結果。
[root@localhost etc]# nslookup study.crushlinux.com
服務器: mail.crushlinux.com
Address: 192.168.200.112
名稱: study.crushlinux.com
Address: 192.168.200.113
[root@localhost etc]# nslookup 192.168.200.112
服務器: mail.crushlinux.com
Address: 192.168.200.112
名稱: mail.crushlinux.com
Address: 192.168.200.112