推薦-DNS架設實驗

DNS架設實驗


  • 實驗拓撲

  • 實驗準備

  • 流程

  • 測試

  • 總結


實驗拓撲:

DNS實驗拓撲

1.對于來自內網的DNS正反向解析,并實現view選擇指定解析庫解析。
2.對于來自外網的DNS正向解析,并實現view選擇指定解析庫解析。
3.實現主從服務器結構。
4.實現一個完成對一個子域的授權。
5.子域中的所有查詢xiao.com.的信息都轉向192.168.1.1解析。

view

1.根據view,對外網發送的解析請求轉為解析為服務器對外IP。
2.根據view,對內網發送的解析請求轉為解析為服務器內網IP。

實驗準備

由于是虛擬機進行的實驗,所以在網絡架設階段遇到了困難,最后只有妥協下折中將ns1.xiao.com這臺機器增加網卡,配置兩個不同網段地址,開啟路由轉發,當作路由器來連接兩個網絡。

vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1  修改為1
reboot

流程;

1.架設xiao.com的名稱服務器。

[root@xiao.comdns ~]# vim /etc/named.conf   配置named.conf文件。
        acl LAN{ 192.168.1.0/24; };             設置acl,此為內網網段的acl,表示內網網段內的所有IP。
        acl WAN{ ! 192.168.1.0/24 ; any; };     設置acl,此為外網網段的acl,表示除了內網網段外的所有IP。
        options {
                listen-on port 53 { 192.168.1.1; 201.0.0.1;  };     監聽在192.168.1.1和201.0.0.1的53端口上。
                directory       "/var/named";           zone文件存放目錄。
                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     { localhost; };     注釋掉查詢白名單,表示循序所有主機查詢。
                recursion yes;          允許DNS服務器在不知道查詢主機的情況下,去像其他服務器做迭代查詢得到結果。

                dnssec-enable no;       關閉安全審查機制。
                dnssec-validation no;
                dnssec-lookaside no;

                /* Path to ISC DLV key */
        //      bindkeys-file "/etc/named.iscdlv.key";   使用key來加密,注釋不使用。

        //      managed-keys-directory "/var/named/dynamic";    
        };

        logging {
                channel default_debug {
                        file "data/named.run";
                        severity dynamic;
                };
        };

[root@xiao.comdns ~]# vim /etc/named.rfc1912.zones       配置區域文件
    //
    // 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.
    //

    view "LAN" {                view LAN范圍的開始,指定內網的區域設定。
    match-clients { "LAN"; };       view LAN的應用對象,即指定此網段的請求都使用次范圍內的解析庫來解析。
    zone "." IN {               根解析區域設定,一般文件自帶行。
            type hint;
            file "named.ca";
    };

    zone "localhost.localdomain" IN {   本地回環解析區域設定,一般文件自帶行。
            type master;
            file "named.localhost";
            allow-update { none; };
    };

    zone "localhost" IN {       本地回環解析區域設定,一般文件自帶行。
            type master;
            file "named.localhost";
            allow-update { none; };
    };

    zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {   IPV6的本地回環區域設定,一般文件自帶行。
            type master;
            file "named.loopback";
            allow-update { none; };
    };

    zone "1.0.0.127.in-addr.arpa" IN {      本地回環的區域解析庫的反向解析設定,一般文件自帶行。
            type master;
            file "named.loopback";
            allow-update { none; };
    };

    zone "0.in-addr.arpa" IN {      
            type master;
            file "named.empty";
            allow-update { none; };
    };
    zone "xiao.com" IN {            設定xiao.com的區域設定。
            type master;            類型為主服務器。
            file "xiao.com.zone";       解析庫文件為/var/named/xiao.com.zone
            };
    zone "1.168.192.in-addr.arpa" IN {    設定192.168.1.0網段的反向解析區域,格式為 [NETNUMBER反寫.in-addr.arpa]。
            type master;        類型為主服務器。
            file "192.168.1.zone";      解析庫文件為/var/named/192.168.1.zone。
            };

    };  view LAN的范圍的結束

    view "WAN" {            view WAN范圍的開始,指定外網的區域設定。
    match-clients { "WAN"; };       view WAN的應用對象,即指定此網段的請求都使用次范圍內的解析庫來解析。
    zone "." IN {       根解析區域設定。
        type hint;          設定類型為hint,即根區域。
        file "named.ca";        設定解析庫文件為named.ca
        };

    zone "xiao.com" IN {        設定xiao.com區域。
        type master;        類型為主服務器。
        file "wanxiao.com.zone";    文件為wanxiao.com.zone。
        };  
    };

