ITPub博客

首页 > Linux操作系统 > Linux操作系统 > dns

dns

原创 Linux操作系统 作者:raysuen 时间:2017-01-06 09:50:24 0 删除 编辑
资源记录格式:
TTL ###   同意指定TTL()值,单位秒
NAME                    [TTL]                    IN                    RRT                    VALUE      
     NAME 名称
     IN internet上面的资源记录
     TTL
          时间单位:
               M 分钟
               H 小时
               D 天
               W 周
               默认为妙
     RRT 资源记录类型 resource record type
          SOA:start of Authority 必须放在第一个记录,表示DNS服务器
          ZONE_NAME    TTL    IN    SOA    FQDN    ADMINISTRATOR_MAILBOX     (
                                                                                                                            serial number(版本号,数值最长不能超过10位长度)
                                                                                                                            refresh
                                                                                                                            retry
                                                                                                                            expire
                                                                                                                            na ttl
                                                                                                                                   )
               raysuen.com.    600    IN    SOA    ns1.raysuen.com.    admin.raysuen.com. (
                                                                                                                                     20161220
                                                                                                                                     1H
                                                                                                                                     5M
                                                                                                                                     1W
                                                                                                                                     1D
                                                                                                                                         )
               或
               raysuen.com.     600    IN    SOA    ns1.raysuen.com.    admin.raysuen.com. ( 20161220 1H 5M 1W     1D )
          A:      address,从FQDN(可以理解为主机名)到IPv4
          AAAA:  从FQDN(可以理解为主机名)到IPv6
          PRT: pointer IP(v4,v6)到主机名
          NS:  name server从域名(ZONE NAME)到主机名的格式(FQDN)
          MX:  mail exchanger 域名(ZONE NAME)到主机名(FQDN)
               pri 优先级,从0-99,数字越小级别越高
               ZONE_NAME      TTL          IN          MX pri          VALUE
               邮箱格式:不能使用@  admin@raysuen.com-->admin.raysuen.com
          CNAME: (cononical name)FQDN到IPv4,又叫别名记录
               www2.raysuen.com.                    IN                    CNAME                    
                    www2为www的别名记录
     VALUE 数据
例子:
raysuen.com.     600          IN          SOA               ns1.raysuen.com.          admin.raysuen.com. (
                                                                                                                                                                                         20161220
                                                                                                                                                                                         1H
                                                                                                                                                                                         5M
                                                                                                                                                                                         1W
                                                                                                                                                                                         1D
                                                                                                                                                                                    )
raysuen.com.                    IN           NS               ns.raysuen.com.
ns.raysuen.com               IN          A                    1.1.1.2
.          IN          A                    1.1.1.1
1.1.1.1                                   IN          PTR               .
raysuen.com.                    IN           MX 10               mail.raysuen.com.
mail.raysuen.com.          IN          A                    1.1.1.3

域(domin)和区域(zone)
domin逻辑概念
zone物理概念,可以理解成当前的数据文件

安装配置
规划:
ns      192.168.56.28
www     192.168.56.28 192.168.56.89
mail 192.168.56.89
ftp  192.168.56.89

安装软件包:
    yum -y install bind
    yum -y install caching-nameserver(linux 6不需要安装)

配置文件:
/etc/named.conf
bind进程的工作属性
    区域的定义
    option:
         listen-on port 53 { 127.0.0.1; };  IPv4指定监听的端口,多个地址可以用;(分号)分隔
         listen-on-v6 port 53 { ::1; };               IPv6指定监听的端口
         directory       "/var/named";      指定数据文件目录
         recursion yes;                           默认开启递归,默认开启
         allow-recursion { 网段/24; };              指定允许递归的网段
         allow-transfer { 网段/24; };        允许区域传输
    zone:
         zone "zone_name" IN {
              type {master|slave|hint|forword};

         };
              如果type为master
                   file "区域数据文件"
              如果type为slave
                   file "区域数据文件"
                   masters { master_ip; };
              如果type为hint
                   file "区域数据文件”
            allow-transfer { 网段/24; };        允许区域传输
         示例:
              zone "localhost" IN {   正向解析,即把域名解析成IP
                  type master;
                  file "named.localhost";
                    };

                    zone "0.0.127.in-addr.arpa" IN {    方向解析,即把IP解析成域名
                  type master;
                  file "named.loopback";
                    };

