文章目录
DNS服务相关概念
什么是DNS
- DNS:‘‘Domain Name System’’ 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,基于C/S架构,端口号:53/TCP、53/UDP。
BIND是干什么的
- BIND:提供DNS软件实现DNS域名结构,点击访问官网地址。
DNS域名结构
- 根域:全球根服务器节点只有 13 个(这是IPv4跟名称服务器,IPv6根域名服务器全球25个,中国1主3从),10个在美国,1个在荷兰,1个在瑞典,1个在日本。
- 一级域名(顶级域名):
- 三类:组织域、国家域(.cn、.ca、.tw)、反向域 (.com、.edu、.gov、.int、.arpa)
- 二级域名(权威域名):baidu.com
- 三级域名:www.baidu.com
- 最多可达到127级域名。
DNS工作原理
DNS术语
- 阿里云有介绍
- 递归查询:是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。
- 一般情况下,客户机和本地DNS服务器之间属于递归查询。
- 递归算法:客户端向 LocalDNS(本地DNS)发起域名查询 ——> LocalDNS 不知道域名对应的IP,但他知道谁知道 ——> LocalDNS代为帮客户端去查找 ——> 最后在返回最终结果。
- 迭代查询:是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
- 一般情况下,LocalDNS 服务器向其他DNS服务器的查询属于迭代查询。
- 迭代算法:客户端向LocalDNS发起域名查询 ——> LocalDNS不知道域名对应的IP,但它知道谁知道并推荐客户端应该找谁 ——> 客户端自己去找它。
- DNS缓存:是将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。
- TTL:是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。
- DNSSEC:域名系统安全扩展(DNS Security EXtensions):通过数字签名来保证DNS应答报文的真实性和完整性,可有效防止DNS欺骗和缓存污染等攻击,能够保护用户不被重定向到非预期地址,从而提高用户对互联网的信任。
- DNS Query Flood Attack:指域名查询攻击,攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过DNS服务器可承载的能力时,则会造成解析域名超时从而直接影响业务的可用性。
解析方式或类型
- 正向解析:FQDN(完全域名) ——> IP
- 反向解析:IP ——> FQDN
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
DNS服务器的类型
- 主DNS服务器:管理和维护所负责解析的域内解析库的服务器。
- 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本。
- 序列号:解析库版本号,主服务器解析库变化时,其序列递增(人为递增)。
- 刷新时间间隔:slave(从)服务器从主服务器请求同步解析的时间间隔。
- 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔。
- 过期时长:从服务器联系不到主服务器时,多久后停止服务。
- 通知机制:主服务器解析库发生变化时,会主动通知从服务器。
- 缓存DNS服务器(转发器)
区域传输
- 完全传输:传送整个解析库
- 增量传输:传递解析库变化的那部分内容
DNS各种资源记录
- 区域解析库:由众多资源记录RR(Resource Record) 组成。
- 记录类型:
- SOA:‘Start Of Authority’,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库第一条记录;
- A:将 ‘FQDN’ ——> ‘IPv4’;
- AAAA:将 ‘FQDN’ ——> ‘IPv6’;
- PTR:将 ‘IP’ ——> ‘FQDN’;
- NS:专用于标明当前区域的DNS服务器;
- CNAME:别名记录;
- MX:邮件交换器;
- TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等,如下示例:
_dnsauth TXT 20120112000000051qg…
资源记录的定义
name [TTL] IN rr_type value
注意:
- TTL可以 ‘全局继承’($TTL 1D,表示所有记录TTL 为1天);
- 使用 ‘@’ 符号可用于引用当前区域域名;
- 同一个名字可以通过多条记录定义不同的值;此时DNS服务器会以轮询方式响应;
- 同一个值也可能有多个不同定义的名字,通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机。
SOA记录
- name:当前区域的名字,例如”magedu.org.“,一般写”@“;
- value:由多部分组成。
- 范例:
magedu.org. 86400 IN SOA ns.magedu.org. nsadmin.magedu.grg. (
20220917; ## 序列号,主服务器数据库内容发生变化时,其版本号递增(手动)。
2H; ## 刷新时间,从服务器每多久到主服务器检查序列号更新状况。
10M; ## 重试时间,从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔。
1W; ## 过期时间,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务。
1D; ## 否定答案的TTL值
)
注意:
- 当前区域的主DNS服务器的FQDN,可以使用当前区域的名字,只是注释功能,可以不需要配置对应的NS记录和A记录,例如:‘ns.magedu.org.’。
- 当前区域管理员的邮箱地址,但地址中不能使用 ‘@’ 符号,一般用 ‘.’ 替换,例如:nsadmin.magedu.org。
4.主从服务区域传输相关定义以及否定的答案的统一的TTL。
NS记录
- 范例:
magedu.org. IN NS ns1.magedu.org.
注意:
- 相邻的两个资源记录的name相同时,后续的可省略。
- 对NS记录而言,任何一个 NS 记录后面的服务器名字,都应该在后续有一个A记录。
- 一个区域可以有多个NS记录。
A记录
- 范例:
www.magedu.org. IN A 172.25.3.80
www.magedu.org. IN A 172.25.3.81
$GENERATE 1-254 HOST$ IN A 1.1.1.1
*.magedu.org. IN A 2.2.2.2
magedu.org. IN A 3.3.3.3
AAAA记录
- 范例:
www.magedu.org. IN AAAA IPv6地址
www.magedu.org. IN AAAA IPv6地址
$GENERATE 1-254 HOST$ IN AAAA IPv6地址
*.magedu.org. IN AAAA IPv6地址
magedu.org. IN AAAA IPv6地址
PTR记录
- 范例:
- 网络地址及后缀可以省略,主机地址依然需要反着写。
4.3.2.1.in-addr.arpa. IN PTR www.magedu.org.
# 假设网络地址为1.2.3,可简写成:
4 IN PTR www.magedu.org.
CNAME别名记录
- 范例:
www.magedu.org. IN CNAME websrv.mageu.org.
子域授权
- 每个域的名称服务器都是通过其上级名称服务器在解析库进行授权,类似跟域手授权顶级域(tld)。
- glue record:粘合记录,父域授权子域的记录。
- 范例:
.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
BIND服务软件包及配置文件
相关软件包
- bind:服务器包。
- bind-utils:客户端包。
- bind-libs:相关库,安装bind时会依赖此库。
- bind-chroot:安全包,将dns相关文件放至’/var/named/chroot/’。
BIND包相关文件
- BIND主程序:/usr/sbin/named。
- 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service。
- 主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key。
- 管理工具:/usr/sbin/rndc,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程,提供辅助性的管理功能,连接953/tcp端口。
- 解析库文件:/var/named/ZONE_NAME.ZONE。
注意:
- 一台物理服务器可同时为多个区域提供解析;
- 必须要有根区域文件(默认:/var/named/named.ca);
- 应该有两个实现(如果包括IPv6会更多) localhost 和本地回环地址的解析库。
主配置文件
- 全局配置:option {};(注意:自带分号) ;
- 日志子系统配置:==logging {}; ==;
- 区域定义:本机能够为哪些zone进行解析,就要定义哪些zone,‘zone “ZONE_NAME” IN {};’;
注意:
- 任何服务程序如果期望其能够通过网络被其他主机访问,至少应该监听在一个能与外部主机通信的IP地址上;
缓存名称服务器的配置:监听外部地址即可。
BIND安装部署
语法检查工具
- 检查配置文件语法
[root@rocky01 ~]# named-checkconf
- 解析库文件语法检查
[root@rocky01 ~]# named-checkzone "magedu.org" /var/named/magedu.org.zone
使用DNS测试和管理工具
host命令
- 命令格式:
host [-t type] name [SERVER]
参数:
name ## 指定查询的zone
SERVER ## 指定哪个查询的DNS服务
-t ## 指定查询类型
- 范例:
host -t NS magedu.org 172.25.3.82
host 1.2.3.4
nslookup命令
- 命令格式:
nslookup [-option] [name | -] [server]
dig命令
- 命令格式:
初次使用
- 使用yum进行安装并启动服务。
[root@rocky01 ~]# yum -y install bind bind-utils
[root@rocky01 ~]# systemctl start named
[root@rocky01 ~]# systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
- 启动named 服务后查看端口号
- 目前named 进程监听在tcp、udp的53/953端口上,并且仅能够本机访问。
## 端口号查看
[root@rocky01 ~]# ss -ntulp | grep named
udp UNCONN 0 0 127.0.0.1:53 0.0.0.0:* users:(("named",pid=132306,fd=514),("named",pid=132306,fd=513),("named",pid=132306,fd=512))
udp UNCONN 0 0 [::1]:53 [::]:* users:(("named",pid=132306,fd=517),("named",pid=132306,fd=516),("named",pid=132306,fd=515))
tcp LISTEN 0 10 127.0.0.1:53 0.0.0.0:* users:(("named",pid=132306,fd=21))
tcp LISTEN 0 128 127.0.0.1:953 0.0.0.0:* users:(("named",pid=132306,fd=23))
tcp LISTEN 0 10 [::1]:53 [::]:* users:(("named",pid=132306,fd=22))
tcp LISTEN 0 128 [::1]:953 [::]:* users:(("named",pid=132306,fd=24))
- 修改配置文件 ‘/etc/named.conf’ 已实现对外提供服务。
[root@rocky01 ~]# vim /etc/named.conf
options {
//listen-on port 53 {
127.0.0.1; };
listen-on port 53 {
localhost; }; ##修改为 'localhost'关键字,此作用是监听本机的所有IP地址,或者注销此行也可,或者在后面追加本机IP地址。
listen-on-v6 port 53 {
::1; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
//allow-query {
localhost; };
allow-query {
localhost;172.25.0.0/21; }; ##在后面添加允许哪些客户端查询的网段,或者修改为'any',或者注销此行。
......(省略)
- 实现配置文件生效。
[root@rocky01 ~]# rndc reload
server reload successful
或者:
[root@rocky01 ~]# systemctl reload named
- 再次查看监听的端口信息。
[root@rocky01 ~]# ss -ntulp | grep named
udp UNCONN 0 0 172.25.3.82:53 0.0.0.0:* users:(("named",pid=132306,fd=520),("named",pid=132306,fd=519),("named",pid=132306,fd=518))
udp UNCONN 0 0 127.0.0.1:53 0.0.0.0:* users:(("named",pid=132306,fd=514),("named",pid=132306,fd=513),("named",pid=132306,fd=512))
udp UNCONN 0 0 [::1]:53 [::]:* users:(("named",pid=132306,fd=517),("named",pid=132306,fd=516),("named",pid=132306,fd=515))
tcp LISTEN 0 10 172.25.3.82:53 0.0.0.0:* users:(("named",pid=132306,fd=26))
tcp LISTEN 0 10 127.0.0.1:53 0.0.0.0:* users:(("named",pid=132306,fd=21))
tcp LISTEN 0 128 127.0.0.1:953 0.0.0.0:* users:(("named",pid=132306,fd=23))
tcp LISTEN 0 10 [::1]:53 [::]:* users:(("named",pid=132306,fd=22))
tcp LISTEN 0 128 [::1]:953 [::]:* users:(("named",pid=132306,fd=24))
- 使用客户端主机进行解析
- 在客户端上安装’bind-utils’工具包,将客户端DNS地址指向DNS服务器。
[root@rocky ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.25.3.82
[root@rocky ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.39
www.a.shifen.com has address 14.215.177.38
实战:实现DNS正向解析
环境要求
- 注意:需要关闭防火墙、SELINUX,同步时间。
操作系统 | IP地址 | 角色类型 | 安装组件 |
---|---|---|---|
Rocky 8.4 | 172.25.3.83 | WEB服务器 | nginx |
Rocky 8.4 | 172.25.3.82 | Master(主) | bind、bind-utils |
Rocky 8.4 | 172.25.3.80 | 客户端 | bind-utils |
修改bind配置文件
- 修改/etc/named.conf 主配置文件。
## 此选项在上面已经解释过
[root@rocky01 ~]# vim /etc/named.conf
options {
//listen-on port 53 {
127.0.0.1; };
//allow-query {
any; };
- 修改/etc/named.rfc1912.zones 配置文件(也可以在/etc/named.conf配置文件中修改)。
[root@rocky01 ~]# vim /etc/named.rfc1912.zones
zone "test.local" IN {
type master;
file "test.local.zone";
};
DNS区域数据库文件
- 将模板文件拷贝一份进行修改
- 注意:文件名需要与配置文件中’file’ 指令指定的文件名一致。如果复制没有 ‘-p’ 需要修改权限。
[root@rocky01 ~]# cp -p /var/named/named.localhost /var/named/test.local.zone
[root@rocky01 ~]# vim /var/named/test.local.zone
## 'SOA' 后面的第一个值可以随便定义,第二个值为邮箱地址,若有问题会通过给此邮箱发送邮件。
## 最后面的数值上面'SOA'记录都已解释。
[root@rocky01 ~]# cat /var/named/test.local.zone
$TTL 10M
@ IN SOA a support.magedu.com. (
0
3M
15M
1W
3H )
NS master
master A 172.25.3.82
www A 172.25.3.83
[root@rocky01 ~]# rndc reload
server reload successful
- 检查配置文件和数据库文件格式,并重启服务。
[root@rocky01 ~]# named-checkconf
[root@rocky01 ~]# named-checkzone test.local /var/named/test.local.zone
zone test.local/IN: loaded serial 0
OK
实现web服务
[root@rocky02 ~]# yum -y install nginx
[root@rocky02 ~]# nginx
[root@rocky02 ~]# echo "hello world" > /usr/share/nginx/html/index.html
在客户端实现测试
- 测试解析是否正常
- 需要在客户端上将DNS指向DNS服务器。
[root@rocky01 ~]# host www.test.local
www.test.local has address 172.25.3.83
[root@rocky01 ~]# dig www.test.lcoal
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> www.test.lcoal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 22268
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 81f499dac4eddbc7f7c9a60e6325ab06f66e867373dd0560 (good)
;; QUESTION SECTION:
;www.test.lcoal. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2022091700 1800 900 604800 86400
;; Query time: 548 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Sat Sep 17 19:09:58 CST 2022
;; MSG SIZE rcvd: 146
- 进行web访问
[root@rocky01 ~]# curl www.test.local
hello world
允许动态更新
- 动态更新:可以通过远程更新区域数据库的资源记录。
- 实现动态更新,需要在指定的zone语句块中:
allow-update {any;};
- 范例:
## 修改配置文件
[root@rocky01 ~]# vim /etc/named.rfc1912.zones
[root@rocky01 ~]# grep -v '^/' /etc/named.rfc1912.zones | head
zone "test.local" IN {
type master;
file "test.local.zone";
allow-update {
any;};
};
## 检查配置文件
[root@rocky01 ~]# named-checkconf
## 重新读取配置文件
[root@rocky01 ~]# rndc reload
server reload successful
## DNS服务器的数据目录权限。
[root@rocky01 ~]# ls -ld /var/named
drwxrwx--T 5 root named 150 Sep 17 19:04 /var/named
## 将/var/named目录权限修改为770权限,不然没有权限修改。
[root@rocky01 ~]# chmod 770 /var/named
## 在客户端远程更新zone数据库
[root@rocky ~]# nsupdate
> server 172.25.3.82
> zone test.local
> update add a.test.local 88888 IN A 172.25.3.83
> send
> quit
## 进行解析测试
[root@rocky ~]# host a.test.local
a.test.local has address 172.25.3.83
## 查看zone数据库
### 生成了一个.jnl结尾的文件
[root@rocky01 ~]# ls -l /var/named/test.local.zone.jnl
-rw-r--r-- 1 named named 716 Sep 17 19:31 test.local.zone.jnl
### 原数据库被修改。
[root@rocky01 named]# cat test.local.zone
$ORIGIN .
$TTL 600 ; 10 minutes
test.local IN SOA a.test.local. support.magedu.com. (
1 ; serial
180 ; refresh (3 minutes)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS master.test.local.
$ORIGIN test.local.
$TTL 88888 ; 1 day 41 minutes 28 seconds
a A 172.25.3.83
$TTL 600 ; 10 minutes
master A 172.25.3.82
www A 172.25.3.83
启用DNS客户端缓存功能
- 在高并发的场景下,对DNS服务器的查询性能有较高的要求,如果在客户端启用DNS缓存功能,可以大幅减轻DNS服务器的压力,同时也能提高DNS客户端名称解析速度。
CentOS启用DNS客户端缓存
- CentOS、Rocky默认没有启用DNS客户端缓存,安装nscd(名称服务关村守护进程)包可以支持DNS缓存功能,减少DNS服务器压力,提高DNS查询速度。
[root@rocky ~]# yum -y install nscd
[root@rocky ~]# systemctl enable --now nscd
Created symlink /etc/systemd/system/multi-user.target.wants/nscd.service → /usr/lib/systemd/system/nscd.service.
Created symlink /etc/systemd/system/sockets.target.wants/nscd.socket → /usr/lib/systemd/system/nscd.socket.
## 查看缓存统计信息
[root@rocky ~]# nscd -g
- 先在客户端上解析域名并缓存,在停止DNS服务器查看是否已缓存
## 客户端进行缓存
[root@rocky ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=4.56 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=4.36 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=56 time=4.52 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=56 time=4.52 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=5 ttl=56 time=4.32 ms
## 停止DNS服务
[root@rocky01 named]# systemctl stop named
## 再次到客户端查看,缓存生效
[root@rocky ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=4.38 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=4.42 ms
[root@rocky ~]# ping www.taobao.com
ping: www.taobao.com: Name or service not known
Ubuntu启用DNS客户端缓存
- Ubuntu默认会启用DNS客户端缓存
root@ubuntu20:~# systemctl status systemd-resolved.service
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor >
Active: active (running) since Thu 2022-09-01 02:10:46 UTC; 2 weeks 3 days ago
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-conf>
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-cli>
Main PID: 632 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 9442)
Memory: 8.8M
CGroup: /system.slice/systemd-resolved.service
└─632 /lib/systemd/systemd-resolved
- 查看和清空缓存
root@ubuntu20:~# systemd-resolve --statistics
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 543
Cache
Current Cache Size: 2
Cache Hits: 122
Cache Misses: 457
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
root@ubuntu20:~# systemd-resolve --flush-caches
实现反向解析区域
反向解析配置
- 区域解析设置写法
- 网络地址反写.in-addr.arpa. 。
例如:网络地址为:192.168.2.0
在zone文件中表示为:2.168.192.in-addr-arpa.
修改配置文件
- 修改/etc/named.rfc1912.zones 配置文件,在配置文件最后加入定义反向解析区域文件配置。
[root@rocky01 named]# vim /etc/named.rfc1912.zones
zone "3.25.172.in-addr.arpa" IN {
type master;
file "3.25.172.in-addr.arpa.zone";
};
配置区域解析库
- 定义区域解析库文件(注意:不需要A记录,以PTR记录为主)。
## 从正向解析区域文件中拷贝一份
[root@rocky01 named]# cp -p test.local.zone 3.25.172.in-addr.arpa.zone
## 修改为一下内容
### 实现172.25.3.83 -> www.test.local、172.25.3.81 -> b.test.local。
[root@rocky01 named]# cat 3.25.172.in-addr.arpa.zone
$TTL 600 ; 10 minutes
@ IN SOA a support.magedu.com. (
1 ; serial
180 ; refresh (3 minutes)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS master.test.local. ##NS记录必须以点结束,否则配置A记录才可以启动
83 IN PTR www.test.local.
81 IN PTR b.test.local.
- 修改完成后检查配置文件和区域数据库文件,然后重新加载配置
[root@rocky01 named]# named-checkconf
[root@rocky01 named]# named-checkzone 3.25.172.in-addr.arpa. /var/named/3.25.172.in-addr.arpa.zone
zone 3.25.172.in-addr.arpa/IN: loaded serial 1
OK
[root@rocky01 named]# rndc reload
server reload successful
- 在客户端进行反向解析验证
- dig命令
[root@rocky ~]# dig -t ptr 83.3.25.172.in-addr.arpa. @172.25.3.82
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> -t ptr 83.3.25.172.in-addr.arpa. @172.25.3.82
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30979
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4498d124a634674a1d38836863269518a9e3df92fd286ef3 (good)
;; QUESTION SECTION:
;83.3.25.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
83.3.25.172.in-addr.arpa. 600 IN PTR www.test.local.
;; AUTHORITY SECTION:
3.25.172.in-addr.arpa. 600 IN NS master.test.local.
;; ADDITIONAL SECTION:
master.test.local. 600 IN A 172.25.3.82
;; Query time: 4 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Sun Sep 18 11:48:40 CST 2022
;; MSG SIZE rcvd: 146
[root@rocky ~]# dig -x 172.25.3.83
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> -x 172.25.3.83
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16244
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b9444a51944c7207ea659182632695947d2abca03baef596 (good)
;; QUESTION SECTION:
;83.3.25.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
83.3.25.172.in-addr.arpa. 600 IN PTR www.test.local.
;; AUTHORITY SECTION:
3.25.172.in-addr.arpa. 600 IN NS master.test.local.
;; ADDITIONAL SECTION:
master.test.local. 600 IN A 172.25.3.82
;; Query time: 1 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Sun Sep 18 11:50:44 CST 2022
;; MSG SIZE rcvd: 146
- host命令
[root@rocky ~]# host 172.25.3.83
83.3.25.172.in-addr.arpa domain name pointer www.test.local.
- nslookup命令
[root@rocky ~]# nslookup 172.25.3.83
83.3.25.172.in-addr.arpa name = www.test.local.
[root@rocky ~]# nslookup
> 172.25.3.83
83.3.25.172.in-addr.arpa name = www.test.local.
> exit
实现从服务器
- 只有一台主DNS服务器,存在单点失败的问题,可以建立主DNS服务器的备份服务器,即从服务器来实现DNS服务的容错机制。
- 从服务器可以自动和主服务器进行单项的数据同步,从而和主DNS服务器一样也可以对外提供查询服务,但从服务器不提供数据更新服务。
DNS从服务器
- 应该为一台独立的名称服务器;
- 主服务器的区域解析库文件中必须有一条NS记录指向从服务器;
- 从服务器只需要定义区域,而无需提供解析库文件;解析库文件应该放置于 ‘/var/named/slaves/’ 目录中;
- 主服务器得允许从服务器作区域传送;
- 主从服务器时间应该同步,可通过ntp进行;
- bind程序的版本应该保持一致,否则,应该从高,主低;
定义从配置文件zone区域
- 格式:
zone "ZONE_NAME" IN {
type slave;
masters {
MASTER_IP; };
file "slaves/ZONE_NAME.zone";
}
实现DNS从服务器
环境信息
- 以下所有主机均关闭防火墙、Selinux,时间是同步状态。
- bind 版本为:9.11.36-RedHat-9.11.36-3.el8
操作系统 | 主机地址 | 角色 | 安装组件 |
---|---|---|---|
Rocky 8.6 | 172.25.3.80 | 客户端 | bind-utils |
Rocky 8.6 | 172.25.3.90 | 从DNS | bind9、bind9-utils、bind9-libs |
Rocky 8.6 | 172.25.3.82 | 主DNS | bind9、bind9-utils、bind9-libs |
Rocky 8.6 | 172.25.3.83 | web服务器 | nginx |
主DNS服务器端配置
- 注销并添加以下配置
- 注意:‘allow-transfer’ 为安全选项,必须得设置,否则可以直接使用客户端工具拉取区域数据库文件中的内容。
[root@rocky ~]# dig -t axfr test.local
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> -t axfr test.local
;; global options: +cmd
test.local. 600 IN SOA a.test.local. support.magedu.com. 3 180 900 604800 10800
test.local. 600 IN NS master.test.local.
test.local. 600 IN NS slave.test.local.
a.test.local. 600 IN A 172.25.3.83
master.test.local. 600 IN A 172.25.3.82
slave.test.local. 600 IN A 172.25.3.90
www.test.local. 600 IN A 172.25.3.83
test.local. 600 IN SOA a.test.local. support.magedu.com. 3 180 900 604800 10800
;; Query time: 1 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Sun Sep 18 16:58:46 CST 2022
;; XFR size: 8 records (messages 1, bytes 268)
options {
//listen-on port 53 {
127.0.0.1; };
//listen-on port 53 {
localhost; }; ## 注销
//listen-on-v6 port 53 {
::1; };
//allow-query {
localhost; };
//allow-query {
any; }; ## 注销
allow-transfer {
172.25.3.90; }; ## 添加从服务器的IP地址。
- 在/etc/named.rfc1912.zones 文件中添加zone段。
zone "test.local" IN {
type master;
file "test.local.zone";
};
- 创建区域数据库
## 注意权限
[root@rocky01 named]# cp -p /var/named/named.localhost /var/named/test.local.zone
## 添加NS记录
[root@rocky01 named]# vim test.local.zone
[root@rocky01 named]# cat test.local.zone
$TTL 600 ; 10 minutes
@ IN SOA a support.magedu.com. (
1 ; serial
180 ; refresh (3 minutes)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS master
NS slave ## 添加从DNS服务器的NS记录
master A 172.25.3.82
slave A 172.25.3.90 ##解析NS记录
www A 172.25.3.83
- 检查配置文件和区域数据库文件并重新加载服务器
[root@rocky01 named]# named-checkconf
[root@rocky01 named]# named-checkzone test.local /var/named/test.local.zone
zone test.local/IN: loaded serial 1
OK
[root@rocky01 named]# rndc reload
server reload successful
从DNS服务器配置
- 安装软件
- Rocky:yum -y install bind bind-utils
- Ubuntu:apt -y install bind9 bind9-utils
- 修改从DNS服务器’/etc/named.conf’配置文件
[root@localhost ~]# vim /etc/named.conf
options {
//listen-on port 53 {
127.0.0.1; }; ## 注销
//listen-on-v6 port 53 {
::1; }; ## 注销
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
//allow-query {
localhost; }; ##注销
allow-transfer {
none; }; ##新增,从服务器不允许复制传输。
- 修改/etc/named.rfc1912.zones 文件,添加如下配置
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "test.local" IN {
type slave; ##类型 从服务器
masters {
172.25.3.82; }; ##主DNS服务器IP地址
file "slaves/test.local.slave";
};
- 检查配置文件并启动服务
[root@localhost ~]# named-checkconf
[root@localhost ~]# systemctl enable --now named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
- 查看区域数据库文件是否生成
## 此文件为加密文件
[root@localhost ~]# ls /var/named/slaves/ -l
total 4
-rw-r--r-- 1 named named 292 Sep 18 15:17 test.local.slave
客户端测试主从DNS服务架构
- 设置客户端DNS指向,验证主从架构
## 修改后直接验证,注意关掉客户端缓存
[root@rocky ~]# systemctl stop nscd.service
[root@rocky ~]# host www.test.local
www.test.local has address 172.25.3.83
## 停止主DNS服务器,再次解析
[root@rocky01 named]# systemctl stop named
[root@rocky ~]# host www.test.local
www.test.local has address 172.25.3.83
[root@rocky ~]# dig www.test.local
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> www.test.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1746
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7b4009b78287159cec295a7f6326c88e397e8fba34908298 (good)
;; QUESTION SECTION:
;www.test.local. IN A
;; ANSWER SECTION:
www.test.local. 600 IN A 172.25.3.83
;; AUTHORITY SECTION:
test.local. 600 IN NS master.test.local.
;; ADDITIONAL SECTION:
master.test.local. 600 IN A 172.25.3.82
;; Query time: 2 msec
;; SERVER: 172.25.3.90#53(172.25.3.90) ## 可以看到,解析是从从服务器来的
同步方式
- 主服务器推送
- 需要修改SOA后面的序列号,按递增方式增长。
- 从服务器拉取
主服务器推送配置
- 修改区域数据库文件
- 注意:实测-主动推送需要关闭掉动态更新配置,否则修改序列号的值不会进行推送至从服务器。
[root@rocky01 named]# vim test.local.zone
$TTL 600 ; 10 minutes
@ IN SOA a support.magedu.com. (
2 ; serial ## 修改序列号值,原本为1
60 ; refresh (3 minutes)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS master
NS slave ##必须存在从NS
master A 172.25.3.82
slave A 172.25.3.90 ##必须解析到从DNS IP
www A 172.25.3.83
a A 172.25.3.83
b A 172.25.3.83 ## 增加新记录
- 检查区域数据库和重读文件
[root@rocky01 named]# named-checkzone test.local test.local.zone
zone test.local/IN: loaded serial 3
OK
[root@rocky01 named]# rndc reload
server reload successful
从服务器拉取配置
- 从服务器拉取配置借助于区域数据库文件中’SOA’ 后面定义的 ‘refresh’ 的值;
- 实现查看refresh定义的效果。
# 先停止从DNS服务,主要是在主DNS修改序列号会自动推送。
[root@localhost ~]# systemctl stop named
# 修改主DNS服务器的区域数据库文件记录,并更新序列号。
[root@rocky01 named]# cat test.local.zone
$TTL 600 ; 10 minutes
@ IN SOA a support.magedu.com. (
6 ; serial
60 ; refresh (3 minutes)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS master
NS slave
master A 172.25.3.82
slave A 172.25.3.90
www A 172.25.3.83
# 重新加载配置文件已生效。
[root@rocky01 named]# rndc reload
server reload successful
# 重新启动从DNS服务,查看文件是否会变化
[root@localhost ~]# systemctl start named
泛域名解析
- 实现 ‘<任意>.test.local’ 进行解析。
[root@localhost named]# vim test.local.zone
[root@localhost named]# cat test.local.zone
$TTL 1D
@ IN SOA master admin.master.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 172.25.3.84
* A 172.25.3.83
[root@localhost named]# named-checkzone test.local /var/named/test.local.zone
zone test.local/IN: loaded serial 0
OK
## 在客户端上进行解析
[root@rocky ~]# host www.test.local
www.test.local has address 172.25.3.83
[root@rocky ~]# host abcd.test.local
abcd.test.local has address 172.25.3.83
- 实现 ‘test.local’ 进行解析
## 以上面的配置直接进行访问,没有解析到结果
[root@rocky ~]# host test.local
## 修改区域数据库
[root@localhost named]# vim test.local.zone
$TTL 1D
@ IN SOA master admin.master.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 172.25.3.84
@ A 172.25.3.83
## 再次使用客户端访问
[root@rocky ~]# host test.local
test.local has address 172.25.3.83
实现子域
子域委派授权
- 将子域委派给其他主机管理,实现分布式DNS数据库。
实现DNS父域和子域服务
环境要求
- 需要准备5台主机
- 需要提前关闭防火墙、selinux,同步时间。
- 父域DNS负责解析’magedu.org’,负责解析一台web服务器域名;子域DNS负责解析’shenzhen.magedu.org’,负责解析一台web服务器域名。
操作系统 | IP地址 | 角色 | 安装组件 |
---|---|---|---|
Rocky 8.6 | 172.25.3.80 | 客户端 | bind-utils |
Rocky 8.6 | 172.25.3.82 | DNS父域服务器 | bind、bind-libs、bind-utils |
Rocky 8.6 | 172.25.3.83 | 指定DNS至父域的web服务器 | nginx |
Rocky 8.6 | 172.25.3.84 | DNS子域服务器 | bind、bind-libs、bind-utils |
Rocky 8.6 | 172.25.3.85 | 指定DNS至子域的web服务器 | nginx |
实现步骤
- 在父域DNS服务器上实现主’magedu.org’域的主DNS服务;
[root@rocky01 ~]# vim /etc/named.conf
options {
//listen-on port 53 {
127.0.0.1; };
//listen-on port 53 {
localhost; };
//listen-on-v6 port 53 {
::1; }; ##注销监听,默认所有地址监听
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
//allow-query {
localhost; }; ##注销查询,默认允许所有主机查询。
[root@rocky01 ~]# vim /etc/named.rfc1912.zones
## 新增如下信息
zone "magedu.org" {
type master;
file "magedu.org.zone";
};
- 配置父域DNS的区域数据库文件
[root@rocky01 ~]# cp -p /var/named/named.localhost /var/named/magedu.org.zone
[root@rocky01 ~]# vim /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
shanghai NS shanghains
master A 172.25.3.82
shanghains A 172.25.3.84
www A 172.25.3.83
- 检查区域数据库文件和配置文件是否正确,并重新加载文件
[root@rocky01 ~]# named-checkconf
[root@rocky01 ~]# named-checkzone magedu.org /var/named/magedu.org.zone
zone magedu.org/IN: loaded serial 0
OK
[root@rocky01 ~]# rndc reload
server reload successful
- 实现子域的DNS服务器
[root@localhost ~]# vim /etc/named.conf
options {
//listen-on port 53 {
127.0.0.1; };
//listen-on-v6 port 53 {
::1; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
//allow-query {
localhost; };
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "shanghai.magedu.org" IN {
type master;
file "shanghai.magedu.org.zone";
};
- 配置子域DNS的区域数据库文件
[root@localhost ~]# cp -p /var/named/named.localhost /var/named/shanghai.magedu.org.zone
[root@localhost ~]# vim /var/named/shanghai.magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 172.25.3.84
www A 172.25.3.85
- 检查区域数据库文件和配置文件是否正确,并重新加载文件。
[root@localhost ~]# named-checkconf
[root@localhost ~]# named-checkzone shanghai.magedu.org /var/named/shanghai.magedu.org.zone
zone shanghai.magedu.org/IN: loaded serial 0
OK
[root@rocky01 ~]# rndc reload
server reload successful
- 在父域和子域的web服务器上安装httpd服务(3.83和3.85服务器)
## 3.83服务器
[root@rocky01 ~]# echo "www.magedu.org" > /usr/share/nginx/html/index.html
## 3.85服务器
[root@rocky01 ~]# echo "www.shanghai.magedu.org" > /usr/share/nginx/html/index.html
## 启动web服务
[root@localhost ~]# systemctl start nginx
- 在客户端进行测试
## 将客户端DNS指定到父域DNS和子域DNS
[root@rocky ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.25.3.82
nameserver 172.25.3.84
[root@rocky ~]# curl www.magedu.org
www.magedu.org
[root@rocky ~]# dig www.shanghai.magedu.org
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> www.shanghai.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25826
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4822d6f9dd8fc12986ee0540632c098a65bb3df272013e2f (good)
;; QUESTION SECTION:
;www.shanghai.magedu.org. IN A
;; ANSWER SECTION:
www.shanghai.magedu.org. 86400 IN A 172.25.3.85
;; AUTHORITY SECTION:
shanghai.magedu.org. 86400 IN NS shanghains.magedu.org.
;; ADDITIONAL SECTION:
shanghains.magedu.org. 86400 IN A 172.25.3.84
;; Query time: 833 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Thu Sep 22 15:06:50 CST 2022
;; MSG SIZE rcvd: 137
[root@rocky ~]# curl www.shanghai.magedu.org
www.shanghai.magedu.org
实现DNS转发(缓存)服务器
DNS转发
- 利用DNS转发,可以将用户的DNS请求转发至指定的DNS服务,而非默认的根DNS服务器,并指定服务器查询的返回结果进行缓存,提高效率。
- 注意:
1.被转发的服务器需要能够为请求者做递归,否则转发请求不予进行;
2.在 ‘/etc/named.conf’ 的全局配置块中,关闭dnssec功能;
dnssec-enable no;
dnssec-validation no;
- 转发方式
- 全局转发:对非本机所负责解析区域的请求,全转发给定的服务器。
- 特定区域转发:仅转发对特定区域的请求,比全局转发优先级高。
## 全局转发
options {
forward first|only; ##转发模式
forwarders {
ip; }; ##转发至哪个DNS
};
## 特定区域转发
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders {
ip; };
};
- 转发模式:
first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询。
only:先转发至指定DNS服务器,如果无法解析查询请求,则本服务区将不再去根服务器查询。
实现DNS转发(缓存)服务器
环境描述
操作系统 | IP地址 | 角色 | 安装组件 |
---|---|---|---|
Rocky8.6 | 172.25.3.80 | 客户端 | bind-utils |
Rocky8.6 | 172.25.3.82 | DNS主服务器 | bind、bind-libs、bind-utils |
Rocky8.6 | 172.25.3.83 | web服务器 | nginx |
Rocky8.6 | 172.25.3.84 | DNS缓存服务器 | bind、bind-libs、bind-utils |
实现步骤
- 实现转发(缓存)DNS服务器。
[root@rocky01 ~]# vim /etc/named.conf
options {
## 注销以下几行。
//listen-on port 53 {
127.0.0.1; };
//listen-on-v6 port 53 {
::1; };
//allow-query {
localhost; };
## 修改一下两行
dnssec-enable no; ##关闭DNS安全功能,不能注销,默认值是yes。
dnssec-validation no;
##增加以下几行
forward first;
forwarders {
172.25.3.84; };
- 检查配置文件是否正确并重新加载配置文件。
[root@rocky01 ~]# named-checkconf
[root@rocky01 ~]# rndc reload
server reload successful
- 实现主DNS服务器
[root@localhost ~]# vim /etc/named.conf
options {
## 注销以下
//listen-on port 53 {
127.0.0.1; };
//listen-on-v6 port 53 {
::1; };
//allow-query {
localhost; };
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "test.local" IN {
type master;
file "test.local.zone";
};
- 配置主DNS服务器区域数据库文件
[root@localhost ~]# cp -p /var/named/named.localhost /var/named/test.local.zone
[root@localhost named]# vim test.local.zone
$TTL 1D
@ IN SOA master admin.master.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 172.25.3.84
www A 172.25.3.83
- 检查主DNS服务器配置文件和区域配置文件,并重新加载。
[root@localhost named]# named-checkconf
[root@localhost named]# named-checkzone test.local /var/named/test.local.zone
zone test.local/IN: loaded serial 0
OK
[root@localhost named]# rndc reload
server reload successful
- 客户端进行转发验证
## 设置客户端DNS指向
[root@rocky ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.25.3.82
## 验证www.test.local能否访问
[root@rocky ~]# dig www.test.local
; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> www.test.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31500
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 0f36f9cda5dae884a2707a08632d4b5e3bafbbca4011e432 (good)
;; QUESTION SECTION:
;www.test.local. IN A
;; ANSWER SECTION:
www.test.local. 86400 IN A 172.25.3.83
;; AUTHORITY SECTION:
test.local. 86400 IN NS master.test.local.
;; ADDITIONAL SECTION:
master.test.local. 86400 IN A 172.25.3.84
;; Query time: 8 msec
;; SERVER: 172.25.3.82#53(172.25.3.82)
;; WHEN: Fri Sep 23 13:59:56 CST 2022
;; MSG SIZE rcvd: 124
- 验证 ‘first’ 参数效果。
[root@rocky ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.38
www.a.shifen.com has address 14.215.177.39
## 停止主DNS服务器服务,清空DNS缓存服务器的缓存后再次访问互联网。
[root@localhost named]# systemctl stop named
[root@rocky01 ~]# rndc flush
[root@rocky ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.39
www.a.shifen.com has address 14.215.177.38
- 验证 ‘only’ 参数效果。(启动上面停止的主DNS服务器)
## 修改DNS缓存服务器的参数值
[root@rocky01 ~]# vim /etc/named.conf
options {
//forward first;
forward only;
forwarders {
172.25.3.84; };
## 访问互联网
[root@rocky01 ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.38
www.a.shifen.com has address 14.215.177.39
## 停止主DNS服务器,并清除所有DNS缓存
[root@localhost named]# rndc flush
[root@localhost named]# systemctl stop named
## 清除DNS缓存服务器缓存,若客户端启动缓存也需要清理
[root@rocky01 ~]# rndc flush
## 再次访问互联网,可以看到无法进行解析了。
[root@rocky ~]# host www.baidu.com
Host www.baidu.com not found: 2(SERVFAIL)
错误问题
DNS解析错误:
5(REFUSED)
- 具体报错信息如下
[root@rocky ~]# host www.baidu.com
Host www.baidu.com not found: 5(REFUSED)
- 解决办法
- 修改配置文件/etc/named.conf,将’allow-query’ 的值改为 ‘any’ 或者直接注释掉。
options {
//listen-on port 53 {
127.0.0.1; };
//listen-on port 53 {
localhost; };
//listen-on-v6 port 53 {
::1; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
//allow-query {
localhost; };
//allow-query {
any; }; ## 注释掉
2(SERVFAIL)
[root@rocky ~]# host www.baidu.com
Host www.baidu.com not found: 2(SERVFAIL)
- 解决办法
- 服务器时间不同步导致,同步时间即可正常解析。
今天的文章dns 域名解析服务_域名解析系统简称为分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89637.html