DNS服务配置

DNS服务配置

基于 CentOS7 编写文章,鉴于网上的教程都参差不齐,我希望各位如果真心想学的肯定是想知道原理来举一反三进行配置,而不是死磕配置。

1.安装 DNS 服务

1
[root@ftp_skills_net yum.repos.d]# yum -y install bind-*

2.防火墙放行 DNS 服务,并重启防火墙

1
2
3
4
5
[root@ftp_skills_net yum.repos.d]# firewall-cmd --add-service=dns --permanent
success
[root@ftp_skills_net yum.repos.d]# firewall-cmd --reload
success
[root@ftp_skills_net yum.repos.d]#

3.配置DNS服务主配置文件 /etc/named.conf

1
2
3
4
5
6
7
8
9
10
11
[root@ftp_skills_net yum.repos.d]# vim /etc/named.conf
[root@ftp_skills_net yum.repos.d]# head -8 /etc/named.conf
options {
listen-on port 53 { any; }; // 修改为 any
listen-on-v6 port 53 { any; }; // 修改为 any
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
[root@ftp_skills_net yum.repos.d]#

修改三个选项

4.修改rfc文件 /etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@ftp_skills_net yum.repos.d]# vim  /etc/named.rfc1912.zones 
[root@ftp_skills_net yum.repos.d]# tail -13 /etc/named.rfc1912.zones

zone "7.16.172.in-addr.arpa" IN { // 反向解析
type master;
file "172.16.7.61.arpa"; // 反向解析记录文件
allow-update { none; };
};

zone "waiting.com" IN { //正向解析
type master;
file "waiting.com.zone"; // 正向解析记录文件
allow-update { none; };
};

[root@ftp_skills_net yum.repos.d]#

5.复制正向,反向解析文件。并重命名

1
2
3
4
5
// 复制正向文件,并重命名对上上面的rfc文件写的名字
[root@ftp_skills_net named]# cp named.localhost waiting.com.zone

// 复制反向文件,并重命名对上上面的rfc文件写的名字
[root@ftp_skills_net named]# cp named.loopback 172.16.7.61.arpa

6.编辑正向解析文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ftp_skills_net ~]# vim /var/named/waiting.com.zone 
[root@ftp_skills_net ~]# cat /var/named/waiting.com.zone
$TTL 1D
@ IN SOA www.waiting.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.waiting.com.
www IN A 172.16.7.61
test IN A 172.16.7.60
[root@ftp_skills_net ~]#

7.编辑反向解析文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ftp_skills_net ~]# vim /var/named/172.16.7.61.arpa 
[root@ftp_skills_net ~]# cat /var/named/172.16.7.61.arpa
$TTL 1D
@ IN SOA www.waiting.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.waiting.com.
61 IN PTR www.waiting.com.
60 IN PTR test.waiting.com.
[root@ftp_skills_net ~]#

8.查看 正向/反向 解析文件的所有组,所有者,如不为 named 使用以下命令修改

1
2
3
4
5
6
7
8
9
10
// 查看拥有权限
[root@ftp_skills_net ~]# cd /var/named/
[root@ftp_skills_net named]# ll
total 24
-rw-r-----. 1 root root 217 Dec 6 05:27 172.16.7.61.arpa
-rw-r-----. 1 root root 206 Dec 6 05:25 waiting.com.zone
[root@ftp_skills_net named]#

// 修改拥有权限
[root@ftp_skills_net ~]# chown named:named /var/named/172.16.7.61.arpa && chown named:named /var/named/waiting.com.zone

9. 确保以上工作做完,我们就可以重启 dns 服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 重启 dns 服务
[root@ftp_skills_net named]# systemctl restart named

// 查看 dns服务 状态
[root@ftp_skills_net named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2025-12-06 05:37:57 EST; 3s ago
Process: 11640 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 11655 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 11652 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 11657 (named)
CGroup: /system.slice/named.service
└─11657 /usr/sbin/named -u named -c /etc/named.conf

Dec 06 05:37:57 ftp_skills_net named[11657]: managed-keys-zone: loaded serial 2
Dec 06 05:37:57 ftp_skills_net named[11657]: zone 0.in-addr.arpa/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone 7.16.172.in-addr.arpa/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone localhost.localdomain/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone localhost/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone waiting.com/IN: loaded serial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN:...erial 0
Dec 06 05:37:57 ftp_skills_net named[11657]: all zones loaded
Dec 06 05:37:57 ftp_skills_net named[11657]: running
Hint: Some lines were ellipsized, use -l to show in full.
[root@ftp_skills_net named]#

10.以上都没问题之后,我们可以使用 nslookup 命令查看解析是否正确

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 查看正向解析
[root@ftp_skills_net named]# nslookup www.waiting.com
Server: 172.16.7.61
Address: 172.16.7.61#53

Name: www.waiting.com
Address: 172.16.7.61

// 查看反向解析
[root@ftp_skills_net named]# nslookup 172.16.7.61
Server: 172.16.7.61
Address: 172.16.7.61#53

61.7.16.172.in-addr.arpa name = www.waiting.com.

[root@ftp_skills_net named]#

至此,DNS服务配置完毕,请根据题目需求,修改域名与解析记录。

在配置DNS服务到最后一步的时候,如果其他地方都配置正确,但是解析不正确的话,可以检查一下主机的系统DNS配置是否为本机IP地址,如果不是,请修改。

提一嘴:
    可能有些题目需要添加 邮件服务(mail)那么我们对应的,就需要在 正向解析文件,反向解析文件 添加对应的记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 正向解析文件添加
$TTL 1D
@ IN SOA www.waiting.com. admin.waiting.com. (
2025120602 ; Serial
1D
1H
1W
3H )

; 权威 DNS
IN NS www.waiting.com.

; A 记录
mail IN A 172.16.7.62
// 假设我们的mail邮件服务器地址

; MX 记录
@ IN MX 10 mail.waiting.com.

; 可选别名
ftp IN CNAME www.waiting.com.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 反向解析文件添加
$TTL 1D
@ IN SOA www.waiting.com. admin.waiting.com. (
2025120602 ; Serial
1D ; Refresh
1H ; Retry
1W ; Expire
3H ) ; Minimum TTL

IN NS www.waiting.com.

; PTR 记录
62 IN PTR mail.waiting.com. ; 邮件服务器