/etc/rndc.key
     rndc: remote name domain controller
     密钥文件
     配置信息/etc/rndc.conf
/var/named/
     区域数据文件
     named.ca 互联网所有根服务器信息,如果没有可以使用dig命令获取

相关命令命令:
dig: domain infomation groper
     dig -t NS . 显示所有的跟服务器
     dig -t NS . @a.root-servers.net 指定到a.root-servers.net获取所有根信息
          @IP  向IP服务器查找信息
     dig -x IP  根据IP查询FQDN
host -t RT domain

named-checkconf 语法检查,对named.conf内容做语法检查
named-checkzone 语法检查,对zone文件内容做语法检查

nslookup

协议和端口:
     53 udp,tcp
     953 rndc监听的端口

关闭selinux
[root@LinuxTest yum.repos.d]# getenforce
Enforcing
[root@LinuxTest yum.repos.d]# setenforce 0
[root@LinuxTest yum.repos.d]# vi /etc/selinux/config
SELINUX=disabled

添加本地解析:
正向解析
1 named.conf添加zone
zone "raysuen.com" IN {
        type master;
        file "raysuen.com.zone";
};
2 编写raysuen.com.zone区域文件
[root@LinuxTest named]# cp named.localhost raysuen.com.zone
[root@LinuxTest named]# vi raysuen.com.zone
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns
        IN      MX 10   mail
ns      IN      A       192.168.56.28
mail    IN      A       192.168.56.89
www     IN      A       192.168.56.89
www     IN      A       192.168.56.28
ftp     IN      CNAME   www

解释:
     $TTL 写在第一行,表示下面统一使用当前定义的TTL值
     @ SOA内的ZONE_NAME列写@,表示取named.conf的ZONE_NAME定义值
     下面ns,mail,www,ftp没有写raysuen.com.,因为会自动补齐区域名称(ZONE_NAME)
3语法检查
[root@LinuxTest named]# named-checkconf
[root@LinuxTest named]# named-checkzone "raysuen.com" /var/named/raysuen.com.zone
zone raysuen.com/IN: loaded serial 0
OK
反向解析
1 named.conf添加zone
zone "56.168.192.in-addr.arpa" IN {
        type master;
        file "56.168.192.zone";
};

2 编写28.56.168.192.zone区域文件
[root@LinuxTest named]# cp -p raysuen.com.zone 56.168.192.zone
[root@LinuxTest named]# vi 56.168.192.zone
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns.raysuen.com.
28      IN      PRT     ns.raysuen.com.
28      IN      PRT     .
89      IN      PRT     .
89      IN      PRT     mail.raysuen.com.

3语法检查
[root@LinuxTest named]# named-checkconf
[root@LinuxTest named]# named-checkzone "56.168.192.in-addr.arpa" 56.168.192.zone
zone 56.168.192.in-addr.arpa/IN: loaded serial 0
OK


[root@LinuxTest named]# chmod 640 raysuen.com.zone
[root@LinuxTest named]# chown root:named raysuen.com.zone
[root@LinuxTest named]# /etc/init.d/named restart
Stopping named: .                                          [  OK  ]
Starting named:

