DNS服务器搭建

DNS服务器搭建

1.什么是DNS

DNS,网域名称系统(Domain Name System),它是作为将域名和IP地址相互映射的一个分布式数据库,使用的TCP和UDP端口为53,目前,最流行的软件是DNS软件是bind,其官方网站为: https://www.isc.org 目前最流行的是9.11.2 (于2017年7月)

2.bind安装

yum安装与源码安装的区别,源码可以自主选择编译的版本,定制编译的模块,但是编译起来较为复杂,而yum安装的版本有限,且不能够自定义编译的模块。

2.1yum安装

查看bind版本

1 [root@localhost bind-9.11.2]# yum list bind
2 Loaded plugins: fastestmirror
3 Loading mirror speeds from cached hostfile
4  * base: mirrors.sohu.com
5  * extras: mirrors.sohu.com
6  * updates: mirrors.sohu.com
7 Installed Packages
8 bind.x86_64                                                                                32:9.9.4-50.el7_3.1                                                                                 @updates
9 [root@localhost bind-9.11.2]# 

安装:

1 [root@localhost bind-9-11]# yum install -y bind

2.2源码安装

下载网址: https://www.isc.org/downloads/

利用wget下载: 

1 [root@localhost ~]# wget https://www.isc.org/downloads/file/bind-9-11-2/?version=tar-gz

解压:

1 [root@localhost ~]# tar xf bind-9.11.2.tar.gz 

查看编译帮助:

  1 [root@localhost ~]# cd bind-9.11.2
  2 [root@localhost bind-9.11.2]# ./configure --help

编译:

1 [root@localhost bind-9.11.2]# ./configure --prefix=/usr/local/bind-9-11 --enable-ipv6 --enable-filter-aaaa --enable-full-report --without-openssl
2 [root@localhost bind-9.11.2]# make
3 [root@localhost bind-9.11.2]# make install

 3.配置文件介绍

我们将采用yum安装的bind软件

配置文件介绍:

DNS主配置文件:/etc/named.conf

