配置域从DNS服务器以及缓存DNS服务器

一、域从DNS服务器的作用

我们在之前上一篇随笔里有提到,DNS服务器一般有三种类型,一个是Primary DNS Server(主DNS服务器),一个是Secondary DNS Server(从DNS服务器),还有一个就是Caching DNS Server,我们配置一个域的DNS服务就是给其配置一个主DNS服务器,那么从DNS服务器主要是用来干嘛的呢?

配置一个域的从服务器一般是为了进行备份以及负载均衡使用,例如在生产环境中,我们给一个域配置的主DNS服务器崩溃了或者被恶意攻击了,那么这个时候如果没有配置从DNS服务器的话,我们的DNS服务器就不能提供DNS服务了,也就无法解析服务器上配置的域名了,或者说主服务器的访问量特别大,此时我们配置从服务器来达到负载均衡的效果,因此我们通常在配置了一个主DNS服务器以后,还需要为其配置多个从DNS服务器

我们知道,我们为一个域配置的文件都是由主DNS服务器来控制的,我们的从服务器上的信息都是通过从主服务器上抓取得来的,当域slave服务器启动的时候就会从域master服务器上抓取指定域的zone文件,所以我们配置从服务器的步骤就非常的简单了

二、配置域从DNS服务器

我们这里通过虚拟机模拟了两台Linux主机,一台主机就是昨天已经配置好的主DNS服务器,另外一台主机作为从DNS服务器来使用。

在进行域从DNS服务器配置之前,我们首先需要在主DNS服务器上进行一些配置:

(1)开放主DNS服务器上的53、953端口

因为我们的从服务器要通过网络去抓取主服务器上的zone文件,所以我们要在iptables里面增加两个规则,开放本机的53和953端口,这里为了实验方便,就直接先将iptables清空了

[[email protected] etc]# iptables -F
[[email protected] etc]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

(2)将我们的SELinux设置成permissive

[[email protected] etc]# getenforce
Enforcing
[[email protected] etc]# setenforce 0
[[email protected] etc]# getenforce
Permissive

(3)修改一下主配置文件 named.conf

因为我们从服务器要通过网络来访问主服务器进行zone文件的抓取,所以我们要在 named.conf 主配置文件里面添加从服务器的IP地址进去,因为我们默认是指定了本机IP,这样就只能我们的本机使用BIND服务,所以我们需要将从服务器的IP地址也写进去,或者说不指定开放53、953端口的IP地址,这样其他主机也就能够通过网络访问到这台主机的DNS服务了

这是昨天配置的named.conf文件,我们这里就将 listen-on port 那两行代码删除即可

/*
 Sample named.conf BIND DNS server ‘named‘ configuration file
 for the Red Hat BIND distribution.

 See the BIND Administrator‘s Reference Manual (ARM) for details, in:
   file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
 Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
 its manual.
*/

options
{
    // Put files that named is allowed to write in the data/ directory:
    directory         "/var/named";        // "Working" directory

    //listen-on port 53    { any; };
    listen-on port 53    { 127.0.0.1; };

    //listen-on-v6 port 53    { any; };
    listen-on-v6 port 53    { ::1; };

};

zone "cnblogs.com"
{
    type master;
    file "cnblogs.com.zone";
};

修改后:

[[email protected] etc]# vim named.conf
/*
 Sample named.conf BIND DNS server ‘named‘ configuration file
 for the Red Hat BIND distribution.

 See the BIND Administrator‘s Reference Manual (ARM) for details, in:
   file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
 Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
 its manual.
*/

options
{
    // Put files that named is allowed to write in the data/ directory:
    directory         "/var/named";        // "Working" directory
};

zone "cnblogs.com"
{
    type master;
    file "cnblogs.com.zone";
};

(4)开启我们的主DNS服务器的BIND服务

[[email protected] etc]# service named start
Starting named: named: already running                     [  OK  ]

主DNS服务器的配置就基本这样子,接下来就是我们配置从DNS服务器的步骤了:

首先我们也需要在从服务器上安装BIND服务,这块就省略了,具体安装上一篇随笔有详细讲解 Linux学习之CentOS(三十四)--配置域主DNS服务器

在bind主配置文件中添加指定域的信息

我们只需要在named.conf配置文件下面添加如下信息就可:

zone "cnblogs.com"
{
  type slave;  masters { 192.168.198.129; };  file "slaves/cnblogs.com.zone"};