完整的配置文件:
named.conf
options {
        listen-on port 53 { 192.168.56.28; 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     { localhost; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* 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";
};

zone "localhost" IN {
        type master;
        file "named.localhost";
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
};

zone "raysuen.com" IN {
        type master;
        file "raysuen.com.zone";
};

zone "56.168.192.in-addr.arpa" IN {
        type master;
        file "56.168.192.zone";
};
raysuen.com.zone
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns
        IN      MX 10   mail
ns      IN      A       192.168.56.28
mail    IN      A       192.168.56.89
www     IN      A       192.168.56.89
www     IN      A       192.168.56.28
ftp     IN      CNAME   www
56.168.192.zone
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns.raysuen.com.
28      IN      PTR     ns.raysuen.com.
28      IN      PTR     .
89      IN      PTR     .
89      IN      PTR     mail.raysuen.com.


正向解析测试:
启动:
[root@LinuxTest yum.repos.d]# /etc/init.d/named start
Starting named:                                            [  OK  ]
[root@LinuxTest yum.repos.d]# tail /var/log/messages
Dec 20 15:56:14 localhost named[32193]: automatic empty zone: 9.E.F.IP6.ARPA
Dec 20 15:56:14 localhost named[32193]: automatic empty zone: A.E.F.IP6.ARPA
Dec 20 15:56:14 localhost named[32193]: automatic empty zone: B.E.F.IP6.ARPA
Dec 20 15:56:14 localhost named[32193]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Dec 20 15:56:14 localhost named[32193]: command channel listening on 127.0.0.1#953
Dec 20 15:56:14 localhost named[32193]: command channel listening on ::1#953
Dec 20 15:56:14 localhost named[32193]: zone 0.0.127.in-addr.arpa/IN: loaded serial 0
Dec 20 15:56:14 localhost named[32193]: zone localhost/IN: loaded serial 0
Dec 20 15:56:14 localhost named[32193]: managed-keys-zone ./IN: loaded serial 0
Dec 20 15:56:14 localhost named[32193]: running
[root@LinuxTest yum.repos.d]# named-checkzone "localhost" /var/named/named.localhost
zone localhost/IN: loaded serial 0
OK
[root@LinuxTest yum.repos.d]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback
zone 0.0.127.in-addr.arpa/IN: loaded serial 0
OK
[root@LinuxTest yum.repos.d]# ping
PING (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125: icmp_seq=1 ttl=63 time=1.80 ms
64 bytes from 61.135.169.125: icmp_seq=2 ttl=63 time=1.86 ms
64 bytes from 61.135.169.125: icmp_seq=3 ttl=63 time=1.94 ms
64 bytes from 61.135.169.125: icmp_seq=5 ttl=63 time=1.70 ms
64 bytes from 61.135.169.125: icmp_seq=6 ttl=63 time=1.93 ms
[root@LinuxTest named]# dig -t NS raysuen.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t NS ns.raysuen.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12306
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns.raysuen.com.               IN     NS

;; AUTHORITY SECTION:
raysuen.com.          10800     IN     SOA     ns.raysuen.com. admin.raysuen.com. 0 86400 3600 604800 10800

;; Query time: 0 msec
;; SERVER: 192.168.56.28#53(192.168.56.28)
;; WHEN: Tue Dec 20 16:30:15 2016
;; MSG SIZE  rcvd: 74

[root@LinuxTest named]# dig -t A

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4103
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;.          IN     A

;; ANSWER SECTION:
.     86400     IN     A     192.168.56.89
.     86400     IN     A     192.168.56.28

;; AUTHORITY SECTION:
raysuen.com.          86400     IN     NS     ns.raysuen.com.

;; ADDITIONAL SECTION:
ns.raysuen.com.          86400     IN     A     192.168.56.28

;; Query time: 0 msec
;; SERVER: 192.168.56.28#53(192.168.56.28)
;; WHEN: Tue Dec 20 16:30:47 2016
;; MSG SIZE  rcvd: 98

[root@LinuxTest named]# dig -t MX raysuen.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t MX raysuen.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20747
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;raysuen.com.               IN     MX

;; ANSWER SECTION:
raysuen.com.          86400     IN     MX     10 mail.raysuen.com.

;; AUTHORITY SECTION:
raysuen.com.          86400     IN     NS     ns.raysuen.com.

;; ADDITIONAL SECTION:
mail.raysuen.com.     86400     IN     A     192.168.56.89
ns.raysuen.com.          86400     IN     A     192.168.56.28

;; Query time: 1 msec
;; SERVER: 192.168.56.28#53(192.168.56.28)
;; WHEN: Tue Dec 20 16:33:04 2016
;; MSG SIZE  rcvd: 99

[root@LinuxTest named]# host -t A
has address 192.168.56.89
has address 192.168.56.28
[root@LinuxTest named]# host -t A
has address 192.168.56.28
has address 192.168.56.89
[root@LinuxTest named]# host -t NS raysuen.com
raysuen.com name server ns.raysuen.com.
[root@LinuxTest named]# host -t MX raysuen.com
raysuen.com mail is handled by 10 mail.raysuen.com.
[root@LinuxTest named]# host -t SOA raysuen.com
raysuen.com has SOA record ns.raysuen.com. admin.raysuen.com. 0 86400 3600 604800 10800
[root@LinuxTest named]# nslookup
> set q=A
>
Server:          192.168.56.28
Address:     192.168.56.28#53

Name:     
Address: 192.168.56.89
Name:     
Address: 192.168.56.28
> set q=NS
> raysuen.com
Server:          192.168.56.28
Address:     192.168.56.28#53

raysuen.com     nameserver = ns.raysuen.com.
> set q=MX
> raysuen.com
Server:          192.168.56.28
Address:     192.168.56.28#53

raysuen.com     mail exchanger = 10 mail.raysuen.com.
> 
反向解析测试
[root@LinuxTest named]# nslookup
> set q=PTR
> 192.168.56.28
Server:          192.168.56.28
Address:     192.168.56.28#53

28.56.168.192.in-addr.arpa     name = .
28.56.168.192.in-addr.arpa     name = ns.raysuen.com.
> 192.168.56.89
Server:          192.168.56.28
Address:     192.168.56.28#53

89.56.168.192.in-addr.arpa     name = .
89.56.168.192.in-addr.arpa     name = mail.raysuen.com.
> > set q=NS
> 56.168.192.in-addr.arpa
Server:          192.168.56.28
Address:     192.168.56.28#53

56.168.192.in-addr.arpa     nameserver = ns.raysuen.com.

[root@LinuxTest named]# dig -x 192.168.56.28

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -x 192.168.56.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12591
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;28.56.168.192.in-addr.arpa.     IN     PTR

;; ANSWER SECTION:
28.56.168.192.in-addr.arpa. 86400 IN     PTR     ns.raysuen.com.
28.56.168.192.in-addr.arpa. 86400 IN     PTR     .

;; AUTHORITY SECTION:
56.168.192.in-addr.arpa. 86400     IN     NS     ns.raysuen.com.

;; ADDITIONAL SECTION:
ns.raysuen.com.          86400     IN     A     192.168.56.28

;; Query time: 1 msec
;; SERVER: 192.168.56.28#53(192.168.56.28)
;; WHEN: Tue Dec 20 17:19:35 2016
;; MSG SIZE  rcvd: 120

主从复制
root@ray named]# scp 192.168.56.28:/etc/named.conf /etc/named.conf   把主dbs的配置文件scp到从服务器
[root@ray named]# chown named:named /etc/named.conf
[root@ray named]# vi /etc/named.conf
主要修改的内容:
zone "raysuen.com" IN {
        type slave;
        file "slaves/raysuen.com.zone";
        masters { 192.168.56.28; };
        allow-transfer { 192.168.56.28; };
};

zone "56.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/56.168.192.zone";
        masters { 192.168.56.28; };
        allow-transfer { 192.168.56.28; };
};
主DNS修改raysuen.com.zone,为dns从服务器添加NS记录
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns
        IN      NS      ns2                 添加NS
        IN      MX 10   mail
ns      IN      A       192.168.56.28
mail    IN      A       192.168.56.89
www     IN      A       192.168.56.89
www     IN      A       192.168.56.28
ns2     IN      A       192.168.56.89        添加NS的A记录
ftp     IN      CNAME   www
主DNS修改56.168.192.zone,为dns从服务器添加NS反向解析
$TTL 1D
@       IN SOA  ns.raysuen.com. admin.raysuen.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns.raysuen.com.
        IN      NS      ns2.raysuen.com.      添加NS
28      IN      PTR     ns.raysuen.com.
89      IN      PTR     ns2.raysuen.com.      添加NS的PTR记录
28      IN      PTR     .
89      IN      PTR     .
89      IN      PTR     mail.raysuen.com.
[root@ray named]# named-checkconf    配置文件语法检查
[root@ray named]# /etc/init.d/named start
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]

注意:
iptables和selinux要关闭,否则不能同步成功
失败了查看message日志

增量同步
主修改了zone文件,reload配置文件即可同步到从DNS




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28572479/viewspace-2131984/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长oracle,Linux。精通shell,python。

注册时间:2016-08-23

  • 博文量
    145
  • 访问量
    227115