目前网络通信大多采用TCP/IP协议,而TCP/IP协议的基础是IP地址,所以计算机在网络通信时只能识别纯数字组成的IP地址。但是在实际工作生活中,我们只需要在浏览器的地址栏输入一串简单易记的域名就可以访问相应的网站,而DNS在这个过程中扮演着重要的角色。接下来简单介绍一下DNS的原理和解析流程。
01什么是DNS
是DNS域名系统的缩写,翻译成中文就是“域名系统”。DNS是互联网中的核心服务,它是一个分布式数据库,用于实现域名和IP地址之间的相互映射。它把简单明了的域名翻译成计算机能识别的IP地址,让用户更快捷方便地上网。
互联网是连接全球资源的,单个域名服务器不足以支持所有的地址翻译操作。所以世界上有几套域名服务器一起使用。早在1983年,互联网就开始采用分层树形结构的命名方式,采用分布式域名系统进行解析。这样既提高了域名解析的效率,又保证了域名解析的稳定性。如果系统中单个域名服务器出现故障,不会对整个DNS系统的正常运行造成太大影响。
02域名结构
互联网采用分层树形结构的命名方式。任何连接到互联网的主机或路由器都有一个唯一的分层名称,即域名。
域名的结构由一系列用点分隔的标签组成。大概是这样的:”...三级域名。二级域名。顶级域名”。各级域名由其上级域名管理机构管理,最高级别的顶级域名由ICANN管理。
域名空间结构图03域名服务器
互联网上的DNS域名服务器也是按照层级划分的,每个域名服务器只管辖域名系统的一部分。根据域名服务器的作用,域名服务器可以分为四种不同的类型:
根域名服务器:根域名服务器是最高级别的域名服务器,也是最重要的域名服务器。根域名服务器知道所有顶级域名服务器的域名和IP地址。如果本地域名服务器无法解析域名,首先求助于根域名服务器。
顶级域名服务器:顶级域名服务器负责管理在该服务器注册的所有二级域名。当收到DNS查询请求时,会给出相应的答案。
权威域名服务器:这是前面提到的负责一个地区的域名服务器。当某个权威域名服务器无法给出最终的查询答案时,它会告诉发出查询请求的DNS客户端下一步要找哪个权威域名服务器。
本地域名服务器:本地域名服务器不属于下图树形结构的DNS域名服务器,但是对域名系统非常重要。当主机发送DNS查询请求时,查询请求消息被发送到本地域名服务器。每个互联网服务提供商ISP都可以有一个本地域名服务器。
查看系统缓存
每个域层都有自己的域名服务器,每层的域名服务器都知道该层以下各层所有域名服务器的IP地址。因此,它们从根域名服务器开始以树形结构相互连接。因为所有的域名服务器都知道根域名服务器的IP地址,所以如果你按顺序跟着根,就可以访问世界上所有域名服务器的地址。
04DNS查询步骤
域名解析一般是通过递归查询来完成的。下图显示了完整的域名解析过程:
完整的DNS解析过程包括以下步骤:
查看浏览器缓存
当用户通过浏览器访问域名时,浏览器会先在自己的缓存中寻找该域名对应的IP地址。
查看系统缓存
当浏览器缓存中没有域名对应的IP时,会自动检查用户电脑系统的Hosts文件的DNS缓存中是否有域名对应的IP。
查看路由器缓存
当浏览器和系统缓存中没有域名对应的IP时,在路由器缓存中检查。以上三步是客服端的DNS缓存。
检查ISP DNS缓存
当在用户的客服端找不到域名对应的IP地址时,就会进入ISP DNS缓存进行查询。例如,如果您使用的是电信网络,您将在电信的DNS缓存服务器中进行搜索。
询问根域名服务器。
以上均未完成时,进入根服务器进行查询。全球只有13台根域名服务器,一台一级根域名服务器,另外12台二级根域名服务器。根域名收到请求后,会检查区域文件记录,否则会将辖区内顶级域名服务器的IP告诉本地DNS服务器。
问顶级域名服务器
顶级域名服务器收到请求后,检查区域文件记录,如果没有记录,则告知本地DNS服务器其辖区内权威域名服务器的IP地址。
求权威域名服务器
权威域名服务器收到请求后,查询自己的缓存,如果没有,就去下一级域名服务器查找,重复此步骤,直到找到正确的记录。
将结果保存到缓存
本地域名服务器将返回的结果保存到缓存中以备下次使用,并将结果反馈给客户端,客户端可以通过这个IP地址访问目标Web服务器。至此,DNS递归查询的整个过程结束。
DNS系统在将域名解析为IP地址方面起着重要的作用,是实现计算机之间访问互联的关键和基础。因此,DNS解析的安全性对于维护网络的稳定运行至关重要。相关企业管理者和运营商必须做好域名和域名解析的安全保护工作,定期扫描分析数据,启用全方位DNS风险监控,实时密切关注DNS运行状态,做好应急备份准备。一旦发现问题,应尽快响应并解决,最大限度地降低DNS故障的风险及其造成的损失。