第三章、DNS域名解析服务
DNS
1DNS简介
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 端口 53。
什么是 DNS
DNS 是一个应用层协议。
域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44)。
什么是域名
域名是由一串用点分隔符 .
组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的方位。域名可以说是一个 IP 地址的代称,目的是为了便于记忆后者。例如,baidu.com 是一个域名,和 IP 地址 208.80.152.2 相对应。人们可以直接访问 baidu.com 来代替 IP 地址,然后域名系统(DNS)就会将它转化成便于机器识别的 IP 地址。这样,人们只需要记忆 baidu.com 这一串带有特殊含义的字符,而不需要记忆没有含义的数字。
2DNS系统的作用
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
- DNS系统的分布式数据结构:
3DNS服务器类型
-
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
-
主域名服务器
•特定DNS区域的权威服务器,具有唯一性
•负责维护该区域内所有域名--P地址的映射记录
•需要自行建立所负责区域的地址数据文件
-从域名服务器
•也称为辅助域名服务器,是对主域名服务器的热备份
• 其维护的域名->P地址记录来源于主域名服务器
•需要从主域名服务器自动同步区域地址数据库
4DNS查询方式
- 递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结 果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
- 迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对 方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起 进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需 要发起多次查询。(需要自己动手)
5DNS 解析过程
1先查找本地 DNS 缓存(自己的电脑上),有则返回,没有则进入下一步
2查看本地 hosts 文件有没有相应的映射记录,有则返回,没有则进入下一步
3向本地 DNS 服务器(一般都是你的网络接入服务器商提供,比如中国电信,中国移动)发送请求进行查询,本地DNS服务器收到请求后,会先查下自己的缓存记录,如果查到了直接返回就结束了,如果没有查到,本地DNS服务器就会向DNS的根域名服务器发起查询请求
4 从"根域名服务器"查到"顶级域名服务器
5 从"顶级域名服务器"查到"次级域名服务器
6 从"次级域名服务器"查出"主机名"的IP地址 告诉 本地DNS服务器
正向解析资源记录及配置
各种资源记录
区域解析库:由众多资源记录RR组成
记录类型:A,AAAA,PTR,SOA, NS,CNAME,MX
SOA: Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多NS记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA(Startof Authorty )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
A ( internet Address) :作用,域名解析成IP地址AAAA (EQDN) : -->IPV6
PTR (PoinTeR) ︰反向解析,ip地址解析成域名
NS (Name Server) :,专用于标明当前区域的DNS服务器,服务器类型为域名服务器CNAME : Canonical Name,别名记录
MX (Mail exchanger)邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如: SPF(反垃圾邮件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
1资源记录
SOA记录
name: 当前区域的名字,例如"wlw.com."
value: 有多部分组成
注意:
- 当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
- 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.wlw.com
- 主从服务区域传输相关定义以及否定的答案的统一的TTL
范例: $TTL 1D@ IN SOA master.wlw.com. admin.wlw.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum
NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
- 相邻的两个资源记录的name相同时,后续的可省略
- 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
- 一个区域可以有多个NS记录
范例:master IN NS wlw.com. master IN NS wlw.com.
MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
- 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
- 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
<span style="background-color:#f8f8f8">范例:mail IN MX 10 mx1.wlw.org. IN MX 20 mx2.wlw.org.mx1 A 192.168.59.10mx2 A 192.168.59.10</span>
A记录
name: 某主机的域名解析,例如:www.wlw.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:www.wlw.com. IN A 1.1.1.1www.wlw.com. IN A 2.2.2.2www.wlw.com. IN A 3.3.3.3www.wlw.com. IN A 4.4.4.4* IN A 5.5.5.5#代表泛域名@ IN A 6.6.6.6#代表不需要名字
PTR记录
name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN
CNAME别名记录
name: 别名的FQDN value: 真正名字的FQDN
ftp.wlw.com. IN CNAME www.wlw.com
小贴士
- TTL可从全局继承
- 使用 "@" 符号可用于引用当前区域的域名
- 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
- 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
实验
正向解析
(在内网中提供解析功能)
[root@localhost ~]# yum install bind bind-utils -y 安装软件以及配置软件
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start named
[root@localhost ~]# ss -ntuap |grep ":53"
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8 这里有问题
[root@localhost ~]# vim /etc/named.conf
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
listen-on port 53 { any; }; #any监听所有人
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; #更改权限
[root@localhost ~]# rndc reload
[root@localhost ~]# vim /etc/named.rfc1912.zones
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "wuwei.com" IN { #写域名 注意不要写主机名www
type master; #主服务器还是从服务器
file "wuwei.com.zone"; #数据库文件,名字和IP地址意义对应关系
$TTL 1D#生命周期一天 ,缓存时间为一天 而且是全局配置 默认配置 不写1D 默认是秒
@ IN SOA master rname.invalid. ( #包含了你的域名IP地址相关的信息
域名 主机 0 ; serial 更新序列号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.154.50
www A 192.168.154.80 A是指ipv4 AAAA指IPV6
ftp A 192.168.154.21 @代表别民 指之前文件写的wuwei.com域名
mail A 192.168.154.25 TTL可不写,上面有TTL 1D
IN 指Internet协议
SOA指解析方式
master 当前域名
rname.invalid.邮箱
这里没有重启服务 DNS有问题 systemctl restart network
主从复制
备份一台域名解析服务器
先设置主服务器的正向解析如上个实验
然后设置从服务器
然后设置主服务器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~