最近在玩一些有关的东西吧可能,记录一下关于dns的各种记录和解析流程

DNS全称 Domain Name System,是一个用于记录和分发域名和ip对应关系的服务系统,用于解决ip记不住的问题

各种记录

  • A记录:用来记录域名以及其子域名的ipv4地址
  • AAAA记录:用来记录域名以及其子域名的ipv6地址
  • NS记录:指定默认的dns服务器用于解析
  • MX记录:用来指定邮件服务器,将发到此域名的邮件转到其他域名
  • CNAME记录:别名记录,把一个域名指向和另一个域名相同的地址
  • TXT记录:从功能上看他只是一个用来记录任何字符串的地方。有一个应用就是SPF反垃圾邮件,其功能就是指定该邮件来自的ip
  • TTL记录:用于记录一次记录的存活时间,超时会丢弃。当有缓存且在ttl内时会直接使用缓存来缓解服务器压力。
  • PTR:用于反向记录A记录,可以用于垃圾邮件检测
  • SRV:用于指定特定服务以及连接协议到特定端口
    还有一些关于DNSSEC的记录,用来保证安全性的。

解析过程

首先域名是多级的,从根(所有域名应该都有一个.root的根域名)开始向下一级的顶级域名,再下一级的二级域名,再向下的三级四级。

服务器类型 作用
根服务器 一些科幻作者津津乐道的东西,存储所有的域名信息,本地不能解析时优先询问根域名
顶级域名服务器 顶级域名服务器用来存储该顶级域名下的所有二级域名
权威域名服务器 当顶级域名不能回答时会继续向下查询直到找到该记录
本地或运营商服务器 会缓存dns查询记录,是事实上你第一个查询的服务器,也是实现dns污染的地方

当然这是正常的解析流程,如果使用一些特殊的解析方式比如 DoH,DoT就会用不一样的查询方式。