区域数据配置文件:/var/named/*

主配置文件介绍:

 1 [root@localhost ~]# cat /etc/named.conf
 2 ;options表示全局参数,在这里设置的东西将在整个文档生效
 3 options {
 4     ;监听的端口是53 ip为127.0.0.1
 5     listen-on port 53 { 127.0.0.1; };
 6     
 7     ;监听ipv6的端口为53 监听的地址块为::1/128
 8     listen-on-v6 port 53 { ::1; };
 9     
10     ;定义资源配置文件
11     directory     "/var/named";
12     
13     dump-file     "/var/named/data/cache_dump.db";
14     statistics-file "/var/named/data/named_stats.txt";
15     memstatistics-file "/var/named/data/named_mem_stats.txt";
16     allow-query     { localhost; };   ;只允许localhost访问
17 
18     ;是否允许递归
19     recursion yes;
20 
21     dnssec-enable yes;
22     dnssec-validation yes;
23 
24     bindkeys-file "/etc/named.iscdlv.key";
25 
26     managed-keys-directory "/var/named/dynamic";
27 
28     ;DNS pid文件存放路径
29     pid-file "/run/named/named.pid";
30     session-keyfile "/run/named/session.key";
31 };
32 
33 ;日志文件
34 logging {
35         channel default_debug {
36                 file "data/named.run";
37                 severity dynamic;
38         };
39 };
40 
41 ;资源
42 zone "." IN {
43     ;hind 根 master 主 slave 从 forward 转发
44     type hint;
45     ;文件位置  options directory中的相对路径
46     file "named.ca";
47 };
48 
49 ;包含文件
50 include "/etc/named.rfc1912.zones";
51 include "/etc/named.root.key";
52 
53 [root@localhost ~]# 

正向解析文件介绍

 1 ;/etc/named.rfc1912.zones 是在/etc/named.conf中include包含的的文件,也属于配置文件
 2 [root@localhost named]# sed -n 13,17p /etc/named.rfc1912.zones 
 3 zone "localhost.localdomain" IN { ;localhost.localdomain在named.localhost 中可以用@取代
 4     type master;                  ;类型为主配置文件
 5     file "named.localhost";          ;域文件
 6     allow-update { none; };
 7 };
 8 [root@localhost named]# 
 9 
10 [root@localhost named]# cat named.localhost 
11 $TTL 1D                            $设置TTL时间 全局变量
12 @    IN SOA    @ rname.invalid. ( ;这里的@取决于在/etc/named设置的值
13                     0    ; serial    ;ID号
14                     1D    ; refresh    : 刷新时间
15                     1H    ; retry        : 重试时间
16                     1W    ; expire    : 结束时间
17                     3H )    ; minimum    :返回否定时间
18     NS    @        ;添加NS记录
19     A    127.0.0.1        ;添加A记录(ipv4)
20     AAAA    ::1            ;添加AAAA记录(ipv6)
21 [root@localhost named]# 

反向文件解析介绍

 1 [root@localhost named]# sed -n 31,35p /etc/named.rfc1912.zones 
 2 zone "1.0.0.127.in-addr.arpa" IN {    ;地址是127.0.0.1反过来写加上.in-addr.arpa 这是反向解析的格式
 3     type master;                    ;类型为主服务器配置文件
 4     file "named.loopback";            ;域文件
 5     allow-update { none; };
 6 };
 7 ;这是解析的文件,和上面正向解析文件一致
 8 [root@localhost named]# cat /var/named/named.loopback 
 9 $TTL 1D
10 @    IN SOA    @ rname.invalid. (
11                     0    ; serial
12                     1D    ; refresh
13                     1H    ; retry
14                     1W    ; expire
15                     3H )    ; minimum
16     NS    @
17     A    127.0.0.1
18     AAAA    ::1
19     PTR    localhost.
20 [root@localhost named]# 

4.打造一个DNS服务器

规划:

DNS服务器名称以及IP:wang-li.top   192.168.155.204

www服务器域名以及IP:www.wang-li.top  192.168.155.205

ftp服务器域名以及IP:ftp.wang-li.top  www.wang-li.top的别名

4.1 DNS 主配置文件如下:

 1 [root@DNS1 etc]# cat named.conf
 2 options {
 3     ;设置目录
 4     directory     "/var/named";        
 5     ;允许递归的网络段
 6     allow-recursion    {192.168.155.0/24;};
 7 };
 8 
 9 zone "." IN {
10     type hint;
11     file "named.ca";
12 };
13 
14 zone "localhost" IN {
15     type master;
16     file "named.localhost";
17 };
18 
19 ;增加zone文件
20 zone "wang-li.top" IN {
21     ;类型为master
22     type    master;
23     ;文件地址位于/var/named/wang-li.top.zone
24     file    "wang-li.top.zone";
25     ;不允许传送
26     allow-transfer {none;};
27 };
28 [root@DNS1 etc]# 

 4.2 zone 文件如下:

 1 [root@DNS1 named]# cat /var/named/wang-li.top.zone
 2 $TTL    1200                                        ;设置TTL值  为1200s 后面就无需设置TTL值了
 3 @        IN    SOA    ns1    admin (                ;SOA记录
 4             20170802                                ;版本号
 5             1H                                      ;刷新时间
 6             5M                                      ;重试时间
 7             1W                                      ;过期时间
 8             1D                                      ;否定时长
 9 )
10 
11         IN    NS    ns1                             ;增加ns1的记录
12 ns1        IN    A    192.168.155.204               ;增加ns1的A记录
13 www        IN    A    192.168.155.205               ;增加www的A记录
14 ftp        IN    CNAME    www                       ;增加ftp的CNAME(别名)记录
15 [root@DNS1 named]# 

  4.3 修改/etc/resolv.conf文件并且测试搭建的DNS服务器

修改/etc/resolv.conf  nameserver内容为我们刚刚搭建好的DNS服务器ip

1 [root@DNS1 named]# cat /etc/resolv.conf 
2 # Generated by NetworkManager
3 nameserver 192.168.155.204
4 [root@DNS1 named]# 

 使用dig命令进行检测

检测DNS服务器名称是否OK

1 [root@DNS1 named]# dig -t NS wang-li.top | grep "ANSWER SECTION" -A 2
2 ;; ANSWER SECTION:
3 wang-li.top.        1200    IN    NS    ns1.wang-li.top.
4 
5 [root@DNS1 named]# 

检测www解析是否OK

1 [root@DNS1 named]# dig -t A www.wang-li.top | grep -i "ANSWER SECTION" -A 2
2 ;; ANSWER SECTION:
3 www.wang-li.top.    1200    IN    A    192.168.155.205
4 
5 [root@DNS1 named]# 

 检测ftp解析是否OK

1 [root@DNS1 named]# dig -t A ftp.wang-li.top | grep -i "ANSWER SECTION" -A 2
2 ;; ANSWER SECTION:
3 ftp.wang-li.top.    1200    IN    CNAME    www.wang-li.top.
4 www.wang-li.top.    1200    IN    A    192.168.155.205
5 [root@DNS1 named]# 

总结:

 1 在named.conf中
 2 1.如添加一个zone,需要注意的是type值为
 3     hint:根(这里用于添加zone为.的时候用)
 4     master:主
 5     slave:从
 6 2.在添加file的时候,路径为相对路径,是按照option中directory中的地址来设定的
 7 3.注意配置文件是以分号;结尾
 8 
 9 在zone文件中
10 1.TTL可添加,可不添加,$TTL是把TTL的值加到全局设定中去
11 2.SOA记录必须要有,格式为:区域名称 IN    SOA    服务器名称    邮箱(版本号,刷新时间,重试时间,过期时间,否定时间),其中W:周 D:天 H:时 M:分
12 3.添加完SOA记录后,必须要为NS赋予A记录或者AAAA的IP地址(A:IPv4 AAAA:IPv6)
13 4.A:地址    CNAME:别名
原文地址:https://www.cnblogs.com/NoneID/p/7257942.html