简介
本文档介绍EDNS客户端子网(ECS)及其如何与Cisco Umbrella配合使用。
什么是ECS?
传统DNS是DNS服务器上的一个请求,它通过一个A记录应答进行回复。通过仅讨论A记录,可简化此讨论。同样的过程适用于IPv6和AAAA记录。随着广泛分布的内容交付网络(CDN)和递归DNS服务的出现,地理位置对于实现最佳体验越来越重要。
传统DNS在权威DNS服务器上将DNS问题的答案地理定位,并提供与DNS查询源最匹配的答案。举一个比喻的例子,比如一本电话簿。传统上,唯一相关的电话簿是本地电话簿,因此您总是可以找到本地商店。查询“call Jim’s hardware store”。 如今,一个网址在全球范围内拥有许多位置,因此必须获得良好的体验,才能连接到附近的服务器。由于递归DNS服务器和分布式网络较多,因此DNS查询的源IP不一定能成为地理定位数据的最佳来源。
图 2:新泽西州用户从权威DNS中寻求应答的示例

以我们的电话簿为例,一家企业可能在全球有50个办公地点,但作为读者,您知道最近的公司是什么,并称之为公司。Jim's一直表现不错,因此我们对“call Jim's hardware store”的查询可能会将您带到New Jersey店或Chicago店,具体取决于您的咨询对象。ECS执行相同的服务,但用于DNS查找。EDNS客户端子网(ECS)是一种机制,用于将DNS查询的源IP地址嵌入到DNS数据包的EDNS信息中。支持ECS的权威DNS服务器读取此源信息,并尽可能使用最佳位置服务器的A记录进行应答。对于我们的电话簿比喻,ECS相当于一个注释,该注释指定要查看哪个区域的电话簿。此请求将是“致电新泽西州贝尔维代雷的Jim’s hardware store”,并提供一个理想的答案。有关详细信息,请访问位于umbrella.cisco.com的ECS项目主页。
ECS和递归DNS服务器
与其他递归DNS服务一样,Cisco Umbrella也是对基于DNS的地理定位的挑战。传统上,用户会向ISP请求DNS,ISP会查询DNS授权。这为ISP的网络IP范围提供本地良好的地理定位。
递归DNS提供商位于ISP网络之外,可以位于任何地方。Cisco Umbrella在任播IP地址下运行许多数据中心,DNS查询可访问全球范围内的多个解析程序位置之一。最常查询的最近位置;但是,这取决于每个ISP的最佳路由。最重要的是,对于广泛分布的Web服务(如CDN),最近的Umbrella解析器可能无法通过网络接近请求者的位置,而且可能会收到较差的CDN服务器作为响应。例如,哥斯达黎加的用户可能会访问思科Umbrella的迈阿密数据中心,并从迈阿密CDN获取内容。在电话簿的比喻中,这相当于给操作员打电话并询问Jim硬件的号码。根据操作员所在的位置,您会收到基于该区域的答案。芝加哥归还惠顿的吉姆,迈阿密可以归还南滩的吉姆。
图 2:新泽西州用户向Cisco Umbrella寻求答案时的示例

ECS对于递归DNS提供商的CDN非常重要,因为原始源子网可以通过ECS传递到CDN的授权DNS基础设施。通过Umbrella对启用了ECS的名称服务器的查询包括请求用户的C类网络(/24 CIDR块)到授权DNS查询,并返回和缓存(根据TTL)相关应答。在电话簿的比喻中,我们给运营商打电话,要求吉姆在哥斯达黎加圣何塞附近安装硬件。迈阿密的接线员会回复圣佩德罗吉姆的号码。
总之,ECS使用户能够查询位于世界任何位置的名称服务器,并根据其源位置接收自定义应答,即使使用远处的递归DNS服务器(支持ECS)也是如此。 最终结果是通过任何受支持的DNS服务,从世界任何地方获得的最快的CDN服务器。
ECS和Cisco Umbrella
Cisco Umbrella支持基于名称服务器所有者的选择加入的授权DNS解析器的ECS。许多CDN都为Umbrella用户提供了快速、准确的地理定位,而某些CDN和服务尚不支持ECS。
了解尚未使用ECS的服务?联系CDN网络并询问有关实施ECS的信息。在Umbrella能够向其发送ECS数据之前,授权名称服务器必须支持ECS。
站点所有者,如果您现在使用ECS,请通过umbrella-support@cisco.com联系我们,验证您的实施并开始从Cisco Umbrella接收ECS数据!支持IPv6和IPv4 ECS数据。包括要验证的名称服务器(按名称)和要验证的域的列表。
在挖掘中使用ECS
您是否知道,从9.10版本开始的DNS查询中挖掘本地支持ECS?将“+subnet=<subnet>”直接附加到针对授权名称服务器的挖掘中。注意,如果直接查询Umbrella,此数据将被丢弃,并替换为源/24。有关详细信息,请参阅此处的文章https://support.opendns.com/hc/en-us/articles/227987687。
dig +subnet=208.67.222.0/24 <domain> @<nameserver>
在响应中查找此小节,以确认名称服务器使用ECS数据:
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; CLIENT-SUBNET: 208.67.222.0/24/32
授权名称服务器所有者
您是否正在您的名称服务器上使用ECS,并希望为全球的Cisco Umbrella用户发掘其潜力?请通过umbrella-support@cisco.com与我们联系,以便我们可以开始将ECS数据发送到您的名称服务器!在您的请求中包含您的名称服务器域列表以及启用ECS的示例域,我们可以使用该示例域来验证您的配置。让我们携手构建更快的互联网。