20260417 DNS实验

一、DNS实验

1.1 实验规划

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

主机名 主机IP 作用
dns-server 10.1.8.10/24 DNS服务器
dns-client 10.1.8.11/24 DNS客户端

1.2 安装 BIND

通过安装bind软件包来安装BIND。 名称服务器本身作为named服务运行。 bind包将HTML和PDF格式

的BIND文档在安装在/usr/share/doc/bind/目录

bash 复制代码
[root@dns-server ~ 09:50:12]# yum install -y bind bind-utils

1.3 实验配置

bash 复制代码
[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块将服务器配置为承载laogao.cloud及其相应的反向查找区域8.1.10.in

addr.arpa的主要区域文件。

bash 复制代码
[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 "jiang.cloud" IN {
        type master;
        file "jiang.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组所有,以便守

护程序在某种程度上受到损害时不能更改它们。

bash 复制代码
[root@dns-server ~ 09:56:11]# touch /var/named/jiang.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记录。

示例:laogao.cloud域

bash 复制代码
# 参考named.localhost
[root@dns-server ~ 10:10:18]# cat /var/named/named.localhost > 
/var/named/jiang.cloud.zone 
[root@server ~ 10:10:18]# vim /var/named/jiang.cloud.zone
bash 复制代码
$TTL 3600
@       IN SOA  dns.jiang.cloud. root.jiang.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   dns.jiang.cloud.
dns     IN A    10.1.8.10
server  IN A    10.1.8.10
student IN CNAME        client.jiang.cloud.
client  IN A    10.1.8.11
www 30  IN A    10.1.8.200
@       IN MX   10 mail.jiang.cloud.
mail    IN A    10.1.8.253
bash 复制代码
[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.jiang.cloud. root.jiang.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   dns.jiang.cloud.
10      IN PTR  dns.jiang.cloud.
10      IN PTR  server.jiang.cloud.
11      IN PTR  client.jiang.cloud.
11      IN PTR  student.jiang.cloud.
200     IN PTR  www.jiang.cloud.
253     IN PTR  mail.jiang.cloud.

1.3.4 验证配置

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

  • named-checkconf,验证 /etc/named.conf
bash 复制代码
[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。
bash 复制代码
[root@dns-server ~ 10:53:52]# named-checkzone jiang.cloud /var/named/jiang.cloud.zone 
zone jiang.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

bash 复制代码
 # 启用并启动服务
[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

bash 复制代码
# 配置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.jiang.cloud
PING dns.jiang.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.311 ms
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.895 ms
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=3 ttl=64 time=0.840 ms
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=4 ttl=64 time=0.462 ms
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=5 ttl=64 time=0.551 ms
64 bytes from server.jiang.cloud (10.1.8.10): icmp_seq=6 ttl=64 time=0.724 ms
^C
--- dns.jiang.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.jiang.cloud
PING client.jiang.cloud (10.1.8.11) 56(84) bytes of data.
64 bytes from student.jiang.cloud (10.1.8.11): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from student.jiang.cloud (10.1.8.11): icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from student.jiang.cloud (10.1.8.11): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from student.jiang.cloud (10.1.8.11): icmp_seq=4 ttl=64 time=0.071 ms
64 bytes from student.jiang.cloud (10.1.8.11): icmp_seq=5 ttl=64 time=0.078 ms
^C
--- client.jiang.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
相关推荐
代码中介商2 小时前
Linux 帮助手册与用户管理完全指南
linux·运维·服务器
weixin_449173654 小时前
Linux -- 项目中查找日志的常用Linux命令
linux·运维·服务器
想唱rap5 小时前
C++智能指针
linux·jvm·数据结构·c++·mysql·ubuntu·bash
Strugglingler5 小时前
基于whiptail开发shell导航工具
linux·shell·ui设计·whiptail
艾醒(AiXing-w)5 小时前
Linux系统管理(二十)——Linux root磁盘不足?一站式应急清理方案(亲测可用)
linux·运维·服务器
小义_6 小时前
【Kubernetes】(五) pod2
linux·云原生·容器·kubernetes
哇哦9827 小时前
渗透安全(渗透防御)②
linux·安全·渗透防御
chao_6666668 小时前
AI coding 代码开发规范
linux·运维·服务器
xiaobangsky8 小时前
Linux SMB/CIFS 网络挂载配置指南
linux·运维·网络