CentOS6.6下bind搭建DNS服务器

我们通过浏览器访问互联网需要输入网址,而这个网址是我们比较容易记忆的,互联网上的服务器却并不能识别这一串有意义的地址,互联网之间的通信是靠ip地址来实现的,ip地址是数字组成的,对于我们日常访问都需要输入一串数字,这是一件很痛苦的事情,所以才有了上面说的有意义的网址,那么网址是如何转换成IP地址的呢?这就是DNS服务器的作用了。

DNS全称是Domain Name System域名系统,那么域名又是什么呢?域名就是我们容易记忆的的一串字符,如果想拥有自己的域名则需要向域名代理商进行注册,代理商会收取一定的费用,一般代理商都有免费的DNS服务器,我们只需要将申请到的域名解析到我们服务器的外网IP上,那么DNS就是能够将我们易于记忆的域名解析为计算机识别的IP地址,别人访问我们的域名就能够从服务器读取网页了,。

域的分类:

.:根域,所有的域名均属于根域,而域名解析也是从根域服务器开始的,全球共有13台根域服务器。

顶级域:最初全球一共有7大顶级域名.com,.gov,.org,.mil,.edu,.net,int,随着互联网的发展,现在顶级域也很多了,像.cn等国家域,.hk城市域等

二级域:个人或者组织可以注册使用,我们注册的就是二级域,像stu30.com

FQDN:全称是Full Qualified
Domain Name,完全授权域名,像www.stu30.com,这才是我们访问互联网需要的输入的网址。

DNS解析过程:

(1)客户机发出请求解析域名www.stu30.com的报文。

(2)本地的域名服务器收到请求后,查询本地缓存,假设没有该纪录,则本地域名服务器ns.stu30.com则向根域名服务器NS.INTER.NET发出请求解析域名www.stu30.com

