Linux下DNS服務器的操作實例(正/反向解析蓉坎,主/從服務器搭建)

前言

本文重點在于后面的完整搭建步驟,前面會簡單的說明一下用到的概念胡嘿,如果有偏差處蛉艾,歡迎各位批評指教。謝謝大家衷敌。

基本理論說明

DNS概述

DNS(Domain Name System勿侯,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫缴罗,能夠使用戶更方便的訪問互聯(lián)網(wǎng)助琐,而不用去記住能夠被機器直接讀取的IP數(shù)串。通過主機名面氓,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)兵钮。

DNS協(xié)議及端口

  • TCP 53(主從同步)
  • UDP 53(正常查詢)
  • 啟動腳本:/etc/init.d/named

DNS解析的作用

  • 正向解析:域名---->IP
  • 反向解析: IP---->域名

DNS相關配置文件

  • /etc/named.conf
  • /etc/named.rfc1912.zones
  • /var/named
  • /var/named/chroot

主配置文件片段:

listen-on port 53 { 192.168.4.5; };  //監(jiān)聽地址和端口
allow-query { any; };           //允許任何客戶機查詢
zone "wolf.com" IN {        //定義正向區(qū)域
    type master;          //區(qū)域類型為主DNS
    file "wolf.com.zone";   //區(qū)域數(shù)據(jù)文件
};

區(qū)域文件內容

$TTL 86400      //有效記錄的生存周期
@ IN SOA   dns1.tarena.com.     root.tarena.com. (
    2013090901      //更新序號
    3H          //刷新時間
    15M             //重試間隔
    1W          //失效時間
    1D          //無效記錄的生存周期
)
/*
站點名     類型  值
@       IN NS   DNS 1的完整域名.
@       IN NS   DNS 2的完整域名.
DNS 1的完整域名. IN A    DNS 1的IP地址
DNS 2的完整域名. IN A    DNS 2的IP地址
www     IN A    IP地址
IP地址主機位 IN PTR  完整的域名.
*/

語法檢查工具:

named-checkconf  //主配置文件的路徑
named-checkzone  //目標區(qū)域名  地址庫文件的路徑

DNS負載均衡,泛域名解析

  • DNS輪詢(一個域名--> 多個IP地址)
www A   IP地址1
www A   IP地址2
www A   IP地址3

.. ..
  • 泛域名解析(多個域名 <--> 多個IP地址)
$GENERATE 100-200  station$    A   192.168.4.$
$GENERATE 100-200  $    PTR   station$.tarena.com.
  • 泛域名解析(多個域名 --> 一個IP地址)
*   A   IP地址

主從DNS(從服務器主要用來備份數(shù)據(jù))

options {
     directory "默認的地址庫文件保存位置";
     allow-transfer { 從DNS服務器的IP地址;  };
};
zone  "區(qū)域名" {       [tarena.com舌界、4.168.192.in-addr.arpa]
     type  類型;      [master掘譬、slave]
     file  "地址庫文件的文件名";
     masters { 主DNS服務的IP地址; };
};

實例操作

基本的DNS正向及反向解析

//安裝DNS服務包,其中bind是主要實現(xiàn)DNS解析功能的包呻拌,bind-chroot則是禁錮解析目錄的服務包
[root@server-2-99 ~]# yum -y bind bind-chroot 
//修改DNS服務主配置文件
[root@server-2-99 ~]# vim /etc/named.conf 
[root@server-2-99 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { any; }; //監(jiān)聽地址和端口葱轩,any表示任意地址
    directory   "/var/named";  //地址庫文件所在目錄
    allow-query     { any; };  //允許任意客戶機查詢
};

zone "wolf.com" IN {        //定義正向區(qū)域
    type master;        //區(qū)域類型為主DNS
    file "wolf.com.zone";   //地址庫文件
};
zone "2.168.192.in-addr.arpa" IN {  //定義反向區(qū)域
        type master;
        file "192.168.2.arpa";
};
//檢查配置語法,可以不進行此步操作
[root@server-2-99 ~]# named-checkconf /etc/named.conf 
//編輯DNS地址庫文件
[root@server-2-99 ~]# cd /var/named/
[root@server-2-99 named]# ls -l
total 32
drwxr-x---. 6 root  named 4096 Dec 18 18:26 chroot
drwxrwx---. 2 named named 4096 Dec 18 18:26 data
drwxrwx---. 2 named named 4096 Dec 18 18:26 dynamic
-rw-r-----. 1 root  named 2075 Apr 23  2014 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost  //注意所屬組藐握,地址庫模板文件
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named 4096 May 11  2015 slaves
//地址庫文件需要保留所屬組靴拱,來保證有相應的權限,這里使用-p選項保留對應的權限猾普,也可是使用chown命令修改文件所有組
[root@server-2-99 named]# cp -p named.localhost wolf.com.zone 
[root@server-2-99 named]# ll wolf.com.zone named.localhost 
-rw-r-----. 1 root named 152 Jun 21  2007 named.localhost
-rw-r-----. 1 root named 152 Jun 21  2007 wolf.com.zone
//修改地址庫文件
[root@server-2-99 named]# hostname 
server-2-99.wolf.com
[root@server-2-99 named]# vim wolf.com.zone 
[root@server-2-99 named]# cat wolf.com.zone 
$TTL 1D    //有效記錄生存周期袜炕,目前表示1天
@   IN SOA  @ rname.invalid. (
                    0   ; serial    //更新序號,在主從DNS上會有作用抬闷,我們后面介紹
                    1D  ; refresh   //刷新時間
                    1H  ; retry //重試間隔
                    1W  ; expire    //失效時間
                    3H )    ; minimum   //無效記錄的生存周期