[root@xiao.comdns ~]# vim /var/named/xiao.com.zone  配置LAN的xiao.con.zone的解析庫。
    $TTL 82400      設定TTL變量,指定當前所有的默認TTL(解析緩存存活時間)的值為82400
    @       IN      SOA     xiao.com.  admin.xiao.com. (            設定SOA
                                          1 1H 5M 1W 1M)            
    @       IN      NS      ns1.xiao.com.                   當前域的name server1
    @       IN      NS      ns2.xiao.com.                   當前域的name server2
    ns1     IN      A       192.168.1.1                     NS1的地址,注意,地址與wan區域的IP的不同。
    ns2     IN      A       192.168.1.2                     NS2的地址!。
    www     IN      A       192.168.1.8                     www主機的地址!。

    ops     IN      NS      ns1.ops.xiao.com.               子域的name server,子域授權。
    ns1.ops IN      A       192.168.1.3                     子域的name server地址。

[root@xiao.comdns ~]# vim /var/named/wanxiao.com.zone    配置WAN的xiao.con.zone的解析庫。
    $TTL 82400
    @       IN      SOA     xiao.com. admin.xiao.com. (             設定SOA
                                        0 1H 5M 1W 1D )     
            IN      NS      ns2.xiao.com.                   當前域的name server1
            IN      NS      ns1.xiao.com.                   當前域的name server2
    ns1     IN      A       201.0.0.1                       NS1的地址,注意,地址與lan區域的IP的不同。
    ns2     IN      A       201.0.0.2                       NS2的地址!。
    www     IN      A       201.0.0.3                       www主機的地址!。

    ops     IN      NS      ns1.ops.xiao.com.               子域的name server,子域授權。
    ns1.ops IN      A       192.168.1.3                     子域的name server地址。

[root@xiao.comdns ~]# vim /var/named/192.168.1.zone     配置反向解析庫文件。
    $TTL 824000 
    @       IN      SOA     xiao.com. admin.xiao.com. (         設定SOA
                    3 1H 5M 1W 5M )
            IN      NS      ns1.xiao.com.
            IN      NS      ns2.xiao.com.
    1       IN      PTR     ns1.xiao.com.                   PTR反向解析中的192.168.1.1的對應的域名。
    2       IN      PTR     ns2.xiao.com.                   PTR反向解析中的192.168.1.2的對應的域名。
    8       IN      PTR     www.xiao.com                    PTR反向解析中的192.168.1.8的對應的域名。

[root@xiao.comdns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone      更改權限。
[root@xiao.comdns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone       更改屬組。

2.架設與xiao.com的從服務器。

[root@salves.dns ~]# vim /etc/named.conf            配置named.conf
    acl LAN{ 192.168.1.0/24; };                     設定acl
    acl WAN{ ! 192.168.1.0/24;any;};                設定acl
    options {                                       與服務器設定基本一致。
    listen-on port 53 { 192.168.1.2; };
    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; };
    recursion yes;

    dnssec-enable no;
    dnssec-validation no;
//  dnssec-lookaside auto;
//  bindkeys-file "/etc/named.iscdlv.key";
//  managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";          
                severity dynamic;
        };
};

[root@salves.dns ~]# vim /etc/named.rfc1912.zones       配置區域文件,只需在結尾加上以下內容。
    view LAN{
    match-clients { "LAN" ;};   view一定要和主服務器保持一致??!

    ... 

    zone "xiao.com" IN {    配置正向解析xiao.com區域    
            type slave;     指定類型為從服務器。
            masters { 192.168.1.1; };       指定主服務器地址。
            file "slaves/xiao.com.zone";    指定同步后存放的文件路徑。
    };
    zone "1.168.192.in-addr.arpa" IN {  配置反向解析1.168.192.in-addr.arpa的區域。
            type slave;     指定類型為從服務器。
            masters { 192.168.1.1; };       指定主服務器地址。
            file "slaves/192.168.1.zone";   指定同步后存放的文件路徑,不同view需要存放不同的名稱。
    };
    };

    view WAN{                   view一定要和主服務器保持一致!!
    match-clients {"WAN"; };
    zone "." IN {
            type hint;
            file "named.ca";
    };

    zone "wanxiao.com" IN {
    type slave;
    masters { 192.168.1.1;};
    file "slaves/wanxiao.com.zone";     指定同步后存放的文件路徑,不同view需要存放不同的名稱。
    };      
    };

[root@salves.dns ~]# chmod 640 /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone       更改權限。
[root@salves.dns ~]# chown :named /var/named/wanxiao.com.zone vim /var/named/192.168.1.zone /var/named/xiao.com.zone        更改屬組。

設定完成之后即可通過日志文件查或者指定文件路徑中的/var/named/slaves中看到同步的解析庫文。

