Linux-DNS服务器:DNS介绍及BIND安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-DNS服务器:DNS介绍及BIND安装相关的知识,希望对你有一定的参考价值。

1. DNS( Domain Name Service )介绍

DNS是计算机域名系统 (Domain Name System Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

1.1 DNS树状结构图

技术分享

1.2 DNS资源记录类型

       资源记录有类型,用于资源的功能

       SOAStart Of Authority,起始授权

       NS:NameServer,域名服务器

       MXMail exchanger:邮件交换器

       AAddress,(FQDN-->IP)

       PTR:Poiter,IP-->FQDN

       AAAA:Address,FQDN-->IPv6

       CNAME:CanonicalName,别名记录

1.3 资源记录格式

name     [ttl]      IN          rrtype  value

例子:

www                   IN          A           192.168.1.1

SOA:只能有一个

name:区域名称,通常可以简写为@enzhi.com.

value:DNS服务器的FQDN

注意:SOA必须是区域数据库文件的第一条记录

                    

列子:  @   600        IN   SOA      ns.enzhi.com.  dnsadmin.enzhi.com.(

                序列号 ;serial number,十进制数字,不能超过10位,通常使用日期,例如:2016032201

                刷新时间 ;每隔多久到服务器检查一次

                重试时间 ;应该小于刷新时间

                过期时间 ;

                否定答案的ttl )

注意#dnsadmin.enzhi.com.是管理员邮箱地址@符使用.替换。

NS:可以有多条

       name:区域名称,通常可以简写为@

       value:dns服务器的FQDN(可以使用相对名称)

例子:@             600        IN NS ns

A

       name:FQDN(可以使用相对名称)

       value:IP

例子:

www           600        IN   A          1.2.3.4

  ftp           600        IN   A          1.2.3.4

MX:可以有多个

       name:区域名称,用于表示smtp服务器

       value:包含优先级和FQDN

优先级:0-99,数字越小,级别越高

例子: @  600        IN   MX 10   mail

@  600        IN   MX 20   mail2           

CNAME:

name:FQDN

value:FQDN

例子:ftp    IN   CNAME      www    

PTR: IP--->FQDN,只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in-addr.arpa

name:IP,逆向的主机地址,例如:172.16.100.7name7.100

value:FQDN      

例子:

4.3.2             600        IN   PTR       www.enzhi.com.

反向解析数据库文件:区域名称以逆向的网络地址,并以in.addr.arpa为后缀

第一条必须SOA

应该具有NS记录,但不能出现MXA记录

较常见的即为PTR记录

名称为逆向的主机地址

2. BIND介绍

BIND是一种开源的DNSDomain NameSystem)协议的实现,包含对域名的查询和响应所需的所有软件。它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准。
BIND这个缩写来自于使用的第一个域,Berkeley Internet Name Domain,而不是Berkeley Internet Name Daemon。这个软件起源于20世纪八十年代初的Universityof California at Berkeley,是在DARPA授权下编写的。

2.1 安装BIND

生产环境中使用yum安装即可满足大部分的需求。

安装环境规划:

角色IP地址主机名
DNS-MASTER
192.168.233.135dns_master

安装系统环境:

[[email protected]_master ~]# cat/etc/redhat-release
CentOS release 6.6 (Final)
[[email protected]_master ~]# uname -r
2.6.32-504.el6.x86_64
[[email protected]_master ~]# uname -m
x86_64

安装bind

[[email protected]_master ~]# yum -y install bind

#安装完成后bind的主配置文件在/etc/目录下名为named.conf。区域数据文件在/var/named/目录下。

[[email protected]_master ~]# ls -l /etc/named*
-rw-r----- 1 rootnamed 1008 Jul 19  2010 /etc/named.conf
-rw-r--r-- 1 root named 2389 Mar 1621:25 /etc/named.iscdlv.key
-rw-r----- 1 root named  931 Jun 21 2007 /etc/named.rfc1912.zones
-rw-r--r-- 1 root named  487 Jul 19 2010 /etc/named.root.key
[[email protected]_master ~]# ls /var/named/
data dynamic  named.ca  named.empty named.localhost  named.loopback  slaves

