简介
阿里巴巴在中国的公共DNS服务器最近实行了限速,因此腾讯的DNS此前也有限速。
因此,在本教程中,我们将向您展示如何自己构建一个递归DNS服务器,以便所有DNS查询请求都可以查询到权威服务器。
使用Unbound的DNS服务器软件
系统使用Rocky Linux 8/9
关闭防火墙和SElinux
!注意:如果您的国内递归DNS服务器暴露在公网,则必须注册。
递归DNS服务器与权威DNS服务器
1、权威DNS:
权威DNS是指获得上级授权解析域名的服务器,同时可以将解析权限委托给其他服务器。例如,COM顶级服务器可以将域名授权给权威服务器。将dns.com 更改为NS.ABC.COM。同时,NS.ABC.COM还可以将授权委托给NS.DDD.COM,使NS.DDD.COM成为ABC.COM的实际权威服务器。域名解析结果通常来自权威DNS。例如,dns.com 的权威DNS 服务器是ns1.dns.com 和ns2.dns.com。然后您可以通过ns1.dns.com 查询特定IP 地址或域名的其他记录。
2.递归DNS:
它负责接受用户对任何域名的查询并将结果返回给用户。递归DNS可以缓存结果以避免重复向上查询。这种类型的DNS 是公开可用的服务,通常任何人都可以配置递归DNS 来提供该服务。递归DNS 需要可靠的互联网连接。例如Google的8.8.8.8和8.8.4.4以及114的114.114.114.114和114.114.115.115都属于这种类型的DNS。您本地计算机上配置的DNS 就是这种类型的DNS。
3.转发DNS:
负责接受用户查询并将结果返回给用户。但这个结果并不是按照标准的域名解析过程得到的,而是将递归的DNS结果直接转发给用户。还有缓存功能。这主要在您没有直接连接到Internet 但当前可以连接到递归DNS 时使用。缺点是直接受递归DNS影响,服务质量较差。比如我们的路由器的DNS就是这种类型。我的一个使用路由器的朋友可以看到他本地计算机的DNS通常是192.168.1.1。
查看DNS递归服务器解析过程跟踪
安装工具、关闭防火墙、关闭SELinux
禁用systemctl –now firewalld
sed -i \’s/^SELINUX=enforcing$/SELINUX=disabled/\’ /etc/selinux/config setenforce 0
dnf 安装树vim bash-completion tar binding-utils -y
dig查看
挖掘+ 追踪baidu.com
; DiG 9.11.36-RedHat-9.11.36-5.el8_7.2 + tracebaidu.com
; 全局选项: +cmd
9981 在NS g.root-servers.net。
9981 在NS j.root-servers.net。
9981 在NS c.root-servers.net。
9981 在NS m.root-servers.net。
9981 在NS i.root-servers.net。
9981 在NS k.root-servers.net。
9981 在NS b.root-servers.net。
9981 在NS f.root-servers.net。
9981 在NS d.root-servers.net。
9981 IN NS l.root-servers.net。
9981 在NS e.root-servers.net。
9981 在NS h.root-servers.net。
9981 在NS a.root-servers.net。
# 通过114获取路由C的IP地址
; 在0 毫秒内从114.114.114.114#53(114.114.114.114) 接收到824 个字节
172800 IN NS a.gtld-servers.net。
172800 IN NS d.gtld-servers.net。
172800 IN NS l.gtld-servers.net。
172800 IN NS c.gtld-servers.net。
172800 IN NS m.gtld-servers.net。
172800 在NS h.gtld-servers.net。
com.172800 在NS e.gtld-servers.net。
172800 IN NS j.gtld-servers.net。
172800 IN NS b.gtld-servers.net。
172800 IN NS i.gtld-servers.net。
172800 IN NS g.gtld-servers.net。
172800 IN NS f.gtld-servers.net。
172800 IN NS k.gtld-servers.net。
# 通过根C服务器获取所有.com权威服务器
; 在197 毫秒内从192.33.4.12#53(c.root-servers.net) 接收到1197 字节
baidu.com 172800 IN NS ns2.baidu.com。
baidu.com 172800 IN NS ns3.baidu.com。
baidu.com 172800 IN NS ns4.baidu.com。
baidu.com 172800 IN NS ns1.baidu.com。
baidu.com 172800 IN NS ns7.baidu.com。
# 通过.com权威服务器获取baidu.com的权威服务器。
; 在237 毫秒内从192.43.172.30#53(i.gtld-servers.net) 接收到845 字节
百度600 39.156.66.10
百度600 110.242.68.66
baidu.com,86400 IN NS dns.baidu.com。
baidu.com 86400 IN NS ns7.baidu.com。
baidu.com 86400 IN NS ns4.baidu.com。
baidu.com 86400 IN NS ns2.baidu.com。
baidu.com 86400 IN NS ns3.baidu.com。
# 通过ns3.baidu.com权威服务器检索到baidu.com的IP解析为112.80.248.64。
; 在26 毫秒内从112.80.248.64#53(ns3.baidu.com) 接收到356 个字节
安装
dnf安装未绑定-y
配置
vim /etc/unbound/unbound.conf
服务器:
接口: 0.0.0.0
接口:0
access-control: 0.0.0.0/0 权限
访问控制:/0 权限
# 在服务器下,更改上述设置以侦听所有IPv4 和IPv6 地址,从而允许所有IPv4 地址和IPv6 访问使用您的DNS 服务器。
启动和验证
systemctl 启用– 现在未绑定
# 启动服务并设置开机启动
systemctl 状态未绑定
# 检查服务状态
dnf installbind-utils -y
挖@localhost www.qq.com
# 安装dig,指定本地DNS服务器,通过查询域名来测试可用性。
dig +short TXT whoami.ds.akahelp.net @127.0.0.1
# 查询DNS服务器访问权威服务器所使用的公网IP。
抓包验证
tcpdump -i eth0 端口域-w ./dns.pcap
# 您可以在服务器的指定接口上捕获DNS数据包进行分析,并使用Wireshark打开。
技术交流群
发送邮件至me@songxwn.com
或关注WX公众号:王宫阁吾
以上#阿里云免责声明相关内容摘自网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93837.html