[root@salves.dns ~]# ll /var/named/slaves/
    192.168.1.zone  xiao.com.zone           可以看到已經同步到指定路徑下了。

3.架設子域ops.xiao.com名稱服務器,設定轉發服務。

架設子域服務器即和普通的name server一樣即可,下面簡要的略過,僅對轉發功能的設定做解釋。

[root@ops.xiao ~]# vim /etc/named.rfc1912.zones 
    ...
    zone "ops.xiao.com" IN {
            type master;
            file "ops.xiao.com.zone";
    };
    zone "xiao.com" IN {    xiao.com區域的解析設定。
            type forward;   設定為轉發類型。    
            forward only;   設定為only,將所有xiao.com的查詢都轉發。 還可以設置為first,即如果指定dns不回應,則本機去迭代完成查詢。
            forwarders { 192.168.1.1; };
            };
    };

[root@ops.xiao ~]# vim /var/named/ops.xiao.com.zone 
    $TTL 82400
    @       IN      SOA     ops.xiao.com.   admin.ops.xiao.com. (
                            0 1H 5M 1W 5M )
            IN      NS      ns1.ops.xiao.com.
    ns1     IN      A       192.168.1.3
    www     IN      A       192.168.1.4


[root@salves.dns ~]# chmod 640 /var/named/ops.xiao.com.zone     更改權限。
[root@salves.dns ~]# chown :named /var/named/ops.xiao.com.zone  更改屬組。

其實子域就是我們的name server,比如說我們這里的父域xiao.com.其實是.com.的子域,所以如果有需要完全可以在ops.xiao.com這個域上使用其他上述的技術,view,主從等。

測試

通過192.168.1.3測試正向解析。
[root@ops.xiao ~]# host -t A www.xiao.com 192.168.1.1   正向解析測試。
    Using domain server:
    Name: 192.168.1.1
    Address: 192.168.1.1#53
    Aliases: 

    www.xiao.com has address 192.168.1.8        查詢得知www.xiao.com的IP為192.168.1.8

通過192.168.1.3測試反向解析。
[root@ops.xiao ~]# host -t PTR 192.168.1.8 192.168.1.1   反向查詢測試。
    Using domain server:
    Name: 192.168.1.1
    Address: 192.168.1.1#53
    Aliases: 

    8.1.168.192.in-addr.arpa domain name pointer www.xiao.com.1.168.192.in-addr.arpa.  查詢得知192.168.1.8的域名為www.xiao.com

通過192.168.1.3測試主從輪詢。
[root@ops.xiao ~]# dig -t A www.xiao.com @192.168.1.1   dig命令的功能與host類型,但是能夠更加清楚的顯示信息,這里查看主從服務器輪詢情況。

    ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.1      
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46131
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.xiao.com.          IN  A

    ;; ANSWER SECTION:
    www.xiao.com.       82400   IN  A   192.168.1.8

    ;; AUTHORITY SECTION:
    xiao.com.       82400   IN  NS  ns2.xiao.com.       輪詢切換NS2
    xiao.com.       82400   IN  NS  ns1.xiao.com.       輪詢切換NS1

    ;; ADDITIONAL SECTION:
    ns1.xiao.com.       82400   IN  A   192.168.1.1
    ns2.xiao.com.       82400   IN  A   192.168.1.2

    ;; Query time: 0 msec
    ;; SERVER: 192.168.1.1#53(192.168.1.1)
    ;; WHEN: 四 4月 14 16:52:17 CST 2016
    ;; MSG SIZE  rcvd: 125

通過192.168.1.1測試子域設定。
[root@xiao.comdns ~]# host -t A www.ops.xiao.com 192.168.1.2: 子域查詢測試。
    Using domain server:
    Name: 192.168.1.2
    Address: 192.168.1.2#53
    Aliases: 

    www.ops.xiao.com has address 192.168.1.4

通過201.0.0.10測試view
[root@wan-test ~]# dig -t A www.xiao.com @201.0.0.1     view測試實現智能DNS測試。

    ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @201.0.0.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7535
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.xiao.com.          IN  A

    ;; ANSWER SECTION:
    www.xiao.com.       82400   IN  A   201.0.0.3       可以看到返回的ip為201.0.0.3

    ;; AUTHORITY SECTION:
    xiao.com.       82400   IN  NS  ns1.xiao.com.       
    xiao.com.       82400   IN  NS  ns2.xiao.com.

    ;; ADDITIONAL SECTION:
    ns2.xiao.com.       82400   IN  A   201.0.0.2       NS1的ip 201.0.0.2
    ns1.xiao.com.       82400   IN  A   201.0.0.1       NS2的ip  201.0.0.1

    ;; Query time: 0 msec
    ;; SERVER: 201.0.0.1#53(201.0.0.1)
    ;; WHEN: Thu Apr 14 20:05:50 CST 2016
    ;; MSG SIZE  rcvd: 125

