什么是DNS?

简介

域名系统是一种分层式分布式命名系统,适用于连接到互联网或专用网络的计算机、服务或任何其他资源。当浏览器需要查找并连接到某项计算机服务或某台设备时,DNS会在后台将易于记忆的域名转换为该资源对应的数字互联网协议(IP)地址。可以将DNS视为互联网的电话簿:它旨在帮助人们通过名称轻松识别连接到互联网的所有设备和服务。

DNS术语

域名

域名是与互联网资源关联、便于用户使用的名称。例如,www.f5.com是一个域名,该URL与F5拥有的服务器相关联。

域名的下一级划分称为子域名。例如,support.f5.com是F5.com用于提供支持服务的子域名。子域名位于域名左侧,并以点号与域名分隔。

DNS查询

DNS查询是指客户端(如Web浏览器)向DNS服务器查询特定域名的过程。DNS服务器随后返回一个IP地址,引导客户端访问目标地址。

域名空间

域名空间定义了互联网的整体命名结构。它采用树状域名结构,根域名位于顶层,并由此分支出.com、.net、.org等主要域名及其他域名。

区域

命名空间树可细分为多个区域。每个区域定义特定域下可用的资源。

名称服务器

名称服务器存储区域的相关信息。名称服务器分为两类:主名称服务器和辅助名称服务器。每个区域的数据都存储在主名称服务器和辅助名称服务器上。

DNS解析器

DNS解析器是DNS的客户端,负责发起查询并按顺序执行,最终将域名解析为IP地址。

DNS如何工作?

简而言之,DNS服务器会将用户在浏览器中输入的域名(例如www.f5.com)转换为IP地址(104.219.105.148)。这样,设备就能在互联网上找到所需资源,在本例中即F5主页。

下面详细了解一下这一过程:

假设用户在浏览器中输入域名www.f5.com。由于浏览器不知道www.F5.com的位置,因此会向本地DNS服务器(LDNS)发送请求,询问其是否有该网站的记录。如果LDNS没有该网站的记录,就会开始对互联网域名进行递归查询,以确定www.F5.com的所有者。

首先,LDNS会访问其中一台根服务器,根服务器将其定向到.com DNS服务器。随后,.com服务器确定www.F5.com的所有者,并向LDNS返回F5.com的名称服务器(NS)记录。

随后,LDNS查询F5.com DNS服务器的NS记录。f5.com DNS服务器查找名称www.F5.com。如果找到该名称,则向LDNS返回地址(A)记录。此A记录包含请求名称、LDNS中分配给该名称的IP地址,以及该名称的生存时间(TTL)。TTL用于告知LDNS应将A记录保留多长时间,之后再向F5.com DNS服务器发起查询。

当LDNS收到A记录后,会按照TTL指定的时长缓存IP地址信息。如果其他客户端需要相同的信息,LDNS会先从本地名称缓存中响应查询,而不是将查询发送出去。由于这些信息可以保存在本地,LDNS无需反复查询f5.com DNS服务器,从而加快后续与该资源的连接速度。

然后,浏览器使用该IP地址连接到www.F5.com的80端口,并发送GET /…请求,随后Web服务器返回网页响应。

实际上,DNS比上述示例所展示的复杂得多,但这个示例应该能帮助您大致了解其工作原理。

DNS记录及其常见类型

DNS记录是映射文件,用于告知DNS服务器哪个IP地址与哪个域名相关联,以及如何处理这些请求。DNS记录有多种类型,但特定域名的所有DNS记录都包含在一个称为DNS区域的结构中。可以将DNS区域视为一个容器,互联网可通过它查询且仅查询某个特定域名的IP地址。

常见的DNS记录类型如下:

A和AAAA记录

地址记录(即A记录,也称为主机记录)是DNS的核心记录。这类记录将域名关联到IP地址。AAAA记录与A记录相同,但返回的是128位IPv6地址,而不是32位IPv4地址。

NS记录

名称服务器(NS)记录决定由哪些服务器传递域名的DNS信息。通常,域名会有主名称服务器记录和辅助名称服务器记录。

MX记录

邮件交换记录将电子邮件定向到特定域的服务器。可以为一个域定义多条MX记录,每条记录的优先级各不相同。数值越小,优先级越高。如果使用第一优先级记录无法投递邮件,则使用第二优先级记录,依此类推。

TXT记录

