搭建本地私有DNS服务器

目录

  • DNS配置参数介绍
  • 配置NDS服务器
  • 配置主从DNS服务器
  • 子域DNS服务器
  • 搭建DNS视图



一、DNS配置参数介绍

1.1 主配置文件/etc/named.conf

options {...};               设定DNS服务器全局环境

listen-on port 53 {...;};    DNS服务named监听的端口和ip

directory                    定义数据库文件存放的目录,即zone file的存放目录

dump-file/statistics-file/memstatistics-file

关于named服务的统计信息的文件

allow-query {...;};          允许连接进行询问的主机

allow-transfer {...;};       是否允许slave DNS对领域数据进行转发

allow-update {...;};         动态DNS更新

recursion                    是否支持递归查询,设置为no将不能访问根服务器

forward                      是否支持转发

only                 表示只进行转发

first                表示优先

默认first

forwarders {ip1;ip2;....;};   指定转发的上层DNS服务器IP

zone "xxx" IN {...};          区域描述声明

type                  指定zone类型

hint              表示跟服务器

master            表示该区域的主DNS服务器

slave             表示该区域的从DNS服务器

file                  表示DNS数据库文件放在哪里

view " " {...};                域名视图描述声明

acl "xxx" {...;};              定义访问控制列表,名字为xxx

内置的acl:localhost/localnet/any/none:本地主机的IP/该局域网的所有IP/任何IP/所有都不

include " ";                   将过多的zone声明写入一个文件当中,以免主配置文件过于繁琐

