讲解

什么是dns?它们的作用是什么? 您应该知道的所有信息

目录:

Anonim

您已经知道,在互联网上可以找到无数个主题不同的网站。 要访问它们,通常在浏览器的相应字段中写入一个地址,例如,www.google.es或www.profesionalreview.com。 但是您是否知道,无论托管在何处,团队都如何搜索这些网站 ? 正是在这一点上,DNS(域名系统)服务器的工作才得以体现。 在本文中,您将了解什么是DNS ,它们如何工作以及其他相关概念,例如DNSSEC。

内容索引

互联网的开始及其崩溃

在互联网开始时,由于打算很少使用,所以有一个hosts.txt文件,其中包含互联网上存在的计算机的所有IP和名称。 该文件由NIC(网络信息中心)管理,并由单个主机SRI-NIC分发。

Arpanet的管理员通过电子邮件将已进行的所有更改以及不时更新SRI-NIC的所有更改以及文件hosts.txt发送到NIC。

每周一次或两次将更改应用于新的hosts.txt。 但是,随着Arpanet的增长,该方案变得不可行。 随着Internet上计算机数量的增加,hosts.txt文件的大小也随之增加。

此外,一旦包含每台主机,更新过程所产生的流量将以更大的比例增长,这不仅意味着hosts.txt文件中的另一行,而且还意味着从SRI-NIC更新的另一台主机

图片来自commons.wikimedia.org

使用Arpanet的TCP / IP ,网络呈指数增长,几乎无法管理更新文件。

Arpanet管理员尝试了其他设置来解决hosts.txt文件中的问题。 目的是创建一个可以在单个主机表上解决问题的系统。 新系统应允许本地管理员转换全球可用的数据。 管理权下放将解决单个主机产生的瓶颈问题,并减少流量问题。

此外,本地管理将使更新数据变得更加容易。 该方案应使用分层名称以确保名称的唯一性。

来自USC信息科学研究所的Paul Mockapetris负责系统体系结构 。 1984年,它发布了RFC 882和883,其中描述了“域名系统”或DNS。 在这些RFC(请求注释)之后是RFC 1034和1035,它们具有当前的DNS规范。

除了允许缓存信息之外,DNS还创建为分层,分布式和递归的。 因此,没有机器将必须知道所有的互联网地址。 主要的DNS服务器是根服务器 (根服务器)。 它们是知道哪些服务器负责顶级域的服务器。

图片来自commons.wikimedia.org

总共有13台根服务器 ,其中10台位于美国,两台在欧洲(斯德哥尔摩和阿姆斯特丹),一台在亚洲(东京)。 当一个出现故障时,其他将设法保持网络平稳运行。

DNS分别与端口53 (UDP和TCP)和953(TCP)一起用于操作和控制。 UDP端口53用于服务器-客户端查询,而TCP端口53通常用于主机(主)和从机(辅助)之间的数据同步。

端口953用于与BIND通信的外部程序。 例如,DHCP要添加在DNS区域内接收IP的主机的名称。 逻辑上仅在它们之间建立信任关系时才应这样做,以防止DNS被任何软件覆盖数据。

BIND由伯克利大学计算机科学研究小组的四名即将毕业的学生创建。 开发人员Paul Vixie(vixie-cron的创建者)在DEC公司工作时,首先负责BIND。 Internet系统联盟(ISC)当前支持和维护BIND。

BIND 9是通过商业合同和军事合同共同开发的。 BIND 9的大多数功能是由Unix提供程序公司推广的,这些公司希望确保BIND能够与Microsoft的DNS服务器产品保持竞争优势。

例如, DNSSEC安全性扩展是由美国军方资助的,他意识到安全对DNS服务器的重要性。

网域名称

每个网站或互联网服务都需要一个IP地址 (IPv4或IPv6)。 使用此资源,可以找到承载该网站的服务器或一组服务器,从而访问其页面。 在撰写本文时,Google西班牙的IP地址是172.217.16.227。

想象一下,必须记住您每天访问的所有网站的IP,例如Facebook,Twitter,电子邮件,新闻门户等。 这几乎是不可能的,也是不切实际的,不是吗?

