1. 程式人生 > >使用Bind部署DNS域名解析服務器

使用Bind部署DNS域名解析服務器

Linux DNS bind

DNS系統在網絡中的作用是維護一個地址數據庫,其中記錄了各種主機域名與ip地址的對應關系,提供正向或反向的地址查詢服務,即正向解析與反向解析。

  • 正向解析:根據域名查詢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域名解析服務器