Linux之Unbound实现域名解析

环境
Windows11、VMware Workstation 16.2.2
系统
Red hat7.0
说明
作用及协议
- 将域名解析成IP地址
原因是我们数字不敏感,记不住这个ip地址,所以才有了域名解析服务 - DNS服务既属于TCP协议也属于UDP协议,端口号为52号
解析方式
正向解析:域名解析出IP
正向解析文件中存储的记录称为A记录,A记录记录着域名和ip的映射关系
反向解析:IP解析出域名
反向解析文件中存储的记录称为PTR指针,PTR记录着IP和域名的映射关系
域的分类
- 根域 :(·)
- 国家域:中国(cn),香港(hk),英国(uk)
- 顶级域(领域):商业用途(com),网络组织(net),教育(edu)
- 二级域:个性化的名称,每个域的二级域都不一样
- 主机名(用途):网页(www),邮件(mail)
DNS查询过程
第一步:客户机提出域名解析请求,并将该请求发送给本地域名服务器。
第二步:当本地域名服务器收到请求后,就先查询本地 缓存,如果 该纪录项,则本地 域名服务器就直接把查询 结果返回。
第三步:如果本地缓存中没该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根子域)主域名服务器地址。
第四步:本地服务器再向 一步返回 域名服务器发送请求,然后接受请求 服务器查询自己 缓存,如果没 该纪录,则返回相关 下级 域名服务器 地址。
第五步:重复第四步,直到找到正确纪录。
第六步:本地域名服务器把返回 结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
递归查询和迭代查询
递归查询:在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
迭代查询:DNS所在服务器若没有可以响应的结果,会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。
部署
配置文件:
常用配置文件:
/etc/unbound/unbound.conf #主(全局)配置文件
/etc/unbound/local.d #子配置文件所在目录。其中的*.conf用于定义正向解析记录和反向解析记录以及设置转发
/etc/hosts #用于指定ip地址与主机名的映射关系
/etc/resolv.conf #为linux指定DNS服务器的IP地址配置文件
授权DNS服务器
检查是否安装成功
[root@Jw2031-122 ~]# rpm -qa |grep unboundunbound-libs-1.4.20-19.el7.x86_64unbound-1.4.20-19.el7.x86_64
示例⤵️
配置参数如图,根据如图配置
本机ip地址:192.168.22.150
| 服务器 | 完全合格域名 | IP地址 |
|---|---|---|
| 授权DNS服务器 | dns1.dyzx.edu | 192.168.22.150 |
| 纯缓存DNS服务器 | dns2.dyzx.edu | 192.168.22.2 |
| Web服务器 | www.dyzx.edu |
192.168.22.3 |
| FTP服务器 | ftp.dyzx.edu | 192.168.22.3 |
| 邮件服务器 | mail.dyzx.edu | 192.168.22.4 |
/etc/unbound/unbound.conf
38 interface: 192.168.22.150 //设置监听网络接口
176 access-control: 192.168.22.0/24 allow //允许给某些地址提供解析[allow允许或拒绝refuse]
211 username: “” //改为空字串,表示任何用户均可访问
368 domain-insecure: “dyzx.edu” //跳过验证域’dyzx.edu’以避免信任验证失败
478 include: /etc/unbound/local.d/*.conf //指定其他可能的配置文件包含当前文件
在全局配置文件中配置正向和反向解析记录:
# You can add locally served data with
local-zone: "dyzx.edu." static
local-data: "dyzx.edu. 86400 IN SOA dns1.dyzx.edu. root.dyzx.edu 1 1D 1H 1W 1H"
local-data: "dns1.dyzx.edu. IN A 192.168.22.150"
local-data: "dns2.dyzx.edu. IN A 192.168.22.2"
local-data: "www.dyzx.edu. IN A 192.168.22.3"
local-data: "ftp.dyzx.edu. IN CNAME www.dyzx.edu."
local-data: "mail.dyzx.edu. IN A 192.168.22.4"
local-data: "dyzx.edu. IN MX 5 mail.dyzx.edu."
local-data-ptr: "192.168.22.150 dns1.dyzx.edu"
local-data-ptr: "192.168.22.2 dns2.dyzx.edu"
local-data-ptr: "192.168.22.3 www.dyzx.edu"
local-data-ptr: "192.168.22.3 ftp.dyzx.edu"
local-data-ptr: "192.168.22.4 mail.dyzx.edu"
配置转发
任何一台DNS服务器能直接提供的解析记录都是有限的,当用户请求的解析记录超过了某台DNS服务器所能解析的范围时,就需要在该DNS服务器上设置转发功能,以便把超范围的用户解析请求转发给DNS服务器代为解析。
553 forward-zone:554 name: "."555 forward-addr: 8.8.8.8
测试:
1 | > set type=MX |







