上帝视角
我们平时在访问网站时,不使用 IP 地址,而是网站域名。但是抓包发现:交互报文是以 IP 地址进行的。那么 IP 地址是从哪来的呢?这是因为 DNS 把网站域名自动转换为 IP 地址。
报文交互抓包
TCP/IP 是基于 IP 地址进行通信的,但是 IP 地址不太好记。于是出现了另一种方便记忆的标识符,那就是主机名。为计算机配置主机名,在进行网络通信时,直接使用主机名,而不用输入一大串的 IP 地址。同时,系统通过一个叫 hosts 的文件,实现主机名转换 IP 地址的功能。hosts 文件包括主机名和 IP 地址的对应关系。当需要通过主机名访问主机时,它就会查看本地的 hosts 文件,从文件中找到相对应的 IP 地址,然后进行报文发送。如果在 hosts 文件中没找到相关信息,则主机访问失败。
hosts 文件是主机的本地文件,优点是查找响应速度快。它主要用来存储一些本地网络的主机名和 IP 地址的对应信息。这样,主机在以主机名访问本地网络主机时,通过 hosts 文件可以迅速获得相应的 IP 地址。
hosts文件
每台主机的 hosts 文件都需要单独手工更新。随着网络规模的不断扩大、接入计算机的数量不断增加,维护难度越来越大,每台主机同步更新,几乎是一件不可能完成的任务。
hosts维护难
为了解决 hosts 文件维护困难的问题,出现了 DNS 域名系统,一个可以解决主机名和 IP 地址互相转换的系统。无论网络规模变得多么庞大,都能在一个小范围内通过 DNS 进行管理。
DNS域名系统
DNS ,全称 Domain Name System
。采用 client/server
模式,DNS client
发出查询请求,DNS server
响应请求。DNS client
通过查询 DNS server
获得主机的 IP 地址,进而完成后续的 TCP/IP 通信过程。
DNS client/server
当 Windows 系统用户使用 nslookup hostname/domainname
命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。
nslookup命令演示
先了解什么是域名,才能理解 DNS 。域名是为了识别主机名或机构的一种分层的名称。因为单独的一台域名服务器是不可能知道所有域名信息,所以域名系统是一个分布式数据库系统,域名(主机名)到 IP 地址的解析可以由若干个域名服务器共同完成。每一个站点维护自己的信息数据库,并运行一个服务器程序供互联网上的客户端查询。DNS 提供了客户端与服务器的通信协议,也提供了服务器之间交换信息的协议。由于是分布式系统,即使单个服务器出现故障,也不会导致整个系统失效,消除了单点故障。
DNS 域的本质是一种管理范围的划分,最大的域是根域,向下可以划分为顶级域、二级域、三级域、四级域等。相对应的域名是根域名、顶级域名、二级域名、三级域名等。不同等级的域名使用点号分隔,级别最低的域名写在最左边,而级别最高的域名写在最右边。
DNS域
举个栗子:网站域名 www.tsinghua.edu.cn 中,从右到左开始,cn
是顶级域名,代表中国,edu
是二级域名,代表教育机构,tsinghua
是三级域名,表示清华大学,www
则表示三级域名中的主机,并提供了 web 服务。
清华大学域名
除了 www
主机外,常见的主机还有 arch
、sem
、mail
,域名如下:
清华大学常见域名
每一级的域名都由英文字母和数字组成,域名不区分大小写,长度不能超过 63 字节,一个完整的域名不能超过 255 个字节。根域名用 “ . ”(点)表示。目前我们看到的域名例子都是完全合格域名( FQDN ),FQDN 的完整格式是以点结尾的域名。接入互联网的主机、服务器或其它网络设备都可以拥有一个唯一的 FQDN 。与 FQDN 对应的,系统中的默认域名是非合格域名,会把当前的区域域名添加到尾部。例如,tsinghua 域内的主机上查找 mail
,本地解析器就会将这个名称转换为 FQDN ,即 mail.tsinghua.edu.cn ,然后解析出 IP 地址。
完全合格域名
域名空间结构像是一棵倒过来的树,也叫做树形结构。根域名就是树根( root ),用点号表示,往下是这棵树的各层枝叶。根域名的下一层叫顶级域名,顶级域名包括三大类:
三大顶级域名
国家顶级域名
国家顶级域名采用 ISO3166 的规定。比如:.cn
表示中国,.us
表示美国,.uk
表示英国等。现在使用的国家顶级域名大约在 200个左右。
国家顶级域名
国际顶级域名
国际顶级域名采用 .int
。国际性的组织可以在 .int
下注册。
通用顶级域名
通用顶级域名
最早的顶级域名共有 6 个。分别为:
.com
表示公司企业,
.net
表示网络服务机构,
.org
表示非盈利组织,
.edu
表示教育机构(仅限美国),
.gov
表示政府部门(仅限美国),
.mil
表示军事部门(仅限美国)。
随着互联网用户不断增加,又增加了 7 个通用顶级域名。分别为:
.aero
用于航空运输业,
.biz
用于公司和企业,
.coop
用于合作团体,
.info
用于各种情况,
.museum
用于博物馆,
.name
用于个人,
.pro
用于自由职业者。
顶级域名下面是二级域名。国家顶级域名下注册的二级域名均由国家自行确定。我国二级域名分为类别域名和行政域名两大类,类别域名如:.com
,.edu
,.gov
等分别代表不同的机构;行政域名如:.bj
表示北京,.sh
表示上海,代表我国各省、自治区及直辖市等。
二级域名
二级域名下面是三级域名、四级域名等。命名树上任何一个节点的域名就是从这个节点到最高层的域名串起来,中间以 “ . ” 分隔。
域名组成
在域名结构中,节点在所属域中的主机名标识可以相同,但是域名必须不同。比如:清华大学和新浪公司下都有一台主机的标识是 mail
,但是两者的域名却是不同的,前者为 mail.tsinghua.edu.cn ,而后者为 mail.sina.com.cn 。
主机名相同,域名不同
将域名转换为对应的 IP 地址的过程叫做域名解析。在域名解析过程中,DNS client
的主机调用解析器( Resolver ),向 DNS server
发出请求,DNS server
完成域名解析。
域名解析
域名解析是按照 DNS 分层结构的特点,自顶向下进行的。但是如果每一个域名解析都从根域名服务器开始,那么根域名服务器有可能无法承载海量的流量。在实际应用中,大多数域名解析都是在本地域名服务器完成。通过合理设置本地域名服务器,由本地域名服务器负责大部分的域名解析请求,提高域名解析效率。
本地域名服务器
从应用程序的角度看,访问 DNS 是通过一个叫解析器( Resolver )的应用程序来完成的。发送一个 TCP 或 UDP 数据包之前,解析器必须将域名(主机名)转换为 IP 地址。一个解析器至少要注册一个域名服务器的 IP 地址。通常,它至少包括本地域名服务器的 IP 地址。
解析器
DNS 域名空间的层次结构,允许不同的域名服务器管理域名空间的不同部分。域名服务器是指管理域名的主机及软件,它可以管理所在分层的域。其所管理的分层叫做区域( zone )。一个 zone 是 DNS 域名空间的一棵子树,它可以单独管理而不受其它 zone 影响。每层都设有一个域名服务器。
域名服务器
根所设置的 DNS 叫做根域名服务器,它对 DNS 的检索数据功能起着至关重要的作用。根域名服务器中注册了顶级域名服务器的 IP 地址。如果想要新增一个一级域名,或者修改已有的顶级域名,就要在根域名服务器中进行新增或变更。
类似的,顶级域名服务器中注册了二级域名服务器的 IP 地址。如果域名服务器下面没有其它分层,就可以自由地指定主机名称。如果想重新设置域名服务器的 IP 地址或修改域名,必须在上一层的域名服务器中进行修改。
域名和域名服务器都需要按照分层进行设置。如果域名服务器出现故障,那么针对这个域的 DNS 查询就无法正常工作。因此,为了提高可用性,至少设置两台域名服务器。一旦第一台域名服务器无法提供查询时,就会自动转到第二个甚至第三个域名服务器上进行。
本地域名服务器
互联网接入服务运营商或者一个大的网络机构,像公司、大学等都有一台或多台可以自行管理的域名服务器,这类域名服务器称为本地域名服务器,也称为默认域名服务器。本地域名服务器离客户端较近。当一个 DNS客户端发出 DNS 查询时,首先送到本地域名服务器。如果本地域名服务器数据库中有对应的域名信息,会将查询的域名转换为 IP 地址返回客户端。如果没有,它会以 DNS 客户端的身份向根域名服务器进行查询。根域名服务器收到本地域名服务器的查询后,会返回相关域名服务器的 IP 地址,本地域名服务器再向相关域名服务器发送查询请求。
本地域名服务器
根域名服务器
通常根域名服务器用来管理顶级域,本身并不对域名进行解析,但它知道相关域名服务器的 IP 地址。IPv4 根域名服务器全球有 13 台,主机名分别为 A ~ M 。1 台为主根服务器在美国,其余 12 个均为辅根服务器,其中 9 个在美国,2 个在欧洲,位于英国和瑞典,1 台在亚洲,位于日本。所有的域名服务器都必须注册根域名服务器的 IP 地址,因为 DNS 根据 IP 地址进行检索时,需要按顺序从根域名服务器开始。
根域名服务器
授权域名服务器
互联网上的主机在域名服务器上进行注册,这个域名服务器就是主机的授权域名服务器。通常,主机的授权域名服务器就是本地域名服务器。实际上,主机会有两个授权域名服务器,防止单点故障。授权域名服务器上有注册主机域名与 IP 地址的映射信息,当查询注册主机域名时,它会返回相应主机的 IP 地址。如果主机域名和 IP 地址需要进行变更,只需要在授权域名服务器处理即可,不用再向其它域名服务器进行申请或报告。
授权域名服务器
主域名服务器
主域名服务器是完成一个或多个区域域名解析工作的主要域名服务器,通常也是一个或多个区域的授权域名服务器。主域名服务器有区域内主机地址信息的源数据文件,并且是区域传送中区域数据的唯一来源。
辅助域名服务器
辅助域名服务器可以协助主域名服务器提供域名查询服务,在主机很多的情况下,可以有效分担主域名服务器的压力。辅助域名服务器也有冗余功能,当主域名服务器故障时,辅助域名服务器能够在数据有效期内继续为主机提供域名解析服务。
主/辅助域名服务器
一台主域名服务器可以有多台辅助域名服务器,一台辅助域名服务器也可以是其它区域的主域名服务器。辅助域名服务器中包含区域内主机地址数据的授权信息,通过区域配置文件副本的方式存储。辅助域名服务器也是区域的授权域名服务器,可以完成本区域内域名查询的授权回答。
辅助域名服务器并不建立数据文件,它获得区域数据的唯一途径就是通过区域传送的方式,从主域名服务器上获得区域数据的最新副本。获得数据副本的方式有两种,第一种是辅助域名服务器定期主动获得主域名服务器的副本,或更新副本中的数据。第二种是主域名服务器在区域数据发生变化时,及时通知辅助域名服务器更新副本中的数据。
域名解析过程
DNS 客户端进行域名 www.tsinghua.edu.cn 的解析过程如下:
DNS 域名服务器使用的端口号是 53 ,并且同时支持 UDP 和 TCP 协议。为什么同时使用两种协议呢?
因为 DNS 响应报文中有一个删减标志位,用 TC 表示。当响应报文使用 UDP 封装,且报文长度大于 512 字节时,那么服务器只返回前 512 字节,同时 TC 标志位置位,表示报文进行了删减。当客户端收到 TC 置位的响应报文后,将采用 TCP 封装查询请求。DNS 服务器返回的响应报文长度大于 512 字节。
TC标志位
UDP 报文的最大长度是 512 字节,最多可以包含 13 台根域名服务器数据,因此 ipv4 根域名服务器只能限制在 13 个,且每个服务器使用单个字母命名,也是 IPv4 根服务器是从 A ~ M 命名的原因。
UDP最长报文
当辅助域名服务器启动时,将从主域名服务器执行区域传送。正常运行过程中,辅助域名服务器也会定时向主域名服务器进行查询,以便了解主域名服务器数据是否发送变化。如果有变化,将执行一次区域传送。因为区域传送的数据多,所以传送的数据采用 TCP 封装。
TCP封装
因此,UDP 用于 client 和 server 的查询和响应,TCP 用于主从 server 之间的传送。
DNS 域名解析包括两种查询( query )方式,一种是递归查询,另一种是迭代查询。
DNS 服务器如果不能直接响应解析请求,它将继续请求其它的 DNS 服务器,直到查询域名解析的结果。查询的结果可以是域名主机的 IP 地址,或者是域名无法解析。无论哪种结果,DNS 服务器都会将结果返回给客户端。
举个栗子:当本地域名服务器接收了客户端的查询请求,本地域名服务器将代表客户端来找答案,而在本地域名服务器执行工作时,客户端只是等待,直到本地域名服务器将最终查询结果返回客户端。
递归查询
如果 DNS 服务器查不到相应记录,会向客户端返回一个可能知道结果的域名服务器 IP 地址,由客户端继续向新的服务器发送查询请求。对域名服务器的迭代查询,只得到一个提示,则继续查询。
举个栗子:本地域名服务器发送请求到根域名服务器,根域名服务器并没有相应记录,它只是给本地域名服务器返回一个提示,引导本地域名服务器到另一台域名服务器进行查询。
迭代查询
客户端在查询 IP 地址时,向本地域名服务器进行递归查询。如果本地域名服务器的数据库有相应数据,则直接返回相应数据。如果没有,则本地域名服务器向根域名服务器进行迭代查询。从根开始对这棵树按照顺序进行遍历,直到找到指定的域名服务器,并由这个域名服务器返回相应的数据。客户端和本地域名服务器会将收到的信息保存在缓存里,这样可以减少每次查询时的性能消耗。
在 DNS 查询中,客户端希望知道域名对应的 IP 地址,这种查询称为正向查询。大部分的 DNS 查询都是正向查询。与正向查询对应的,是反向查询。它允许 DNS 客户端通过 IP 地址查找对应的域名。
DNS反向查询
为实现反向查询,在 DNS 标准中定义了特色域 in-addr.arpa
域,并保留在域名空间中,以便执行反向查询。为创建反向域名空间,in-addr.arpa 域中的子域是按照 IP 地址相反的顺序构造的。
举个栗子:www.tsinghua.edu.cn 的 IP 地址是 166.111.4.100
,那么在 in-addr.arpa 域中对应的节点就是 100.4.111.166
。
反向查询
域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析,如果静态解析不成功,再采用动态域名解析。
静态域名解析是通过静态域名解析表进行的,手动建立域名和 IP 地址之间的对应关系表,该表的作用类似于 Windows 操作系统下的 hosts 文件,可以将一些常用的域名放入表中。当 DNS client 需要域名所对应的 IP 地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的 IP 地址,提高域名解析的效率。
静态域名解析
动态域名解析需要专用的域名服务器( DNS server )运行域名解析服务器程序,提供从域名到 IP 地址的映射关系,负责接收客户端( DNS client)提出的域名解析请求。
动态域名解析
在使用了 DNS 代理( DNS proxy )功能的组网中,DNS client 将 DNS 请求报文直接发送给 DNS proxy 。DNS proxy 会先查找本地域名解析表,如果未查询到对应的解析表项,会将 DNS 请求报文转发给 DNS Server ,并在收到 DNS server 的应答报文后将其返回给 DNS client ,从而实现域名解析。
DNS代理
因此,当 DNS server 的地址发生变化时,只需改变 DNS proxy 上的配置,无需逐一改变局域网内每个 DNS client 的配置,从而简化了网络管理。
end
加我微信好友(18814122729),进学习交流群,一起学习
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/eaD1Hedtl_3atbLsbanTqw
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。