
DNS解析的整个过程
DNS解析过程及厂商封锁节点分析
前置知识
在深入解析之前,让我们先了解一些域名和DNS服务器的基本概念。
域名等级示例
- 顶级域名部分:.com
- 二级域名部分:test.com
- 三级域名部分:w.test.com
- 以此类推
注意:许多人会将test.com称为顶级域名或一级域名,在习惯上可以接受,但在严谨的学术定义上,这是不正确的。
DNS服务器等级
- Root Servers
- TLD Servers
- Authoritative Name Servers
- Recursive Resolvers (Caching DNS Servers)
- Local DNS Servers (at the user level)
模拟DNS解析过程
- 发起HTTP请求:电脑a发起了一个http请求,假设请求的域名为
https://w.test.com
。 - DNS Cache检查:电脑a在自身的DNS Cache中查找是否存在该域名的缓存,并且该缓存的TTL没有过期。
- 网络适配器选择:获取自身所有可用的网络适配器(网卡),并通过一些条件选择一个要使用的网卡。
- DNS服务器地址:读取该adapter配置的DNS服务器地址(IPv4和IPv6版本)。
- Route Table检查:检查本机route table,分别查看IPv4版本和IPv6版本的首选路由,并发送DNS查询。
- Recursive Resolvers响应:Recursive Resolvers服务器接收到DNS查询,会先查看自身缓存中是否存在要解析的域名的缓存。
- 根服务器回应:根服务器收到DNS请求,回复Recursive Resolvers服务器,指引找到TLD Servers进行解析。
- TLD Servers请求:Recursive Resolvers服务器将DNS域名解析请求发给TLD Servers。
- TLD Servers回应:TLD Servers根据二级域名查询zone files,得到该域名注册时指定的nameserver地址。
- Authoritative Name Servers请求:Recursive Resolvers服务器将DNS请求发送到这个Authoritative Name Servers。
- Authoritative Name Servers响应:Authoritative Name Servers找到域名的IP地址,并返回给Recursive Resolvers服务器。
- Recursive Resolvers缓存:Recursive Resolvers服务器将地址数据缓存,并返回给电脑A。
- 电脑A缓存:电脑A将地址数据缓存。
- 建立数据连接:电脑a使用获取到的IP地址建立数据连接。
- TLS安全层建立:使用https协议时,建立TLS安全层,进行证书验证、交换密钥、加密传输等。
厂商封锁节点
- DNS Cache:如果电脑a的DNS cache中没有相关域名的缓存,无论是否主动设置了DNS服务器,都要先请求Recursive Resolvers进行DNS的解析。
- Authoritative Name Servers:如果Authoritative Name Servers指定了是国内云服务器厂商的,那么它就能验证域名是否备案过,从而能够实现阻止解析。
- 入站端口:云服务器厂商可以封80或443的入站端口。
结论:云服务器厂商可以封80或443的入站端口,但无法阻止其他所有端口。此外,它可以在Authoritative Name Servers这个节点上阻止解析,前提是域名使用了它家的Authoritative Name Servers。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 阿锦在线[ajinol.com]
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果