2.2 named用户及用户组

要启动named服务需要以named用户的身份运行。当我们手动创建主配置文件或者区域数据文件后我们需要将属主改为root属组改为named用户,并将文件权限改为640.

[[email protected]_master ~]# ll /etc/named.conf
-rw-r----- 1 root named 1008 Jul 19  2010 /etc/named.conf
[[email protected]_master ~]# ll /var/named/
total 28
drwxrwx--- 2 named named 4096 Mar 1621:25 data
drwxrwx--- 2 named named 4096 Mar 1621:25 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 Mar 1621:25 slaves

2.3 主配置文件介绍

主配置文件:定义区域。至少有三个区域:

根、localhost127.0.0.1三个区域

区域数据文件:/var/named/

主配置文件:

options {

       全局选项    

};

zone {

       定义区域

};

logging {

       定义日志系统

}

2.4 自创建一个主配置文件

#自创建主配置文件必须有options全局段、根、localhost127.0.0.1。每一行参数要以;号结尾。如下:

[[email protected]_master ~]# cat /etc/named.conf
options {
       directory "/var/named";
};
zone "." IN {
       type hint;
       file "named.ca";
};
zone "localhost" IN {
       type master;
       file "named.localhost";
};
zone "1.0.0.127.in-addr.apra"IN {
       type master;
       file "named.loopback";
};
[[email protected]_master ~]# chown root.named/etc/named.conf
#语法测试检查
[root[email protected]_master ~]# /etc/init.d/namedconfigtest
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.apra/IN: loadedserial 0
#type类型有{hint|master|slave|forward}

2.5 案例演示

要求:创建一个DNS服务器域名为enzhi.comIP地址192.168.233.135。具有以下资源记录:

www     192.168.233.10

mail 192.168.233.11

ftp的正式名称为www

ns           192.168.233.135

PTR       要求能反向解析

1.安装bind服务并创建主配置文件

[[email protected]_master ~]# yum -y install bind
 
[[email protected]_master ~]# vi /etc/named.conf
options {
       directory "/var/named";
};
zone "." IN {
       type hint;
       file "named.ca";
};
zone "localhost" IN {
       type master;
       file "named.localhost";
};
zone "1.0.0.127.in-addr.apra"IN {
       type master;
       file "named.loopback";
};
zone "enzhi.com." IN {
        type master;
        file"enzhi.com.zone";
};
zone "233.168.192.in-addr.arpa" IN {
        type master;
        file"192.168.233.zone";
};
[[email protected]_master ~]# named-checkconf
[[email protected]_master ~]# chown root.named/etc/named.conf
[[email protected]_master ~]# /etc/init.d/namedconfigtest
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.apra/IN: loadedserial 0

2.创建正向区域数据文件

[[email protected]_master named]# vim  enzhi.com.zone
$TTL 600
@      IN      SOA     ns.enzhi.com.   admin.enzhi.com. (
                2016032401
                2H
                5M
                7D
                1D )
 
       IN      NS      ns
       IN      MX  10 mail
ns     IN      A       192.168.233.135
mail   IN      A       192.168.233.11
www    IN      A       192.168.233.10
ftp    IN      CNAME   www

#检查区域配置文件

检查区域配置文件可以使用bind提供的二进制程序named-checkzone命令

命令格式:

named-checkzone  “区域名称”    区域数据文件

[[email protected]_master named]# named-checkzone"enzhi.com" enzhi.com.zone
zone enzhi.com/IN: loaded serial2016032401
OK

3.创建反向区域数据文件

#创建反向区域数据文件复制正向的修改就行

[[email protected]_master named]# vim  192.168.233.zone
$TTL 600
@      IN      SOA     ns.enzhi.com.   admin.enzhi.com. (
                2016032401
                2H
                5M
                7D
                1D )
 
@      IN      NS      ns.enzhi.com.
135    IN      PTR     ns.enzhi.com.
11     IN      PTR     mail.enzhi.com.
10     IN      PTR    www.enzhi.com.
[[email protected]_master named]# named-checkzone"233.168.192.in-addr.arpa" 192.168.233.zone
zone 233.168.192.in-addr.arpa/IN: loadedserial 2016032401
OK

