最硬核DNS详解

1、是什么

DNS(域名系统)是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS协议基于UDP协议,使用端口号53。

2、域名服务器类型

域名服务器在DNS体系中扮演着不同的角色,根据其功能和位置可以分为几种类型。以下是主要的域名服务器类型:

  • 根域名服务器:根域名服务器是DNS层次结构的最高层,它们并不直接提供具体的域名解析结果,而是指引查询到正确的顶级域名服务器。全球共有13组根域名服务器,标识为A到M。
  • 顶级域名服务器:这些服务器负责管理特定的顶级域名,如.com、.org、.net等通用顶级域名,或者国家代码顶级域名(ccTLD)如.cn(中国)、.jp(日本)。当接收到查询时,TLD服务器会指向更具体的权威域名服务器。
  • 权威域名服务器:权威域名服务器保存了特定域名的具体DNS记录(如A记录、MX记录等),并能提供最准确的解析信息。对于每个域名而言,至少有一个权威域名服务器来维护该域名的信息。例如:阿里云DNS、腾讯云DNS
  • 本地DNS服务器:
    通常网络管理员提供,自建类型。这类服务器执行递归查询,即代表客户端完成整个查询过程。它们首先检查自己的缓存,如果找不到所需信息,则依次向根域名服务器、顶级域名服务器以及权威域名服务器发起查询,直到找到对应的IP地址并将结果返回给客户端,同时将其存储在缓存中以供后续查询使用。
  • 转发服务器:转发服务器不是必需的,但它可以作为优化查询效率的一种方式。它接收来自其他DNS服务器或客户端的请求,并将这些请求转发给另一个DNS服务器进行处理,然后将结果返回给原始请求者。这有助于减少重复查询的工作量,特别是在大型网络环境中。

3、基本记录类型

  • A记录(Address Record):这是最常用的记录类型,它将一个域名指向一个IPv4地址。例如,将www.example.com指向93.184.216.34。
  • AAAA记录: 类似于A记录,但它是用来将一个域名指向一个IPv6地址的。
  • CNAME记录(Canonical Name Record):别名记录,允许一个域名指向另一个域名。这在你想要指向另一个DNS记录而不是直接指向IP地址时很有用。例如,你可以设置blog.example.com为example.github.io的CNAME。web场景中常用于域名指向CDN加速域名
  • MX记录(Mail Exchange Record):邮件交换记录,定义了负责处理发送至域的邮件服务器,并按照优先级排序。这对于电子邮件服务非常重要。
  • TXT记录(Text Record):这种记录允许管理员在记录中插入任意文本。通常被用来验证域名的所有权或用于配置某些安全措施如SPF、DKIM等。
  • NS记录(Name Server Record):指明哪个DNS服务器是该域的权威DNS服务器。当查询一个域名时,这个记录告诉查询者应该去哪个DNS服务器获取详细信息。
  • PTR记录(Pointer Record):这种记录用于反向DNS查找,即从IP地址解析出对应的域名。与A记录相反,PTR记录主要用于验证发送邮件的服务器身份等场景。

常用的类型有 A记录、CNAME记录

3、解析过程

在浏览器中输入一个域名并按下回车键后,如果该域名的DNS配置在云上,整个访问流程大致如下:

DNS解析流程:

  • 浏览器首先检查本地缓存是否有该域名的DNS记录
  • 如果没有,系统会查询本地hosts文件
  • 然后查询本地DNS解析器缓存
  • 如果仍未找到,DNS请求会发送到您网络配置中的DNS服务器(如ISP的DNS或公共DNS如8.8.8.8)
  • 这些DNS服务器如果没有缓存记录,会向根域名服务器发起查询
  • 根域名服务器会引导向顶级域名服务器(如.com, .org等)
  • 顶级域名服务器再引导向您配置的云DNS服务器(如AWS Route53, Google Cloud DNS等)
  • 云DNS服务器返回配置的IP地址

在这里插入图片描述

4、常见的排查命令

nslookup、dig

4.1 nslookup

nslookup: 可以简单查询域名对应的IP

#1、解释域名
nslookup baidu.com      
 
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   baidu.com
Address: 39.156.66.10
Name:   baidu.com
Address: 110.242.68.66

#2、指定DNS
nslookup baidu.com 8.8.8.8

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   baidu.com
Address: 39.156.66.10
Name:   baidu.com
Address: 110.242.68.66


可以看到baidu.com对应了两个IP,39.156.66.10和110.242.68.66。这意味着这个域名被配置为指向这两个IPv4地址,可能是为了负载均衡或冗余目的

4.2 dig

dig可以显示更详细的指标

dig baidu.com 8.8.8.8

; <<>> DiG 9.18.30-0ubuntu0.22.04.2-Ubuntu <<>> baidu.com 8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39075
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;baidu.com.                     IN      A

;; ANSWER SECTION:
baidu.com.              6       IN      A       39.156.66.10
baidu.com.              6       IN      A       110.242.68.66

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Mar 06 15:27:55 CST 2025
;; MSG SIZE  rcvd: 70

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 41907
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;8.8.8.8.                       IN      A

;; AUTHORITY SECTION:
.                       5       IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2025030600 1800 900 604800 86400

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Mar 06 15:27:55 CST 2025
;; MSG SIZE  rcvd: 111

5、常见的开源DNS管理工具

  • BIND (Berkeley Internet Name Domain):BIND是最广泛使用的DNS软件之一,支持作为权威域名服务器和递归(缓存)服务器。它提供了全面的功能集,并且是许多顶级域名服务器的基础
  • CoreDNS:CoreDNS是一个快速灵活的DNS服务器,可以用作转发器、代理或权威服务器。它基于插件机制构建,可以根据需要添加或移除功能。由于其灵活性,CoreDNS被广泛应用于云原生环境,例如作为Kubernetes集群内的DNS服务

CoreDNS部署使用教程可参考我之前写的博客:
https://blog.youkuaiyun.com/litaimin/article/details/138623301

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值