DNS域名解析服務(bind)

DNS(Domain Name System,域名系統):

用於管理和解析域名與IP地址對應關係的技術。
簡單來講,就是可以接受用戶輸入的域名或IP地址,而後自動查找與之匹配(或者說具備映射關係)的IP地址或域名,即將域名解析爲IP地址(正向解析),或將IP地址解析爲域名(反向解析)。
  • DNS共分爲下面三種類型的服務器:
主服務器:在特定區域內具備惟一性,負責維護該區域內的域名與IP地址之間的對應關係。
從服務器:從主服務器中得到域名與IP地址的對應關係並進行維護,以防主服務器宕機等狀況。
緩存服務器:經過向其餘域名解析服務器查詢得到域名與IP地址的對應關係,並將常常查詢的域名信息保存到服務器本地,以此來提升重複查詢時的效
  • DNS域名解析服務採用分佈式的數據結構來存放海量的「區域數據」信息,在執行用戶發起的域名查詢請求時,具備遞歸查詢和迭代查詢兩種方式
遞歸查詢:DNS服務器在收到用戶發起的請求時,必須向用戶返回一個準確的查詢結果。若是DNS服務器本地沒有存儲與之對應的信息,則該服務器須要詢問其餘服務器,並將返回的查詢結果提交給用戶。
迭代查詢:DNS服務器在收到用戶發起的請求時,並不直接回複查詢結果,而是告訴另外一臺DNS服務器的地址,用戶再向這臺DNS服務器提交請求,這樣依次反覆,直到返回查詢結果。

BIND(Berkeley Internet Name Domain):

如今使用最爲普遍的DNS服務器軟件是BIND(Berkeley Internet Name Domain),最先有伯克利大學的一名學生編寫
DNS服務的名稱稱之爲BIND
BIND服務的名稱稱之爲named
DNS默認使用UDP、TCP協議,使用端口爲53(domain),953(mdc,遠程控制使用)

 

  • DNS域名解析過程,例如在訪問網站:www.xxx.com 時,其大體查詢流程以下圖:  

  • 最高級、最權威的根DNS服務器總共有13臺,分佈在世界各地,其中美國佔了10臺
名稱	管理單位	              地理位置	      IP地址
A	INTERNIC.NET          美國-弗吉尼亞州	198.41.0.4
B	美國信息科學研究所          美國-加利弗尼亞州	128.9.0.107
C	PSINet公司          美國-弗吉尼亞州	    192.33.4.12
D	馬里蘭大學          美國-馬里蘭州	    128.8.10.90
E	美國航空航天管理局      美國加利弗尼亞州	    192.203.230.10
F	因特網軟件聯盟        美國加利弗尼亞州	    192.5.5.241
G	美國國防部網絡信息中心      美國弗吉尼亞州	192.112.36.4
H	美國陸軍研究所          美國-馬里蘭州	      128.63.2.53
I	Autonomica公司          瑞典-斯德哥爾摩	192.36.148.17
J	VeriSign公司          美國-弗吉尼亞州	192.58.128.30
K	RIPE NCC          英國-倫敦	     193.0.14.129
L	IANA            美國-弗吉尼亞州	    199.7.83.42
M	WIDE Project          日本-東京	     202.12.27.33

  

安裝BIND:

  • 安裝:
[root@zhangjh ~]# yum -y install bind-chroot
  • BIND服務程序中的三個重要文件:
主配置文件(/etc/named.conf):用來定義bind服務程序的運行。
區域配置文件(/etc/named.rfc1912.zones):用來保存域名和IP地址對應關係的所在位置。
數據配置文件目錄(/var/named):該目錄用來保存域名和IP地址真實對應關係的數據配置文件。
  • 修改主配置文件(/etc/named.conf)

listen-on port 53 處 和 allow-query處 均修改成any;python

listen-on port 53: 表示服務器上的全部IP地址都可提供DNS域名解析服務;vim

allow-query:容許全部人對本服務器發送DNS查詢請求。緩存

options {
        listen-on port 53 { any; };      #默認是127.0.0.1
        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; };      #默認是localhost
  • /etc/named.rfc1912.zones  定義了域名與IP地址解析規則保存的文件位置以及服務類型
  • 服務類型有三種,分別爲hint(根區域)、master(主區域)、slave(輔助區域),其中經常使用的master和slave指的就是主服務器和從服務器。
