隨着ABC公司業務的擴張,計算機越來越多的情況下,讓員工記憶所有公司內部服務器的IP地址可能性不大,因此公司決定採用DNS解決方案,這樣實現主機之間的通訊可以變的更簡單。案例中我們使用的域爲abc.com域,這個是正向解析的域,網絡採用的是私有網絡:172.16.0.0/16。本案例僅對公司主要的服務器生產解析記錄,如果讀者需要更多的記錄,可以按照這些模版添加其他主機的記錄信息,在公司內部服務器列表見表4-10。
表4-10
服務器IP |
服務器名稱 |
功能描述 |
172.16.0.254 |
dns1.abc.com |
主域名服務器 |
172.16.0.253 |
dns2.abc.com |
從域名服務器 |
172.16.0.100 |
fileserver.abc.com |
文件服務器 |
172.16.0.101 |
printserver.abc.com |
打印機服務器 |
172.16.0.200 |
www.abc.com |
網站服務器 |
172.16.0.201 |
www.abc.com |
網站服務器 |
172.16.0.25 |
mail.abc.com |
郵件服務器 |
172.16.0.22 |
ntp.abc.com |
時間服務器 |
[root@centos6 ~]# yum -y install bind
[root@centos6 ~]# yum -y install bind-chroot
[root@centos6 ~]# yum -y install bind-utils
2. 修改主配置文件
[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/
[root@centos6 etc]# cp named.conf /var/named/chroot/etc/
[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf
[root@centos6 etc]# vim /var/named/chroot/etc/named.conf
- options
- { directory "/var/named"; // "Working" directory
- dump-file "data/cache_dump.db";
- statistics-file "data/named_stats.txt";
- memstatistics-file "data/named_mem_stats.txt";
- listen-on port 53 { any; };
- allow-query { any; };
- allow-query-cache { any; };
- recursion yes;
- };
- acl secondserver {
- 172.16.0.253;
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "abc.com" IN {
- type master;
- allow-transfer { secondserver; };
- file "abc.com.zone";
- };
- zone "16.172.in-addr.arpa" IN {
- type master;
- allow-transfer { secondserver; };
- file "172.16.zone";
- };
3. 創建區數據文件
[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/var/named/
[root@centos6 named]# cp named.ca /var/named/chroot/var/named/
[root@centos6 etc]# chown root.named /var/named/chroot/var/named/named.ca
[root@centos6 named]# cp named.localhost /var/named/chroot/var/named/abc.com.zone
[root@centos6 named]# chown root.named /var/named/chroot/var/named/abc.com.zone
[root@centos6 named]# vim /var/named/chroot/var/named/abc.com.zone
- $TTL 1D
- @ IN SOA dns1.abc.com. jacob.abc.com. (
- 10 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS dns1.abc.com.
- NS dns2.abc.com.
- MX 10 mail.abc.com.
- dns1 IN A 172.16.0.254
- dns2 IN A 172.16.0.253
- ntp.abc.com. IN A 172.16.0.22
- mail.abc.com. IN A 172.16.0.25
- fileserver IN A 172.16.0.100
- printserver IN A 172.16.0.101
- www IN A 172.16.0.200
- IN A 172.16.0.201
[root@centos6 named]# vim /var/named/chroot/var/named/ 172.16.zone
- $TTL 1D
- @ IN SOA dns1.abc.com. jacob.abc.com. (
- 10 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS dns1.abc.com.
- NS dns2.abc.com.
- 254.0 IN PTR dns1.abc.com.
- 253.0 IN PTR dns2.abc.com.
- 22.0 IN PTR ntp.abc.com.
- 25.0 IN PTR mail.abc.com.
- 100.0 IN PTR fileserver.abc.com.
- 101.0 IN PTR printserver.abc.com.
- 200.0 IN PTR www.abc.com.
- 201.0 IN PTR www.abc.com.
4. 服務管理
[root@centos6 ~]# iptables -I INPUT -p udp --dport 53 -j ACCEPT
[root@centos6 ~]# iptables -I INPUT -p tcp --dport 53 -j ACCEPT
[root@centos6 ~]# service named start
[root@centos6 ~]# chkconfig named on
1. 客戶端驗證
客戶端正確配置DNS服務器後,查詢工具比較多,常用的有nslookup、dig、host,下面分別演示這些命令的基本用法。
[root@centos6 ~]# nslookup www.abc.com
[root@centos6 ~]# nslookup 172.16.0.100
[root@centos6 ~]# dig www.abc.com
[root@centos6 ~]# dig abc.com MX
[root@centos6 ~]# host www.abc.com
4.1.1 部署從域名服務器
部署從域名服務器的作用是防止單點故障或實現負載均衡。如果只有一臺服務器當該服務器宕機時,將導致所有客戶端的地址解析出現問題。另外,爲了滿足大規模的查詢請求,我們可以創建多臺DNS服務器實現負載均衡。然而如果所有的DNS都作爲主服務器的話,會有大量的配置需要我們重複進行,再有就是當解析記錄發生改變後,各個服務器之間的區數據文件的版本比較混亂(不方便統一),所以我們需要部署從域名服務器,從域名服務器會從主域名服務器上下載數據文件,只要主服務器修改了數據文件中的記錄,從服務器可以自動同步數據。
1. 安裝軟件
[root@centos6 ~]# yum -y install bind
[root@centos6 ~]# yum -y install bind-chroot
[root@centos6 ~]# yum -y install bind-utils
2. 修改配置文件
[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/
[root@centos6 etc]# cp named.conf /var/named/chroot/etc/
[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf
[root@centos6 etc]# vim /var/named/chroot/etc/named.conf
- options
- {
- directory "/var/named"; // "Working" directory
- dump-file "data/cache_dump.db";
- statistics-file "data/named_stats.txt";
- memstatistics-file "data/named_mem_stats.txt";
- listen-on port 53 { any; };
- allow-query { any; };
- allow-query-cache { any; };
- recursion yes;
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "abc.com" IN {
- type master;
- masters { 172.16.0.254; };
- file "abc.com.zone";
- };
- zone "16.172.in-addr.arpa" IN {
- type master;
- masters { 172.16.0.254; };
- file "172.16.zone";
- };
3. 同步數據文件
從服務器進行同步操作前,需要創建一個BIND軟件可以進行讀取操作的目錄,以便將主服務器的數據文件保存至該目錄。
當從服務器的主配置文件修改完成後,通過啓動服務,BIND會自動根據主配置文件中的masters語句尋×××器,並將主服務器的數據文件下載至從服務器本地。完成第一次的數據同步後,從服務器會根據同步過來的數據文件中的SOA記錄選項,決定下次同步數據的時間,案例中主域名服務器的SOA記錄括號中有五條選項。
第一個選項10是序列號,從服務器會根據這個序列號來決定是否進行同步操作,如果服務器端數據文件的序列號大於從服務器的序列號,從服務器纔會與主服務器同步數據,該序列號建議使用時間格式,如20121212001表示2012年12月12日的第一次修改(序列號只要是數字即可,BIND不強制要求具體數字格式)。
第二個選項1D,代表從服務器多久與主服務器進行序列號的對比(僅在主服務器序列號大於從服務器的序列號時,才進行數據同步),D代表Day,這裏爲1天。
第三個選項1H,代表如果從服務器請求連接主服務器時,由於網絡延遲,主服務器故障等原因,暫時無法連接到主服務器,那麼從服務器會每個一個小時再試一次。
第四個選項1W,代表如果從服務器嘗試一週後還是沒能連接到主服務器,則不再進行連接。
第五個選項3H,代表的是緩存的時間爲3小時。
注意:在CentOS 6.3系統中從服務器同步數據文件時需要修改SELinux設置,否則將無權限進行同步操作。 |
[root@centos6 ~]# setsebool -P named_write_master_zones=1
[root@centos6 ~]# mkdir -p /var/named/chroot/var/named/slaves/
[root@centos6 ~]# chown root.named /var/named/chroot/var/named/slaves/
[root@centos6 ~]# chmod 775 /var/named/chroot/var/named/slaves/
[root@centos6 ~]# service named start
[root@centos6 ~]# chkconfig named on