Chgtaxihe's blog Chgtaxihe's blog
首页
练习
算法学习
读书笔记
小玩意

Chgtaxihe

首页
练习
算法学习
读书笔记
小玩意
  • DNS工作原理

    • 获取IP地址的过程
      • DNS查询的2种方式
        • DNS记录
        Chgtaxihe
        2021-02-27
        草稿

        DNS工作原理

        # 前言

        博客一直在用Cloudflare CDN,在国内访问速度很慢,最近给博客套了个百度云加速CDN,在这个过程中学到了一点东西,特此记录一下。

        # DNS

        DNS是域名系统(Domain Name System)的缩写,最常见的用途是将域名映射为ip地址。

        # 获取IP地址的过程

        现在假设用户要访问blog.chgtaxihe.top,此时解析请求会被发送到递归解析器中,并最终返回结果。

        在解析过程中,递归解析器将执行以下操作(可通过dig +trace blog.chgtaxihe.top查看)

        1. 解析器向DNS根域名服务器“.”查询
        2. 根域名服务器根据其记录的顶级域(TLD)DNS服务器作出响应。
        3. 然后,解析器向TLD域名服务器".top"发送请求
        4. 随后,TLD域名服务器告知解析器域名对应的域名服务器NS(chgtaxihe.top的域名服务器是elma.ns.cloudflare.com)
        5. 解析器向该NS发送请求
        6. 通常来说,NS会直接将对应的IP地址返回给解析器,但由于blog.chgtaxihe.top设置了NS记录(即该域名的解析委派给了其他服务器),因此elma.ns.cloudflare.com将返回blog.chgtaxihe.top对应的域名服务器ns1.alidns.com
        7. 解析器向ns1.alidns.com发送请求
        8. ns1.alidns.com中保存有blog.chgtaxihe.top的CNAME记录,直接返回给解析器
        9. 解析器继续解析该CNAME记录

        # DNS查询的2种方式

        • 递归查询:客户端要求服务器将记录返回客户端
        • 迭代查询:客户端允许服务器返回能够给出的最佳应答。如果无对应记录,将返回对较低级别域名空间的DNS服务器引用,随后客户端继续向该引用查询

        # DNS记录

        常见的DNS记录如下

        • A:地址记录,可将域名关联到对应的IP地址(IPv4)
        • AAAA:IPv6地址记录,类似于A记录
        • CNAME:规范名称记录,将一个别名关联到另一个域名,但不提供IP地址
        • NS:域名服务器记录,用于确定那些服务器负责解析

        # 如何让Cloudflare与百度云加速共存

        由于某些特殊原因,如果在Cloudflare添加CNAME指向百度云加速服务器,会出现域名无法解析的情况:可以查询到CNAME记录,但无法获取IP地址。

        通过dig命令可以看到,当查询www.example.com(被加速的域名)时,cloudflare返回了一条指向example.com的NS记录,但由于该地址没有部署dns服务器,因此当我们nslookup该地址时,会得到一条服务器超时的响应。

        这也给我们提供了思路:Cloudflare ⟶ns\overset{ns}{\longrightarrow}⟶ns​ 其他NS(如阿里、腾讯)⟶cname\overset{cname}{\longrightarrow}⟶cname​ 百度云加速

        上次更新: 2021/02/27, 23:03:51
        最近更新
        01
        深入理解Java虚拟机
        03-04
        02
        改用VuePress啦
        02-23
        03
        ThinkingInJava读书笔记
        02-23
        更多文章>
        Theme by Vdoing | Copyright © 2019-2021
        • 跟随系统
        • 浅色模式
        • 深色模式
        • 阅读模式