Linux中的DNS服務

DNS服務

DNS(Domain Name Server,域名服務器)是進行域名和與之對應的IP地址轉化的服務器。DNS中保存了一張域名和與之對應的IP地址的表,以解析消息的域名,C/S,53/udp, 53/tcp ,是屬於應用層協議


DNS的服務器的分類

  • 緩存域名服務器

    只提供域名解析結果的緩存功能,目的在於提升數據查詢速度和效率,可是沒有本身控制的區域地址數據。構建緩存域名服務器時,必須設置根域或指定其餘DNS服務器做爲解析來源。linux

  • 主域名服務器

    維護某一個特定DNS區域的地址數據庫,對其中的解析記錄具備自主控制權,是指定區域中惟一存在的權威服務器、官方服務器。構建主域名服務器時,須要自行創建全部負責區域的地址數據文件。
     數據庫

  • 從域名服務器

    與主域名服務器提供徹底相同的DNS解析服務,一般用於DNS服務器的熱備份。對客戶機來講,不管使用主域名服務器仍是從域名服務器,查詢結果都是同樣的。
     vim


DNS的服務器的查詢模式

  • DNS服務器遞歸查詢

    當客戶機向DNS服務器發出解析請求,DNS服務器從服務器本地的惟高速緩存中查詢出結果,反饋給客戶機,此過程稱爲遞歸查詢
     Linux中的DNS服務
     centos

  • DNS服務器迭代查詢

    當客戶機向DNS服務器發出解析請求,DNS服務器從服務器本地的惟高速緩存中查詢發現沒有結果,此時該DNS服務器以DNS客戶的身份向其餘DNS服務器發送解析請求或向根域名服務器發送請求,此過程稱爲迭代查詢
    Linux中的DNS服務
     

DNS服務的資源記錄

DNS 區域採用資源記錄的形式存儲信息。每條資源記錄均具備一個類型 , 代表其保留的數據類型

語法:name[TTL] IN rr_type value 

  • SOA 起始受權記錄,一個區域有且只有一個起始受權記錄,位於解析庫的第一條記錄

    name: 當前區域的名字,例如「xxx.com.」
    value: 有多部分組成
    (1) 當前區域的主DNS服務器的FQDN,也可使用當前區域的名字;
    (2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,通常用.替換,例如 linuxedu.magedu.com
    (3) 主從服務區域傳輸相關定義以及否認的答案的統一的TTL 緩存

    $TTL 1D
    @       IN SOA  @ admin.xxx.com. (
                                        0       ; serial   序列號 
                                        1D      ; refresh    刷新時間 
                                        1H      ; retry    重試時間 
                                        1W      ; expire   過時時間 
                                        3H )    ; minimum    否認答案的TTL值
  • A:域名 -> IP 正向解析

    $TTL 1D
    @       IN SOA  @ xxx.com.  admin.xxx.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    xxx.com.                NS   ns1.xxx.com.
    ns1.xxx.com.  A    192.168.172.129
  • AAAA:域名 -> IPv6 正向解析

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

    $TTL 1D
    @       IN SOA  xxx.com. . admin.magedu.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @                          NS   ns1.xxx.com. 
    192.168.172.129   PTR  ns1.xxx.com.
  • NS : 標明當前區域的DNS服務器

    name: 當前區域的名字
    value: 當前區域的某DNS服務器的名字
    注意:一個區域能夠有多個NS記錄
    例如:服務器

    xxx.com. IN NS  ns1.xxx.com.
    xxx.com. IN NS  ns2.xxx.com.

    注意:
    (1) 相鄰的兩個資源記錄的name相同時,後續的可省略
    (2) 對NS記錄而言,任何一個ns 記錄後面的服務器名字,都應該在後續有一個A記錄dom

  • CNAME :別名記錄

  • MX : 郵件交換器

     

DNS服務的主從服務器和正反向解析搭建

 
準備條件:192.168.0.254爲主服務器,192.168.0.253爲從服務器tcp

  1. 兩臺服務器安裝bind
    [root@centos6 ~]# yum -y install bind\
  2. 在主服務器上操做編輯配置文件
    [root@centos6 ~]# 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; };
        allow-transfer { 192.168.0.253; };#受權才能夠作從服務器
        zone "." IN {
        type hint;
        file "named.ca";
        };
        zone "alice.com" IN {
        type master;
        file "named.alice.com";
        };
        zone "0.168.192.in-addr-arpa" IN {
        type master;
        file "named.192.168.0";
        };
    };
  3. 編輯解析庫文件和反向解析庫文件
    [root@centos6 ~]# vim /var/named/named.alice.com $TTL 1D
    @       IN SOA  master.alice.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
    @       IN NS   master.alice.com.
    master.alice.com. IN A  192.168.0.254
    @       IN NS   slave.alice.com.
    slave.alice.com.  IN A  192.168.0.253
    client.alice.com. IN A  192.168.0.10
    [root@centos6 ~]# vim /var/named/named.192.168.0
    $TTL 1D
    @       IN SOA  master.alice.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
    @       NS      master.alice.com.
    @       NS      slave.alice.com.
    254     IN PTR  master.alice.com.
    253     IN PTR  slave.alice.com.
    10      IN PTR  client.alice.com.
  4. 開啓服務
    [root@centos6 ~]# service named start
    Starting named:                                            [  OK  ]
  5. 從服務器上的配置文件
    [root@centos6 ~]# 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; };  
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "alice.com" IN {
        type master;
        file "slaves/named.alice.com";
    };
    zone "0.168.192.in-addr-arpa" IN {
        type master;
        file "slaves/named.192.168.0";
        };
  6. 從服務器開啓服務
  7. 從服務器的目錄權限
    [root@centos6 named]# ll
    total 40
    -rw-r-----. 1 root  named  230 Sep 15 05:25 192.168.172.zone
    drwxrwx---. 2 named named 4096 Sep 16 03:41 data
    drwxrwx---. 2 named named 4096 Sep 16 04:24 dynamic
    -rw-r-----. 1 root  named 3171 Jan 11  2016 named.ca
    -rw-r-----. 1 root  named  713 Sep 15 21:13 named.ca.rpmsave
    -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 Sep 16 04:52 slaves
  8. 測試命令,dig或者nslookup便可
     

 