正向解析:將域名解析爲IP地址
反向解析:將IP地址解析爲域名
  •  正向解析參數解釋:
zone "localhost.localdomain" IN {
        type master;          #服務類型
        file "named.localhost";    #域名與IP地址解析規則保存文件的位置
        allow-update { none; };     #容許哪些客戶端動態更新解析信息
};
  • 反向解析參數解釋:
zone "1.0.0.127.in-addr.arpa" IN {      #表示爲127.0.0.1的反向解析區域
        type master;
        file "named.loopback";
        allow-update { none; };
};

  

  

 

正向解析實驗:

  1. 編輯區域配置文件。
[root@zhangjh ~]# vim /etc/named.rfc1912.zones 
zone "jianghua.com" IN {    
  type master;          #服務類型
  file "jianghua.com.zone";    #域名和IP地址解析規則文保存的位置
  allow-update { none; };       #容許哪些客戶端動態更新解析信息
};

  2. 編輯數據配置文件。【能夠從/var/named目錄中複製一份正向解析的模板文件(named.localhost)】服務器

[root@zhangjh named]# pwd
/var/named       #這裏須要注意,不是/etc/named目錄,而是/var/named
[root@zhangjh named]# vim jianghua.com.zone 
$TTL 1D #生存週期爲一天
@       IN SOA      jianghua.com.   root.jianghua.com. (
       #受權信息開始:    #DNS區域的地址     #域名管理員的郵箱(不要用@符號)                       
                         0      ; serial #更新序列號
                                        1D      ; refresh #更新時間
                                        1H      ; retry #重試延時
                                        1W      ; expire #失效時間
                                        3H )    ; minimum #無效解析記錄的緩存時間
        NS      ns.jianghua.com.    #域名服務器記錄
ns    IN A  192.168.38.251     #NAMESERVER地址記錄
www     IN A    192.168.38.251     #地址記錄(能夠存在多個:www.jianghua.com.  bbs.jianghua.com.)
bbs   IN A   192.168.38.151

  3. 重啓named服務,nslookup命令檢驗解析結果,注意先把網卡的DNS地址參數設置爲本機IP地址。網絡

[root@zhangjh ~]# systemctl restart named
[root@zhangjh ~]# nslookup 
> www.jianghua.com
Server:		192.168.38.251
Address:	192.168.38.251#53

Name:	www.jianghua.com
Address: 192.168.38.251

> bbs.jianghua.com
Server:		192.168.38.251
Address:	192.168.38.251#53

Name:	bbs.jianghua.com
Address: 192.168.38.151

  

  

  

反向解析實驗:

 在DNS域名解析服務中,反向解析的做用是將用戶提交的IP地址解析爲對應的域名信息,它通常用於對某個IP地址上綁定的全部域名進行總體屏蔽,屏蔽由某些域名發送的垃圾郵件。它也能夠針對某個IP地址進行反向解析,大體判斷出有多少個網站運行在上面。數據結構

  1. 編輯區域配置文件。
[root@zhangjh ~]# vim /etc/named.rfc1912.zones
zone "jianghua.com" IN {          #正向解析
        type master;
        file "jianghua.com.zone";
        allow-update { none; };
};
zone "38.168.192.in-addr.arpa" IN {  #反向解析
        type master;
        file "192.168.38.arpa";
};

  2.編輯數據配置文件。【能夠從/var/named目錄中複製一份反向解析的模板文件(named.loopback)】dom

[root@zhangjh ~]# vim /var/named/192.168.38.arpa 
$TTL 1D
@       IN SOA  jianghua.com.           root.jianghua.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.jianghua.com.
ns      A       192.168.38.251
251     PTR     www.jianghua.com.   #注意此處寫的是主機位!!
251     PTR     bbs.jianghua.com.

  3.檢驗解析結果分佈式

[root@zhangjh ~]# systemctl restart named
[root@zhangjh ~]# nslookup 
> 192.168.38.251
Server:		192.168.38.251
Address:	192.168.38.251#53

251.38.168.192.in-addr.arpa	name = bbs.jianghua.com.
251.38.168.192.in-addr.arpa	name = www.jianghua.com.
相關文章
相關標籤/搜索