DNS协议
DNS是应用层协议,基于UDP协议, 端口为53
域名结构树
例如 www.baidu.com
从后面往前面看,实际上这个域名是www.baidu.com.root, 表示又root管理的com下的baidu的www(主站, 同一级别的还有mail, member,
space)
根域名服务器:上面的root就是根域名服务器, 现在有13个, 发送一个请求后,通过任播找到最近的根域名服务器
顶级域名服务器:之后根域名服务器会去顶级域名服务器(top level domain, 简称TLD), 有com, cn, net, gov等等
权威域名服务器:比如baidu, qq, bilibili等,又顶级域名服务器管理
主机: 本地主机
DNS工作
流程
- DNS查询过程分为两种模式:
- 迭代: 本地DNS使用轮询迭代的方式查询IP
- 递归: 浏览器向本地DNS查询IP 和 本地DNS返回浏览器IP使用的是递归的过程
第一步:拿到请求,解析请求响应,发送到解析器DNS客户端(看成一个程序)
第二步:解析器发送解析请求到本地DNS服务器(由于本地网络有DNS服务器的IP, 所以无需查可以直接联系),
第三步:本地DNS服务器先查询缓存有没有对于IP, 有的话直接返回
第四步:如果没有,本地DNS服务器会使用轮询开始查看IP:
- 先咨询根服务器, 返回.com / cn 等顶级域名服务器域名
- 咨询上一轮查找的顶级域名服务器,返回域名服务器域名, 入baidu, biliblii
- 后咨询域名服务器得到他的IP地址,返回给DNS服务器,同时DNS服务器会缓存起来
第五步: 本地DNS服务器将查询到的IP地址返回给解析器
第六步: 解析器将IP返回给浏览器,浏览器得到了IP,就可以进行后面的操作了
🌐 常见的 DNS 记录类型
| 记录类型 | 作用 | 示例 |
|---|---|---|
| A (Address) | 把域名映射到 IPv4 地址 | www.example.com → 192.0.2.1 |
| AAAA | 把域名映射到 IPv6 地址 | www.example.com → 2001:db8::1 |
| CNAME (Canonical Name) | 为域名设置别名,指向另一个域名 | blog.example.com → www.example.com |
| MX (Mail Exchange) | 指定接收邮件的邮件服务器地址及优先级 | 10 mail.example.com |
| NS (Name Server) | 指定负责解析该域名的权威 DNS 服务器 | ns1.example.com |
| TXT | 存放文本信息,常用于验证域名所有权、SPF、DKIM 等 | v=spf1 include:_spf.example.com ~all |
| SRV | 指定某些服务的地址和端口(如 SIP、XMPP) | _sip._tcp.example.com → sipserver.example.com:5060 |
| PTR (Pointer) | 反向解析,把 IP 映射回域名 | 192.0.2.1 → www.example.com |
| SOA (Start of Authority) | 指定域的起始权威记录,包含域管理员、刷新时间等参数 | ns1.example.com admin.example.com |
| CAA (Certification Authority Authorization) | 限定哪些 CA 可以给该域名签发 SSL 证书 | 0 issue "letsencrypt.org" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 梦始!
评论