DNS服務的模擬跟服務器及主從同步

 
準備條件:
client:192.168.153.5
caching: 192.168.153.10
. : 192.168.152.9
com: 192.168.153.8
magedu: master 192.168.153.7 slave 192.168.153.6ide

  1. 除client之外,因此有服務器安裝bind,並清空防火牆和selinux
    [root@centos6 ~]# yum -y install bind;setenforce 0;iptables -F
  2. 安裝bind的服務器的配置文件oop

    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; };
        recursion no;#caching服務器寫爲yes
    
        dnssec-enable no;
        dnssec-validation no;
    
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
    
        managed-keys-directory "/var/named/dynamic";
                };
        logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
           };
        };
        zone "." IN {
        type hint;
        file "named.ca";};
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
  3. 除.服務器之外,其餘服務器修改named.ca文件
    [root@centos6 ~]# vim /var/named/named.ca
    .                        3600000      NS    A.ROOT-SERVERS.NET.
    A.ROOT-SERVERS.NET.      3600000      A     192.168.153.9
  4. 配置.服務器
    a. name.conf中刪除name.ca的項目
    b. rfc1912文件
    zone "." IN {
            type master;
            file "root.zone";
        };

    c. root.zone

    $TTL 1D
        @   IN SOA  ns. admin. (
                            0   ; serial
                            1D  ; refresh
                            1H  ; retry
                            1W  ; expire
                            3H )    ; minimum
            NS  ns.
        ns. A   192.168.153.9
        com.    NS  ns.com.
        ns.com. A   192.168.153.8

    d.啓動named

  5. 配置.com服務器
    a. rfc1912文件
    zone "com" IN {
            type master;
            file "com.zone";
        };

    b. com.zone

    $TTL 1D
        @   IN SOA  ns.com. rname.invalid. (
                            0   ; serial
                            1D  ; refresh
                            1H  ; retry
                            1W  ; expire
                            3H )    ; minimum
            NS  ns.com.
        ns.com. A   192.168.153.8
        magedu.com. NS ns1.magedu.com.
        magedu.com. NS ns2.magedu.com.
        ns1.magedu.com. A   192.168.153.7
        ns2.magedu.com. A   192.168.153.6

    c.啓動named

  6. 配置主magedu.com
    a. rfc1912文件
    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone";
        };

    b. magedu.com.zone

    $TTL 1D
        @   IN SOA  ns1.magedu.com. rname.invalid. (
                            2018091301  ; serial
                            1D  ; refresh
                            1H  ; retry
                            1W  ; expire
                            3H )    ; minimum
            NS  ns1.magedu.com.
            NS  ns2.magedu.com.
        A   192.168.153.7
        ns2 A   192.168.153.6
        www A   1.1.1.1
        ftp A   2.2.2.2
        *   A   10.10.10.10

    c.啓動named

  7. 配置從magedu.com
    a. rfc1912文件
    zone "magedu.com" IN {
            type slave;
            masters { 192.168.153.7; };
            file "slaves/MAGEDU.COM.ZONE";
        };

    b. 啓動named

  8. client修改/etc/resolv.conf
    [root@centos6 ~]# vim /etc/resolv.conf 
    domain magedu.com
    search magedu.com localdomain
    nameserver 172.18.0.1
    nameserver 192.168.172.1
    nameserver 192.168.153.10   #指向緩存caching
  9. 測試

    [root@localhost ~]# nslookup ftp.magedu.com
        Server:     192.168.83.132
        Address:    192.168.83.132#53
    
        Non-authoritative answer:
        Name:   ftp.magedu.com
        Address: 2.2.2.2
    
        [root@localhost ~]# nslookup hsh.magedu.com
        Server:     192.168.83.132
        Address:    192.168.83.132#53
    
        Non-authoritative answer:
        Name:   hsh.magedu.com
        Address: 10.10.10.10
  10. 注意:測試時要清空caching-server上的緩存 rndc flush
相關文章
相關標籤/搜索