DNS系統的作用
DNS系統在網絡中的作用就是維護著一個地址數據庫,其中記錄了各種主機域名與IP地址的對應關系,以便為客戶程序提供正向或反向的地址查詢服務,即正向解析與反向解析。
- 正向解析:根據域名查IP地址,即將指定的域名解析為相對應的IP地址。
- 反向解析:根據IP地址查域名,即將指定的IP地址解析為相對應的域名。
DNS系統的類型
- 緩存域名服務器:只提供域名解析結果的緩存功能,目的在于提高查詢速度和效率,但是沒有自己控制的區域地址數據。構建緩存域名服務器時,必須設置根域或指定其他DNS服務器作為解析來源。
- 主域名服務器:維護某一個域名DNS區域的地址數據庫,對其中的解析記錄具有自主控制權,是指定區域中唯一存在的權威服務器、官方服務器。構建主域名服務器時,需要自行建立所負責區域的地址數據文件。
- 從域名服務器:與主域名服務器提供完全相同的DNS域名服務,通常用于DNS服務器的熱備份。
Bind不是唯一能夠提供域名服務的DNS服務程序,可以運行在大多數linux和UNIX主機中。官方:www.isc.org/
Bind服務控制
bind軟件包安裝完畢以后,會自動增加一個名為named的系統服務,通過腳本文件/etc/init.d/named或service工具都可以控制DNS域名服務的運行。默認監聽端口:53
安裝步驟
準備工作:首先開啟兩臺服務器,配置靜態IP地址,關閉防火墻和selinux并查看系統中所包含bind的rpm包。
1)bind:提供了域名服務的主要程序及相關文件
2)bind-utils:提供了對DNS服務器的測試工具程序,如nslookup等。
3)bind-libs:提供了bind。bind-utils需要使用的庫函數
4)bind-chroot為bind服務提供了一個偽裝的根目錄,已提供安全性。
默認已經安裝了bind-utils和bind-libs,所以只需要安裝bind和bind-chroot即可。
[root@localhost Packages]# mkdir /media/cdrom
[root@localhost Packages]# mount /dev/cdrom /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost Packages]# cd /media/cdrom/Packages/
[root@localhost Packages]# ls | grep "^bind"
bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
bind-dyndb-ldap-2.3-5.el6.x86_64.rpm
bind-libs-9.8.2-0.17.rc1.el6_4.6.i686.rpm
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
[root@localhost Packages]#
[root@localhost Packages]# rpm -qa | grep "^bind"
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
[root@localhost Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
warning: bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[root@localhost Packages]# rpm -ivh bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
warning: bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:bind-chroot ########################################### [100%]
[root@localhost Packages]#
復制代碼
修改主配置文件先備份
主配置文件named.conf通常位于/etc/目錄下,在named.conf文件中,主要包括全局配置、區域配置兩個部分,每一條配置記錄的行尾以分號“;”表示結束,以“#”號或“//”開始的部分表示注釋文字。
全局配置參數包括“option { };”的大括號中,可以設置監聽的地址和端口、區域數據文件存放的目錄、允許哪些客戶機查詢等。
區域配置參數使用“zone ...... { };”的配置格式,一臺DNS服務器可以為多個區域提供解析,因此在named.conf文件中也可以有很多個zone配置段。
每個zone區域都是可選的,包括根域、回環域、反向域,具體根據實際需要而定,zone配置部分的“IN”關鍵字也可以省略。
反向區域的名稱由倒序的網絡地址和“.in-addr.arpa”組合而成。
file配置項用于指定實際的區域數據文件,文件名稱由管理員自行設置。
區域配置中的部分參數也可以放在全局配置中。
touch named.beifen
cp named.conf named.beifen
[root@localhost etc]# vim /etc/named.conf
options {
directory "/var/named"; #定義區域數據文件的默認存儲位置
};
zone "jt.com" IN { #正向區域
type master; #類型為master(主服務器)
file "jt.com.zone"; #區域數據文件名為jt.com
allow-update { none; };
};
zone "3.168.192.in-addr.arpa" IN { #反向區域
type master; #類型為master(主服務器)
file "192.168.3.arpa"; #區域數據文件名為192.168.3.arpa
};
復制代碼
修改區域文件
cd /var/named
[root@localhost named]# vim jt.com.zone
$TTL 86400 //TTL配置用于設置默認生存周期。即緩存解析結果的有效時間。
@ SOA jt.com. admin.jt.com. ( //SOA記錄部分用于設置區域名稱,管理郵箱,以及為從域名服務器指定更新參數。
20181202 //更新序列號
4H //刷新時間:重新下載數據的間隔
30M //重試延時:下載失敗后的重試間隔
12H //失效時間:超過該時間仍無法下載則放棄
1D //無效解析記錄的生存周期
)
@ IN NS jt.
www IN A 192.168.3.111 #這里要寫DNS服務器的IP地址,也可以是主機名。
hhh IN A 192.168.3.112
[root@localhost named]# vim 192.168.3.arpa
$TTL 86400
@ SOA jt.com. admin.jt.com. (
20181202 //更新序列號
4H //刷新時間:重新下載數據的間隔
30M //重試延時:下載失敗后的重試間隔
12H //失效時間:超過該時間仍無法下載則放棄
1D //無效解析記錄的生存周期
)
IN NS jt.
111 IN PTR www.jt.com.
112 IN PTR hhh.jt.com.
復制代碼
在/etc/resolv.conf文件中“服務地址”改為本地IP,配置完成后,用named-checkconf檢查,啟動named服務,并進行驗證域名解析(正向和反向)
[root@localhost named]# vim /etc/resolv.conf
# Generated by NetworkManager
domain localdomain
search localdomain
nameserver 192.168.3.111
[root@localhost named]# named-checkconf -z /etc/named.conf
zone jt.com/IN: loaded serial 20181202
zone 3.168.192.in-addr.arpa/IN: loaded serial 20181202
[root@localhost named]# service named start
Generating /etc/rndc.key: [確定]
啟動 named: [確定]
[root@localhost named]# nslookup www.jt.com
Server: 192.168.3.111
Address: 192.168.3.111#53
Name: www.jt.com
Address: 192.168.3.111
[root@localhost named]# nslookup hhh.jt.com
Server: 192.168.3.111
Address: 192.168.3.111#53
Name: hhh.jt.com
Address: 192.168.3.112
[root@localhost named]# nslookup 192.168.3.111
Server: 192.168.3.111
Address: 192.168.3.111#53
111.3.168.192.in-addr.arpa name = www.jt.com.
[root@localhost named]# nslookup 192.168.3.112
Server: 192.168.3.111
Address: 192.168.3.111#53
112.3.168.192.in-addr.arpa name = hhh.jt.com.
[root@localhost named]#
復制代碼
在從域名服務器上進行配置
[root@localhost named]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.3.111 jt
192.168.3.110 Python
復制代碼
修改區域文件
cd /var/named
[root@localhost named]# vim 192.168.3.arpa
$TTL 86400
@ SOA jt.com. admin.jt.com. (
20181202
4H
30M
12H
1D
)
IN NS jt.
IN NS python.
1111 IN PTR www.jt.com.
1112 IN PTR hhh.jt.com.
[root@localhost named]# vim jt.com.zone
$TTL 86400
@ SOA jt.com. admin.jt.com. (
20181202
4H
30M
12H
1D
)
@ IN NS jt.
@ IN NS python.
www IN A 192.168.11.111
hhh IN A 192.168.11.112
復制代碼
修改/etc/resolv.conf,并將主域名服務器和從域名服務器進行添加。
[root@localhost named]# vim /etc/resolv.conf
# Generated by NetworkManager
domain localdomain
search localdomain
nameserver 192.168.3.111
nameserver 192.168.3.110
復制代碼
在從服務器添加配置文件
[root@localhost named]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "jt.com" IN {
type slave;
masters { 192.168.3.111; };
file "slaves/jt.com.zone";
};
zone "3.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.3.111; }
file "slaves/192.168.3.arpa";
};
復制代碼
在從服務器上啟動服務,查看是否同步。
[root@localhost slaves]# service named restart
停止 named:. [確定]
啟動 named: [確定]
[root@localhost slaves]# ls
192.168.3.arpa jt.com.zone
復制代碼
注意:關閉防火墻和selinux
驗證結果
在主服務器上停止named服務,用nslookup檢查解析是否已經更改到從服務器。
在主服務器上開啟named服務,用nslookup檢查解析是否已經更改到主服務器。
[root@localhost slaves]# nslookup www.jt.com
Server: 192.168.3.111
Address: 192.168.3.111#53
Name: www.jt.com
Address: 192.168.3.111
[root@localhost slaves]# service named stop
停止 named:. [確定]
[root@localhost slaves]# nslookup www.jt.com
Server: 192.168.3.110
Address: 192.168.3.110#53
Name: www.jt.com
Address: 192.168.3.111
[root@localhost slaves]# service named start
啟動 named: [確定]
[root@localhost slaves]# nslookup www.jt.com
Server: 192.168.3.111
Address: 192.168.3.111#53
Name: www.jt.com
Address: 192.168.3.111
[root@localhost slaves]#
作者:杰哥的IT之旅
鏈接:https://juejin.cn/post/6971933109109391397
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。