[[email protected] etc]# cat named.conf
/*
 Sample named.conf BIND DNS server ‘named‘ configuration file
 for the Red Hat BIND distribution.

 See the BIND Administrator‘s Reference Manual (ARM) for details, in:
   file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
 Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
 its manual.
*/

options
{
    directory         "/var/named";        // "Working" directory
};

zone "cnblogs.com"
{
    type slave;  // 指定这是从DNS服务器
    masters { 192.168.198.129; };  // 因为从DNS服务器要抓取主DNS服务器上的zone文件,这里要指定主DNS服务器的IP地址,注意:IP地址要用{}括起来,且以;结尾,前后都有空格
    file "slaves/cnblogs.com.zone";  //  从服务器默认抓取到的zone文件通常都保存在了 slaves 这个目录下};

关闭从服务器上的SELinux

因为要通过网络来访问主服务器,所以这里也需要将我们的SELinux设置成 permissive

[[email protected] etc]# getenforce
Enforcing
[[email protected] etc]# setenforce 0
[[email protected] etc]# getenforce
Permissive

注意:】因为我们从主服务器上抓取文件到 slaves 这个目录下是由 named 这个系统用户来完成的,所以我们要保证slaves要有可写权限,同时slaves的所属用户、所属组都是 named 

[[email protected] named]# ls -l
总用量 32
drwxr-xr-x. 2 root root 4096 6月   6 22:52 data
-rw-r--r--. 1 root root   56 6月   6 22:52 my.external.zone.db
-rw-r--r--. 1 root root   56 6月   6 22:52 my.internal.zone.db
-rw-r--r--. 1 root root 1892 6月   6 22:52 named.ca
-rw-r--r--. 1 root root  152 6月   6 22:52 named.empty
-rw-r--r--. 1 root root  152 6月   6 22:52 named.localhost
-rw-r--r--. 1 root root  168 6月   6 22:52 named.loopback
drwxr-xr-x. 2 root root 4096 6月   6 22:52 slaves
[[email protected] named]# chown named slaves/
[[email protected] named]# chgrp named slaves/
[[email protected] named]# ls -l
总用量 32
drwxr-xr-x. 2 root  root  4096 6月   6 22:52 data
-rw-r--r--. 1 root  root    56 6月   6 22:52 my.external.zone.db
-rw-r--r--. 1 root  root    56 6月   6 22:52 my.internal.zone.db
-rw-r--r--. 1 root  root  1892 6月   6 22:52 named.ca
-rw-r--r--. 1 root  root   152 6月   6 22:52 named.empty
-rw-r--r--. 1 root  root   152 6月   6 22:52 named.localhost
-rw-r--r--. 1 root  root   168 6月   6 22:52 named.loopback
drwxr-xr-x. 2 named named 4096 6月   6 22:52 slaves

启动我们从服务器上的BIND服务,或刷新我们的BIND服务配置

[[email protected] etc]# service named start
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]

查看域的zone配置文件是否正常被抓取到了 /var/named/chroot/var/named/slaves/ 这个目录当中

[[email protected] slaves]# ls -l
总用量 12
-rw-r--r--. 1 named named 381 6月   6 23:20 cnblogs.com.zone
-rw-r--r--. 1 root  root   56 6月   6 22:52 my.ddns.internal.zone.db
-rw-r--r--. 1 root  root   56 6月   6 22:52 my.slave.internal.zone.db

我们看到,cnblogs.com.zone文件已经从主DNS服务器上抓取下来了

[[email protected] slaves]# cat cnblogs.com.zone
$ORIGIN .
$TTL 86400    ; 1 day
cnblogs.com        IN SOA    cnblogs.com. rname.invalid. (
                0          ; serial
                86400      ; refresh (1 day)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                10800      ; minimum (3 hours)
                )
            NS    cnblogs.com.
            A    127.0.0.1
            MX    10 mail.cnblogs.com.
            AAAA    ::1
$ORIGIN cnblogs.com.
mail            A    192.168.1.222
www            A    192.168.1.111

将从DNS服务器的指向当前主机

这个时候我们的从DNS服务器已经配置好了,我们这时修改 /etc/resolv.conf 文件然后将 nameserver 指向本机

[[email protected] slaves]# vim /etc/resolv.conf

nameserver 127.0.0.1

通过 host 或者 dig 命令来验证我们的从DNS服务器是否能够正常解析

