DNS(Domain Name System)

原文见我的Github,欢迎批评指正,共同进步

这篇文章属于DNS笔记系列,但是不会介绍最基本的DNS知识,较偏向DNS细节和进阶,但是会包含基础的DNS原理,新手可以阅读,但可能会有一些困难,希望本文能带给大家些许帮助.

1. Root DNS Server

根DNS服务器属于DNS系统中最重要的基础设施,负责最基本的解析工作,根DNS服务器全球有13台,以A~M字母命令,为方便管理,其域名格式为字母.root-servers.net,中国地区没有根DNS服务器,大部分根DNS服务器在美国,亚洲唯一的一台根DNS服务器在日本,东京,由WIDE Project进行管理,全球的root-server分布情况见 IANA,所有的根DNS服务器都是以维护一份根域文件(Root Zone file,文件命名为root.zone)来返回顶级域名对应的权威服务器(包括通用顶级域和国家顶级域,很多大型公司都有自己的TLD,比如IBM等),这份根域文件文件大小为2MB左右,截至到2020年2月4日,共记录有1516个顶级域(数据来自 IANA),没有被收录的顶级域不会参与DNS解析过程.

2. Root DNS 镜像

为了分担全球DNS解析的压力,提供更快的服务,现在通过任播技术架设DNS镜像服务器来分担全世界的DNS解析服务,所以现在实时运行的Root DNS Server数量远远大于13台,截至2020年2月5日,全球共有1039台Root DNS Server在为全世界的DNS解析提供服务.

来说说中国的Root DNS Server,截止时间2020年2月5日在 IANA 官网所展示的中国包含的Root DNS Server镜像L, K, J, F, I, E, A, H这八种,主要分布在北京市(5,J,F,K,L,I),香港(9,I,A,J,H,(3,F),(2,E))和台北市(6,E,I,L,K,(2,F)),其中杭州(1,F),上海(1,I),武汉(1,L),郑州(1,L),贵阳(1,K)和西宁市(1,L).

图中最下面的数字16包含了越南首都河内(Hanoi)的一台根DNS镜像服务器,所以数量应为15,目前中国的 Root DNS Mirror Server数量应该为26台.

之前因为中国大陆境内多次的DNS污染影响到了外网,所以中国大陆境内的Root DNS Server曾经被关停一段时间,不过目前现在中国大陆境内仍有F、I、J、L这4个根域的6台DNS镜像(L有三台镜像)在提供服务.

3. 任播 anycast

根DNS镜像采用任播技术实现了对全球13台根DNS服务器的扩充,什么是任播呢,简单来说就是每一个地址对应一群接收节点,不同于广播和多播的是,每一次发送只允许其中一个链路上最优结点接收发送端发来的消息.

任播的好处有负载均衡,提高冗余性,安全性,用户层面能提高客户端的响应速度.

4. Root Zone 文件

Root Zone文件记录了全球的顶级域的DNS信息,通过Http协议可以在 Internic 下载Root Zone文件,同时也可以通过FTP下载,其格式如下(部分为例)

TLD TTL Internet Record Type Record Value
dnsc.ad. 172800 IN A 194.158.74.10
dnsc.ad. 172800 IN AAAA 2a02:8060:32fa:0:0:0:0:b
dnsm.ad. 172800 IN A 194.158.74.9
dnsm.ad. 172800 IN AAAA 2a02:8060:32fa:0:0:0:0:a
adac. 172800 IN NS a.nic.adac.
adac. 172800 IN NS b.nic.adac.
adac. 172800 IN NS c.nic.adac.
adac. 172800 IN NS d.nic.adac.

更多DNS记录类型以及相关规定可在 RFC1035 进行查询

5. waitting

