Linux的DNS配置

一、DNS实验

1.1 实验规划

用centos7模板克隆2台,安装下表配置主机名,IP地址

主机名主机IP作用
dns-server10.1.8.10/24DNS服务器
dns-client10.1.8.11/24DNS客户端

1.2 安装 BIND

通过安装bind软件包来安装BIND。 名称服务器本身作为named服务运行。 bind包将HTML和PDF格式
的BIND文档在安装在/usr/share/doc/bind/目录

[root@dns-server ~ 09:50:12]# yum install -y bind bind-utils

1.3 实验配置

[root@dns-server ~ 09:51:00]# vim /etc/named.conf 
......
options {
# 修改listen-on
listen-on port 53 { 127.0.0.1; 10.1.8.10; };
......
# 修改allow-query
allow-query { any; };
};
......

1.3.1 配置 zone

示例:以下named.conf块将服务器配置为承载song.cloud及其相应的反向查找区域8.1.10.in
addr.arpa的主要区域文件。

[root@dns-server ~ 09:51:00]# vim /etc/named.conf 
.............
# 最后添加以下内容
zone "." IN {
        type hint;
        file "named.ca";
};

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

zone "song.cloud" IN {
        type master;
        file "song.cloud.zone";
};

zone "8.1.10.in-addr.arpa" IN {
        type master;
        file "10.1.8.zone";
};

配置说明:

  • type,指定服务器角色。
  • file,指定相对路径名。 相对路径由 options 块中的 directory 指令设置。

1.3.2 创建区域文件

辅助区域文件应保存在/var/named/slaves中。辅助服务器启动时,会将其缓存的区域版本与主服务器上
的当前版本进行比较:如果区域文件版本是最新的,则使用该区域文件; 如果区域文件版本不是最新的
或文件不存在,则named执行区域传输并将结果缓存在该文件中。

BIND 应该能够读取这些区域文件,但不能写入它们。 这些文件应归root用户和named组所有,以便守
护程序在某种程度上受到损害时不能更改它们。

[root@dns-server ~ 09:56:11]# touch /var/named/song.cloud.zone /var/named/10.1.8.zone
[root@dns-server ~ 10:09:26]# chmod 640 /var/named/*.zone
[root@dns-server ~ 10:09:39]# chown root:named /var/named/*.zone

# 如果系统开启了selinux功能,执行下面命令设置文件标签
[root@dns-server ~ 10:10:18]# chcon -t named_zone_t /var/named/*.zone

1.3.3 添加记录

正向记录,将名称映射到IP地址和其他记录。该区域文件必须具有:

  • SOA记录。
  • 每个公用名称服务器的NS记录
  • 该区域的其他A,AAAA,CNAME,MX,SRV和TXT记录。

示例:song.cloud域

# 参考named.localhost
[root@dns-server ~ 10:10:18]# cat /var/named/named.localhost > 
/var/named/song.cloud.zone 
[root@server ~ 10:10:18]# vim /var/named/song.cloud.zone
$TTL 3600
@       IN SOA  dns.song.cloud. root.song.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   dns.song.cloud.
dns     IN A    10.1.8.10
server  IN A    10.1.8.10
student IN CNAME        client.song.cloud.
client  IN A    10.1.8.11
www 30  IN A    10.1.8.200
@       IN MX   10 mail.song.cloud.
mail    IN A    10.1.8.253
[root@dns-server ~ 10:43:14]# cat /var/named/named.loopback > /var/named/10.1.8.zone
[root@dns-server ~ 10:44:51]# vim /var/named/10.1.8.zone 
$TTL 1D
@       IN SOA  dns.song.cloud. root.song.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   dns.song.cloud.
10      IN PTR  dns.song.cloud.
10      IN PTR  server.song.cloud.
11      IN PTR  client.song.cloud.
11      IN PTR  student.song.cloud.
200     IN PTR  www.song.cloud.
253     IN PTR  mail.song.cloud.

1.3.4 验证配置

在重新加载或重新启动named之前,应该验证/etc/named.conf文件和区域文件的语法。

  • named-checkconf,验证 /etc/named.conf
[root@dns-server ~ 10:52:47]# named-checkconf
[root@dns-server ~ 10:52:50]# named-checkconf /media/backups/named.conf
  • named-checkzone zone zone-file,通过zone-file验证zone。
[root@dns-server ~ 10:53:52]# named-checkzone song.cloud /var/named/song.cloud.zone 
zone song.cloud/IN: loaded serial 0
OK

启动服务器时,应监视系统日志中是否有错误。 单个错误也可能会导致整个区域无法加载,但是无法加
载区域不会阻止后台驻留程序启动。因此除非我们在启动过程中监视系统日志,否则很难弄清楚哪里错
了。
例如,我们可以查看与named.service单位文件有关的systemd的日志输出:

[root@dns-server ~ 10:54:08]# journalctl -f _SYSTEMD_UNIT=named.service
-- Logs begin at Fri 2026-04-17 09:05:32 CST. --

1.3.5 运行 BIND

 # 启用并启动服务
[root@dns-server ~ 10:55:04]# systemctl enable named --now
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@dns-server ~ 10:55:15]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2026-04-17 10:55:15 CST; 8s ago
   
 # 设置防火墙
[root@dns-server ~ 10:55:24]# firewall-cmd --add-service=dns
FirewallD is not running
[root@dns-server ~ 10:55:42]# firewall-cmd --add-service=dns --permanent 
FirewallD is not running

1.4 客户端测试

1.4.1方式1:配置dns

# 配置dns
[root@dns-client ~ 09:28:01]# nmcli connection modify ens33 ipv4.dns 10.1.8.10 autoconnect yes
[root@dns-client ~ 10:56:23]# nmcli connection up ens33 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

# ping 测试
[root@dns-client ~ 10:56:31]# ping dns.song.cloud
PING dns.song.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.311 ms
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.895 ms
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=3 ttl=64 time=0.840 ms
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=4 ttl=64 time=0.462 ms
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=5 ttl=64 time=0.551 ms
64 bytes from server.song.cloud (10.1.8.10): icmp_seq=6 ttl=64 time=0.724 ms
^C
--- dns.song.cloud ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.311/0.630/0.895/0.209 ms
[root@dns-client ~ 10:56:46]# ping student.song.cloud
PING client.song.cloud (10.1.8.11) 56(84) bytes of data.
64 bytes from student.song.cloud (10.1.8.11): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from student.song.cloud (10.1.8.11): icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from student.song.cloud (10.1.8.11): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from student.song.cloud (10.1.8.11): icmp_seq=4 ttl=64 time=0.071 ms
64 bytes from student.song.cloud (10.1.8.11): icmp_seq=5 ttl=64 time=0.078 ms
^C
--- client.song.cloud ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4001ms
rtt min/avg/max/mdev = 0.029/0.065/0.080/0.018 ms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值