4.启动named服务

#启动前先做语法检查

[[email protected]_master named]#/etc/init.d/named configtest
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.apra/IN: loadedserial 0
zone enzhi.com/IN: loaded serial2016032401
zone 233.168.192.in-addr.arpa/IN: loadedserial 2016032401
[[email protected]_master named]#/etc/init.d/named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                         [  OK  ]
[[email protected]_master named]# ss -tunl|grep53
udp   UNCONN     0      0       192.168.233.135:53                   *:*    
udp   UNCONN     0      0              127.0.0.1:53                    *:*    
tcp   LISTEN     0      3       192.168.233.135:53                   *:*    
tcp   LISTEN     0      3              127.0.0.1:53                    *:*    
tcp   LISTEN     0      128                  ::1:953                  :::*    
tcp   LISTEN     0      128            127.0.0.1:953                   *:*

5.使用dig命令解析测试

#解析www.enzhi.comA记录

[[email protected]_master named]# dig -t Awww.enzhi.com @192.168.233.135

 

; <<>> DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -t A [email protected]
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id: 50422
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 1, ADDITIONAL: 1
 
;; QUESTION SECTION:
;www.enzhi.com.                 IN      A
 
;; ANSWER SECTION:
www.enzhi.com.         600     IN      A      192.168.233.10
 
;; AUTHORITY SECTION:
enzhi.com.              600     IN     NS      ns.enzhi.com.
 
;; ADDITIONAL SECTION:
ns.enzhi.com.           600     IN     A       192.168.233.135
 
;; Query time: 1 msec
;; SERVER:192.168.233.135#53(192.168.233.135)
;; WHEN: Thu Mar 24 11:35:22 2016
;; MSG SIZE  rcvd: 80

#解析enzhi.comNS记录

[[email protected]_master named]# dig -t NS enzhi.com  @192.168.233.135
 
; <<>> DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -t NS [email protected]
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id: 54970
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1
 
;; QUESTION SECTION:
;enzhi.com.                     IN      NS
 
;; ANSWER SECTION:
enzhi.com.              600     IN     NS      ns.enzhi.com.
 
;; ADDITIONAL SECTION:
ns.enzhi.com.           600     IN     A       192.168.233.135
 
;; Query time: 0 msec
;; SERVER:192.168.233.135#53(192.168.233.135)
;; WHEN: Thu Mar 24 11:36:58 2016
;; MSG SIZE  rcvd: 60

#反向解析192.168.233.10是否能解析到www.enzhi.com域名上

[[email protected]_master named]# dig -x [email protected]
 
; <<>> DiG9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -x [email protected]
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode:QUERY, status: NOERROR, id: 45072
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 1, ADDITIONAL: 1
 
;; QUESTION SECTION:
;10.233.168.192.in-addr.arpa.   IN     PTR
 
;; ANSWER SECTION:
10.233.168.192.in-addr.arpa. 600 IN     PTR    www.enzhi.com.
 
;; AUTHORITY SECTION:
233.168.192.in-addr.arpa. 600   IN     NS      ns.enzhi.com.
 
;; ADDITIONAL SECTION:
ns.enzhi.com.           600     IN     A       192.168.233.135
 
;; Query time: 1 msec
;; SERVER:192.168.233.135#53(192.168.233.135)
;; WHEN: Thu Mar 24 11:38:44 2016
;; MSG SIZE  rcvd: 105


本文出自 “enzhi” 博客,请务必保留此出处http://enzhi.blog.51cto.com/11193298/1754665

以上是关于Linux-DNS服务器:DNS介绍及BIND安装的主要内容,如果未能解决你的问题,请参考以下文章

Linux-dns基础知识和BIND的简单配置-3(主从DNS服务器及转发)

Linux-DNS服务器的配置(bind)

Linux-dns基础知识和BIND的简单配置-2(正向解析和反向解析)

Linux-DNS服务器:BIND区域传送

Linux-dns基础知识和BIND的简单配置-1

图文:Linux-DNS主备服务器搭建(高可用)