C:\ Users \ Migue> ping www.google.es用32字节的数据ping www.google.es:来自172.217.16.227的响应:字节= 32时间= 39ms TTL = 57来自172.217.16.227的响应:字节= 32时间= 30毫秒TTL = 57来自172.217.16.227的响应:字节= 32时间= 31毫秒TTL = 57来自172.217.16.227的响应:字节= 32时间= 30毫秒TTL = 57 172.217.16.227的Ping统计信息:数据包:已发送= 4 ,收到= 4,丢失= 0(丢失0%),大约往返时间(以毫秒为单位):最小值= 30ms,最大值= 39ms,平均值= 32ms C:\ Users \ Migue>

这基本上就是我们使用域名访问互联网网站的原因。 这样,用户无需知道(例如)Professional Review的IP地址即可访问它,只需知道他们的域名即可。

这是一个非常实用的方案,因为毕竟记住名称比记住数字序列要容易得多。 另外,即使您不记得确切的名称,也可以在搜索引擎中键入它,这将有助于您找到它。

关键是,尽管使用了域,但站点仍需要IP地址 ,因为创建名称毕竟是为了便于人们理解,而不是计算机。 而将域链接到IP地址则取决于DNS

DNS(域名系统)服务器

简而言之,Internet DNS (域名系统)服务是分散在位于世界各地的服务器上的大型数据库。 当您在浏览器中键入一个地址(例如www.profesionalreview.com)时,您的计算机会要求Internet提供商(或您指定的其他服务器)DNS服务器查找与该域关联的IP地址。 如果这些服务器没有此信息,它们将与可能拥有此信息的其他人通信。

域是按层次结构组织的,这一事实有助于这项工作。 首先,我们有根服务器,它可以理解为主要的DNS服务,并由地址末尾的句点表示,如以下示例所示:

www.profesionalreview.com

请注意,如果您在浏览器中输入的地址与上述完全相同,并以句号结尾,则程序通常会找到该网站。 但是,由于涉及的服务器已经知道它的存在,因此不必包括这一点。

层次结构之后是我们非常了解的域,例如.com,.net,.org,.info,.edu,.es,.me等。 这些扩展名称为“ gTLD”(通用顶级域),类似于通用顶级域。

还有面向国家的结尾,即所谓的“ ccTLD”(国家代码顶级域名),类似于顶级域名的国家代码。 例如:.es代表西班牙,.ar代表阿根廷,.fr代表法国,依此类推。

然后, 公司和个人可以在这些域中注册的名称就会出现 ,例如profesionalreview.com上的Profesional Review或google.es上的Google。

通过这种层次结构, 找出IP是什么,因此找出与域关联的服务器是什么(称为名称解析的过程)变得更加容易 ,因为这种操作模式允许使用分布式工作方案,其中每个层次结构级别具有特定的DNS服务。

为了更好地理解它,请看以下示例:假设您想访问网站www.profesionalreview.com。 为此,提供商的DNS服务将尝试发现您是否知道如何定位引用的网站。 如果没有,它将首先查询根服务器。 反过来,这将指示.com终止的DNS服务器,它将继续该过程,直到到达响应域profesionalreview.com的服务器为止,该服务器最终将报告关联的IP,即,在哪个服务器上是有问题的站点。

代表某些域的DNS服务器称为“权威”。 就其本身而言,负责从客户端计算机接收DNS查询并尝试从外部服务器获取响应的服务称为“递归”。

gTLD和ccTLD域由不同的实体管理,这些实体也负责DNS服务器。

DNS缓存

假设您访问了一个无法通过提供商的DNS服务定位的网页,因此它必须(通过上述分层搜索方案)查询其他DNS服务器。

为了防止在另一个Internet提供商用户尝试进入同一站点时再次进行此调查, DNS服务可能会将第一个查询的信息保存一段时间。 因此,在另一个类似的请求中,服务器将已经知道与所讨论的网站关联的IP是什么。 此过程称为DNS缓存

原则上,DNS缓存仅保留肯定的查询数据,即找到站点时。 但是,DNS服务也开始保存来自不存在或未本地化站点的负面结果,例如当它们输入错误的地址时。

