DNS 说明及安装

主机名:FQDN:Full Qualified Domain Name 完全限定域名

互联网查询分两段,第一段:递归,客户端找NS

      第二段:迭代,NS找答案并缓存

DNS服务器类型:

  主DNS服务器:数据修改

  辅助DNS服务器:请求数据同步

serial number

    refresh

retry

expire

nagative answer TTL

数据库中的每一个条目,都称作资源记录(Resource Record,RR)

资源记录格式:

NAME         TTL  IN   RRT  VALUE

www.ckl.com  300  IN    A   2.2.2.2

2.2.2.2      300  IN   PTR  www.ckl.com

 

解释:

NAME:名称

TTL:生存时间

IN:Inter Net

RRT Resource Record Type:资源记录类型

VALUE:数据

资源记录类型:

SOA(Start Of Authority):

ZONE NAME  TTL   IN   SOA  ADMIN_MAILBOX (

serial number

                refresh

retry

expire

na ttl

)

 时间单位:M:(分钟)、H(小时)、D(天)、W(周),默认单位是秒

      邮箱格式:[email protected] -> admin.ckl.com

      ckl.com.   600   IN   SOA    ns1.ckl.com.  admin.ckl.com. (

             201505291716  #序列号

                        1H  #刷新时间

                       5M  #重试时间

                       1W  #过期时间    1D  #否定回答TTL值

              )

 

NS(Name server):Domain Name -> FQDN

    ckl.com.   600   IN    NS    ns.ckl.com.

ns.ckl.com. 600  IN    A     3.3.3.3

ns1.ckl.com  600  IN   A     1.1.1.2

ns2.ckl.com  600  IN   A     2.2.2.4

MX(Mail Exchange):ZONE NAME --> FQDN

   ZONE NAME   TTL   IN    MX  Pri   VALUE

优先级,数字越小级别越高

  ckl.com.   600  IN  MX   10  mail.ckl.com.

  mail.ckl.com.  600 IN  A  1.1.2.3

    A(Address): FQDN -> IPv4

AAAA : FQDN -> IPv6

PTR:IP-> FQDN

CNAME: FQDN -> FQDN.


         区域传送类型:

    完全区域传送:axfr

增量区域传送:ixfr

区域类型:

    主区域:master

从区域:slave

提示区域:hint

转发区域:forward

 

bind:

    /etc/named.conf 

  bind进程工作属性

  区域的定义文件


/var/named:

  区域数据文件

  

named.ca 13根节点文件

   查询根节点记录:

   # dig -t NS .

named.localhost:

   专门将localhost解析成127.0.0.1

 

named.loopback:

 

DNS端口:

    53/udp

53/tcp

953/tcp,rndc

定义配置文件:

    (1)创建配置文件

   #mv /etc/named.conf /etc/named.conf.bak

#编辑定义配置文件

#vi /etc/named.conf

  options {

directory "/var/named";

allow-recursion { 192.168.1.0/24; };  

                     #允许192.168.1.0网段递归查询

allow-quey {}  #定义只允许谁来查询

allow-transfer {}  #允许谁来传送

  };


  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 "ckl893.com" IN {

                 type master;

                 file "ckl.com.zone";

              };


              zone "1.168.192.in-addr.arpa" IN {

                 type master;

                 file "192.168.1.zone";

              };

 

#编辑区域配置文件

#正向区域配置文件

    #vi ckl.com.zone 

    $TTL  600

               ckl893.com. IN    SOA   ckl893.com.   admin.ckl893.com (

                         201505301240

                                  1H

                         5M

                         1W

                         2D)


                       IN  NS ns1.ckl893.com.

                       IN  MX 10 mail

                       ns1 IN   A 192.168.1.189

                     mail IN   A 192.168.1.190

                       www IN   A 192.168.1.190

                     ftp IN CNAME www

 

#编译反向区域配置文件

# cat 192.168.1.zone 

$TTL  600

@ IN    SOA   ckl893.com.   admin.ckl893.com (

201505301240

1H

5M

1W

2D)


IN NS ns1.ckl893.com.

189 IN PTR ns1.ckl893.com.

189 IN PTR mail.ckl893.com.

190 IN PTR www.ckl893.com.

    修改权限

# chown root.named /etc/named.conf

# chown root.named /var/named/ckl.com.zone

# chown root.named /var/named/192.168.1.zone

# chmod 640 /etc/named.conf

# chmod 640 /var/named/ckl.com.zone

# chomd 640 /var/named/192.168.1.zone

(2)检查语法错误:

# named-checkconf  

(3)检查区域:

# named-checkzone "ckl893.com" /var/named/named.localhost 

# named-checkzone "1.168.192.in-addr.arpa" 192.168.1.zone