(3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果stu30.com NS ns.stu30.com(表示stu30.com域中的域名服务器为:ns.stu30.com),同时给出ns.stu30.com的地址,并将结果返回给域名服务器ns.stu30.com。

(4)域名服务器ns.stu30.com收到回应后,再发出请求解析域名www.stu30.com的报文。

(5)域名服务器ns.stu30.com收到请求后,开始查询本地的记录,找到如下一条记录www.stu30.com  A  172.16.30.1(表示stu30.com域中域名服务器ns.stu30.com的IP地址为:172.16.30.1),并将结果返回给客户本地域名服务器dns.stu30.com。

(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。这样就完成了一次域名解析过程。

上面介绍了DNS解析域名的过程,其中包含了两种查询方式,递归查询和迭代查询。

递归查询:仅发出一次请求,要求对方回复最终结果,像上面的第5步,我们需要www.stu30.com的解析结果,得到的就是我们所需要的结果

迭代查询:对方响应的可能是个参考答案,像第3步,我们需要www.stu30.com的解析结果但是返回给我们的确实负责这个域的dns服务器的IP只是告诉我们,在那台服务器上有我们所需要的结果,并不是最终的结果。

上面的解析过程出现了NS这个字串,这是DNS解析的资源类型中的一种,下面就来介绍下DNS解析的资源类型。

标准的资源记录具有其基本格式:

  [name]   [ttl]   IN  type  rdata

  name:名称字段,此字段是资源记录引用的域对象名,可以是一台单独的主机也可以是整个域。字段值:"."是根域,@是默认域,即当前域,

  ttl:生存时间字段,它以秒为单位定义该资源记录中的信息存放在DNS缓存中的时间长度。通常此字段值为空,表示采用SOA记录中的最小TTL值(即1小时),可是在最前面提前赋值,后面就可以省略。

  IN:此字段用于将当前湖泊记录标识为一个INTERNET的DNS资源记录。

  TYPE:类型字段,用于标识当前资源记录的类型。

资源记录类型:

SOA:用于一个区域的开始,SOA记录后的所有信息均是用于控制这个区域的,每个区域数据库文件都必须包谷一个SOA记录,并且必须是其中的第一个资源记录,用以标识DNS服务器管理的起始位置,SOA说明能解析这个区域的dns服务器中哪个是主服务器。

NS :NS记录,用于标识区域的DNS服务器,即是说负责此DNS区域的权威名称服务器,用哪一台DNS服务器来解析该区域。一个区域有可能有多条ns记录,例如ns.stu30.com有可能有一个主服务器和多个辅助服务器。

MX (mail exchange):邮件交换器记录,用于告知邮件服务器进程将邮件发送到指定的另一台邮件服务器(该服务器知道如何将邮件传送到最终目的地)。

A:(host),即是A记录,也称为主机记录,是DNS名称到IP地址的映射,用于正向解析。

  CNAME:CNAME记录,也是别名记录,用于定义A记录的别名。

  PTR:是IP地址到DNS名称的映射,用于反向解析。

  radata: 数据字段用于指定与当前资源记录有关的数据,数据字段的内容取决于类型字段。


  资源记录类型


  一句话


  起始授权结构(SOA)


  指出当前区域内谁是 
 主DNS服务器


  主机(A)


  将域名FQND映射到IP  正向解析


  别名(CNAME)


  将A记录指向的域名 指向 另外一个域名


  邮件交换器(MX)


  指出当前区域内 SMTP邮件服务器IP


  名称服务器(NS)


  指出当前区域内有几个DNS服务器在提供服务


  反向解析(PRT)


  将IP解析为域名FQND

正向解析资源记录

反向解析资源记录

Linux平台下搭建DNS服务器需要用到Bind这个程序,直接yum
install –y bind 就可以安装了;

配置文件:

主配置文件/etc/named.conf

区域配置文件:/etc/named.rfc1912.zones

区域文件:/var/named/ZONE_NAME.zone

DNS主服务器服务器搭建:

1,  主配置文件修改://为注释

options {
listen-on
port 53 { 127.0.0.1; 172.16.30.1; };    //DNS服务监听的IP以及端口
                    
        listen-on-v6 port 53 { ::1; };    //是否开启IPV6支持
                    
        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; };    //允许谁发起请求any表示允许所有人,可以是IP地址,以 ; 分隔,且与大括号之间有空格
                    
        recursion yes;        //是否允许递归查询
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside no;
        /* Path to ISC DLV key
        bindkeys-file
"/etc/named.iscdlv.key";
        managed-keys-directory
"/var/named/dynamic";*/
};

2,  区域配置文件修改:

zone "stu30.com" IN {
                  
       type master;     //master表示这是stu30.com这个域的主DNS服务器,slave表示从服务器
                   
       file "stu30.com.zone";    //区域文件位置,默认为/var/named/目录下
};
zone
"30.16.172.in-addr.arpa" IN {
       type master;
       file "172.16.30.zone";
};

3,  区域文件生成

正向解析区域文件:

$TTL 600
$ORIGIN
stu30.com.
@               IN      SOA    
ns.stu30.com. admin.stu30.com. (
                                2014122201
                                3H
                                5M
                                3D
                                2H )
                IN      NS     
ns.stu30.com.
                IN      MX 10  
mail.stu30.com.
ns              IN      A      
172.16.30.1
mail            IN      A      
172.16.30.1
www1            IN      A      
172.16.30.1
pop3            IN      CNAME  
mail

反向解析区域文件:

$TTL 600
$ORIGIN
30.16.172.in-addr.arpa.
@               IN      SOA    
ns.stu30.com. admin.stu30.com. (
                                2014122201
                                3H
                                5M
                                3D
                                2H )
                IN      NS     
ns.stu30.com.
                IN      MX 10  
mail.stu30.com.
1                                   IN              PTR           ns.su30.com.
1               IN      PTR    
mail.stu30.com.
1               IN      PTR    
www.stu30.com.
pop3.stu30.com.
IN      CNAME   mail.stu30.com.

4,开启DNS服务

Service named start

现在一个简单的DNS服务器已经搭建好了,下面开始测试,使用dig命令

用法:dig [-t
type] [-x IP] name @SERVER [queryoptions]

[-t type]:资源记录类型

query options:

+[no]trace:是否追踪查询

+[no]recurse:是否递归查询

我们可以使用dig –t axfr
stu30.com @172.16.30.1 来查询所有的DNS记录,先来个正向解析的

[[email protected] ~]#
dig -t axfr stu30.com @172.16.30.1
 
;
<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t
axfr stu30.com @172.16.30.1
;; global
options: +cmd
stu30.com.                600  IN     SOA  ns.stu30.com. admin.stu30.com. 2014122203
10800 300 259200 7200
stu30.com.                600  IN     NS    ns.stu30.com.
stu30.com.                600  IN     NS    ns1.stu30.com.
stu30.com.                600  IN     MX   10 mail.stu30.com.
mail.stu30.com.                600  IN     A       172.16.30.1
ns.stu30.com.          600  IN     A       172.16.30.1
ns1.stu30.com.                 600  IN     A       172.16.30.2
pop3.stu30.com.               600  IN     CNAME    mail.stu30.com.
www1.stu30.com.            600  IN     A       172.16.30.1
stu30.com.                600  IN     SOA  ns.stu30.com. admin.stu30.com. 2014122203
10800 300 259200 7200
;; Query time: 4
msec
;; SERVER:
172.16.30.1#53(172.16.30.1)
;; WHEN: Wed Dec
24 15:53:57 2014
;; XFR size: 10
records (messages 1, bytes 249)

再来个反向解析

[[email protected]
~]# dig -x 172.16.30.1 @172.16.30.1
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1
<<>> -x 172.16.30.1 @172.16.30.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,
status: NOERROR, id: 26830
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3,
AUTHORITY: 2, ADDITIONAL: 2
 
;; QUESTION SECTION:
;1.30.16.172.in-addr.arpa.      IN     PTR
 
;; ANSWER SECTION:
1.30.16.172.in-addr.arpa. 600         IN     PTR  mail.stu30.com.
1.30.16.172.in-addr.arpa. 600         IN     PTR  ns.stu30.com.
1.30.16.172.in-addr.arpa. 600         IN     PTR  www1.stu30.com.
 
;; AUTHORITY SECTION:
30.16.172.in-addr.arpa.  600  IN     NS    ns1.stu30.com.
30.16.172.in-addr.arpa.  600  IN     NS    ns.stu30.com.
 
;; ADDITIONAL SECTION:
ns.stu30.com.          600  IN     A       172.16.30.1
ns1.stu30.com.                 600  IN     A       172.16.30.2
 
;; Query time: 2 msec
;; SERVER: 172.16.30.1#53(172.16.30.1)
;; WHEN: Wed Dec 24 15:54:32 2014
;; MSG SIZE 
rcvd: 170

从DNS服务器搭建:

从DNS服务器只需要配置好主配置文件和区域配置文件就可以了,主配置文件和主DNS服务器的配置一样,区域配置文件稍微有些区别,不用生成区域资源文件,因为主服务器序列号发生变化后,会发送通知给从服务器,从服务器会主动域主服务器进行同步区域资源文件。

从服务器区域配置文件修改:

zone
"stu30.com" IN {
       type slave;        //定义为从服务器   
         masters { 172.16.30.1; };  //区域资源文件目录      
         file "slaves/stu30.com.zone";        //区域资源文件目录
};
zone "30.16.172.in-addr.arpa" IN {       
         type slave;    
         masters { 172.14.30.1; };     
         file "slaves/172.16.30.zone";
};

需要在DNS服务器的正向区域资源文件中将加上从服务器的NS和A记录以及反向区域资源文件中加上NS和PTR记录。

配置好之后之后我们只要修改主服务器的区域资源文件的序列号,并执行service named reload就能将文件同步到从服务器上了;

日志中显示已经发送同步通知了,再去从服务器的/var/named/slaves/目录下就会多出两个区域资源文件,序列号正是我们修改的。

Dec 24 15:56:28 www named[16101]: reloading configuration succeeded
Dec 24 15:56:28 www named[16101]: reloading zones succeeded
Dec 24 15:56:28 www named[16101]: 172.16.30.zone:16: ignoring
out-of-zone data (pop3.stu30.com)
Dec 24 15:56:28 www named[16101]: zone 30.16.172.in-addr.arpa/IN:
loaded serial 2014122207
Dec 24 15:56:28 www named[16101]: zone 30.16.172.in-addr.arpa/IN:
sending notifies (serial 2014122207)
Dec 24 15:56:28 www named[16101]: zone stu30.com/IN: loaded serial
2014122207
Dec 24 15:56:28 www named[16101]: zone stu30.com/IN: sending
notifies (serial 2014122207)
Dec 24 15:56:28 www named[16101]: client 172.16.30.2#47422: transfer
of ‘30.16.172.in-addr.arpa/IN‘: AXFR-style IXFR started
Dec 24 15:56:28 www named[16101]: client 172.16.30.2#47422: transfer
of ‘30.16.172.in-addr.arpa/IN‘: AXFR-style IXFR ended
Dec 24 15:56:29 www named[16101]: client 172.16.30.2#47789: transfer
of ‘stu30.com/IN‘: AXFR-style IXFR started
Dec 24 15:56:29 www named[16101]: client 172.16.30.2#47789: transfer
of ‘stu30.com/IN‘: AXFR-style IXFR ended

查询测试:

[[email protected] slaves]# dig -t axfr stu30.com @172.16.30.2
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6
<<>> -t axfr stu30.com @172.16.30.2
;; global options: +cmd
stu30.com.                600  IN     SOA  ns.stu30.com. admin.stu30.com. 2014122203
10800 300 259200 7200
stu30.com.                600  IN     NS    ns.stu30.com.
stu30.com.                600  IN     NS    ns1.stu30.com.
stu30.com.                600  IN     MX   10 mail.stu30.com.
mail.stu30.com.                600  IN     A       172.16.30.1
ns.stu30.com.          600  IN     A       172.16.30.1
ns1.stu30.com.                 600  IN     A       172.16.30.2
pop3.stu30.com.               600  IN     CNAME    mail.stu30.com.
www1.stu30.com.            600  IN     A       172.16.30.1
stu30.com.                600  IN     SOA  ns.stu30.com. admin.stu30.com. 2014122203
10800 300 259200 7200
;; Query time: 5 msec
;; SERVER: 172.16.30.2#53(172.16.30.2)
;; WHEN: Wed Dec 24 07:40:42 2014
;; XFR size: 10 records (messages 1, bytes 249)

子域授权:

子域授权就是在原有域下声明子域DNS。

在主DNS服务器中添加子域的dns服务器NS与A记录,这样通过父域可以解析到子域,通过子域自己也可以解析到,但是通过子域是无法解析到父域的。

$TTL
600
$ORIGIN stu30.com.
@              
                                   IN      SOA     ns.stu30.com. admin.stu30.com. (
                                2014122203
                                3H
                                5M
                                3D
                                2H )
               
                                   IN      NS      ns.stu30.com.
               
                                   IN      NS      ns1.stu30.com.
ops                                IN              NS              ns.ops.stu30.com.  //子域服务器NS记录
               
                                   IN      MX 10   mail.stu30.com.
ns             
                                   IN      A       172.16.30.1
ns1            
                                   IN      A       172.16.30.2
ops                                IN              A                172.16.30.3     //子域服务器A记录
mail           
                                   IN      A        172.16.30.1
www1                               IN     
A       172.16.30.1
pop3                               IN      CNAME  
mail

DNS转发:

DNS转发可以定义对某一区域的请求执行转发,需要在区域资源配置文件中实现;也可以对凡是不是本服务器所负责的域均执行转发,在主配置文件/etc/named.conf文件中实现。转发方式分为first和only,first:先转发,如果没有响应,则去找根进行迭代查询;only,只转发,若没有响应则一直等待。

指定区域转发:
zone "stu.com" IN {      
        type forward ;      
        forwarders { 172.16.0.1; };
};
全局转发:
options {
        forward first ;
        forwarders { 172.16.0.1; };
};

DNS视图

为了使不同地域(联通和电信)的用户都能够获得比较好的用户体验,需要将不同的运营商的IP地址解析到响应的运营商IP上,DNS视图便可实现这个功能。

这里我们以内网和外网为例:

需要配置区域资源配置文件/etc/named.rfc.1912.zones

acl int {
       172.16.0.0/16;             //定义内网
};
acl out {
       192.168.0.0/24;            //定义外网
};
view INT {
match-clients { int ;};
recursion yes;
zone "." IN {
    type hint;
    file "named.ca";
};
       
zone "stu30.com" IN {
    type master;
    file "stu30.com.int.zone";          //内网区域资源文件
};
};
view OUT {
match-clients { out ;};      
recursion yes;      
zone "." IN {               
    type hint;              
    file "named.ca";
};     
zone "stu30.com" IN {
    type master ;
    file stu30.com.out.zone;   //外网区域资源文件
};
};

测试解析:内网会被解析到172.16.30.2,外网会被解析到172.16.30.5

客户端172.16.30.1

问题总结:

1,  在搭建从服务器时,如何在主服务器的反向资源文件中配置从服务器

2,  开启DNS视图需要将所有的zone文件加到view中,包括根域

时间: 2024-10-06 05:42:36

CentOS6.6下bind搭建DNS服务器的相关文章

使用bind搭建DNS服务器

二. 使用bind搭建DNS服务器 1. 安装bindyum install -y bindcp /etc/named.conf /etc/named.conf.bak  >/etc/named.confvim /etc/named.conf 加入如下配置: options { directory "/var/named"; }; zone "." IN  { type hint; file "named.ca"; }; zone &quo

Linux下快速搭建DNS服务器

一.术语解释:TTL Time To Live 缓冲保留时间ORIGIN 属于哪个域@ 代指域IN 开头需要空格SOA 一行记录类型的开始参数:forwarders {} 指向自己无法解析的域名跳转到外部dns服务测试方法:host 域名(host IP) 使用nslookup方法测试 使用dig @ns ip或域名测试邮件服务 dig 域名 mxmx 邮件交换记录 IN MX 10 域名------------------------------------------------------

Linux下搭建DNS 服务器

CentOS6.6下DNS服务器的搭建 Linux下的DNS的软件包为bind,有如下几个软件包: bind           #DNS服务的主程序 bind-utils # 工具,包含dig,nslookup等网络诊断工具. bind-chroot      # 修改named 的root目录,这样named被入侵后,黑客也被限制在指定的目录下,不能切换到/,避免造成更大的破坏.[下面的演示中,为了简单起见就没安装该组件] # 安装bind软件包 yuminstall bind bind-u

Linux下搭建DNS服务器

一.修改Linux主机名 1.hostname 主机名 [[email protected] named]# hostname ifs.com 2.vi /etc/hosts [[email protected] named]# vi /etc/hosts 127.0.0.1 ns.ifs.com ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ~ 3.vim /etc/sysconfi

详解Linux 6&7上搭建DNS服务器

整个hteret大家庭中连接了数以亿计的服务器个人主机,其中大部分的网站,部件等服务器都使用了域名形式的地址,如www.google.com.mail 163.com 等.很显然这种地址形式要比使月01231317202103 7A 的户地址形式更加直观而且更容易被用户记住. DNS系统在网络中的 作用处是维护着一个地址数现连,其中记录了各种主机城名与户地址的技关系上内便光安户租序现供正向的地址解析服务正向解析根据域名查IP 地址即将指定的域名解析为相对应的P地址,域名的正向解 析是DNS服务器

Linux DNS (2)搭建DNS服务器

注意:实验很简单,环境很重要.大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的. 首先我们先准备环境: 虚拟机一个 RedHat5.9系统两个操作系统 我们把他们的网路连接在同一个"VMnet"里 配置IP地址,都配置在一个网段的IP. 注释: DNS有几点要注意的 DNS可以一个域名对应很多IP DNS可以一个IP对应很多域名 注意:首先要关闭防火墙和selinux [[email protected] ~]#  /etc/init.d/

搭建DNS服务器+邮件服务器

一·搭建DNS服务器 试验要求:完成DNS的正反向解析 试验前准备: 服务器 192.168.203.201 server1.example.com 客户机 192.168.203.202 server2.example.com 192.168.203.203 database.example.com 修改DNS nmcli c modify eno16777736 ipv4.dns 8.8.8.8 systemctl restat network 1.1 安装相关程序 yum install

搭建dns服务器

前言: 我们在一台服务器上搭建了两个web站点,并且是以域名作为区分的虚拟主机,当我们输入服务器的ip访问时,默认进入的是第一个虚拟主机,而且wordpress虚拟主机是要通过https验证证书的,所以必须得通过域名访问,所以接下来我们搭建一个域名服务器,解析www.a.com和www.b.com. 正文: 此次搭建dns服务器我们使用bind,首先第一步当然是安装程序啦~我们依然时候搭建http服务器的那个设备,ip为172.16.53.183 yum install bind 第一步,先进行

自己动手搭建DNS服务器

前言: 在我们平时上网中,访问的都是域名,那么域名是如何转换为IP地址的呢?进而访问我们的服务器主机的呢?这时候就需要用到DNS服务器了.DNS是由域名解析器和域名服务器组成的,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器. 那么接下就开始搭建DNS服务器吧! 1.首先搭建主DNS服务器,ch1主机配置如下: [[email protected] ~]# yum -y install bind        ## 安装bind程序 [[emai