1.介绍
域名解析服务(DNS,Domain Name System)是将人类易读的域名(如 www.example.com
)转换为计算机可识别的 IP 地址(如 192.0.2.1
)的核心互联网服务。
2. 核心功能
-
域名 → IP 地址转换 :将用户输入的域名解析为对应的 IP 地址(如
google.com
→142.250.190.46
)。 -
支持多种记录类型:
-
A记录:解析到 IPv4 地址。
-
AAAA记录:解析到 IPv6 地址。
-
CNAME :域名别名(如将
www.example.com
指向example.com
)。 -
MX记录:邮件服务器地址。
-
TXT记录:文本信息(常用于验证或 SPF 反垃圾邮件)。
-
NS记录:指定负责该域名的 DNS 服务器。
-
3. 工作原理
-
递归查询:当用户在浏览器输入域名时,本地 DNS 服务器(如 ISP 或公共 DNS)会逐级查询:
- 本地缓存 → 根域名服务器(
.
) → 顶级域服务器(如.com
) → 权威域名服务器(如example.com
的 NS 服务器)。
- 本地缓存 → 根域名服务器(
-
返回结果:最终获取 IP 地址并缓存,供后续快速访问。
4. DNS服务器配置
1.提供DNS服务的软件叫 bind ,服务名是 named。
2.安装: yum install bind -y
查询: rpm -qc bind
3./etc/named.conf # bind主配置文件
4./var/named/slaves # 从dns服务器文件夹
5.配置文件说明 :
/var/named/named.ca: #根服务器信息
/var/named/named.empty: #区域数据库配置样例
/var/named/named.localhost:localhost #正向解析
/var/named/named.loopback:localhost #反向解析
/var/named/slaves #从dns服务器文件夹
5.准备环境:
服务端IP 客户端IP 网址 www.zhangsan.com
192.168.102.128 192.168.102.133 www.openlab.com
关闭防火墙 和selinux
sudo setenforce 0 ##关闭SELinux
sudo systemctl stop firewalld ##关闭防火墙
下载bind软件
yum install bind -y (做DNS所需要的软件)

实验1:配置DNS正向解析,域名-->IP地址
(服务端)192.168.102.128
1、服务端操作,编制DNS的主配置文件
cp /etc/named.conf /etc/named.conf_bak #重点文件备份
vim /etc/named.conf #进入文档中修改参数

listen-on port 53 { any; }; #监听允许访问的ip与端口,
#可以使用IP地址、网段、所有主机(any)
allow-query { any; }; #表示允许哪些客户端进行访问,
#可以书写IP地址、网段、所有主机(any)
2、服务端操作,编辑区域配置文件,可以在最后添加,也可以全部清空后修改**。**
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones_bak (备份)
vim /etc/named.rfc1912.zones ##进入文本并编辑
定位最后一行添加如下内容,或者局部修改

zone "openlab.com" IN {
type master;
file "openlab.com.zone";
allow-update { none; };
};
然后保存退出
3、服务端操作,编辑数据配置文件,使用拷贝命令将正向解析文件模板(named.localhost)复制一份,然后修改局部即可

cd /var/named
cp -a named.localhost openlab.com.zone
然后进入文件里面去编辑信息
vim openlab.com.zone
##修改如下:

$TTL 1D
openlab.com. IN SOA ns.openlab.com. admin.openlab.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
openlab.com. IN NS ns.openlab.com.
ns.openlab.com. IN A 192.102.42.128
www.openlab.com. IN A 192.102.42.128
ftp.openlab.com. IN A 192.168.102.128
bbs.openlab.com. IN A 192.168.102.128
www1.openlab.com. IN CNAME www.openlab.com. <------模板
4.重启服务
systemctl start named
(客户端)ip:192.168.102.133
1.测试,将客户端的网卡配置文件中的DNS解析地址修改为服务器的IP地址
vim /etc/NetworkManager/system-connections/ens160.nmconnection
##编辑网卡的配置文件,将dns有114.114.114.114改为服务端的IP地址(192.168.102.128)

address1=192.168.102.133/24,192.168.102.2
dns=192.168.102.128 ##将原本的114.114.114.114修改为服务端的IP地址
method=manual
2.激活网卡和服务

nmcli connection reload ##激活服务
nmcli connection up ens160 ##激活网卡
3.关闭服务端的防火墙和SELinux(防止被阻止访问)

4.用客户端测试正向解析
nslookup
是一个用于 查询 DNS(域名系统)记录 的命令行工具,主要用于检查域名解析(如 IP 地址、MX 记录等)和排查 DNS 问题。

实验2:配置DNS反向解析,IP地址-->域名
基本环境同上:(服务端ip:192.168.102.128) (客户端ip:192.168.102.133)
对服务端:
1:服务器端操作,主配置文件按照上例设置,编辑区域配置文件,添加方向解析记录,
注意:IP地址需要反向书写
进入文件可以选择在最后添加信息:
vim /etc/named.rfc1912.zones

zone "102.168.192.in-addr.arpa" IN {
type master;
file "102.168.192.arpa"; # 实际数据配置文件文件名,可以不用反向写ip地址
allow-update { none; };
};
in-addr.arpa 是互联网中用于 反向 DNS 查询(Reverse DNS Lookup) 的特殊域名后缀。
IP地址反向书写,只需要写出IP地址的网络位,再加上.in-addr.arpa即可
2、服务端操作,编辑数据配置文件,复制一份反向解析模板(named.loopback),在修改局部即可
cd /var/named
cp -a named.loopback 102.168.192.arpa
vim 102.168.192.arpa
修改为此截图

$TTL 1D
@ IN SOA ns.openlab.com. admin.openlab.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.openlab.com.
128 IN PTR ns.openlab.com.
128 IN PTR www.openlab.com.
126 IN PTR bbs.openlab.com.
127 IN PTR ftp.openlab.com.
#可以通过192.168.42.126/127/128访问
3、服务端操作,重启服务
systemctl restart named

4、客户端操作,测试

此时反向解析完毕!