(4)测试解析

# dig -t A www.ckl893.com

# dig -t MX ckl893.com

 

dig 用法:

    -t 资源记录  #host -t A www.ckl893.com 一样的

# dig -t SOA ckl893.com

    # dig -t A www.ckl893.com  #查询www.ckl893.com A记录

# dig -t CNAME ftp.ckl893.com  #查询ftp.ckl.com CNAME 记录

# dig -t NS ckl893.com.  #查询ckl893.com  NS 记录

# dig -t MX ckl893.com

-x IP

  根据IP查找FQDN 记录

nslookup:

    server IP

set q=RT

NAME

递归查询:

# dig +recurse -t A www.sohu.com @192.168.1.189

不递归查询(迭代):

    # dig +norecurse -t A www.xiaomi.com @192.168.1.189

返回结果是根,让自己去查找根

追踪查询过程:

    # dig +trace -t A www.baidu.com @192.168.1.189

 

建立slave

1.安装bind bind-utils 略过

2.修改slave配置文件:

zone "ckl893.com" IN {

type slave;

masters { 192.168.1.189; };  #定义传送的主服务器地址

file "slaves/ckl.com.zone";  #定义传送的文件,不需要建立,自动同步

};


zone "1.168.192.in-addr.arpa" IN {

type slave;

masters { 192.168.1.189; };   #定义传送的主服务器地址

file "slaves/192.168.1.zone"; #定义传送的文件,不需要建立,自动同步

};

3.启动服务器

# /etc/init.d/named start

4.查看文件是否同步

# ls /var/named/slaves/

192.168.1.zone  ckl.com.zone

salve增量传送:

(1).在主服务上修改:

$TTL  600

@ IN    SOA   ckl893.com.   admin.ckl893.com (

201505301245   *** 如果修改,此处序列号必须加1 ***

1H

5M

1W

2D)


IN NS ns1

IN NS ns2   #增加从服务器,主服务上必须定义

IN MX  10 mail

ns1 IN A 192.168.1.189

ns2 IN A 192.168.1.190 #同理A记录也必须添加

mail IN A 192.168.1.190

www IN A 192.168.1.190

bbs IN A 192.168.1.193 #这是添加的行

ftp IN CNAME www


重新加载服务器:

# /etc/init.d/named reload

(2).在从服务器上查看

$ORIGIN .

$TTL 600 ; 10 minutes

ckl893.com IN SOA ckl893.com. admin.ckl893.com.ckl893.com. (

3936805629 ; serial

3600       ; refresh (1 hour)

300        ; retry (5 minutes)

604800     ; expire (1 week)

172800     ; minimum (2 days)

)

NS ns1.ckl893.com.

NS ns2.ckl893.com.

MX 10 mail.ckl893.com.

$ORIGIN ckl893.com.

bbs A 192.168.1.193  #此行已经同步

ftp CNAME www

mail A 192.168.1.190

ns1 A 192.168.1.189

ns2 A 192.168.1.190

www A 192.168.1.190


(3).反向解析亦是如此,则不再赘述  

使用rndc

(1)生成rndc配置文件

# rndc-confgen > /etc/rndc.conf

# cat /etc/rndc.conf 

# Start of rndc.conf

key "rndc-key" {

algorithm hmac-md5;

secret "bdtU+h6JudUooIjZLI9TmA==";

};