// @ 表示站點名妇蛀,在這里表示在主配置文件寫的"wolf.com."
// NS 表示類型 
// A 表示正向解析
        NS  server-2-99.wolf.com.   //當前DNS服務器主機名
www     A   192.168.2.99        //www后面的內容會由“@”自動補全
ftp.wolf.com.   A   192.168.2.98    //這是完整的域名耕突,注意要以“.”結尾
*   A   200.0.0.1               //當遇到不能識別的內容時,按此條記錄解析 (一般只用在正向解析值中)
server      A   192.168.2.1     //DNS輪詢——基于DNS的負載均衡
server      A   192.168.2.2     //一個域名 --> 多個不同的IP地址
server      A   192.168.2.3     //每個IP提供鏡像服務內容
$GENERATE 10-90 pc$ A 192.168.2.$       //簡化有規(guī)律的地址(A或PTR)記錄
                            //$GEENRATE 和 “*”都屬于泛域名解析

//檢測配置語法评架,可不進行此操作
[root@server-2-99 named]# named-checkzone wolf.com  wolf.com.zone 
zone wolf.com/IN: loaded serial 0
OK
//配置反向域名解析配置文件
[root@server-2-99 named]# cp -p  named.localhost 192.168.2.arpa
[root@server-2-99 named]# vim 192.168.2.arpa 
[root@server-2-99 named]# cat 192.168.2.arpa
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  server-2-99.wolf.com.   
100 PTR www.wolf.com.
101 PTR vsftp.wolf.com.
$GENERATE 110-200 $ PTR pc$.wolf.com.

//重啟named服務
[root@server-2-99 named]# service named restart
停止 named:                                               [確定]
啟動 named:                                               [確定]

服務端的操作就基本上到此為止眷茁,接下來就是測試驗證了,當然也可以在服務端的這臺機器操作纵诞,但模擬真實上祈,這次我們新建一臺客戶端的機器來進行操作。
下面就是在客戶端上的測試和驗證:

// 配置客戶機DNS地址文件浙芙,也可以不指定使用臨時的方法進行測試
[root@pc-2-97 ~]# vim /etc/resolv.conf 
[root@pc-2-97 ~]# cat /etc/resolv.conf
nameserver 192.168.2.99

//正向解析結果驗證
[root@pc-2-97 ~]# nslookup www.wolf.com
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   www.wolf.com
Address: 192.168.2.99

[root@pc-2-97 ~]# nslookup ftp.wolf.com
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   ftp.wolf.com
Address: 192.168.2.98

//泛域名解析驗證
[root@pc-2-97 ~]# nslookup wwwwww.wolf.com
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   wwwwww.wolf.com
Address: 200.0.0.1

[root@pc-2-97 ~]# nslookup pc19.wolf.com
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   pc19.wolf.com
Address: 192.168.2.19

//DNS輪詢驗證
[root@pc-2-97 ~]# nslookup server.wolf.com
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   server.wolf.com
Address: 192.168.2.1
Name:   server.wolf.com
Address: 192.168.2.2
Name:   server.wolf.com
Address: 192.168.2.3

//臨時測試方法
[root@pc-2-97 ~]# nslookup pc12.wolf.com 192.168.2.99
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   pc12.wolf.com
Address: 192.168.2.1

//反向解析驗證
[root@pc-2-97 ~]# nslookup 192.168.2.100
Server:     192.168.2.99
Address:    192.168.2.99#53

100.2.168.192.in-addr.arpa  name = www.wolf.com.

[root@pc-2-97 ~]# nslookup 192.168.2.101
Server:     192.168.2.99
Address:    192.168.2.99#53

101.2.168.192.in-addr.arpa  name = vsftp.wolf.com.

[root@pc-2-97 ~]# nslookup 192.168.2.119
Server:     192.168.2.99
Address:    192.168.2.99#53

119.2.168.192.in-addr.arpa  name = pc119.wolf.com.

DNS服務的正向解析和反向解析登刺,就基本上是這樣了,還有一個是多區(qū)域解析嗡呼,就是在/etc/named.conf文件中再添加一塊配置文件纸俭,然后添加對應的地址庫文件,在這里就不做演示了南窗。

接下來揍很,進行構建主/從DNS

主/從DNS服務搭建

操作流程:


