一起了解下dns原理吧

220 阅读3分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

是什么?

最初,由于ip长且难记,通过ip访问网站不方便。所以后来通过芳名了DNS服务器,这个时候我们访问网站输入网站域名,DNS服务器就解析我们的域名ip。这样我们实际访问的就是对应的ip地址啦。
它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网

DNS域名系统的缩写,将域名翻译成IP地址。由解析器和域名服务器组成的。玉米羹服务器是保存该网络中所有主机的域名和对应的IP地址。域名必对应一个IP地址,而IP地址不一定有域名。

主要用UDP,但是当请求字节过长超过512字节时用TCP协议,将其分割成多个片段传输。

DNS协议默认端口号是53

操作系统的DNS缓存:windows DNS缓存的默认值是MaxCacheTTL,它的默认值是86400s,也就是一天。macOS严格遵循DNS协议中的TTL。

浏览器的DNS缓存:chrome堆每个域名会默认缓存60s;IE将DNS缓存30min;Firefox默认缓存事件只有1分钟;Safari约为10S;

根域

其中 .是DNS命名空间,用来分割不同域

www wenqiang com 分别代表不同的域,其实还有一个域,跟在com后面,根域域名本应该是这样 www.wenqiang.com.

根域记录了所有com域(顶级域),它和wenqiang(次级域),共同构成顶级域名wenqiang.com

www(三级域)和wenqiang.com叫次级域名www.wenqiang.com

我们上网使用的UDP/TCP,UDP数据往往没有保障,但速度快,通常用于查询和响应,TCP由于多次验证,传输有保证,但速度慢,多用于主服务器和从服务器之间的传送。因此DNS主要通过UDP

当我们访问,会向根服务器请求com域的地址。然后通过com域继续向下请求。根域名服务器并部直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。所以根域名服务器很重要(世界上一共有十三组根域名服务器)。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。

需要明确的是,每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。这些服务器知道下一级域名的各种记录。

所谓"分级查询",就是从根域名开始,依次查询每一级域名的NS记录,直到查到最终的IP地址,过程大致如下。

  • 根域名服务器查到顶级域名服务器的NS记录和A记录(IP地址)
  • 顶级域名服务器查到次级域名服务器的NS记录和A记录(IP地址)
  • 次级域名服务器查出主机名的IP地址

根域名服务器的NS记录和IP地址一般是不会变化的,所以内置在DNS服务器里面

所有记录的TTL值是3600000秒,相当于1000小时。也就是说,每1000小时才查询一次根域名服务器的列表。