深入理解 DNS

深入理解 DNS

简介

DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址。

DNS使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。

DNS备份

为防止服务中断和网络攻击,全球共有13台根DNS服务器,严格意义上来说不是13台,而是13个服务集群,为什么是13?

专有名词

  • FQDN:完整合法域名,也就是根域(绝对域名)
  • NS:权威域名服务器
  • 顶级域:用来指示某个国家 / 地区或组织使用的名称的类型名称,例如 .com
  • 二级域:个人或组织在因特网上使用的注册名称,例如 google.com
  • 子域:已注册的二级域名派生的域名,一般就是网站名,例如 www.google.com
  • 主机名:标识网络上的特定计算机,例如 h1.www.google.com

DNS的基本解析流程

  1. 以客户端浏览器访问 www.lbinin.com 域名为例,首先,它会去检查当前浏览器缓存,如果有,就直接响应,如果没有,就继续往下找
  2. 接着,操作系统会去检查自己的 host 文件,如果从中没找到对应关系,会再到系统 DNS 缓存中查,如果缓存中有,就直接返回该域名所对应的 IP
  3. 如果缓存中没有,则会向我们事先设置好的 DNS 服务器 [ 一般有两个, 主 & 备 ] 去请求,即所谓的递归查询,DNS 服务器首先会到自身解析数据库中去查
  4. 如果 DNS 服务器在自己的解析库中也没找到,它就会自动帮我们向根发送询问请求
  5. 此时,根看到要请求的是 com 的后缀,就会把 com 所在的 ns 服务器告诉我们的 DNS
  6. 然后,我们的 DNS 服务器就会去请求 com 所在的 ns 服务器(权威域名服务器)
  7. 当请求到达 com ns 服务器时,com 一看域名是在 lbinin 这个域下的,就会把 lbinin 所在的 ns 服务器再告诉我们的 DNS 服务器
  8. 再然后,我们的 DNS 服务器就会去请求 lbinin 这个域的 ns 服务器
  9. lbinin 这个域的 ns 服务器一看是要访问 www 就直接找到了 www 对应的「A记录」的 IP,并把它丢给我们的 DNS,上面逐个询问的过程,即 迭代查询
  10. 最后,我们的 DNS 再把最终解析到的这个 IP 丢给我们的客户端,然后客户端就直接拿着去访问了。

流程总结

浏览器缓存 👉🏻 host 文件 👉🏻 系统 DNS 缓存 👉🏻 DNS 服务器进行「迭代查询」

其中上面 1-3 为递归查询。4-10 为迭代查询。

递归查询和迭代查询的区别

递归查询

客户端收到的是最终的查询结果

递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

迭代查询

客户端中途会收到下一台服务器地址

DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的 DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。

资源记录类型

  • **A 记录 (Address Record) **:FQDN -> ipv4
  • AAAA 记录:FQDN -> ipv6
  • NS (Name Servers) 记录:名称服务器;标明当前区域的 NS 服务器是谁
  • MX (Mail Exchanger) 记录:邮件服务器;标明当前域内谁是邮件服务器
  • PTR (Pointer Record) 记录:IP -> FQDN,反向区域解析
  • SOA (State Of Authority Record) 记录:起始授权机构;一个解析库有且只有一个 SOA 记录,且必须为解析库的第一条记录
  • CNAME 记录:别名,如:web.admin.org. IN CNAME www.admin.org. 表示当访问 web.admin.org. 时就直接解析到 www.admin.org.

TTL

Time to Live 即生存时间,就是一条域名解析记录在 DNS 服务器中的存留时间。

当各地的 DNS 服务器接受到解析请求时,就会向域名指定的 NS 服务器(权威域名服务器)发出解析请求从而获得解析记录;

在获得这个记录之后,记录会在 DNS 服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS 服务器将不再向 NS 服务器发出请求,而是直接返回刚才获得的记录;到期则重复请求过程。

DNS 劫持

DNS 劫持又称「域名劫持」,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的 IP 地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。其实本质就是对 DNS 解析服务器做手脚,或者是使用伪造的 DNS 解析服务器可以通过下图来展示。

解决办法

不使用运营商的 NDS 解析,使用自己的或者著名的 DNS,如:114.114.114.1148.8.8.8

内容劫持

其实内容劫持一开始的出发点是好的,是运营商为了加快用户的访问速度同时减少自己的流量损耗而做的一个缓存机制。

用户在像服务器请求数据的时候运营商会把用户的请求转移到这个缓存池中,如果缓存中有就直接返回,没有的话再去向服务器请求。然后运营商拦截并缓存服务端给用户的回调数据,这样一来可以极大的降低运营商像服务器请求的次数,也能加快用户的访问,所以出发点是好的。

但是一些非法的商家对缓存池内部做一些处理就是直接对返回的内容进行修改,这样一来我们就会接受到错误的数据。

常用命令

  • nslookup 域名

参考资料

理解DNS - Code.CC - 博客园

DNS 深度理解 一 - klion’s blog

欢迎转载,转载请注明出处!
独立域名博客:flywill.cn

欢迎关注公众微信号:Java小镇V
分享自己的学习 & 学习资料 & 生活
想要交流的朋友也可以加微信号备注入群:EscUpDn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 12,488评论 3 34
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,880评论 0 7
  • 1、前言 在当下互联网时代,我们日常生活和工作基本都离开不域名和 DNS ,如通过一个网址打开一个网站进行购物、使...
    cinder_lv阅读 3,546评论 1 27
  • 2019 iOS面试题大全---全方面剖析面试 2019 iOS面试题-----网络相关之HTTP协议 2019 ...
    Theendisthebegi阅读 7,907评论 2 20
  • 共赢的思维深入人心,通俗的讲,就是你好我好大家好。这样的局面人人都想要,但是总会半路出岔子,搅和得一团糟,更糟糕的...
    定投盒子阅读 316评论 9 13