options {

default-key "rndc-key";

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf


# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndc-key" {

# algorithm hmac-md5;

# secret "bdtU+h6JudUooIjZLI9TmA==";

# };

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { "rndc-key"; };

# };

# End of named.conf

  (2) 将下面注释的行追加到named.conf

    :,$-1w >> /etc/named.conf

  (3)编辑named.conf

    :,$s/# //g

重启服务进程

  (4)完成后可以通过rndc控制服务器

     查看进程状态

 # rndc -c /etc/rndc.conf status

version: 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3

CPUs found: 1

worker threads: 1

number of zones: 20

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

   手动通知区域:

   # rndc -c /etc/rndc.conf notify "ckl893.com"

清空缓存:

   # rndc -c /etc/rndc.conf flush

    使用rndc远程控制,一般不开启的,知晓可以

    本机是:192.168.1.189

远程slave是:192.168.1.190

允许远程192.168.1.190控制本地

(1)修改named.conf配置文件打开ip

   controls {

inet 192.168.1.189 port 953 #修改为外网地址

allow { 192.168.1.190; } keys { "rndc-key"; };  #远程可以控制的主机

};

重启进程

(2)拷贝配置文件

    scp 192.168.1.189:/etc/rndc.conf /root

(3)修改配置文件

    options {

default-key "rndc-key";

default-server 192.168.1.189;  #修改为要远程控制的主机

default-port 953;

};

(4)远程控制

 

DNS子域

    增加两个子域测试

    (1) 编辑ckl.com.zone 配置文件(增加两条子域):

     dx    IN NS ns1.dx

 ns1.dx IN A 192.168.1.66


 mk    IN NS ns1.mk

     ns1.mk IN NS 192.168.1.77

(2)配置子域服务器

    安装包,配置文件,跟主的雷同,不在赘述

默认子域找不到父域

 

配置子域找父域(转发)

forward{only|fist}

    first:首先转发

only:配置自己查找根

配置所有的转发:

    options {

directory "/var/named"; 

   forward first;               #此行

forworders {192.168.1.189;}; #此行

allow-recursion { 192.168.1.0/24; };

notify yes;

};

如果配置只对一个区域的解析转发:

    zone  "ckl89.com" IN  {

      type  forward;

  forwarders { 192.168.1.189;};

}

acl

定义在文件最上方:

    acl innet {

   192.168.1.0/24;

127.0.0.1;

}

 

zone  "ckl89.com" IN  {

   type  forward;

forwarders { inet;};

}

     view视图

*** 所有区域必须定义在视图中 ***

(1)定义服务器配置内容

acl tnet {

192.168.1.0/24;   #定义电信区域

};


options {

directory "/var/named"; 

allow-recursion { tnet; };

};


//电信区域视图

view telcom {

match-clients { tnet; };

zone "ckl893.com" IN {

type master;

file "telckl.com.zone";

};

};


//联通区域视图

view unicom {

match-clients { any; };

zone "ckl893.com" IN {

type master;

file "unickl.com.zone";

};

};

(2)定义区域文件,定义两个,一个电信,一个联通

    电信区域文件

# cat telckl.com.zone 

$TTL 86400

@ IN SOA    ns1.ckl893.com.   admin.ckl893.com. ( 

201506011138

1H

5M

1W

2D)


IN NS ns1.ckl893.com.

IN MX  10 mail

ns1 IN A 192.168.1.189

mail IN A 192.168.1.190

www IN A 192.168.1.190

    联通区域文件

# cat unickl.com.zone 

$TTL 86400

@ IN SOA    ns1.ckl893.com.   admin.ckl893.com. ( 

201506011138

1H

5M

1W

2D)


IN NS ns1.ckl893.com.

IN MX  10 mail

ns1 IN A 192.168.1.189

  mail IN A 10.10.8.88

www IN A 10.10.8.99

(3)测试解析

    在192.168段主机测试:

 # dig -t A www.ckl893.com @192.168.1.189

 ...

  www.ckl893.com.  86400 IN A 192.168.1.190

 在10.10段主机测试:

 ...

 www.ckl893.com.         86400   IN      A       10.10.8.99

  

log 日志系统:

    category:日志源

    查询

区域传送

可以通过category自定义日志来源

channel:日志保存位置

    syslog

file

 

定义查询日志:

    ....

logging  {

channel  querylog {

file "/var/log/named/bind_query.log" versions 3;   #日志路径及保留三个版本

severity dynamic;    #日志级别

print-category yes;  #打印日志信息

print-time yes;      #打印时间

print-severity yes;  #打印级别

};

    

category queries { querylog; };

};

....

    

定义传输日志:

logging  {

channel  querylog {

file "/var/log/named/bind_query.log" versions 3;

severity dynamic;

print-category yes;

print-time yes;

print-severity yes;

};

    

channel xfer_log {

file "/var/log/named/transfer.log" versions 3;  #定义传输文件路径

severity debug 3; #定义级别

print-time yes;   #定义传输时间

};

category queries { querylog; };

category xfer-out { xfer_log; };  #定义传输日志

};

    

传输:

  # dig -t axfr ckl893.com @192.168.1.189

    查看日志

  

bind压力测试

    queryperf

安装:

   # tar -xf bind-9.9.2.tar.gz 

# cd bind-9.9.2/contrib/queryperf

# ./configure

# make

# cp queryperf /bin/

    queryperf:

    -d 指定datafile

-s 指定服务器

-p 指定port

-q 指定查询次数

查询测试:

    (1)编辑文件

    vim cf

www.ckl893.com  A

mail.ckl893.com MX

ns1.ckl893.com NS

(2)查询测试:

# queryperf -d cf -s 192.168.1.189

 

dnstop 压力测试:

    #tar -xf dnstop-20140915.tar.gz

#cd dnstop-20140915

#make && make install

 

# /usr/local/bin/dnstop -4 -Q -R eth0

-4 ipv4

-Q 显示查询

-R 显示响应

eth 端口


你可能感兴趣的:(dns)