通過192.168.1.4測試forward
[root@wan-test ~]# dig -t A www.xiao.com @192.168.1.3       forward測試

    ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xiao.com @192.168.1.3
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40723
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.xiao.com.          IN  A

    ;; ANSWER SECTION:
    www.xiao.com.       71029   IN  A   192.168.1.8     查詢結果。

    ;; AUTHORITY SECTION:
    xiao.com.       71029   IN  NS  ns2.xiao.com.       通過轉發到了192.168.1.1查詢
    xiao.com.       71029   IN  NS  ns1.xiao.com.

    ;; ADDITIONAL SECTION:
    ns1.xiao.com.       71029   IN  A   192.168.1.1
    ns2.xiao.com.       71029   IN  A   192.168.1.2

    ;; Query time: 1 msec
    ;; SERVER: 192.168.1.3#53(192.168.1.3)      使用的DNS地址
    ;; WHEN: Thu Apr 14 20:12:38 CST 2016
    ;; MSG SIZE  rcvd: 125

總結

問題解決:

1.在搭建中遇到了死活無法通過192.168.1.2查詢到子域,先確定是由于主從同步沒有進行的問題,然后發現view在從服務器上沒有配置,接著發現由于是內網環境不能上網,不知道什么原因導致時間不一致,而無法同步,解決以上問題解決無法同步。
2.出現無法使用指定DNS查詢,但是在DNS服務器上卻可以,最后發現是因為iptables沒有配置而造成的問題。
3.出現了各種錯誤,通過查詢日志可以得到很好的線索和答案,大部分都是因為語法或者不注意而造成的。

未解決問題:

因為此實驗是在虛擬機的環境下搭建的,所以基于網絡架設比較不便,就將子域設為了內網下的一個子域,在做子域的view時遇到了由于是內網子域,所以導致外網訪問子域下的域名主機時,無法識別,但是如果不設定,返回的只能是內網下的192.168.1.0網段的IP,很樂意有有人能幫助我解答這個疑問。

原創文章,作者:Net18_肖肖,如若轉載,請注明出處:http://www.www58058.com/14854

(0)
Net18_肖肖Net18_肖肖
上一篇 2016-04-19
下一篇 2016-04-19

相關推薦

  • N25-第十一周博客作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 點對點加密過程如下: 發送方根據單向加密算法計算數據的特征碼 用私鑰加密這段特征碼,生產數字簽名,將數字簽名附著在數據后面 發送方生產臨時對稱密鑰,用對稱加密算法結合對稱加密密鑰加密整段數據(數據+數字簽名) 為保證接收方可以解密,發送方用接收方的公鑰加密對稱加密密鑰,附加在數據后面 接收方用自己的私鑰解密數據…

    Linux干貨 2017-03-30
  • N25-第十三周博客作業

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程) 1)共享名為shared,工作組為magedu;2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;3)添加samba用戶gentoo,centos和ubu…

    Linux干貨 2017-04-19
  • shell腳本

    最近學了shell腳本,自己感覺挺有難度的,今天就簡單整理一些shell腳本的練習和作業 練習:    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。#!/bin/bash# ———&#…

    2017-08-05
  • python裝飾器詳解

    python之裝飾器詳解 一、裝飾器定義 定義一個函數,可以接受一個函數作為參數,對該函數進行一些包裝,不改變函數的本身。 二、裝飾器四部曲(分解) 1、函數可賦值給變量。若賦值給變量的是調用后的函數,變量的值就是return的返回值。 切記:函數賦值給變量,只看return的值。分清楚函數是處于調用狀態還是未被調用狀態。若函數沒有寫return,默認ret…

    2017-02-08
  • CentOS下命令基礎練習

    馬哥教育網絡班23期+第五周課堂作業 CentOS下命令基礎練習 1、顯示當前系統上root、fdeora或user1用戶的默認shell 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello() 3、使用echo命令輸出一個絕對路徑 使用grep取出其基名 擴展:取出其路徑名 (…

    Linux干貨 2016-10-24
  • MySQL Replication (MySQL的主從復制)

    MySQL Replication(MySQL的主從復制) 主從數據庫的工作模型: 工作要點:1、主服務器要開啟二進制日志 2、從服務器要有一個用戶賬戶,這個賬戶要有權限到主服務器上請求二進制事件,請求完后保存到本地。 3、從服務器上要有一個線程,從中繼日志中不斷的讀事件,在本地replay。 Master/Slave    &…

    Linux干貨 2016-11-21

評論列表(1條)

  • stanley
    stanley 2016-04-19 11:36

    有實戰,有總結,贊,圖很專業

欧美性久久久久