DNS服务器搭建

时间:2022-06-01 20:50:42

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:别名