使用Bind部署DNS域名解析服務器
- 正向解析:根據域名查詢IP地址,將指定的域名解析為相對應的IP地址,這是DNS服務器最基本也是最常用的功能。
-
反向解析:根據IP地址查域名,將指定的IP地址解析為相應的域名,只在一些特殊場合用,不常用。
實驗操作:以域名benet.com為例,使用Bind軟件在Redhat6系統下配置DNS服務器,實現正向解析與反向解析。
安裝Bind軟件
- bind: 提供了域名服務的主要程序及相關軟件。
- bind-utils: 提供了對DNS服務器的測試工具程序,如nslookup等。
- bind-libs: 提供了bind、bind-utils需要使用的庫函數。
- bind-chroot: 為Bind服務提供一個偽裝的根目錄(將、var/named/chroot文件夾作為Bind的根目錄),以提高安全性。
(1)默認已安裝bind-utils和bind-libs,這裏只是模擬實驗環境,不是在真實的互聯網環境中,不需要增強安全性,可以不安裝bind-chroot,所以只需安裝bind即可。
[root@RedHat6-2 ~]# rpm -qa | grep "^bind" #查詢是否已安裝與Bind相關的軟件包 bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64 bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
(2)配置yum源,使用yum命令安裝bind服務程序
yum install bind -y #安裝Bind軟件包
Bind包安裝完畢會自動增加一個名為named的系統服務,還涉及三種類型的配置文件:主配置文件、區域配置文件、區域數據配置文件。這裏需要註意的是每一條配置記錄的行尾以“;”表示結束。
[root@RedHat6-2 ~]# rpm -qc bind /etc/logrotate.d/named /etc/named.conf #主配置文件(named服務全局選項) /etc/named.iscdlv.key /etc/named.rfc1912.zones #區域配置文件(保存域名與IP地址對應關系) /etc/named.root.key /etc/rndc.conf /etc/rndc.key /etc/sysconfig/named /var/named/named.ca /var/named/named.empty /var/named/named.localhost #區域數據配置文件模板(保存域名與IP解析規則) /var/named/named.loopback
下面就針對正反向解析實驗分別編輯Bind服務的配置文件
正向解析實驗
1. 編輯主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
#設置監聽的地址和端口
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
#允許使用DNS服務的網段
recursion yes;
2. 編輯區域配置文件——添加一個正向“benet.com”區域
vim /etc/named.rfc1912.zones
zone "benet.com" IN {
#正向“benet.com”區域
type master; #服務類型為主區域
file "benet.com.zone"; #區域數據配置文件為benet.com.zone
allow-update { none; }; #允許哪些客戶機動態更新解析信息
3. 編輯區域數據配置文件
從/var/named目錄中復制一份正向解析的模板文件(named.localhost),然後把域名和IP地址的對應數據填寫到benet.com.zone文件中並保存。
[root@RedHat6-2 ~]# cd /var/named/
[root@RedHat6-2 named]# ls -la named.localhost
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
[root@RedHat6-2 named]# cp -p named.localhost benet.com.zone #保留文件的屬性
vim /var/named/benet.com.zone
$TTL 1D
@ IN SOA benet.com. admin.benet.com. ( #域名、域名管理員郵箱(不要用@符號)
0 ; serial #更新序列號
1D ; refresh #更新時間
1H ; retry #重試延時
1W ; expire #失效時間
3H ) ; minimum #無效解析記錄的緩存時間
NS benet.com. #域名服務器記錄
A 192.168.10.50 #服務器IPv4地址
AAAA ::1 #服務器IPv6地址
IN MX 5 mail.benet.com. #郵箱交換記錄
mail IN A 192.168.10.66 #正向解析條目(mail.benet.com.)
www IN A 192.168.10.88 #正向解析條目(www.benet.com.)
ftp IN CNAME www #正向解析條目ftp.benet.com.是www.benet.com的別名
* IN A 8.8.8.8 #泛域名解析記錄
需要註意的是,當使用完整的FQDN地址時,務必記得地址末尾的點號“.”不能省略。
4.啟動named服務程序
service named start
5. 檢驗解析結果
為了使用本機提供的DNS查詢服務,需要在DNS配置文件(/etc/resolv.conf)指定DNS服務器的IP地址
vim /etc/resolv.conf
nameserver 192.168.10.50 #添加nameserver參數表示解析域名時使用該地址指定的主機為域名服務
[root@RedHat6-2 ~]# nslookup mail.benet.com #解析郵箱地址mail.benet.com的IP
-bash: nslooup: command not found
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: mail.benet.com
Address: 192.168.10.66
[root@RedHat6-2 ~]# nslookup www.benet.com #解析網址www.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: www.benet.com
Address: 192.168.10.88
[root@RedHat6-2 ~]# nslookup ftp.benet.com #解析別名地址ftp.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
ftp.benet.com canonical name = www.benet.com.
Name: www.benet.com
Address: 192.168.10.88
[root@RedHat6-2 ~]# nslookup abc.benet.com #解析找不到域名解析記錄abc.benet.com的IP
Server: 192.168.10.50
Address: 192.168.10.50#53
Name: abc.benet.com
Address: 8.8.8.8
反向解析實驗
1. 編輯主配置文件
同上正向解析實驗。
2. 編輯區域配置文件-添加一個反向“10.168.192.in-addr.arpa"區域
vim /etc/named.rfc1912.zones
zone "10.168.192.in-addr.arpa" IN {
#反向區域“10.168.192.in-addr.arpa”
type master; #服務類型是主區域
file "192.168.10.arpa"; #區域數據配置文件為192.168.10.arpa
allow-update { none; }; #允許哪些客戶機動態更新解析信息
3. 編輯區域數據配置文件(與正向解析實驗同理)
vim /var/named/192.168.10.arpa
$TTL 1D
@ IN SOA benet.com. admin.benet.com. ( #域名、域名管理員郵箱(不要用@符號)
0 ; serial #更新序列號
1D ; refresh #更新時間
1H ; retry #重試延時
1W ; expire #失效時間
3H ) ; minimum #無效解析記錄的緩存時間
NS benet.com. #域名服務器記錄
A 192.168.10.50 #服務器IPv4地址
AAAA ::1 #服務器IPv6地址
66 PTR mail.benet.com. #PTR為指針記錄,僅用於反向解析
88 PTR www.benet.com.
4. 重啟named服務
service named restart
5. 檢驗解析結果
在前面的正向解析實驗裏面已經指定了DNS服務器的IP地址,故可以直接使用nslookup命令
[root@RedHat6-2 ~]# nslookup 192.168.10.66 #解析IP地址192.168.10.66
Server: 192.168.10.50
Address: 192.168.10.50#53
66.10.168.192.in-addr.arpa name = mail.benet.com.
[root@RedHat6-2 ~]# nslookup 192.168.10.88 #解析IP地址192.168.10.88
Server: 192.168.10.50
Address: 192.168.10.50#53
88.10.168.192.in-addr.arpa name = www.benet.com.
使用Bind部署DNS域名解析服務器