是否可以将流量分解到 CDN 以了解用户在做什么?

网络工程 日志记录
2021-07-09 00:17:36

如果我查看来自我的网络的流量并且我看到(例如,使用 SmartWhois)大量用户流量将流向某些 CDN。例如,在一个网络中,我 87% 的流量都流向了亚马逊。有没有办法对这些进行分解,甚至一点点分解,以了解所有这些流量的含义?

我看到某些流行的网站位于某些 CDN 上(例如,单击此图表图例上的 CDN 名称:CDN 市场份额)但以这种方式进行匹配感觉就像我只是在猜测,尤其是对于亚马逊——CDN市场领导者。

我想知道某些 CDN 客户端是否可能在 CDN 块中分配了某些 IP 地址——我认为其他人可能已经想出了一个查找表或一个数据库来出售,但我无法通过谷歌搜索找到类似的东西,所以也许这不是一个可行的方法。

我目前只能轻松访问流将要到达的 IP 地址。有了这些数据,进一步分解这个 CDN 流量是不可能的吗?如果我知道这是不可能的,我会停止寻找。

4个回答

你想解决什么问题?

大多数 CDN 都使用 Anycast/GeoIP 来提供尽可能靠近请求源的请求内容。我也不确定你的意思或你试图通过“找出用户在做什么”来完成什么 - CDN 的设计是对用户透明的,以便在浏览网页时提供更好的用户体验(最大的用例对于 CDN - 显然还有其他的)。我很难考虑普通用户会出于什么原因使用 CDN 以保证对这种性质进行监控。

如果您确实想构建查找表或数据库,那应该不会那么困难,因为您可以查询 whois 或 IRR 以获取 IP/路由信息(假设 CDN 运营商做了正确的事情并将他们的信息放入IRR - 大多数大公司都这样做)。我首先确定哪个 CDN 拥有哪些块,然后交叉引用哪个 IP 属于哪个块,然后您可以区分谁拥有您的用户点击的 CDN IP。这是可能的,但它会很快变得毛茸茸的,并且很可能是徒劳的(考虑 CDN 是否将服务转售给其他小公司和 CloudFront 等解决方案)。

如果您正在尝试监控网络流量,您可能需要某种类型的网络日志设备来交叉引用您的流量信息。然后将针对您的网络日志设备或网络过滤器分析时间和源 IP 地址,以查看特定用户访问的 URL。

websense 网络过滤器这样的解决方案可以解决这个问题。

我想知道某些 CDN 客户端是否可能在 CDN 块中分配了某些 IP 地址——我认为其他人可能已经想出了一个查找表或一个数据库来出售,但我无法通过谷歌搜索找到类似的东西,所以也许这不是一个可行的方法。

通常这种数据(项目之间的 ip 地址分配)是内部的,因此尝试实现它最多只会让您陷入灰色地带,并带来所有后果。

我目前只能轻松访问流将要到达的 IP 地址。有了这些数据,进一步分解这个 CDN 流量是不可能的吗?如果我知道这是不可能的,我会停止寻找。

我认为您需要更深入地了解 L7 标头(特别是 HTTP 和 DNS),并以某种方式将其与通过 CDN 提供数据的网站的 URL 相关联。所以,不,只有 IP 地址无能为力。

CDN 活动是一个有趣的问题,我看到越来越多的问题出现。早些时候,我在伦敦(英国)的一所大学开设了一个关于网络监控技术的培训课程,CDN 服务是他们 1Gb 互联网连接带宽的最大消费者之一。

我最近发表了一篇关于该主题的博客文章,您可以从此链接访问对我来说,弄清楚发生了什么的唯一方法是关注 HTTP 标头和 DNS 流量。

博客文章中的一些信息

“如果网络监控工具开始仅根据 IP 地址的所有权报告此活动,就会遇到问题。大部分带宽消耗将与 CDN 站点相关联,而不是与用户为访问内容而访问的站点相关联。对于可能需要实施更改以管理此带宽消耗的网络管理员来说,这成为问题。如果他们阻止或限制 CDN 站点,那么他们将限制对数千种其他服务的访问。

该问题的解决方案是超越第 3 层分析并监控 HTTP 标头和 DNS 查询。这些数据通常是通过数据包捕获获得的,应用程序可以进行深度数据包检查”