//    查询www.cnblogs.com的IP地址
[[email protected] slaves]# dig www.cnblogs.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> www.cnblogs.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61233
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;www.cnblogs.com.        IN    A

;; ANSWER SECTION:
www.cnblogs.com.    86400    IN    A    192.168.1.111

;; AUTHORITY SECTION:
cnblogs.com.        86400    IN    NS    cnblogs.com.

;; ADDITIONAL SECTION:
cnblogs.com.        86400    IN    A    127.0.0.1
cnblogs.com.        86400    IN    AAAA    ::1

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jun  6 23:29:16 2013
;; MSG SIZE  rcvd: 107

//  查询cnblogs.com这个域的邮件记录
[[email protected] slaves]# dig -t mx cnblogs.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t mx cnblogs.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3328
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3

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

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

;; AUTHORITY SECTION:
cnblogs.com.        86400    IN    NS    cnblogs.com.

;; ADDITIONAL SECTION:
mail.cnblogs.com.    86400    IN    A    192.168.1.222
cnblogs.com.        86400    IN    A    127.0.0.1
cnblogs.com.        86400    IN    AAAA    ::1

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jun  6 23:30:04 2013
;; MSG SIZE  rcvd: 124

//  查询mail.cnblogs.com的IP地址
[[email protected] slaves]# dig mail.cnblogs.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> mail.cnblogs.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47353
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;mail.cnblogs.com.        IN    A

;; ANSWER SECTION:
mail.cnblogs.com.    86400    IN    A    192.168.1.222

;; AUTHORITY SECTION:
cnblogs.com.        86400    IN    NS    cnblogs.com.

;; ADDITIONAL SECTION:
cnblogs.com.        86400    IN    A    127.0.0.1
cnblogs.com.        86400    IN    AAAA    ::1

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jun  6 23:30:36 2013
;; MSG SIZE  rcvd: 108

我们看到,我们的域名都能正常的解析成功,说明我们的从DNS服务器的配置就成功了

这个时候我们的客户端既可以指向我们的主服务器,也可以指向我们的从服务器了,当主服务器发生故障时,从服务器就会接替主服务器进行工作,提供DNS服务

三、配置缓存DNS服务器

在上面以及前一篇随笔中我们讲解了如何配置一个主DNS服务器,以及从DNS服务器,但是一个DNS服务器可以既不是某个域的master服务器,也可以不是某个域的slave服务器,一个DNS服务器可以不包含任何域的配置信息,它将接收到的所有DNS查询进行递归解析,将解析的结果返回给我们的查询客户端,并且将查询结果缓存下来,这样的服务器就称之为Caching DNS Server

通常我们在一个局域网中配置一个缓存DNS服务器是为了加速网络访问

我们也可以在缓存服务器上配置一个上游的DNS服务器地址,缓存服务器可以给客户提供一个上游DNS服务器的地址,只需通过加上以下一行语句在 named.conf 主配置文件即可:

forwarders { 218.30.19.40; };

[[email protected] etc]# vim named.conf

/*
 Sample named.conf BIND DNS server ‘named‘ configuration file
 for the Red Hat BIND distribution.

 See the BIND Administrator‘s Reference Manual (ARM) for details, in:
   file:///usr/share/doc/bind-{version}/arm/Bv9ARM.html
 Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
 its manual.
*/

options
{
        directory               "/var/named";           // "Working" directory
        forwarders      { 218.30.19.40; };  // 一般上游的DNS服务器要更稳定,性能更好  forwarders forward 选项都要写在 options 里面
};

zone "cnblogs.com"
{
        type slave;
        masters { 192.168.198.129; };
        file "slaves/cnblogs.com.zone";
};

我们还可以通过以下选项让缓存服务器将所有的DNS查询转发到forwarders服务器上:

forward only;

时间: 2024-11-10 07:16:29

配置域从DNS服务器以及缓存DNS服务器的相关文章

Service系统服务(四):搭建单区域DNS服务器、特殊DNS解析、配置DNS子域授权、搭建并测试缓存DNS

一.搭建单区域DNS服务器 目标: 本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站.测试阶段主要提供以下正向记录: svr7.tedu.cn ---> 192.168.4.7    pc207.tedu.cn ---> 192.168.4.207    www.tedu.cn ---> 192.168.4.100 配置完成后在客户机上验证查询结果. 方案: 快速构建DNS服务器的基本过程: 1> 安装 bind.bind-chroot

linux dns子域授权 split分离解析 缓存dns服务器