DNS NoteBook相关推荐

  1. 如何设置Jupiter Notebook服务器并从任何地方访问它(Windows 10)

    新程序员指南: (New Programmer's Guide:) 介绍: (Introduction:) I want to work from my laptop and have my desk ...

  2. Jupyter Notebook基础(6)Jupyter Notebook命令行命令帮助

    Jupyter Notebook当前版本为6.3.0. Jupyter命令行命令 jupyter命令是整个Jupyter项目命令的命名空间,单独执行jupyter命令无任何意义. jupyter命令的 ...

  3. 如何在本地访问远程服务器的jupyter notebook?

    背景 jupyter notebook作为一个非常好用的工具,我们经常会在学习python以及深度学习的时候用到,但是经常我们面临的问题是远程服务器上的jupyter notebook,我们可能在本地 ...

  4. debian10 简单的DNS服务器搭建

    安装DNS apt-get install bind9 添加区域配置 vim /etc/bind/named.conf.local zone "skills.com" {type ...

  5. Python | 安装Jupyter Notebook及其目录的更改 jupyter问题

    20211223 在非输入出双击d删除单元格 20211218 https://www.jianshu.com/p/c51f9504d84f jupyter,ipynb转py 20211117 htt ...

  6. 云服务器dns配置文件,linux服务器dns配置文件

    linux服务器dns配置文件 内容精选 换一换 裸金属服务器硬件损坏,SDI卡损坏等原因,导致裸金属服务器无法正常使用时,您可以申请裸金属服务器重建功能.裸金属服务器重建过程不是自动化的,您需要联系 ...

  7. Jupyter Notebook 远程访问设置方法

    1. 设置密码 In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: O ...

  8. Ubuntu 安装 IPython、jupyter notebook

    1. 升级 pip sudo pip3 install --upgrade pip 2. 安装 IPython IPython 5.x 是最后一个支持 Python2 的 IPython . sudo ...

  9. linux mint 修改dns,如何在Ubuntu和LinuxMint中刷新DNS缓存

    本篇文章给大家介绍的内容是关于如何在Ubuntu和LinuxMint中刷新DNS缓存,下面我们来看具体的内容. 域名系统(DNS)是互联网的主干网之一.你无法想象在全球数百万用户的公共网络上运行网站. ...

  10. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

最新文章

  1. mysql 硬解析 软解析_ORACLE sql语句的硬解析与软解析(收藏)
  2. 实战05_SSM整合ActiveMQ支持多种类型消息
  3. ValueError: invalid literal for int() with base 10:Python报错及其解决办法
  4. 用etcd实现服务注册和发现
  5. 代码风格研究:左花括号 是否换行???
  6. 年后复工,逾期升高,策略应该怎么调优
  7. C语言 — 编程规范
  8. matlab操作视频教程,matlab2019视频教程
  9. 手机U盘制作成系统启动盘后在手机端无法识别
  10. 怎样确定远程计算机ip地址,如何获取远程计算机的IP地址
  11. pe系统如何读取手机_pe系统没有连接手机的驱动怎么办
  12. 掌握这些插件,分分钟提高你的办公效率90%!
  13. JavaScript知识整理(一)——W3school
  14. 抖音ai智能机器人挂机_抖音上最火的人工智能机器人--LUKA绘本阅读机器人
  15. dev、test、prod、pre是什么意思?
  16. stm32增量式编码器使用流程
  17. Android编译命令m、mm、mmm区别及工程搭建示例
  18. 如何理解数学公式中出现的极大极小minmax含义
  19. 浏览器中的垃圾回收机制
  20. 华为mate30pro和华为p40pro有什么区别

热门文章

  1. 字节、KB、MB、GB 之间的换算关系
  2. 高职大学计算机专业老师试讲面试,毫无经验应聘高职院校教师怎么准备试讲和面试...
  3. android相机代码权限,Android – 相机权限被拒绝而没有提示
  4. 物联网学什么编程语言_物联网开发用什么语言
  5. 快乐数Python解法
  6. win10设置保护色
  7. php怎么启动服务,如何打开php服务
  8. 冯扬文:基于数据仓库的集装箱运价信息集成研究
  9. linux脚本看日历,Linux查看日历之cal命令
  10. cos(a-b)=cosa*cosb+sina*sinb的推导过程