What?全国目前有1518个根服务器?

举报
rivers 发表于 2022/04/06 10:58:43 2022/04/06
【摘要】 DNS(Domain Name System,域名系统),其主要作用是将主机名解析为IP地址的过程,完成了从域名到主机识别ip地址之间的转换,全国目前有1518个根服务器,仅仅北京就有8台。如果感兴趣就可以通过此网站查看:https://root-servers.org/

1.DNS协议

1.1 技术背景

  • 什么dns

    我们平时上网,其本质就是用你手里的客户端软件(比如微博、抖音、微信、浏览器等等)去访问它们背后的服务器(微博服务器、抖音服务器、微信服务器、其他网站的服务器等等),请求数据然后呈现给你。

    那如何访问呢?

    这些服务器都有属于它们的IP地址,这是一个在互联网中使用的身份标识号码,凭借这个数字,我们手机和电脑发出的网络数据包就能被网络中的“快递系统”不断转发,最终投递到目标服务器。

    但这些号码数字对我们人类来说没那么好记忆,所以,人们发明了域名这个东西。

    www.baidu.com,这就是百度的域名。 他们如何识别域名呢 -----域名解析系统DNS
    问真正的服务器之前,先通过这个解析系统,把这个域名“翻译”成对应的IP地址,拿到这个IP地址后,再去进行后面的网络访问。

  • DNS(Domain Name Service,域名称解析服务):**用于实现从主机域名到IP地址之间的转换。

1.2 域名技术点

再次注意,根服务器的IP只有13个,但是却有一千多个物理服务器节点。

那这是怎么办到的呢?这里用到了一个叫“任播”的网络技术。简单理解就是:可以让世界上不同的多台计算机,拥有同一个IP地址

我国境内发出的对根DNS的请求,基本上都由国内的镜像完成了,并没有路由到国外的根服务器上去。

  • 域名组成:英文域名只能由英文数字以及连字符混合而成,但连字符"-" 不能是第一个字符(不是下划线)

  • 不 支 持使 用 空 格 及一 些 特 殊 字符 , 比如!?/;:@#$%^~_=+,*<>等,英文不区分大小写,中文域名,必须含有中文字符、

  • **域名等级:**域名级数是从右至左按照“.”分隔的部分确定的,有几个“.”就是几级,一般情

    况下,域名最好不超过五级,例如 a.com 是一级域名,而 a.b.com 则是二级域名

  • **域名长度:**每一级域名长度的限制是 63 个字符,域名总长度则不能超过253 个字符

  • **其它常见域名:**常见的通用顶级域名为:.biz .com .edu .gov .info .int .mil .name .net .org,中国大陆为.cn中国香港为.hk中国台湾为.tw美国为.us

  • 域名解析类型:

    • A 记录解析:指定域名对应的 IP 地址
    • **CNAME:记录解析:**别名解析,域名 www.csdn.net,真实的 IP 地址为 39.106.226.142,对应的 CNAME 可能是 abc.csdnweb.com,也就是允许多个域名对应服务器的主机名。
    • MX记录解析:邮件交换记录,用于将以域名为结尾的电子邮件指向对应的邮件服务器
    • 泛域名解析:是指将某一类域名解析到同一个IP 地址,以通配符的方式实现

    世界有13个根DNS,其中10个在美国,英国和瑞典各1个,日本1个。

    我们可以去访问 https://www.internic.net/domain/named.root 查看根名字和IP
    
    他们的名字从A.root-servers.net到M.root-servers.net。
    其中,A开头那个是主根,其他12个(BCDEFGHIJKLM)是辅根。
    
    
    

1.3 为啥根域名服务器只有13个?

但是需要注意的是,这里说的13个,并非真的只有13台物理机器,全球的互联网如果都只靠这十三台计算机维系,那风险还是很大的。

在逻辑上,根确实只有13个,但每个根都有镜像啊!

所以,根服务器实际上总共有1518个(截止2022-02-27)之多,在下面这个网站,你可以看到全球所有的根服务器分布情况:https://root-servers.org/

1.4 工作原理

  • 工作原理
    域名查找流程: 1.本地浏览器DNS缓存  2.操作系统的DNS缓存 3.本地服务器缓存(递归自己)  4.根服务器缓存(迭代)
    1.首先搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表
    	若没有命中,则继续搜索操作系统的 DNS 缓存
    2.若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果
    
    3.若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询(迭代)
    	首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
    4.本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
    5.本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址
    6.本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来
    	操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起
    至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起
    
    
    

递归和迭代区分:
1)查询过程中DNS代理服务器向其他服务器请求的过程称之为迭代查询
2)本地客户端向DNS代理服务器的查询称之为递归查询

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。