DNS子域授权作用:适用于同一个DNS组织父/子域名的解析工作由不同的dns服务器负责父dns服务器应该有为子域名迭代的能力 上下级区域属于不同的机构管理:.cn与.Anonymous.cn.cn需要知道子域名信息.cn没有义务为客户机去查询子域站点属于同一个机构管理:.Anonymous.cn与bj.Anonymous.cn.Anonymous.cn需要知道子域信息.Anonymous.cn有义务为客户机去查询子域站点 -------------------------------- 案列:子

配置域主DNS服务器

一.DNS服务器的类型 ①Primary DNS Server(Master) 一个域的主服务器保存着该域的zone配置文件,该域所有的配置.更改都是在该服务器上进行,本篇随笔要讲解的也是如何配置一个域的主DNS服务器 ②Secondary DNS Server(Slave) 域从服务器一般都是作为冗余负载使用,一个域的从服务器是从该域的主服务器上抓取zone配置文件,从服务器不会进行任何信息的更改,zone配置文件的修改只能在主DNS服务器上进行,所有的修改都有主服务器同步 ③Caching

配置缓存DNS服务器和主DNS服务器

规划: 域:fsy.com地址段:172.16.100.0/24 ns地址:172.16.100.3 www地址:172.16.100.3, 172.16.100.5 mail地址:172.16.100.4 ftp 别名: www 一.配置缓存DNS服务器: 1.安装软件包 [[email protected] ~]# yum -y install bind 2.备份主配置文件 [[email protected] ~]# mv /etc/named.conf /etc/named.conf.o

Centos7.5配置缓存DNS服务器(三)

本案例我们来搭建缓存DNS服务器,我们需要准备2台Centos7.5系统,svr100作为缓存DNS服务器,IP为192.168.2.100/24,pc200作为客户机,IP地址为192.168.2.200/24,其中客户机的DNS地址需配置为服务器的IP地址192.168.2.100. 实验拓扑如下图: 第一步,我们在svr100上安装bind.bind-chroot软件包,如下图 第二步,我们编辑svr100的主配置文件,在options中配置真实的DNS服务器地址,编辑如下: 第三步,检查

11_DNS子域授权、分离解析、缓存DNS服务器

VM:    pc7:10.10.11.10    pc8:10.10.11.11 1.搭建基本DNS服务器 pc7:10.10.11.101.1 安装软件包]# yum -y install bind-chroot bindbind         //域名服务包bind-chroot  //提供虚拟根支持,牢笼政策 1.2 修改配置文件]# cp -p /etc/named.conf /etc/named.conf.bak]# vim /etc/named.confoptions {dire

企业云桌面-02-安装第2台域控制器和第2台DNS服务器

作者:学 无 止 境 QQ交流群:454544014 注意: <企业云桌面>系列博文是<企业云桌面规划.部署与运维实践指南>的基础部分,因为书中内容涉及非常多,非常全面,所以基础部分将以博文的形式给读者展现,将在书中引用. <企业云桌面规划.部署与运维实践指南>将以某社保中心云桌面为中心,采用VMware Workstation Pro 12.5.2在1台物理机上模拟.读者按书中的步骤一步一步去做,就可以实现.    1. 虚拟机 2. 计算机名-IP 1) 计算机名

企业云桌面-01-安装第1台域控制器和第1台DNS服务器

作者:学 无 止 境 QQ交流群:454544014 注意: <企业云桌面>系列博文是<企业云桌面规划.部署与运维实践指南>的基础部分,因为书中内容涉及非常多,非常全面,所以基础部分将以博文的形式给读者展现,将在书中引用. <企业云桌面规划.部署与运维实践指南>将以某社保中心云桌面为中心,采用VMware Workstation Pro 12.5.2在1台物理机上模拟.读者按书中的步骤一步一步去做,就可以实现.     1. 虚拟机 2. 基本设置 1) 计算机名 2)

缓存DNS服务器和主DNS服务器的快速搭建详解

缓存DNS服务器和主DNS服务器的快速搭建详解 一.设定配置内容假设我们已经在网上注册了wangej.com域名,得到的IP网络是172.16.12.0/24ns服务器是:172.16.12.1www服务器:172.16.12.1,另外一个地址:172.16.12.3mail服务器:172.16.12.2ftp主机在www服务器上,即ftp为www的别名 二.准备工作:这里我们使用bind97来搭建我们的DNS服务器,首先需要安装好bind97.i386.bind97-libs.i386.bin