DNS解释及原理 |
每天免费分不用24点清空,不要浪费了,也不求你们给古黑币,当然加点也是很开心的。
👃🗺🥚❌🦠★DNS 是啥? DNS 是洋文“Domain Name System”的缩写,直译过来就是“域名系统”。 ★DNS 有啥用? 咱们每天打交道的这个互联网,其底层的基石是“IP”。IP 是“Internet Protocol”的缩写,中文就“互联网协议”(光看名字就知道这玩意儿很重要)。咱们日常用的那些互联网软件(浏览器、聊天工具、下载工具、等等)在工作时,必须依靠【IP地址】才能进行网络数据传输。 👳🧣🩺🤔🙌 “IP地址”是设计给软件用滴,虽然软件很容易处理,但对于人类而言,却很难记忆。于是,后来又发明了 DNS。有了 DNS,人类就不需要记住长长的一串 IP地址,而只需记住“域名”(域名通常更短,也更具有可读性)。 比如你进古黑论的时候,只需在地址栏输入网站的“域名”—— ,而不用输入网站的“IP地址”。然后电脑系统会利用 DNS 来把“域名”翻译成“IP地址”。这个翻译的过程术语叫“域名解析/DNS解析”。 🧒👑📟😄👎 ★域名的结构是咋样滴? 域名是按照“树形结构”组织的。不懂得啥是“树形结构”的同学,可以对照一下电脑硬盘上的目录结构。域名的结构和目录结构很类似,目录结构是用“斜杠”作分隔符,而域名是用小数点作分隔符。两者的主要区别在于:目录结构名称的形式是从左到右(上级在左,下级在右),而域名是从右到左(上级在右,下级在左)。 以古黑论的域名为例: 的上级域名是 guhei.net;guhei.net 的上级域名是 .net,这里的 .net 就被称为顶级域名(Top-Level Domain,简称 TLD),跟 .net 类似的那些 .com;.org;.gov 也是顶级域名。还有那些以国家/地区的代码命名的(比如 .cn .tw .hk .jp 等等)也是顶级域名。 🖐⛄🍧🈳🐟 ★“域名解析”是咋实现滴? 如果你曾经配置过电脑的网卡,应该记得上面除了有IP地址、掩码等设置,还有一项设置是“DNS服务器/域名服务器”。这项设置就是用来帮助你的电脑进行域名解析的。你可以把这个“DNS服务器”想象成114查号台。每当电脑需要翻译某个域名,就找这个域名服务器查询,然后域名服务器会告诉你的电脑,要查询的域名对应的IP地址是啥。 下面简单说一下,你的电脑进行域名解析的过程。🧑⚕️🩴🩸✌ 为了叙述方便,以论坛为例。当你在浏览器的地址栏中输入 ,然后敲回车,这时候浏览器会进行如下一系列事情。 1. 首先根据输入的网址,提取出域名(在本例中,也就是 ) 2. 如果你在系统中配置了 Hosts 文件,那么电脑会先查询 Hosts 文件,看这个 否已经在 Hosts 里面有了对应的记录。如果有,直接就可以拿到该记录中的 IP地址,过程就结束了。🧑⚕️🧦🧻🤖👎 3. 如果 Hosts 里面没有这个别名,那么电脑会看你有没有设置域名服务器(DNS 服务器)。如果你的系统没有设置域名服务器,那电脑就没辙了,浏览器直接会报错,说网站的域名无法解析。过程就结束了。 4. 如果你设置过“域名服务器”,那么电脑会向这个域名服务器发送一个域名查询(DNS query)的请求,然后等候域名服务器的回应。 👃🚘🍊🅾🐶 5. 如果域名服务器始终没有回应(比如域名服务器挂了,或域名服务器的IP填错了,或请求被拦截了),那么电脑还是没辙(浏览器会报错)。6. 如果域名服务器回应了,那么你的电脑就可以根据域名服务器的应答信息,得到该域名的 IP地址。之后浏览器就会向这个 IP地址对应的 Web 端口发送 HTTP 请求。 通常情况下,电脑拿到的(DNS服务器)应答信息是正确的——也就是说,应答中的IP地址 确实对应那个域名——这种情况下,你的浏览器就可以正常工作了。 👴🥼📮😰🖕 ★域名服务器如何知道这些信息? 刚才介绍了“客户端域名解析”的过程。接下来说说域名服务器是如何得到这些信息的。 ◇域名的缓存 💪⛄🫖™🐅 大伙儿平时使用的域名服务器,技术术语叫“递归域名服务器”。“递归服务器”是面向普通网友的。刚才介绍“域名解析”的时候提到的服务器就是“递归服务器”。“递归服务器”的内部通常会有一个 DNS记录 的缓存——这个缓存是为了提高查询效率的。当某台电脑向递归服务器发起域名查询时,递归服务器首先看自己的缓存中有没有该域名的记录,如果有,直接就回复该记录给查询的电脑。万一对方想要查询的域名没找到,咋办捏?这时候就要进行缓存的同步。◇缓存的同步 下面以论坛的域名为例,说说这种情况的处理流程。 👩🪖⌨🤤🙏 1. 对方查询 这个域名,“递归服务器”发现自己的缓存中没有。 2. “递归服务器”会先去找“根域名服务器”帮忙,“根服务器”会告诉“递归服务器”说:这个域名属于 .net 这个分支之下,你去找 .net 这个域名的“权威服务器”,这个权威服务器的 IP地址 是 xxx。 3. 然后“递归服务器”根据拿到的这个 xxx地址,又去找 .net域名的权威服务器”。.net 域名的权威服务器”告诉它:你应该去找“XXX.com 域名的权威服务器”,这个权威服务器的 IP地址是 yyy 👨🚒🧣🖌🤪💪 4. 然后“递归服务器”又屁颠屁颠地去找“XXX.com 域名的权威服务器”。这时候“XXX.com 域名的权威服务器”才会告诉它, 这个域名的 IP地址 到底是多少。 大伙儿看到没有?整个过程如同“踢皮球”,效率是很低的。所以俺前面提到,“递归域名服务器”必须得有一个缓存,以此来优化效率(不用每次查询都来一次“踢皮球”)。 🧑💻👒🎺😈👊 ◇同步的周期 说完了“域名的同步”,顺便提一下“同步的周期”。 因为互联网上的域名信息是有可能发生变化的。比如增加了某个新域名,注销了某个旧域名,或者某个域名对应的 IP地址变了。所以,“递归服务器”上保留的缓存中,每一条域名记录都有一个生命周期(可能是几分钟,也可能是几小时)。如果某条记录的生命周期过了,就会被删除,然后重新同步。 ★啥是“域名劫持”? 🧠🚂🥩⁉刚才说了,域名服务器上都会保存一大堆的域名记录(每条记录包含“域名”和“IP地址”)。当收到域名查询的时候,域名服务器会从这堆记录中找到对方想要的,然后回应给对方。 如果域名服务器上的某条记录被【人为修改】了(改成错的),那么一旦要查询这条记录,得到的就是错误的结果。这种情况称之为“域名劫持”。 ★啥是“域名污染”? 💪🚗🍪🅾🐉 先提醒一下:“域名污染”这个词还有其它几个别名,分别是“域名欺骗”、“域名缓存投毒”(洋文叫:DNS cache poisoning)。今后看到这几个别名,要晓得是同一个意思。“域名污染”的原理,简单说来是这样滴:当你的电脑向域名服务器发送了“域名查询”的请求,然后域名服务器把回应发送给你的电脑,这之间是有一个时间差的。如果某个攻击者能够在域名服务器的“DNS应答”还没有到达你的电脑之前,先伪造一个错误的“DNS应答”发给你电脑。那么你的电脑收到的就是错误的信息,并得到一个错误的 IP地址。加分不扣古黑币及你的任何东西!#y404: 评分
帖子热度 8495 ℃
| ||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟产生出一种无以名之的悲痛感——啊,这么好的帖子,如果将来我再也看不到了,那我该怎么办?那我该怎么办?直到我毫不犹豫地把楼主的这个帖子收藏了,我内心的那种激动才逐渐平静下来。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,牺牲小我,奉献大我。我要拿出这帖子奉献给人赏阅,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止!
|
网络安全不能一直靠司法政策压制,技术对抗才是保证安全的本源。
|