//在主DNS服務器,即剛才搭建的server-2-99服務機上万伤,修改DNS主配置文件
[root@server-2-99 named]# vim /etc/named.conf
//這里我只顯示了修改的一部分窒悔,其它地方和之前保持一致即可
options {
        listen-on port 53 { any; };
        directory       "/var/named";
        allow-query     { any; };
        allow-transfer { 192.168.2.98; };   //添加從服務器地址,注意ip和“{}”的前后都需要有一個空格敌买,沒有的話简珠,可能會報錯,不能啟動服務器
};
//測試主從服務器新添加的區(qū)域虹钮,也可以使用之前的“wolf.com”
zone "war.com" IN {
        type master;
        file "war.com.zone";
};

//配置地址庫文件聋庵,和之前一致
[root@server-2-99 named]# pwd 
/var/named
[root@server-2-99 named]# cp -p wolf.com.zone war.com.zone
[root@server-2-99 named]# vim war.com.zone 
[root@server-2-99 named]# cat war.com.zone
$TTL 1D
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
        NS  server-2-99.wolf.com.
www     A   192.168.2.99
ftp.war.com.    A   192.168.2.98
*       A   200.0.0.1
server      A   192.168.2.1
server      A   192.168.2.2
server      A   192.168.2.3
$GENERATE 10-90 pc$ A 192.168.2.$

[root@server-2-98 ~]# yum -y install bind bind-chroot
[root@server-2-98 ~]# vim /etc/named.conf 
[root@server-2-98 ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { any; };
    directory   "/var/named";
    allow-query     { any; };
};

zone "war.com" IN {
    type slave;
    file "slaves/war.com.zone";     //注意路徑發(fā)生了改變,地址庫文件在從服務器不需要配置芜抒,會自動從主服務器同步
    masters { 192.168.2.99; };  //主服務器地址
};
[root@server-2-98 ~]# service named restart
停止 named:                                               [確定]
啟動 named:                                               [確定

[root@server-2-98 ~]# ls /var/named/slaves/
war.com.zone                    //文件已經(jīng)同步
[root@server-2-98 ~]# cat /var/named/slaves/war.com.zone 
$ORIGIN .
$TTL 86400  ; 1 day
war.com         IN SOA  war.com. rname.invalid. (
                0          ; serial
                86400      ; refresh (1 day)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                10800      ; minimum (3 hours)
                )
            NS  server-2-99.wolf.com.
$ORIGIN war.com.
*           A   200.0.0.1
ftp         A   192.168.2.98
pc10            A   192.168.2.10
pc11            A   192.168.2.11
pc12            A   192.168.2.12
……
pc88            A   192.168.2.88
pc89            A   192.168.2.89
pc90            A   192.168.2.90
server          A   192.168.2.1
            A   192.168.2.2
            A   192.168.2.3
www         A   192.168.2.99

那么現(xiàn)在主從DNS服務器的配置已經(jīng)全部完成珍策,現(xiàn)在我們去客戶機上進行驗證

//這里就簡單寫兩個驗證結果就好,其它的就不一一貼出了
[root@pc-2-97 ~]# nslookup www.war.com 192.168.2.99
Server:     192.168.2.99
Address:    192.168.2.99#53

Name:   www.war.com
Address: 192.168.2.99

[root@pc-2-97 ~]# nslookup www.war.com 192.168.2.98
Server:     192.168.2.98
Address:    192.168.2.98#53

Name:   www.war.com
Address: 192.168.2.99
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末宅倒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屯耸,更是在濱河造成了極大的恐慌拐迁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疗绣,死亡現(xiàn)場離奇詭異线召,居然都是意外死亡,警方通過查閱死者的電腦和手機多矮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門缓淹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哈打,“玉大人,你說我怎么就攤上這事讯壶×险蹋” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵伏蚊,是天一觀的道長立轧。 經(jīng)常有香客問我,道長躏吊,這世上最難降的妖魔是什么氛改? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮比伏,結果婚禮上胜卤,老公的妹妹穿的比我還像新娘。我一直安慰自己赁项,他們只是感情好葛躏,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肤舞,像睡著了一般紫新。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上李剖,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天芒率,我揣著相機與錄音,去河邊找鬼篙顺。 笑死偶芍,一個胖子當著我的面吹牛,可吹牛的內容都是我干的德玫。 我是一名探鬼主播匪蟀,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宰僧!你這毒婦竟也來了材彪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤琴儿,失蹤者是張志新(化名)和其女友劉穎段化,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體造成,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡显熏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晒屎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喘蟆。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡缓升,死狀恐怖,靈堂內的尸體忽然破棺而出蕴轨,到底是詐尸還是另有隱情港谊,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布尺棋,位于F島的核電站封锉,受9級特大地震影響,放射性物質發(fā)生泄漏膘螟。R本人自食惡果不足惜成福,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荆残。 院中可真熱鬧奴艾,春花似錦、人聲如沸内斯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俘闯。三九已至潭苞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間真朗,已是汗流浹背此疹。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遮婶,地道東北人蝗碎。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像旗扑,于是被迫代替她去往敵國和親蹦骑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容