在浏览了google上的一些资源之后,了解了Akamai边缘服务器是如何工作的,但也有一些关于内部的问题。
www.xyz.com的IP。发布于 2019-09-29 21:30:15
这是Akamai‘魔术’决定在哪里发送客户端以获得请求。
据我了解(在与Akamai网络架构师在IP对等会议上进行了讨论之后),Akamai的DNS使用来自查询DNS客户端的最短路径路由(通常是BGP)来确定最近的位置,并提供该IP地址。
DNS协议定义了客户端请求地址的方式以及服务器提供地址的方式。就像web服务器可以根据客户端的请求提供不同的资源一样,也可以编写DNS服务器来完成同样的任务。
Internet路由通常在边界网关协议(BGP)上工作,其中自治系统(由数字标识)交换信息,说明哪个子网由哪个系统控制。在确定如何路由到IP地址时,路由器通常选择通过最小数量自治系统的路由。
因此,Akamai DNS服务器重定向承载在Akamai的资源的DNS请求具有请求客户端的IP地址。可以在其内部数据库中查找这些服务器,以确定哪个Akamai服务器与该地址“最近”(就IP路由而言),因此客户端可以返回‘最近’服务器的地址。
在进行了这次对话之后,我做了一些来自不同子网的尝试性查找,我注意到第一次查找通常比“正常”DNS查找花费的时间要长得多。据推测,这是因为系统正在查找如何路由到该地址。随后的查找速度和往常一样快,大概是因为答案是缓存的。
额外信息( DNS如何工作)
当DNS客户端从DNS服务器请求名称时,如果该名称对该域具有权威性,服务器将提供该名称,或者它将在其他服务器上查找该名称(如果它被配置为递归的话),或者它将提供先前缓存的答案。全局“根”服务器允许DNS服务器定位对任何par5tcular域具有权威性的DNS服务器,以便它们可以引导递归查询。
DNS服务器并不包含Internet上所有地址的映射--这是不可能维护的,操作域的人需要能够更改自己的DNS记录。
通常,DNS服务器要么是权威的,要么是递归的(通常不是两者兼而有之)。当查找具有CNAME记录的名称的地址时,客户端需要查找CNAME记录所指向的A记录所具有的IP地址。因此,如果您有CNAME记录指向Akamai边缘服务器,那么需要查询的是Akamai doamin,因为Akamia域服务器对该域具有权威性。
当请求到达Akamai服务器时,它可以查找它想要的任何信息,以便计算要返回的IP地址。由于它们有一个广泛的对等(BGP连接)网络,它们将根据边缘服务器和DNS查询的起源之间的最短路由,确定哪个边缘服务器最适合提供数据。
如果查询是由进行递归查找的DNS服务器执行的,那么它可能会缓存答案,但由于它将在将来以相同的IP地址请求结果,所以通常会得到相同的答案,因此这不是问题。Akamai可以在他们提供地址的响应中设置应该缓存的记录的时间(虽然服务器可能选择不遵循它们关于缓存生存期的指示)。
由于大多数客户端的地址由DNS服务器解析,DNS服务器的一部分与路由长度相同(所涉及的数目不同)对于DNS服务器来说,查找地址和需要地址的实际客户端机器的地址是相同的。
发布于 2019-09-29 21:16:05
你做的唯一的事情就是按照Akamai的规范设置DNS记录。你只输入他们给你的地址和CNAME记录。Akamai将处理确定哪个边缘路由器最接近任何特定用户的任务。
发布于 2020-02-12 06:10:02
有一篇很好的论文描述了这个过程。
论文名称:“内容分布中的算法掘金”
https://serverfault.com/questions/986101
复制相似问题