缓存信息使用称为TTL(生存时间)的参数在指定的时间段内存储。 这用于防止记录的信息过时。 TTL时间段取决于为服务器确定的设置。

因此,可以最大程度地减少根服务器和后续服务器的DNS服务的工作。

使用DNSSEC的DNS安全

至此,您已经知道DNS服务器在Internet上扮演着重要角色。 问题在于DNS也可能是恶意行为的“受害者”。

例如,想象一下,一个有很多知识的人提出了一个方案来捕获来自特定提供商的客户名称解析请求。 成功解决此问题后,您可以尝试定向到伪造的地址,而不是用户要访问的安全网站。 如果用户未意识到自己将进入错误的网页 ,则可以提供机密信息,例如信用卡号。

为了避免出现此类问题,创建了DNSSEC (DNS安全扩展),其中包括向DNS添加安全功能的规范。

图片来自维基共享资源

DNSSEC从根本上考虑了涉及DNS的过程的真实性和完整性方面。 但是,与某些人最初的想法相反,它无法提供防御入侵或DoS攻击的保护,尽管它可能会有所帮助。

基本上,DNSSEC使用涉及公钥和私钥的方案。 这样,您可以确保正确的服务器正在响应DNS查询。 DNSSEC的实施必须由负责管理的实体执行,这就是为什么未充分利用此资源的原因。

免费DNS服务:OpenDNS和Google Public DNS

租用Internet访问服务时,默认情况下,您将切换为使用公司的DNS服务器 。 问题是这些服务器可能很多时候不能很好地工作:建立了连接,但是浏览器找不到任何页面,或者访问网站的速度很慢,因为DNS服务需要花费一些时间来响应。

解决此类问题的一种解决方案是采用替代的和专用的DNS服务,这些服务经过优化可提供最佳性能 ,并且不易出错。 最著名的是OpenDNS和Google Public DNS。 两种服务都是免费的,并且几乎总是可以令人满意地工作。

开放DNS

使用OpenDNS非常容易:您只需使用服务的两个IP。 他们是:

  • 小学:208.67.222.222中学:208.67.220.220

辅助服务是主要服务的副本。 如果由于某种原因无法访问它,则第二个是立即的选择。

可以在您自己的设备或网络设备(例如Wi-Fi路由器)上配置这些地址。 例如,如果使用Windows 10 ,则可以进行如下设置:

  • 按Win + X,然后选择“网络连接”。

现在,您必须右键单击代表连接的图标,然后选择“属性”。 然后,在“网络功能”选项卡中,选择Internet协议版本4(TCP / IPv4)选项,然后单击“属性”。 激活选项“使用以下DNS服务器地址”。 在“首选DNS服务器”字段中,输入主DNS地址。 在下面的字段中,输入辅助地址。

显然,这种类型的配置也可以在Mac OS X,Linux和其他操作系统上完成,只需在手册或帮助文件中查看有关如何进行配置的说明即可。 网络上的许多计算机也是如此。

OpenDNS服务不需要注册,但是可以在服务的网站上进行注册,以便享用其他资源,例如域阻止和访问统计信息。

Google公共DNS

Google Public DNS是另一种杰出的服务。 尽管它不提供与OpenDNS一样多的资源,但它还是全球最大的互联网公司之一,因此,它非常注重安全性和性能。 他们的地址具有很大的优势:可以更容易地记住他们。 看一下:

  • 小学:8.8.8.8中学:8.8.4.4

Google Public DNS也具有IPv6地址:

  • 小学:2001:4860:4860:: 8888中学:2001:4860:4860:: 8844

关于DNS的最终想法

DNS的使用不限于Internet,因为此资源具有例如在本地网络或Extranet中使用的能力。 它实际上可以在任何操作系统上实现,例如Unix和Windows是最受欢迎的平台。 最著名的DNS工具是BIND ,它由Internet系统联盟管理。

我们建议您免费和公共DNS服务器2018

每个系统管理员(SysAdmin)都必须处理DNS,因为如果配置正确,它们将成为执行服务的网络的基础。 了解DNS的工作原理以及我们如何改进它 ,使服务正确,安全地运行很重要

讲解

编辑的选择

Back to top button