1.2 数据库文件/var/named/*

DNS服务器的数据库记录信息

$TTL       该区域的记录信息能够在客户端的缓存中存活多长时间

SOA        一个区域的记录信息的开始,必须标识

格式为:区域    IN    SOA    主DNS服务器域名    邮件服务器域名 (

serial;    序列号,从DNS的序列号如果小于它则会更新数据

refresh;   从DNS服务器多长时间检查一次主DNS的数据

retry;     从DNS服务器连接主DNS失败后,多长时间后重新连接

expire;    从DNS始终无法连接主DNS,从DNS的数据库文件何时失效

minimum;   如果DNS服务器查询结果失败,此失败信息会在缓存缓存中存活多长时间

)

例如:1804170045 5 5 2592000 3600

表示:2018/4/17第45次刷新,slave每5秒连接master,连接失败则在5秒之后再次连接,直到2592000秒,查询失败的记录在其他DNS服务器中存活3600秒

NS        管理区域的DNS服务器名称,每个域名都有自己的NS记录,必须标识

A         主机名对应的IPv4地址,必须标识

AAAA      ipv6的地址

MX        表示区域的邮件服务器的域名

CNAME     主机别名,用于域名内部的跳转,为服务器配置提供灵活性。变更域名的IP地址的时候,只需要修改别名

格式为:别名    IN    CNAME    DNS服务器的域名

PTR        PoinTeR的缩写,逆向查询记录,后边记录的数据就是反解到的主机名,反向解析数据库文件必须标识

1.3 DNS解析的常用命令

查询主机名IP的命令

host [option] <FQDN> [server]

-a         列出详细信息

-l         列出domain所管理的所有主机名的信息

nsloopup <FQDN> [server]

支持正解和反解

dig [option] <FQDN> [@server]

+trace     从根服务器开始追踪

- t <type> 指定查询的数据类别

-x         反解查询

whois <domain>

查询注册的domain的信息

该命令来自jwhois软件

rndc reload     重新读取named.conf

named-checkconf 检查主配置文件named.conf的语法

tips:

/etc/sysconfig/named     是否开启chroot

文件中定义了chroot指定的根目录

/var/named/              DNS数据库存放目录

/var/run/named/          放置pid-file的目录,该文件定义了开启named服务的进程号

/etc/nsswitch.conf       决定下边两个文件的服务顺序

/etc/resolv.conf DNS服务的IP,该文件会受到DHCP服务器的影响

/etc/hosts       本地主机名和IP的对应



二、配置DNS服务

搭配DNS环境

指定区域linux.com,CentOS6为该域名的DNS服务器,该DNS服务器的域名为master.linux.com,同时有另外一个名字为www.linux.com;

该域名服务器有一个别名叫做ftp.linux.com;

该区域内有一台名为www.linux.com的邮件服务器;

该DNS服务器的IP为192.168.138.254,并且用CentOS7(192.168.138.150)来测验;

该DNS服务器支持正向解析和反向解析。

tip:一个服务器可以是一个IP对应多个域名,同样也可以一个域名对应多个IP。

named-checkconf检查配置文件的语法错误

① 修改主配置文件:/etc/named.conf

主要设置参数如下:

我们模拟的是在192.168.138.0/24的网段内搭建DNS服务器,因此设置监听的IP为192.168.138.254;

因为现在搭建的DNS服务器并没有连接外网,想要解析例如www.baidu.com的时候,需要recursion设置为yes,表示允许递归查询;

现在之后一台DNS服务器,因此将关于主从DNS的选项allow-transfer的ACL设置为none;

另外需要特别注意的是反解zone的格式,必须将IP倒着写。如138.168.192.in-addr.arpa

[[email protected] ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { 192.168.138.254; };
    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     { any; };
    allow-transfer { none; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
/* 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 "linux.com" IN {
    type master;
    file "named.linux.com";
};

zone "138.168.192.in-addr.arpa" IN {
    type master;
    file "named.192.168.138";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

② 修改root的数据库文件:/var/named/name.ca

该文件是安装BIND的时候直接现成的,因此不需要我们去修改。

③修改正解数据库文件:/var/named/named.linux.com

正解数据库文件中必须要有$TTL、SOA、NS、A记录。

[[email protected] ~]# cat /var/named/named.linux.com 
$TTL 1D
@					IN SOA	master.linux.com. www.linux.com. (
		 	2018041901	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
@					IN	NS	master.linux.com. ;
@					IN	MX	10 www.linux.com. ;
master.linux.com.	IN	A	192.168.138.254 ;
www.linux.com.		IN	A	192.168.138.254 ;
ftp.linux.com.		IN	CNAME	www.linux.com. ;

④修改反解数据库文件:/var/named/named.192.168.138

反解数据库文件必须有$TTL、SOA、NS、PTR记录

[[email protected] ~]# cat /var/named/named.192.168.138 
$TTL 1D
@					IN SOA	master.linux.com. www.linux.com. (
		 	2018041901	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
@					IN	NS	master.linux.com. ;
254 	                                IN	PTR	master.linux.com. ;
254					IN	PTR	www.linux.com. ;

⑤ 开启CentOS6的named服务,然后用CentOS7来测试

正向解析成功!!!

反向解析成功!!!

解析外网成功!!!



三、配置主从DNS

每个域名中至少需要两台DNS服务器来管理该域名,提供不间断的查询服务,一个master,一个slave,slave自己没有数据库,需要从master那里同步,并且master需要开启数据库传输。

环境规划:

CentOS6作主DNS服务器,域名为master.linux.com,mini6作从DNS服务器,域名为slave.linux.com,他们共同管理区域linux.com。

主DNS的配置

① 配置/etc/named.conf,主要注意的是每个zone文件里的allow-transfer参数;

[[email protected] ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { localhost; };
    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     { any; };
    allow-transfer { none; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;

zone "." IN {
    type hint;
    file "named.ca";
};

zone "linux.com" IN {
    type master;
    file "named.linux.com";
    allow-transfer { 192.168.138.100; };
};

zone "138.168.192.in-addr.arpa" IN {
    type master;
    file "named.192.168.138";
    allow-transfer { 192.168.138.100; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

②  配置正向数据库文件/var/named/named.linux.com,添加从DNS服务器的NS记录和S记录;

[[email protected] ~]# cat /var/named/named.linux.com 
$TTL 1D
@					IN SOA	master.linux.com. www.linux.com. (
		 	        2018041902	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
@					IN	NS	master.linux.com. ;
@                                       IN      NS      slave.linux.com. ;
@					IN	MX	10 www.linux.com. ;
master.linux.com.	IN	A	192.168.138.254 ;
slave.linux.com.        IN      A       192.168.138.150 ;
www.linux.com.		IN	A	192.168.138.254 ;
ftp.linux.com.		IN	CNAME	www.linux.com. ;

③ 配置反向数据库文件/var/named/named.192.168.138,添加从DNS服务器的NS记录和PTR记录;

[[email protected] ~]# cat /var/named/named.192.168.138 
$TTL 1D
@					IN SOA	master.linux.com. www.linux.com. (
    		 	        2018041902	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
@					IN	NS	master.linux.com. ;
@                                       IN      NS      slave.linux.com. ;
254 	                                IN	PTR	master.linux.com. ;
254					IN	PTR	www.linux.com. ; 
150                                     IN      PTR     slave.linux.com. ;

从DNS的配置

④ 配置文件/etc/named.conf,在每个zone参数里边添加masters选项;

从master数据库同步的数据需要考虑文件权限的问题和SELinux,所以为了减少麻烦,系统预留了/var/named/slaves目录,注意slaves目录原本没有文件存在,该目录已经为我们设定好权限和SELinux了,我们只需要把同步的文件放在该目录下即可。

[[email protected] ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { localhost; };
    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     { any; };
    allow-transfer  { none ; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "linux.com" IN {
    type slave;
    file "slaves/named.linux.com";
    masters { 192.168.138.254; };
};

zone "138.168.192.in-addr.arpa" IN {
    type slave;
    file "slaves/named.192.168.138";
    masters { 192.168.138.254; };
};

⑤ 重启主从DNS服务器的named,会发现在从DNS服务器上,/var/named/slaves/目录下多了两个数据库文件;

⑥ 查看/var/log/messages的日志。



四、子域DNS服务器

环境规划:

CentOS6作为区域linux.com.的DNS服务器,域名为master.linux.com;

在linux.com.下委派子域centos.linux.com.,CentOS7作子域的DNS服务器,域名为dns.centos.linux.com。

上层DNS服务器配置

① 配置/var/named/named.linux.com,添加下层DNS的NS记录和A记录;

$TTL 1D
@                   IN SOA  master.linux.com. www.linux.com. (
            2018041905  ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
@                   IN  NS  master.linux.com. ;
@                   IN  NS  slave.linux.com. ;
@                   IN  MX  10 www.linux.com. ;
centos.linux.com.   IN  NS  dns.centos.linux.com. ;
dns.centos.linux.com.   IN  A   192.167.138.150 ;
master.linux.com.   IN  A   192.168.138.254 ;
slave.linux.com.    IN  A   192.168.138.100 ;
www.linux.com.      IN  A   192.168.138.254 ;
ftp.linux.com.      IN  CNAME   www.linux.com. ;

配置下层DNS

② 修改/etc/named.conf,添加zone参数;这里特别注意,要开启子域DNS服务器的转发功能(forward),不开的话只能上层查询下层,下层查询不到上层,这个小细节坑了我一上午。

[[email protected] ~]# cat /etc/named.conf 
options {
    listen-on port 53 { 192.168.138.150; };
    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     { any; };
    forward first;
    forwarders { 192.168.138.254; };
    
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
    pid-file "/run/named/named.pid";
};

zone "." IN {
    type hint;
    file "named.ca";
};
zone "centos.linux.com" IN {
    type master;
    file "named.centos.linux.com";
};

③ 配置/var/named/named.centos.linux.com,添加zone数据库文件,注意必须要指明邮件服务器www.centos.linux.com.,很重要;

$TTL    600
@       IN      SOA     dns.centos.linux.com. www.centos.linux.com. (
                        2018041905  ; serial
                        3600  ; refresh
                        3600  ; retry
                        3600  ; expire
                        3600 )    ; minimum
@       IN      NS      dns.centos.linux.com. ;
@       IN      MX      10 www.centos.linux.com. ;
dns     IN      A       192.168.138.150 ;
www     IN      A       192.168.138.150 ;

④ 测试。

上层查询下层子域DNS服务器

下层查询上层DNS服务器



五、搭建DNS视图

环境规划

CentOS6作为区域linux.com.的DNS服务器,域名为master.linux.com.;

CentOS6上边有两个网段VMnet1、VMnet2,分别为192.168.124.0/24,192.168.138.0/24;

不同网段的客户端查询同样的域名master.linux.com,根据客户端IP的不同会得到不同的IP地址。

① 配置/etc/named.conf,添加view参数;

options {
    listen-on port 53 { localhost; };
    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     { any; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
};

acl vmnet1 { 192.168.124.0/24; };
acl vmnet2 { 192.168.138.0/24; };

view "vmnet2" {
    match-clients { "vmnet2"; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "linux.com" IN {
        type master;
        file "named.linux.com";
    };
    zone "138.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.138";
    };
};

view "vmnet1" {
    match-clients { "vmnet1"; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "linux.com" IN {
        type master;
        file "named.linux.com.another";
    };
};

② 配置/var/named/named.linux.com.another数据库文件,其他数据库文件和上边的一样,主要修改区域linux.com.的DNS服务器的IP即可;

$TTL    1D
@    IN    SOA    master.linux.com. www.linux.com. (
                    2018041905; serial
                    1D; refresh
                    1H; retry
                    1W; expire
                    3H ); minimum
@    IN    NS    master.linux.com. ;
@    IN    NS    slave.linux.com. ;
@    IN    MX    10 www.linux.com. ;
centos.linux.com.    IN    NS    dns.centos.linux.com. ;
dns.centos.linux.com.IN    A    192.168.138.150 ;
master.linux.com.    IN    A    192.168.124.1 ;
slave.linux.com.     IN    A    192.168.138.100 ;
www.linux.com.       IN    A    192.168.124.1 ;
ftp.linux.com.       IN    CNAME    www.linux.com. ;

③ 测试。



搭建本地私有DNS服务器

原文地址:http://blog.51cto.com/13570193/2106152

时间: 2024-11-08 14:00:19

搭建本地私有DNS服务器的相关文章

docker使用registry搭建本地私有仓库

参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库. 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 接下来我们就大致说一下如何在本地搭建

CentOS 6.5 网络服务器功能的实现①:运用bind搭建基本的DNS服务器

何谓DNS服务?简而言之,DNS服务在互联网中可以实现域名解析(把域名转换成网络可以识别的IP地址). 名词解释①:正向解析:域名解析IP地址:反向解析:IP地址解析域名. DNS服务的正/反向区域解析文档大部分是靠手打出来的,但我们不必惧怕,毕竟在这里我们还是能摸索出一些窍门的. 注意:防火墙和SELinux都会对DNS服务器有一定的影响,为避免不必要的麻烦,在做实验时建议搭建DNS服务器之前,应把防火墙和SELinux关闭. [情景实例] 配置一个常规DNS服务器 ①搭建一台DNS服务器,为

CentOS 7 下搭建 主辅 DNS 服务器

1.1操作系统的版本信息   # uname -a   Linux localhost.localdomain3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014       x86_64 x86_64 x86_64GNU/Linux   # cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 1.2.BIND包的安装         # yum  -y  inst

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

搭建本地私有docker仓库

1.使用registry镜像创建私有仓库  docker run -d -p 5000:5000   --restart=always --name registry registry:2 这条命令将自动下载并启动一个registry容器,创建本地的私有仓库 --restart=always:表示当docker服务重启时,registry也会自动启动 2. 从配置的公共registry地址下载ubuntu:16.04 镜像到本地 docker pull ubuntu:16.04 3.将镜像重新打

docker 搭建本地私有仓库

1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 registry:2 这将自动下载并启动一个 registry 容器,创建本地的私有仓库服务. 默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下.可以通过 -v 参数来将镜像文件存放在本地的指定路径.例如下面的例子将上传的镜像放到 /opt/data/registry 目录: d

搭建本地Ubuntu 镜像服务器

一.需求分析能不能在局域网搭建一个Ubuntu 镜像服务器,这样作的好处是可以节省Ubuntu某些常用工具的安装时间. 二.部署过程 2.1 测试环境目前在公司内有一台能连接到外网的Ubuntu机器, IP : 192.168.8.173 ,Ubuntu版本为Ubuntu 9.04 i686. 2.2 搭建步骤为了创建Ubuntu mirror 服务器,最少需要60G硬盘空间,Ubuntu每个版本都有32 bit和64 bit两个版本,有两组deb包.当然可以创建Ubuntu一个版本的32 bi

Linux 搭建本地 ntp时间服务器

Linux搭建本地时间服务器 实验前说明: 实验机器:VMware 10 实验系统:CentOS6.6 实验目的:让VMware上的所有CentOS系统时间都一样,方便做集群实验: # 1,编译安装ntp(在你想做时间服务器的那台机器上)我这台机器ip为:172.16.249.135 # 安装gcc编译器 yum install gcc -y # 下载程序包 wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p

本地配置DNS服务器(MAC版)

作为一个前端开发者,会遇到使用cookie的情况,常见的如:登录,权限控制,视频播放,图形验证码等,这时候本地开发者在PC上会使用修改hosts的方式添加指向本地的域名,来获取cookie的同域名.如: 127.0.0.1 local.smartstudy.com 但是在移动端的时候,这一招就不好使了,苹果手机在没越狱的情况下是没法修改hosts的,难道为了这个让自己的爱机越个狱?答案应该是否定的.那么怎么处理这个问题呢?完美解决方案就是配置本地局域网的DNS服务.于是我就查询了一系列的文档文章