您的位置:首页 > 文旅 > 美景 > web前端开发薪资_局域网管理软件_简单的网页设计作品_百度推广二级代理商

web前端开发薪资_局域网管理软件_简单的网页设计作品_百度推广二级代理商

2025/4/30 17:41:42 来源:https://blog.csdn.net/2301_81704123/article/details/147142331  浏览:    关键词:web前端开发薪资_局域网管理软件_简单的网页设计作品_百度推广二级代理商
web前端开发薪资_局域网管理软件_简单的网页设计作品_百度推广二级代理商

正向解析

1、配置主机名

[root@localhost ~]# dnf install bash-completion -y
#一个按tap键补全的软件
[root@localhost ~]# hostnamectl hostname dns
#改主机名为dns
[root@localhost ~]# exit
ssh root@你的IP地址
要重启才会生效
2、安装bind
[root@dns ~]# dnf install bind -y

3、修改核心配置文件(把原本的删除--ggdG)

[root@dns ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "demo.com" IN {
type master;
file "demo.com.zone";
};详细解释:
1. 整体结构
/etc/named.conf 是 BIND 服务的主配置文件,它定义了 DNS 服务器的全局选项和管理的域名区域。2. options 块
plaintext
options {listen-on port 53 { 192.168.72.135; };directory "/var/named";
};
options 关键字:用于定义 DNS 服务器的全局选项,这些选项会影响服务器的整体行为。
listen-on port 53 { 192.168.72.135; };:
listen-on 用于指定 DNS 服务器监听的 IP 地址和端口。
port 53 明确了监听的端口号,53 是 DNS 服务的标准端口。
{ 192.168.72.135; } 表示服务器仅在 IP 地址 192.168.72.135 上监听 DNS 请求。
directory "/var/named";:
此选项定义了 DNS 区域文件的存储目录。BIND 服务器会在该目录下查找和存储域名区域文件。3. zone 块
zone "demo.com" IN {type master;file "demo.com.zone";
};zone "demo.com" IN:
zone 关键字用于定义一个域名区域。
"demo.com" 是要管理的域名。
IN 表示 Internet 类,这是最常见的域名区域类型。
type master;:
type 用于指定该区域的类型。
master 表示该 DNS 服务器是 demo.com 域名区域的主服务器,负责维护该区域的权威数据。
file "demo.com.zone";:
此选项指定了 demo.com 域名区域的区域文件名称。BIND 服务器会在 directory 选项指定的目录(即 /var/named)下查找名为 demo.com.zone 的文件,该文件包含了 demo.com 域名的具体 DNS 记录。总结
这段配置文件将 DNS 服务器配置为在 IP 地址 192.168.72.135 的 53 端口上监听 DNS 请求,将区域文件存储在 /var/named 目录下,并将该服务器设置为 demo.com 域名区域的主服务器,其区域文件为 demo.com.zone。

4、校验配置文件的语法

[root@dns ~]# named-checkconf如果没有消息就说明语法是正确的,但并不代表你的配置没错。

5、编写区域数据文件

[root@dns ~]# vim /var/named/demo.com.zone
$TTL 1D
@ IN SOA @ admin.demo.com. (0 1D 2H 1W 1D)
IN NS ns.demo.com.
ns IN A 192.168.72.135
IN MX 5 mail.demo.com.
mail IN A 192.168.72.111    (目前不用这个功能,可以先随便写)
www IN A 10.10.10.10
ftp IN CNAME www详细解释:
1. $TTL 1D
$TTL 是 Time-To-Live(生存时间)的缩写,用于指定 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 代表 1 天,也就是 86400 秒。这意味着当其他 DNS 服务器或客户端查询该域名的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。2. @ IN SOA @ admin.demo.com. (0 1D 2H 1W 1D)
@:在区域文件里,@ 是一个占位符,代表当前的域名,也就是 demo.com。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件都必须有的记录,它给出了该域名区域的权威信息。
@:这是主域名服务器的名称,此处表示 demo.com。
admin.demo.com.:该域名区域管理员的邮箱地址,DNS 中用 . 替代邮箱地址里的 @,所以实际的邮箱地址是 admin@demo.com。最后那个点不能省略。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
2H:重试时间,若从服务器在刷新时失败,会在 2 小时(7200 秒)后重试。
1W:过期时间,若从服务器在 1 周(604800 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
1D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。也称为minimum(否定缓存时间):3H 代表 3 小时,当 DNS 查询得到否定响应(如域名不存在)时,该否定响应会在缓存中保留 3 小时。3. IN NS ns.demo.com.
IN:同样代表 Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns.demo.com.:表示 ns.demo.com 是 demo.com 域名的权威 DNS 服务器。4. ns IN A 192.168.72.135
ns:是主机名,完整的域名是 ns.demo.com。
IN:Internet 类。
A:Address(地址)记录,把主机名映射到对应的 IPv4 地址。
192.168.72.135:ns.demo.com 对应的 IPv4 地址。5. IN MX 5 mail.demo.com.
IN:Internet 类。
MX:Mail Exchanger(邮件交换器)记录,用于指定接收该域名邮件的邮件服务器。
5:优先级,数值越小优先级越高,这里表示 mail.demo.com 的优先级为 5。
mail.demo.com.:接收 demo.com 域名邮件的邮件服务器。6. mail IN A 192.168.72.111
mail:主机名,完整域名是 mail.demo.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
192.168.72.111:mail.demo.com 对应的 IPv4 地址。7. www IN A 10.10.10.10
www:主机名,完整域名是 www.demo.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
10.10.10.10:www.demo.com 对应的 IPv4 地址。8. ftp IN CNAME www
ftp:主机名,完整域名是 ftp.demo.com。
IN:Internet 类。
CNAME:Canonical Name(别名)记录,把一个主机名指向另一个主机名。
www:表示 ftp.demo.com 是 www.demo.com 的别名,当查询 ftp.demo.com 时,会返回 www.demo.com 的 IP 地址。
注意,有些域名最后加点的详细解释:
在 DNS(Domain Name System)区域文件中,像 ns.demo.com. 这样最后带有一个点(.)的写法,具有重要意义,以下为你详细解释:
1. 表示根域名
在 DNS 层级结构里,整个域名系统是基于一个根域名(用 . 表示)构建的。所有域名本质上都是根域名下的子域名。例如,demo.com 实际上是 demo.com.,完整写法强调了它是从根域名衍生出来的。
所以,ns.demo.com. 中的点表明这是一个绝对域名,明确指向 DNS 层级结构中确切的位置。它完整表述了该域名在整个域名体系中的完整路径,从根域名开始,依次经过顶级域名(如 .com)、二级域名(如 demo),最终到子域名(如 ns)。
2. 避免歧义
在 DNS 区域文件中,如果不使用末尾的点,域名会被视为相对域名。相对域名的解析会依赖于当前区域文件的设置,也就是会默认在相对域名后面追加当前区域的域名。
例如,在 demo.com 这个区域文件中,如果写成 ns.demo.com(没有末尾的点),DNS 服务器在解析时可能会将其当作相对域名,进而在后面追加 .demo.com,变成 ns.demo.com.demo.com,这显然不是我们想要的结果。而使用 ns.demo.com. 这种绝对域名的写法,就能避免这种歧义,确保 DNS 服务器准确解析到我们期望的域名。
3. 遵循标准规范
在 DNS 配置和管理中,使用绝对域名并在末尾加上点是标准的做法。遵循这一规范能让配置文件更加清晰、准确,便于不同 DNS 服务器和管理员之间进行交互和理解。同时,它也有助于减少因解析错误而导致的网络故障,提高 DNS 系统的稳定性和可靠性。
综上所述,在 DNS 区域文件里使用末尾带点的绝对域名写法,是为了准确表示域名在 DNS 层级结构中的位置、避免解析歧义以及遵循标准规范。

6、验证区域数据文件的语法
[root@dns ~]# named-checkzone demo.com /var/named/demo.com.zone
zone demo.com/IN: loaded serial 0
OK

7、启动named服务

[root@dns ~]# systemctl start named

8、功能测试

[root@dns ~]# dig -t NS demo.com @192.168.72.135; <<>> DiG 9.16.23-RH <<>> -t NS demo.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b4497c08c2b7da590100000067f8bffbc0c3e1ce0db2d73e (good)
;; QUESTION SECTION:
;demo.com.			IN	NS;; ANSWER SECTION:
demo.com.		86400	IN	NS	ns.demo.com.;; ADDITIONAL SECTION:
ns.demo.com.		86400	IN	A	192.168.72.135;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 15:08:43 CST 2025
;; MSG SIZE  rcvd: 98下面IP地址不一样但是解析是对应的
解析成功的判断依据
在输出的头部信息里:
plaintext
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462其中 status: NOERROR 表明 DNS 查询没有出现错误,这是解析成功的一个关键标志。
输出各部分的含义及重要关注点
1. 全局选项信息
plaintext
; <<>> DiG 9.16.23-RH <<>> -t NS demo.com @192.168.153.129
;; global options: +cmd这部分显示了 dig 命令的版本和使用的参数,它表明你执行的是查询 demo.com 的 NS(名称服务器)记录,并且指定了 DNS 服务器为 192.168.153.129。
2. 头部信息;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
opcode: QUERY:表示这是一个标准的 DNS 查询操作。
status: NOERROR:说明查询没有错误,解析成功。
qr:代表查询响应(Query Response),表示这是一个响应消息。
aa:代表权威回答(Authoritative Answer),表明响应来自该域名的权威 DNS 服务器。
rd:代表递归查询(Recursion Desired),表示客户端希望 DNS 服务器进行递归查询。
ra:代表递归可用(Recursion Available),表示 DNS 服务器支持递归查询。
QUERY: 1:表示查询的问题数量为 1。
ANSWER: 1:表示响应中包含 1 条回答记录。
AUTHORITY: 0:表示响应中没有权威记录。
ADDITIONAL: 2:表示响应中包含 2 条额外信息记录。
3. 问题部分;; QUESTION SECTION:
;demo.com.			IN	NS
这部分展示了你所查询的问题,即查询 demo.com 的 NS 记录。
4. 回答部分;; ANSWER SECTION:
demo.com.		86400	IN	NS	ns.demo.com.
demo.com.:查询的域名。
86400:该记录的 TTL(Time-To-Live)值,单位为秒,意味着该记录可以在缓存中保留 86400 秒(也就是 1 天)。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
NS:表示这是一条名称服务器记录。
ns.demo.com.:demo.com 的权威名称服务器。
5. 额外信息部分;; ADDITIONAL SECTION:
ns.demo.com.		86400	IN	A	192.168.153.129
这部分给出了额外的信息,显示了 ns.demo.com 的 A 记录,即 ns.demo.com 对应的 IPv4 地址是 192.168.153.129。
6. 其他信息;; Query time: 1 msec
;; SERVER: 192.168.153.129#53(192.168.153.129)
;; WHEN: Fri Apr 11 15:08:43 CST 2025
;; MSG SIZE  rcvd: 98
Query time: 1 msec:查询所花费的时间为 1 毫秒。
SERVER: 192.168.153.129#53(192.168.153.129):使用的 DNS 服务器地址和端口。
WHEN:查询的时间。
MSG SIZE rcvd: 98:接收到的 DNS 消息的大小为 98 字节。
重要关注点总结
状态码:重点关注 status 字段,NOERROR 表示解析成功,其他状态码可能意味着存在问题,比如 NXDOMAIN 表示域名不存在。
回答记录:确认回答记录是否符合预期,例如查询 NS 记录时,要确保返回的名称服务器信息正确。
TTL 值:TTL 值会影响 DNS 缓存的时间,需要根据实际情况进行调整。
额外信息:额外信息部分可能会提供名称服务器的 IP 地址等有用信息,有助于进一步的网络连接和排查问题。

反向解析 

 1、修改核心配置文件

[root@dns ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "demo.com" IN {
type master;
file "demo.com.zone";
};
zone "72.168.192.in-addr.arpa" IN {
type master;
file "fanxiang.zone";
};详细解释:
1. zone "72.168.192.in-addr.arpa" IN
zone:这是一个关键字,用于定义一个 DNS 区域。
"72.168.192.in-addr.arpa":这是反向 DNS 区域的名称。在反向 DNS 中,IP 地址的各段顺序会颠倒,并且使用 in-addr.arpa 作为顶级域名。这里对应的 IP 地址范围是 192.168.72.0/24,也就是从 192.168.72.0 到 192.168.72.255。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
2. type master;
type:用于指定该区域的类型。
master:表示该 DNS 服务器是 72.168.192.in-addr.arpa 这个反向 DNS 区域的主服务器。主服务器负责维护该区域的权威数据,并且可以对区域文件进行修改。
3. file "fanxiang.zone";
file:用于指定该区域对应的区域文件的名称。
"fanxiang.zone":这是反向 DNS 区域的区域文件,BIND 服务器会在 options 块中 directory 选项指定的目录下查找该文件。这个文件会包含 192.168.72.0/24 这个 IP 地址段的反向 DNS 记录。

 2、编写区域数据文件

注意:上面正向解析是写完整的,真正配置有时候并不需要写完整。

[root@dns ~]# vim /var/named/fanxiang.zone
$TTL 1D
@ IN SOA @ admin.demo.com. (0 1D 2H 2W 2D)
IN NS ns
ns IN A 192.168.72.135
135 IN PTR www.demo.com.详细解释:
1. $TTL 1D
$TTL 是 Time-To-Live 的缩写,代表生存时间。它指定了 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 表示 1 天,即 86400 秒。这意味着当其他 DNS 服务器或客户端查询该反向解析区域的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。
2. @ IN SOA @ admin.demo.com. (0 1D 2H 2W 2D)
@:在区域文件中,@ 是一个占位符,代表当前的域名。在这里,结合前文配置,它代表的是 72.168.192.in-addr.arpa。
IN:表示 Internet 类,是最常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件必须有的记录,它提供了该域名区域的权威信息。
第一个 @:代表主域名服务器的名称,这里实际是 ns.72.168.192.in-addr.arpa。
admin.demo.com.:该域名区域管理员的邮箱地址,在 DNS 中用 . 替代邮箱地址里的 @,所以实际的邮箱地址是 admin@demo.com。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
2H:重试时间,若从服务器在刷新时失败,会在 2 小时(7200 秒)后重试。
2W:过期时间,若从服务器在 2 周(1209600 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
2D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。
3. IN NS ns
IN:Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns:表示 ns.72.168.192.in-addr.arpa 是 72.168.192.in-addr.arpa 这个反向解析区域的权威 DNS 服务器。
4. ns IN A 192.168.72.135
ns:主机名,完整的域名是 ns.72.168.192.in-addr.arpa。
IN:Internet 类。
A:Address(地址)记录,将主机名映射到对应的 IPv4 地址。
192.168.72.135:ns.72.168.192.in-addr.arpa 对应的 IPv4 地址。
5. 135 IN PTR www.demo.com.
135:在反向解析区域中,这里代表 IP 地址 192.168.72.135 的最后一段。因为反向解析是从 IP 地址的最后一段开始,结合区域名 72.168.192.in-addr.arpa,完整的反向解析域名是 135.72.168.192.in-addr.arpa。
IN:Internet 类。
PTR:Pointer(指针)记录,用于反向域名解析,将 IP 地址映射到对应的域名。
www.demo.com.:表示 IP 地址 192.168.72.135 对应的域名是 www.demo.com。

3.严重区域配置文件语法

named-checkzone 72.168.192.in-addr.arpa /var/named/fanxiang.zone
zone 72.168.192.in-addr.arpa/IN: loaded serial 0
OK

4.重启named服务

[root@dns ~]# systemctl restart named

5. 功能检查

dig -x 192.168.72.135 @192.168.72.135
dig 是一个在 Linux 和其他类 Unix 系统中常用的 DNS 诊断工具,用于查询 DNS 服务器并获取域名或 IP 地址的相关信息。
dig -x 192.168.72.135 @192.168.72.135 命令各部分含义如下:
-x:这是 dig 命令的一个选项,专门用于反向 DNS 查询。反向 DNS 查询是将 IP 地址解析为对应的域名,与正向查询(将域名解析为 IP 地址)相反。
192.168.72.135:这是你要进行反向查询的 IP 地址。也就是说,你希望知道这个 IP 地址对应的域名是什么。
@192.168.72.135:@ 符号用于指定要查询的 DNS 服务器地址。这里指定使用 192.168.72.135 这个 IP 地址对应的 DNS 服务器来进行查询。
可能的输出及含义
1. 成功查询

如果反向 DNS 配置正确,并且 192.168.72.135 对应的 DNS 服务器中存在该 IP 地址的反向解析记录,你可能会看到类似如下的输出:

; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.	IN	PTR;; ANSWER SECTION:
135.72.168.192.in-addr.arpa. 86400 IN	PTR	www.demo.com.;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 16:30:00 CST 2025
;; MSG SIZE  rcvd: 98

  • status: NOERROR:表示查询没有错误,即成功查询到结果。
  • ANSWER SECTION:这部分给出了查询的答案。135.72.168.192.in-addr.arpa 是将 IP 地址 192.168.72.135 转换为反向 DNS 查询的域名格式,PTR 记录显示该 IP 地址对应的域名是 www.demo.com

如果 192.168.72.135 对应的 DNS 服务器中没有该 IP 地址的反向解析记录,你可能会看到如下输出:

; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.	IN	PTR;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 16:30:00 CST 2025
;; MSG SIZE  rcvd: 98
  • status: NXDOMAIN:表示未找到该域名对应的记录,即没有为 192.168.72.135 配置反向解析记录。
  • ANSWER SECTION 为空:说明没有返回任何答案。
3. 其他错误

如果 DNS 服务器出现问题,如无法访问、配置错误等,可能会出现其他错误状态码,如 SERVFAIL(服务器故障)等,同时会有相应的错误提示信息。

主从服务

首先需要两台主机,一台做为主服务,一台作为从服务。它们的主机名分别为 master 和
slave。

配置主服务器

1、修改主机名
[root@dns ~]# hostnamectl hostname master
2、安装bind软件
[root@master ~]# dnf install bind -y
3、修改核心配置文件
[root@master ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "web.com" IN {
type master;
file "web.com.zone";
};
zone "72.168.192.in-addr.arpa" IN {
type master;
file "web.com.arpa";
};
4、编写区域数据文件
正向解析
[root@master ~]# vim /var/named/web.com.zone
$TTL 1D
@ IN SOA web.com. admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1.web.com.
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
www IN A 192.168.72.135反向解析
[root@master ~]# vim /var/named/web.com.arpa
$TTL 1D
@ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
135 IN PTR www.web.com.
132 IN PTR www.web.com.详细解释:
1. $TTL 1D
$TTL 代表 Time-To-Live(生存时间),用于规定 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 表示 1 天,也就是 86400 秒。这意味着当其他 DNS 服务器或客户端查询该区域的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。2. @ IN SOA web.com. admin.web.com. (0 1D 1H 1W 1D)
@:在区域文件里是占位符,代表当前域名,即 web.com。
IN:表示 Internet 类,是常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件必备的记录,它给出了该域名区域的权威信息。
web.com.:主域名服务器的名称。
admin.web.com.:该域名区域管理员的邮箱地址,DNS 中用 . 替代邮箱地址里的 @,实际邮箱地址是 admin@web.com。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
1H:重试时间,若从服务器在刷新时失败,会在 1 小时(3600 秒)后重试。
1W:过期时间,若从服务器在 1 周(604800 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
1D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。3. IN NS ns1.web.com. 和 IN NS ns2
IN:Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns1.web.com.:明确 ns1.web.com 是 web.com 域名的权威 DNS 服务器之一。
ns2:完整域名是 ns2.web.com,它也是 web.com 域名的权威 DNS 服务器之一。4. ns1 IN A 192.168.72.135 和 ns2 IN A 192.168.72.132
ns1 和 ns2:分别是主机名,完整域名是 ns1.web.com 和 ns2.web.com。
IN:Internet 类。
A:Address(地址)记录,将主机名映射到对应的 IPv4 地址。
192.168.72.135 和 192.168.72.132:分别是 ns1.web.com 和 ns2.web.com 对应的 IPv4 地址。5. www IN A 192.168.72.135
www:主机名,完整域名是 www.web.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
192.168.72.135:www.web.com 对应的 IPv4 地址。反向解析区域文件 /var/named/web.com.arpa
1. $TTL 1D
含义与正向解析区域文件中的 $TTL 1D 相同,即默认的 DNS 记录缓存时间为 1 天。2. @ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
@:代表当前的反向解析区域,这里推测可能是 72.168.192.in-addr.arpa(根据前面的 IP 地址推测)。
其他部分含义与正向解析区域文件中的 SOA 记录相同。3. IN NS ns1 和 IN NS ns2
表示 ns1 和 ns2(完整域名分别是 ns1.72.168.192.in-addr.arpa 和 ns2.72.168.192.in-addr.arpa)是该反向解析区域的权威 DNS 服务器。4. ns1 IN A 192.168.72.135 和 ns2 IN A 192.168.72.132
含义与正向解析区域文件中的类似,分别给出了 ns1 和 ns2 对应的 IPv4 地址。5. 135 IN PTR www.web.com. 和 132 IN PTR www.web.com.
135 和 132:在反向解析区域中,分别代表 IP 地址 192.168.72.135 和 192.168.72.132 的最后一段。完整的反向解析域名分别是 135.72.168.192.in-addr.arpa 和 132.72.168.192.in-addr.arpa。
IN:Internet 类。
PTR:Pointer(指针)记录,用于反向域名解析,将 IP 地址映射到对应的域名。
www.web.com.:表示 IP 地址 192.168.72.135 和 192.168.72.132 对应的域名都是 www.web.com。

配置从服务器

1.修改主机名
[root@dns ~]# hostnamectl hostname slave
2.按照bind 
[root@slave ~]# dnf install bind -y
3.修改核心配置文件
[root@slave ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.132; };
directory "/var/named";
};
zone "web.com" IN {
type slave;
masters { 192.168.72.135; };
file "slaves/web.com";
};
zone "72.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.72.135; };
file "slaves/web.arpa";
};详细解释:
全局选项部分(options 块)options {listen-on port 53 { 192.168.72.132; };directory "/var/named";
};listen-on port 53 { 192.168.72.132; };:
listen-on 用于指定 DNS 服务器监听的 IP 地址和端口。
port 53 表明监听的是标准的 DNS 服务端口。
{ 192.168.72.132; } 意味着该 DNS 服务器仅在 IP 地址 192.168.72.132 上监听来自客户端的 DNS 查询请求。
directory "/var/named";:
此选项定义了 DNS 区域文件的存储目录。BIND 服务器会在该目录下查找和存储相关的区域文件。
正向解析区域部分(zone "web.com" 块)zone "web.com" IN {type slave;masters { 192.168.72.135; };file "slaves/web.com";
};
zone "web.com" IN:
zone 关键字用于定义一个域名区域。
"web.com" 是要管理的域名。
IN 表示 Internet 类,是最常见的域名区域类型。
type slave;:
type 用于指定该区域的类型。
slave 表示该 DNS 服务器是 web.com 域名区域的从服务器。从服务器会从主服务器(Master Server)同步区域文件,以确保数据的一致性。
masters { 192.168.72.135; };:
masters 用于指定该从服务器从哪个主服务器同步区域文件。
{ 192.168.72.135; } 表明主服务器的 IP 地址是 192.168.72.135。
file "slaves/web.com";:
此选项指定了 web.com 域名区域的区域文件名称。BIND 服务器会在 directory 选项指定的目录(即 /var/named)下的 slaves 子目录中查找名为 web.com 的文件,该文件将存储从主服务器同步过来的 web.com 域名的 DNS 记录。反向解析区域部分(zone "72.168.192.in-addr.arpa" 块)zone "72.168.192.in-addr.arpa" IN {type slave;masters { 192.168.72.135; };file "slaves/web.arpa";
};
zone "72.168.192.in-addr.arpa" IN:
定义了一个反向解析区域,对应的 IP 地址范围是 192.168.72.0/24。
IN 同样表示 Internet 类。
type slave;:
表明该服务器是 72.168.192.in-addr.arpa 反向解析区域的从服务器。
masters { 192.168.72.135; };:
指出该反向解析区域的主服务器 IP 地址为 192.168.72.135。
file "slaves/web.arpa";:
指定了反向解析区域的区域文件名称,BIND 服务器会在 /var/named/slaves 目录下查找名为 web.arpa 的文件,该文件将存储从主服务器同步过来的反向解析记录。
4.启动服务
[root@master ~]# systemctl start named
[root@slave ~]# systemctl start named查看从服务器是否从主服务器接受了区域文件
[root@slave ~]# ls /var/named/slaves/
5.关闭防火墙 
当服务启动后,从服务并没有向主服务接取区域数据文件。原因是两台主机的防火墙没有关
闭,我们关闭防火墙。
[root@master ~]# systemctl stop firewalld
[root@slave ~]# systemctl stop firewalld关闭后重启服务
[root@master ~]# systemctl restart named
[root@slave ~]# systemctl restart named然后在看是否有文件
[root@slave slaves]# ls
web.arpa web.com
6.出现错误

比如只有一个正向解析的文件,查看日志

tail /var/log/messages在从服务器和主服务器分别查询以下IP与之前不同,但相匹配
主服务器
[root@master named]# tail /var/log/messages 
Apr 11 17:14:30 localhost dnf[34560]: Updating Subscription Management repositories.
Apr 11 17:14:30 localhost dnf[34560]: Unable to read consumer identity
Apr 11 17:14:30 localhost dnf[34560]: This system is not registered with an entitlement server. You can use subscription-manager to register.
Apr 11 17:14:30 localhost dnf[34560]: Metadata cache refreshed recently.
Apr 11 17:14:30 localhost systemd[1]: dnf-makecache.service: Deactivated successfully.
Apr 11 17:14:30 localhost systemd[1]: Finished dnf makecache.
Apr 11 17:16:29 localhost named[34492]: client @0x7f773000d238 192.168.153.8#34471: received notify for zone 'web.com'
Apr 11 17:16:29 localhost named[34492]: client @0x7f772c009e08 192.168.153.8#56315 (153.168.192.in-addr.arpa): transfer of '153.168.192.in-addr.arpa/IN': AXFR started (serial 0)
Apr 11 17:16:29 localhost named[34492]: client @0x7f772c009e08 192.168.153.8#56315 (153.168.192.in-addr.arpa): transfer of '153.168.192.in-addr.arpa/IN': AXFR ended: 1 messages, 8 records, 233 bytes, 0.001 secs (233000 bytes/sec) (serial 0)
Apr 11 17:16:29 localhost named[34492]: client @0x7f7714000cc8 192.168.153.8#52655: received notify for zone '153.168.192.in-addr.arpa'从服务器
[root@slave ~]# tail /var/log/messages 
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:500:2f::f#53
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:dc3::35#53
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:7fe::53#53
Apr 11 17:16:32 tomcat2 named[33970]: resolver priming query complete
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/A (170.247.170.2) missing from hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/A (199.9.14.201) extra record in hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/AAAA (2801:1b8:10::b) missing from hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/AAAA (2001:500:200::b) extra record in hints
Apr 11 17:16:32 tomcat2 named[33970]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
Apr 11 17:16:32 tomcat2 named[33970]: managed-keys-zone: Key 38696 for zone . is now trusted (acceptance timer complete)
功能测试
从服务器测试[root@slave ~]# dig -t A www.web.com @192.168.72.135  
命令整体功能
该命令的主要功能是向指定的 DNS 服务器查询域名 www.web.com 的 A 记录。A 记录是 DNS 中最基本的记录类型之一,它的作用是将域名映射到对应的 IPv4 地址。
命令各部分详细解释
dig:这是命令的主体,它是一个强大的 DNS 查询工具,可用于执行各种类型的 DNS 查询操作。
-t:这是 dig 命令的一个选项,-t 后面需要跟上要查询的 DNS 记录类型。在这个例子中,-t A 表示要查询的是 A 记录。除了 A 记录,常见的 DNS 记录类型还有 MX(邮件交换记录)、NS(名称服务器记录)、CNAME(规范名称记录)等。
www.web.com:这是你要查询的目标域名。你希望通过 DNS 查询获取这个域名对应的 IPv4 地址。
@192.168.72.135:@ 符号用于指定要查询的 DNS 服务器地址。这里指定使用 IP 地址为 192.168.72.135 的 DNS 服务器来进行查询。如果不指定 @ 及后面的 DNS 服务器地址,dig 会默认使用系统配置的 DNS 服务器进行查询。
可能的输出及含义
1. 成功查询
如果查询成功,并且 www.web.com 在 192.168.72.135 这个 DNS 服务器上有对应的 A 记录,你可能会看到类似如下的输出:; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.web.com.			IN	A;; ANSWER SECTION:
www.web.com.		86400	IN	A	192.168.72.100;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 18:30:00 CST 2025
;; MSG SIZE  rcvd: 98
status: NOERROR:表示查询没有错误,即成功查询到结果。
ANSWER SECTION:这部分给出了查询的答案。www.web.com 的 A 记录显示该域名对应的 IPv4 地址是 192.168.72.100。86400 是该记录的 TTL(Time-To-Live)值,单位为秒,意味着该记录可以在缓存中保留 86400 秒(也就是 1 天)。
2. 未找到记录
如果 www.web.com 在 192.168.72.135 这个 DNS 服务器上没有对应的 A 记录,你可能会看到如下输出:; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.web.com.			IN	A;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 18:30:00 CST 2025
;; MSG SIZE  rcvd: 98status: NXDOMAIN:表示未找到该域名对应的记录,即 www.web.com 在这个 DNS 服务器上没有 A 记录。
ANSWER SECTION 为空:说明没有返回任何答案。
3. 其他错误
如果 DNS 服务器出现问题,如无法访问、配置错误等,可能会出现其他错误状态码,如 SERVFAIL(服务器故障)等,同时会有相应的错误提示信息。
综上所述,通过这个 dig 命令,你可以验证 www.web.com 在指定 DNS 服务器上的 A 记录是否正确配置,以及能否正常查询到对应的 IPv4 地址。

这里主服务器IP为192.168.153.129  从服务器IP为192.168.153.8
[root@slave ~]# dig -t A www.web.com @192.168.153.8; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.153.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10356
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4b7dfd010087c3e80100000067f8f77a684ced536baa38aa (good)
;; QUESTION SECTION:
;www.web.com.			IN	A;; ANSWER SECTION:
www.web.com.		86400	IN	A	192.168.153.129;; Query time: 0 msec
;; SERVER: 192.168.153.8#53(192.168.153.8)
;; WHEN: Fri Apr 11 19:05:30 CST 2025
;; MSG SIZE  rcvd: 84

关闭主服务器

[root@master ~]# systemctl stop named
[root@slave ~]# dig -t A www.web.com @192.168.72.132
; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18916
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL:
1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: ef3b256908dd241c0100000067f66a9ae2b6942436a43cc1 (good)
;; QUESTION SECTION:
;www.web.com. IN A
;; ANSWER SECTION:
www.web.com. 86400 IN A 192.168.72.135
;; Query time: 0 msec
;; SERVER: 192.168.72.132#53(192.168.72.132)
;; WHEN: Wed Apr 09 20:39:54 CST 2025
;; MSG SIZE rcvd: 84你关闭了主 DNS 服务器(named 服务),但从从服务器 192.168.72.132 对 www.web.com 的 A 记录查询结果来看,仍然能正常获取到域名对应的 IP 地址。下面为你详细解释这一现象。
1. 从服务器正常响应的原因
从服务器在主服务器关闭的情况下仍能响应查询,是因为从服务器之前已经从主服务器同步了 web.com 区域的 DNS 数据。从服务器会定期从主服务器同步区域文件,将这些数据存储在本地的区域文件中(在你之前的配置里,正向解析文件为 /var/named/slaves/web.com)。所以,即使主服务器停止运行,从服务器依然可以根据本地存储的区域文件来响应客户端的 DNS 查询。

转发服务

需求:

用户请求DNS 服务 A,A 服务将请求转发给 DNS 服务 B,B 服务进行域名解析后将
结果返回给 A 服务,然后 A 服务将结果返回给用户。

配置A服务器

# 1. 修改主机名
[root@slave ~]# hostnamectl hostname A
# 2. 修改核心配置文件
[root@A ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.132; };
directory "/var/named";
forward only;
forwarders { 192.168.72.135; }; # 要转发的服务器地址
};1. forward only;
此指令告知 DNS 服务器(这里指 named),当它收到 DNS 查询请求时,仅将该请求转发给 forwarders 字段所指定的 DNS 服务器,而不会自行尝试解析该查询。若 forwarders 字段里的所有服务器都无法响应查询,那么该 DNS 服务器就会返回查询失败的结果。2. forwarders { 192.168.72.135; };
forwarders 指令用于指定一个或多个 DNS 服务器的 IP 地址,当本 DNS 服务器收到查询请求时,会把这些请求转发给 forwarders 中指定的服务器进行解析。在你给出的配置里,192.168.72.135 就是要转发查询请求的目标 DNS 服务器的 IP 地址。

配置B服务器

# 1. 修改主机名
[root@master ~]# hostnamectl hostname B
# 2. 修改核心配置文件
[root@B ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "web.com" IN {
type master;
file "web.com.zone";
};
zone "72.168.192.in-addr.arpa" IN {
type master;
file "web.com.arpa";
};
编写区域文件
# 3. 编写区域数据文件
正向解析文件
[root@B ~]# vim /var/named/web.com.zone
$TTL 1D
@ IN SOA web.com. admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1.web.com.
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
www IN A 192.168.72.135反向解析文件
[root@B ~]# vim /var/named/web.com.arpa
$TTL 1D
@ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
135 IN PTR www.web.com.
132 IN PTR www.web.com.PTR:Pointer(指针)记录,用于反向域名解析,将 IP 地址映射到对应的域名。
www.demo.com.:表示 IP 地址 192.168.72.135 对应的域名是 www.demo.com。

启动A和B服务器

[root@B ~]# systemctl start named[root@A ~]# systemctl start named

功能测试

[root@A ~]# dig -t NS web.com @192.168.72.132
; <<>> DiG 9.16.23-RH <<>> -t NS web.com @192.168.72.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41517
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL:
3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 85ae1e7026ec807d0100000067f66e29885716aa701f1267 (good)
;; QUESTION SECTION:
;web.com. IN NS
;; ANSWER SECTION:
web.com. 86400 IN NS ns2.web.com.
web.com. 86400 IN NS ns1.web.com.
;; ADDITIONAL SECTION:
ns1.web.com. 86400 IN A 192.168.72.135
ns2.web.com. 86400 IN A 192.168.72.132
;; Query time: 0 msec
;; SERVER: 192.168.72.132#53(192.168.72.132)
;; WHEN: Wed Apr 09 20:55:05 CST 2025
;; MSG SIZE rcvd: 132

可能结果稍有不同,但是你要查找的NS信息要有。(我刚开始也没有一下消息,可以重启试试,原因多种多样)

 ;; ADDITIONAL SECTION:
ns1.web.com. 86400 IN A 192.168.72.135
ns2.web.com. 86400 IN A 192.168.72.132

这部分是额外信息

DNS 协议的额外信息机制:DNS 协议规定,当 DNS 服务器在响应查询时,如果它知道与答案部分(ANSWER SECTION)中的某些记录相关的其他有用信息(如 NS 记录对应的 A 记录),并且这些信息可以在不额外进行查询的情况下提供,那么它会将这些信息放在 ADDITIONAL SECTION 中返回。

详细介绍:
1. 命令部分
plaintext
[root@A ~]# dig -t NS web.com @192.168.72.132dig:这是一个用于查询 DNS 信息的工具。
-t NS:指定查询的记录类型为 NS(名称服务器记录)。
web.com:要查询的域名。
@192.168.72.132:指定向 IP 地址为 192.168.72.132 的 DNS 服务器发起查询。
2. 全局选项和查询信息
plaintext
; <<>> DiG 9.16.23-RH <<>> -t NS web.com @192.168.72.132
;; global options: +cmd
; 开头的行是注释行,显示了使用的 dig 版本和具体的查询命令。
global options: +cmd 表明启用了命令行模式。
3. 响应头部信息
plaintext
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41517
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3
Got answer: 表示成功收到了 DNS 服务器的响应。
opcode: QUERY:表明查询操作码为标准查询。
status: NOERROR:意味着查询没有错误,正常返回结果。
id: 41517:是查询的唯一标识符。
flags: qr aa rd ra:
qr(Query Response):表示这是一个响应消息。
aa(Authoritative Answer):表示该 DNS 服务器是所查询域名的权威服务器。
rd(Recursion Desired):表示查询时请求递归解析。
ra(Recursion Available):表示 DNS 服务器支持递归查询。
QUERY: 1:表示查询的记录数量为 1 条。
ANSWER: 2:表示响应中包含 2 条答案记录。
AUTHORITY: 0:表示响应中没有权威记录。
ADDITIONAL: 3:表示响应中包含 3 条额外信息记录。
4. EDNS 伪部分
plaintext
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 85ae1e7026ec807d0100000067f66e29885716aa701f1267 (good)
EDNS(Extension Mechanisms for DNS):是 DNS 的扩展机制,这里版本为 0。
udp: 1232:表示 UDP 数据包的最大大小为 1232 字节。
COOKIE:用于防止 DNS 反射攻击,这里显示 good 表示验证通过。
5. 查询问题部分
plaintext
;; QUESTION SECTION:
;web.com. IN NS
这部分显示了查询的问题,即查询 web.com 的 NS 记录。
6. 答案部分
plaintext
;; ANSWER SECTION:
web.com. 86400 IN NS ns2.web.com.
web.com. 86400 IN NS ns1.web.com.
web.com.:查询的域名。
86400:记录的 TTL(Time-To-Live)值,单位为秒,这里表示 86400 秒(即 1 天)。
IN:表示使用 Internet 类的 DNS 记录。
NS:记录类型为名称服务器记录。
ns2.web.com. 和 ns1.web.com.:是 web.com 的名称服务器。
7. 额外信息部分
plaintext
;; ADDITIONAL SECTION:
ns1.web.com. 86400 IN A 192.168.72.135
ns2.web.com. 86400 IN A 192.168.72.132
这部分提供了答案部分中名称服务器对应的 A(地址)记录。
ns1.web.com. 和 ns2.web.com.:名称服务器的域名。
86400:记录的 TTL 值。
IN:Internet 类的 DNS 记录。
A:记录类型为地址记录。
192.168.72.135 和 192.168.72.132:分别是 ns1.web.com 和 ns2.web.com 对应的 IPv4 地址。
8. 其他信息
plaintext
;; Query time: 0 msec
;; SERVER: 192.168.72.132#53(192.168.72.132)
;; WHEN: Wed Apr 09 20:55:05 CST 2025
;; MSG SIZE rcvd: 132
Query time: 0 msec:表示查询耗时为 0 毫秒。
SERVER: 192.168.72.132#53(192.168.72.132):表示查询的 DNS 服务器地址和端口。
WHEN: Wed Apr 09 20:55:05 CST 2025:表示查询的时间。
MSG SIZE rcvd: 132:表示收到的 DNS 消息大小为 132 字节。

可能出现的问题:

可能有人不会出现问题,但可能也有问题,先查看日志/var/log/messages

一下展示IP不一样但是操作相对应

DNS 服务器返回了 SERVFAIL 状态

[root@A yum.repos.d]# dig -t NS web.com @192.168.153.129; <<>> DiG 9.16.23-RH <<>> -t NS web.com @192.168.153.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 49789
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 32b30e0077a88d270100000067fb862914dc6c996c12d786 (good)
;; QUESTION SECTION:
;web.com.			IN	NS;; Query time: 45 msec
;; SERVER: 192.168.153.129#53(192.168.153.129)
;; WHEN: Sun Apr 13 17:38:49 CST 2025
;; MSG SIZE  rcvd: 64DNS 服务器返回了 SERVFAIL 状态
可能原因:
可能的原因
1. 转发服务器问题
你在 named.conf 里配置了 forward only 和 forwarders {192.168.153.8;};,这表明 DNS 服务器会把所有查询请求转发给 192.168.153.8。若该转发服务器出现故障、配置有误或者不可达,就会导致查询失败。
2. DNSSEC 验证问题
之前的日志显示存在 DNSSEC 验证失败的情况,例如无法验证根区域的 DNSKEY 集合以及在解析根区域 NS 记录时签名验证失败。DNSSEC 验证失败可能会使 named 服务器拒绝接受查询结果,从而返回 SERVFAIL。
3. 网络连接问题
虽然之前 ping 测试显示 192.168.153.8 可达,但网络连接可能存在不稳定或者防火墙限制了 DNS 流量的情况。
4. named 服务配置问题
named 服务的配置文件(如 /etc/named.conf)可能存在错误,例如区域配置错误、权限设置不当等,这也会影响 DNS 查询的正常处理。
解决方法 

第二个问题应该是大部分人在正常操作下依然会出现的问题,检查日志也会有提示。

解决建议
1. 检查转发服务器
测试转发服务器的 DNS 服务:使用 dig 命令直接向 192.168.153.8 查询 web.com 的 NS 记录:
dig -t NS web.com @192.168.153.8
若该命令也失败,就需要检查 192.168.153.8 这台服务器的 DNS 配置和运行状态。2. 处理 DNSSEC 问题
暂时禁用 DNSSEC:在 /etc/named.conf 中添加或修改以下内容:options {dnssec-enable no;dnssec-validation no;
};
然后重启 named 服务:
systemctl restart named
再次执行 dig 查询,查看是否能正常获取结果。如果禁用 DNSSEC 后查询成功,就说明问题可能出在 DNSSEC 配置上,你需要进一步检查和修正。3. 检查网络连接和防火墙
检查防火墙规则:确保防火墙允许 DNS 流量通过。如果你使用的是 firewalld,可以添加以下规则:sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
测试网络稳定性:可以使用 traceroute 命令查看网络路径是否存在问题:traceroute 192.168.153.84. 检查 named 服务配置
检查配置文件语法:使用 named-checkconf 命令检查 /etc/named.conf 文件的语法是否正确:named-checkconf /etc/named.conf若有错误信息,根据提示进行修正。
检查区域文件:确保区域文件(通常位于 /var/named 目录下)的配置正确,并且 named 服务对这些文件有读写权限。
第二项解决方法详解
在 DNS 服务器(如 BIND 软件的 named 服务)的配置文件(通常是 /etc/named.conf)中,options 块里的 dnssec-enable no; 和 dnssec-validation no; 这两个配置项的作用如下:
dnssec-enable no;:
dnssec-enable 用于控制是否启用 DNSSEC(DNS Security Extensions,DNS 安全扩展)功能。当设置为 no 时,表示在该 DNS 服务器上禁用 DNSSEC 功能。
DNSSEC 的主要目的是通过使用数字签名来验证 DNS 数据的来源和完整性,防止 DNS 欺骗和缓存投毒等攻击。禁用 dnssec-enable 意味着服务器不会生成或处理 DNSSEC 相关的记录(如 DNSKEY、RRSIG 等),也不会使用 DNSSEC 来验证查询结果的真实性。
dnssec-validation no;:
dnssec-validation 用于控制是否对 DNS 查询结果进行 DNSSEC 验证。设置为 no 时,DNS 服务器不会对从其他 DNS 服务器获取的查询结果进行 DNSSEC 验证。
即使 DNSSEC 功能在服务器上已启用(dnssec-enable yes),如果 dnssec-validation 设置为 no,服务器也不会检查接收到的 DNS 记录是否带有有效的数字签名,而是直接使用这些记录。这在某些情况下可能是有用的,例如当你信任所有的 DNS 数据源,或者当 DNSSEC 验证出现问题(如密钥管理复杂、验证失败等)而你希望暂时绕过验证时。

 DNS和Nginx

需求:用户输入 http://www.web.com 向 nginx 服务发出请求,nginx 服务调用 DNS 来解
析域名并响应用户。
根据自己的IP来哈:

配置 DNS

1、修改主机名
[root@B ~]# hostnamectl hostname dns
2、安装bind
[root@dns ~]# dnf install bind -y
3、修改核心配置文件
[root@dns ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "web.com" IN {
type master;
file "web.named";
};
4、编写区域配置文件
[root@dns ~]# vim /var/named/web.named
$TTL 1D
@ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
IN NS ns
ns IN A 192.168.72.135
www IN A 192.168.72.132 # 指定nginx服务器的IP地址
5、关闭防火墙
[root@dns ~]# systemctl stop firewalld 
6、启动named服务 
[root@dns ~]# systemctl start named

配置nginx

1.修改主机名
[root@A ~]# hostnamectl hostname web
2、安装nginx
[root@web ~]# dnf install nginx -y
3、配置nginx
[root@web ~]# vim /etc/nginx/conf.d/web.conf
server {
listen 80;
server_name www.web.com;
root /usr/share/nginx/html;
}
4、修改DNS地址 
[root@web ~]# ping www.web.com
PING www.web.com (162.159.133.36) 56(84) bytes of data.
64 bytes from 162.159.133.36 (162.159.133.36): icmp_seq=1 ttl=128
time=188 ms
^C64 bytes from 162.159.133.36: icmp_seq=2 ttl=128 time=192 ms
--- www.web.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 188.275/189.898/191.522/1.623 ms
[root@web ~]# nmcli d show ens160 | grep DNS
IP4.DNS[1]: 223.5.5.5
# 将dns地址修改为我们自己的DNS服务器地址
[root@web ~]# nmcli c mod ens160 ipv4.dns 192.168.72.135
[root@web ~]# nmcli c up ens160
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@web ~]# nmcli d show ens160 | grep DNS
IP4.DNS[1]: 192.168.72.135
[root@web ~]# ping www.web.com -c 3
PING www.web.com (192.168.72.132) 56(84) bytes of data.
64 bytes from web (192.168.72.132): icmp_seq=1 ttl=64 time=0.032 ms
64 bytes from web (192.168.72.132): icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from web (192.168.72.132): icmp_seq=3 ttl=64 time=0.040 ms
--- www.web.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.032/0.035/0.040/0.003 ms
详细解释:
初始 ping 操作:
bash
[root@web ~]# ping www.web.com
PING www.web.com (162.159.133.36) 56(84) bytes of data.
64 bytes from 162.159.133.36 (162.159.133.36): icmp_seq=1 ttl=128
time=188 ms
^C64 bytes from 162.159.133.36: icmp_seq=2 ttl=128 time=192 ms
--- www.web.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 188.275/189.898/191.522/1.623 msping 命令用于测试网络连通性,ping www.web.com 是向域名 www.web.com 发送 ICMP 回显请求数据包。
(162.159.133.36) 表示当前解析到的 www.web.com 对应的 IP 地址,这是通过系统当前配置的 DNS 服务器(后续查看为 223.5.5.5)解析得到的。
icmp_seq=1 等表示 ICMP 数据包的序号,ttl(Time To Live,生存时间)为 128,time=188 ms 等表示数据包往返的时间。
^C 表示用户手动终止了 ping 操作。
最后的统计信息显示发送了 2 个数据包,接收了 2 个数据包,没有丢包,并且给出了最小、平均、最大往返时间(rtt)和时间偏差(mdev)。
查看当前 DNS 配置:
bash
[root@web ~]# nmcli d show ens160 | grep DNS
IP4.DNS[1]: 223.5.5.5nmcli 是一个用于控制 NetworkManager 的命令行工具。nmcli d show ens160 用于显示网络设备 ens160 的详细信息,| grep DNS 是通过管道将输出内容过滤,只显示包含 DNS 的行。这里显示当前网络设备 ens160 使用的 IPv4 DNS 服务器地址为 223.5.5.5,这是一个常见的公共 DNS 服务器(阿里云的公共 DNS)。
修改 DNS 服务器地址:
bash
[root@web ~]# nmcli c mod ens160 ipv4.dns 192.168.72.135nmcli c mod ens160 ipv4.dns 192.168.72.135 命令用于修改网络连接配置文件(针对设备 ens160),将 IPv4 的 DNS 服务器地址设置为 192.168.72.135。这意味着后续系统在进行域名解析时,将首先向这个地址的 DNS 服务器发送请求。
激活网络连接:
bash
[root@web ~]# nmcli c up ens160
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/4)nmcli c up ens160 用于激活网络连接 ens160,使刚才修改的 DNS 配置生效。提示 Connection successfully activated 表示连接激活成功。
再次查看 DNS 配置:
bash
[root@web ~]# nmcli d show ens160 | grep DNS
IP4.DNS[1]: 192.168.72.135再次查看网络设备 ens160 的 DNS 配置,确认已经成功修改为 192.168.72.135。
再次 ping 操作:
bash
[root@web ~]# ping www.web.com -c 3
PING www.web.com (192.168.72.132) 56(84) bytes of data.
64 bytes from web (192.168.72.132): icmp_seq=1 ttl=64 time=0.032 ms
64 bytes from web (192.168.72.132): icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from web (192.168.72.132): icmp_seq=3 ttl=64 time=0.040 ms
--- www.web.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.032/0.035/0.040/0.003 msping www.web.com -c 3 表示向 www.web.com 发送 3 个 ICMP 回显请求数据包(-c 3 参数指定数据包数量)。
此时解析到的 www.web.com 的 IP 地址变为 192.168.72.132,这是通过新设置的 DNS 服务器 192.168.72.135 解析得到的。
同样给出了每个数据包的序号、ttl 值、往返时间,以及最终的统计信息,显示没有丢包且往返时间明显变短(相比之前使用公共 DNS 服务器的情况),说明使用新的 DNS 服务器解析后,网络连接情况有所不同。
5、启动nginx服务
[root@web ~]# systemctl start nginx
6、测试 
[root@web ~]# echo "welcome nginx" > /usr/share/nginx/html/index.html
[root@web ~]# curl www.web.com
welcome nginx
整体流程分析:
整体工作流程
1. 前期配置阶段
DNS 服务器配置
修改主机名:将服务器主机名修改为 dns,方便管理和识别,确保在网络环境中服务器标识清晰。
安装 Bind:安装 bind 软件包,这是一款广泛使用的 DNS 服务器软件,为服务器提供 DNS 服务能力。
修改核心配置文件:在 /etc/named.conf 中,指定 DNS 服务器监听的 IP 地址和端口(通常是 53 端口),定义 DNS 区域文件存储目录,并配置特定域名(如 web.com)的区域信息,表明该服务器是该域名的权威 DNS 服务器。
编写区域配置文件:在 /var/named/web.named 中,设置域名记录的生存时间(TTL),定义起始授权记录(SOA),指定域名服务器(NS)记录,以及将域名(如 www.web.com)映射到对应的 IP 地址(如 192.168.72.132)。
关闭防火墙:为避免防火墙规则阻碍 DNS 服务的正常通信,关闭防火墙或者开放相应的端口(如 UDP 和 TCP 的 53 端口)。
启动 named 服务:启动 named 进程,使 DNS 服务器开始监听并处理 DNS 查询请求。
Nginx 服务器配置
修改主机名:将服务器主机名修改为 web,便于识别该服务器为 Web 服务器。
安装 Nginx:安装 nginx 软件包,使服务器具备提供 Web 服务的能力。
配置 Nginx:在 /etc/nginx/conf.d/web.conf 中,配置 nginx 监听的端口(通常是 80 端口),指定服务器对应的域名(如 www.web.com),并设置网站的根目录。
修改 DNS 地址:将客户端(或 nginx 服务器自身)的 DNS 服务器地址修改为之前配置好的 DNS 服务器地址(如 192.168.72.135),确保后续的域名解析请求发送到该 DNS 服务器。
启动 Nginx 服务:启动 nginx 进程,使 Web 服务器开始监听并处理 HTTP 请求。
2. 请求处理阶段
用户发起请求:用户在浏览器中输入 http://www.web.com,浏览器会首先向操作系统配置的 DNS 服务器发送 DNS 查询请求,请求解析 www.web.com 对应的 IP 地址。
DNS 解析过程:
操作系统将查询请求发送到配置的 DNS 服务器(如 192.168.72.135)。
DNS 服务器接收到查询请求后,根据其区域配置文件(如 web.named),查找 www.web.com 对应的 IP 地址(如 192.168.72.132),并将该 IP 地址返回给操作系统。
HTTP 请求与响应:
操作系统将获取到的 IP 地址(192.168.72.132)返回给浏览器,浏览器根据该 IP 地址和端口 80 向 nginx 服务器发送 HTTP 请求。
nginx 服务器接收到 HTTP 请求后,根据配置文件(如 web.conf)中的 server_name 匹配到 www.web.com,并从 root 指定的目录(如 /usr/share/nginx/html)中查找对应的网页文件(如 index.html)。
nginx 服务器将找到的网页文件内容作为 HTTP 响应返回给浏览器,浏览器将其渲染并显示给用户。
DNS 服务器和 Nginx 服务器的重要作用
DNS 服务器的作用
域名解析:DNS 服务器是整个流程的关键环节,它将用户输入的域名(如 www.web.com)转换为对应的 IP 地址(如 192.168.72.132)。由于 IP 地址是数字形式,不便于用户记忆和输入,而域名更符合人类的认知习惯,因此 DNS 服务器的域名解析功能使得用户可以通过域名方便地访问互联网上的资源。
负载均衡与故障转移:在更复杂的网络环境中,DNS 服务器可以实现负载均衡,将不同用户的请求分配到多个服务器上,提高系统的性能和可用性。同时,当某个服务器出现故障时,DNS 服务器可以将请求重定向到其他可用的服务器,实现故障转移。
权威管理:作为特定域名(如 web.com)的权威 DNS 服务器,它负责管理该域名的所有 DNS 记录,确保记录的准确性和一致性。当域名的配置发生变化时,只需在 DNS 服务器上更新相应的记录,即可使全网的用户访问到最新的资源。
Nginx 服务器的作用
Web 服务提供:nginx 服务器是 Web 应用的核心,它负责接收客户端的 HTTP 请求,并根据配置文件提供相应的网页内容。用户在浏览器中看到的网页就是由 nginx 服务器从指定的目录中读取并返回的。
反向代理:nginx 可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器上,并将应用服务器的响应返回给客户端。这样可以隐藏后端服务器的真实 IP 地址,提高系统的安全性,同时还可以实现负载均衡和缓存等功能。
静态资源处理:nginx 对静态资源(如 HTML、CSS、JavaScript、图片等)的处理非常高效,它可以快速地读取和返回这些资源,减轻后端应用服务器的负担,提高系统的整体性能。
HTTP 协议处理:nginx 支持多种 HTTP 协议和特性,如 HTTP/1.1、HTTP/2 等,能够处理复杂的 HTTP 请求和响应,包括请求头、响应头、Cookie 等,确保 Web 应用的正常运行。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com