文本记录或TXT记录可以包含任意文本,也可用于定义机器可读文本。

CNAME记录

规范名称(Canonical NAME,简称CNAME)记录将别名关联到另一个规范域名。例如,alias.example.com可能关联到example.com。

DNS的重要性与局限性

DNS是支撑互联网运行的主要技术之一,也是网络基础设施的重要组成部分。具备可用、智能、安全且可扩展的DNS基础设施至关重要。DNS不仅用于交付内容和应用,还负责管理分布式冗余架构,确保高可用性和良好的用户响应时间。如果DNS发生故障,大多数Web应用将无法正常运行。因此,DNS不仅至关重要,也成为攻击的主要目标。如果缺少适当的DNS基础设施,客户将无法访问您的应用或内容,因而可能转而选择其他服务。

不过,标准DNS服务存在一定的局限性。首先,虽然DNS可让用户访问您的应用、网站或内容,但它并不会真正关注这些资源是否正常运行,甚至是否存在。

此外,DNS实际上并不具备负载分配能力。即使某个IP地址所对应的应用负载过高或已停止运行,DNS仍会继续使用所有IP地址。

DNS也没有状态化应用的概念:它无法保证用户再次访问同一IP地址。例如,如果用户访问某个特定数据中心,并创建了一个由该数据中心维护的购物车,则无法保证下次解析该名称时仍会获得相同的IP地址。

最后,标准DNS服务器每秒只能响应数量有限的DNS查询,因此容易受到分布式拒绝服务(DDoS)攻击。

安全问题

DNS是互联网的基础,但也是网络中较为脆弱的环节之一,因此很容易成为攻击者重点针对的目标。DDoS攻击可能向DNS服务器发送海量流量,导致服务器被劫持或发生故障,进而将请求重定向到恶意服务器。为防止此类情况,必须在网络中集成高性能、分布式且安全的架构。企业还应在DNS流量激增和遭受DDoS攻击期间增加DNS服务器。

尽管DNS服务器和云服务每秒可以处理不同数量的请求,但成本会随查询量增加而上升,而且需要变更时,此类解决方案通常需要人工干预。此外,由于新的漏洞不断出现,传统DNS服务器需要频繁维护和修补,进一步增加了成本。

应用交付控制器在DNS基础设施中的作用

既然已经明确DNS容易遭受严重攻击,下面来了解应用交付控制器(ADC)如何帮助保护DNS基础设施。ADC可以在多台DNS服务器之间实现负载均衡并缓存响应,从而提供扩展能力,使DNS服务器能够应对大量流量和大规模攻击。借助此功能,客户可以同时部署多台DNS服务器,从而尽可能提高应用可用性、加快响应速度并改善性能。ADC还可以快速检测DDoS攻击,将相关连接从服务器转移至其他位置,或直接拒绝这些连接。ADC支持DNSSEC,可帮助组织抵御缓存投毒和中间人攻击等威胁。凭借这些功能,客户无需额外配置DNS服务器作为备用服务器来应对过载或攻击,从而降低总体拥有成本。

简而言之,高性能ADC不仅可以保护DNS服务器免受各种攻击,还能提供可扩展性、提升性能并降低总拥有成本(TCO),同时帮助DNS服务器处理高流量负载。

未来展望

随着移动应用和物联网(IoT)设备等新技术的发展,DNS也在不断扩展。此外,应用数量迅速增加,访问这些应用的流量也随之增长。在过去5年中,.com及其他地址的DNS查询量翻了一番。2016年,互联网新增了1,000多万个域名;随着越来越多的云、移动和IoT实施项目投入部署,DNS预计将以更快的速度增长。近期针对全球互联网流量开展的一些研究表明,到2020年底,互联网用户数量将增至41亿。DNS服务器对互联网至关重要;如果DNS无法正常运行,互联网实际上将无法使用。

与IoT一样,云服务在过去几年中也迅速普及。因此,现在比以往任何时候都更需要审视DNS基础设施,以及与之相关的优势和威胁。一方面,基于云的权威DNS可提供更出色的性能、高可用性、安全性和可扩展性;另一方面,它也容易受到针对DNS基础设施的攻击和DDoS攻击等威胁。

这些威胁可能会严重影响网站、应用、云服务及其他资源的访问。有效规划和管理IT基础设施对于抵御此类攻击至关重要,可确保员工和客户随时随地访问所需资源。

发布于2017年10月5日