我们如何刺穿中国大防火墙(第3部分)

你好
任何好的故事都结束了。 我们关于如何提出快速通过中文防火墙解决方案的故事也不例外。 因此,我赶紧与您分享有关该主题的最后一部分


在上一部分中,我们讨论了我们发明的许多测试平台,以及它们给出了什么结果。 并且我们决定添加CDN会很好 粘度进入我们的电路。


我将告诉您我们如何测试阿里云CDN,腾讯云CDN和Akamai,以及最终的结果。 当然,总结一下。



阿里云CDN


我们托管在阿里云上,我们使用IPSEC和CEN。 首先尝试解决方案是合乎逻辑的。


阿里云有两种适合我们的产品: CDNDCDN 。 第一种选择是用于特定域(子域)的经典CDN。 第二个选项代表CDN的动态路由 (我称其为动态CDN),可以在全站点模式下打开(对于通配符域),它还可以缓存静态数据并加速其自身的动态内容,也就是说,页面动态性也会快速加载网络提供商。 这对我们很重要,因为基本上我们的网站是动态的,它使用许多子域,并且一次为“星”-* .semrushchina.cn配置CDN更方便。


我们已经在中国项目的早期阶段就看到了该产品,但是后来仍然无法使用,开发人员保证该产品现在将对所有客户可用。 他成为了。


在DCDN中,您可以:


  • 使用您的证书配置SSL终止,
  • 启用动态内容加速,
  • 灵活配置静态文件的缓存,
  • 进行缓存清除
  • 扔掉网络套接字,
  • 启用压缩甚至HTML Beautifier。

总的来说,一切都像成年人和大型CDN提供商。


在标明Origin(CDN边缘服务器将到达的位置)之后,然后剩下的是为星号创建一个CNAME,并链接all.semrushchina.cn.w.kunluncan.com (此CNAME在阿里云控制台中获得)和CDN会工作。


根据测试结果,该CDN对我们有很大帮助。 统计信息如下。


解决方案乌梅中位数75%95%
云耀斑86.618岁30秒60年代
安全协议99.7918岁21秒30秒
99.7516岁21秒27岁
CEN / IPsec + GLB99.7913秒16岁25秒
阿里CDN + CEN / IPsec + GLB99.7510秒12.8秒17.3秒

这些都是非常好的结果,特别是如果我们将它们与开始时的数字进行比较。 但是我们知道,我们网站www.semrush.com的美国版本的浏览器测试在美国的平均运行时间为8.3s(非常近似的值)。 有很多工作要做。 此外,还有一些CDN提供商对测试感兴趣。


因此,我们顺利地转移到了中国市场的另一巨头腾讯


腾讯云


腾讯只是在发展自己的云-这在少数产品中很明显。 在使用过程中,我们不仅要测试其CDN,还要测试整个网络基础架构:


  • 他们有和CEN类似的东西吗?
  • IPSEC如何为他们工作? 快,什么是正常运行时间?
  • 他们有播客吗?


我们将分别分析这些问题。


模拟CEN


腾讯拥有Cloud Connect NetworkCCN )产品,可让您互连来自不同地区(包括中国境内和境外地区)的VPC。 该产品现在处于内部Beta中,您需要创建带有请求的票证才能连接到该票证。 通过支持,我们了解到,全球帐户(并非有关中国公民和法人的帐户)无法参与Beta测试计划,因此通常会将中国境内的区域与外部地区连接起来。 1-0赞成阿里云


IPSEC


腾讯最南端的地区是广州 。 我们建立了一条隧道,并将其与GCP中的香港地区连接(当时该地区已经可用)。 他们还同时吊起了从深圳到香港通往阿里云的第二条隧道。 事实证明,通过腾讯延迟网络,香港通常比从深圳到香港再到阿里(120毫秒-更好)更好(10毫秒)。 但这并没有加快网站的工作速度,该网站旨在通过腾讯和这条隧道进行工作,这本身就是一个了不起的事实,并再次证明了以下几点:延迟-对于中国来说,这并不是您在制定解决方案以通过中国语言时应该真正注意的指标防火墙。


任播Internet加速


允许您通过任播IP工作的另一种产品是AIA 。 但是,全球帐户也无法访问它,因此我不会透露,但是知道存在这样的产品可能会有用。


但是CDN测试显示出非常有趣的结果。 不能在整个站点上启用腾讯的CDN,只能在特定域上启用。 我们获得了域名并开始对它们进行访问:



事实证明,该CDN具有以下功能: 跨境流量优化 。 当流量流经中文防火墙时,此功能应降低成本。 作为Origin ,指定了Google GLB(GLB anycast)的IP地址。 因此,我们想简化项目的架构。


结果非常好-在Ali Cloud CDN的水平上,在某些地方甚至更好。 这是令人惊讶的,因为如果测试成功,您可以放弃基础架构,隧道,CEN,虚拟机等的很大一部分。


我们很不高兴,因为这个问题被发现了:在Catchpoint进行的测试是为互联网提供商中国移动伪造的。 在任何地方,我们都会通过腾讯的CDN超时。 与技术支持的对应并没有带来任何结果。 大约一天,我们试图解决这个问题,但是什么也没解决。


当时我在中国,但无法在该提供商的网络上找到公共Wi-Fi来亲自验证问题。 否则,一切看起来都很好。
但是,由于中国移动是三大运营商之一,我们被迫将流量返回阿里CDN。
但是总的来说,这是一个非常有趣的解决方案,值得对该问题进行更长的测试和故障排除。


赤舞


我们测试的最后一个CDN提供商是Akamai 。 这是一家庞大的提供商,在中国拥有自己的网络。 当然,我们无法摆脱他。



从一开始,我们就在试用期内与Akamai达成了一致,以便我们可以切换域并查看其如何在其网络上工作。 我将以“我喜欢”和“我不喜欢”的形式描述所有测试的结果以及测试结果。


您喜欢什么?


  • 来自Akamai的人员在所有事项上都提供了很多帮助,并在测试的各个阶段陪同我们。 不断尝试改善他们的立场。 他们提供了很好的技术建议。
  • 与通过Ali Cloud CDN解决方案相比,Akamai的运行速度大约慢10-15%。 令人印象深刻的是,在Origin中,我们为Akamai指定了GLB IP地址,也就是说,流量没有通过我们的解决方案(您可能会放弃部分基础架构)。 但是,测试结果仍然表明,该解决方案比我们当前的版本差(下面的比较结果)。
  • 测试了Origin GLB和中国Origin。 两种选择大致相同。
  • 有一个确定的路由 (自动路由优化)。 您可以将测试对象托管在Origin上,并且Akamai服务器Edge会尝试将其拾取(常规GET)。 对于这些查询,将测量速度和其他指标,Akamai网络会在此基础上优化路由,以使我们站点的流量更快,并且可以看出,包含此功能确实对站点速度产生了很大影响。
  • 在Web界面中对配置进行版本控制很酷。 您可以对版本进行比较,请参见差异。 查看以前的版本。
  • 您只能先在Akamai Staging网络(与生产环境相同的网络)上推出新版本,仅这种方式不会影响实际用户。 对于此测试,您需要在本地计算机上欺骗DNS记录。
  • 通过大型静态文件以及其他文件的网络,下载速度非常快。 来自“冷”缓存的文件的处理速度比来自“冷” Ali CDN缓存的同一文件的处理速度快几倍。 从“热”缓存中,速度已经是相同的正负。

阿里CDN测试:


root@shenzhen1:~# curl -o /dev/null -w@curl_time https://en.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5757k 0 5757k 0 0 513k 0 --:--:-- 0:00:11 --:--:-- 526k time_namelookup: 0.004286 time_connect: 0.030107 time_appconnect: 0.117525 time_pretransfer: 0.117606 time_redirect: 0.000000 time_starttransfer: 0.840348 ---------- time_total: 11.208119 ---------- size_download: 5895467 Bytes speed_download: 525999.000B/s 

Akamai测试:


 root@shenzhen1:~# curl -o /dev/null -w@curl_time https://www.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5757k 0 5757k 0 0 1824k 0 --:--:-- 0:00:03 --:--:-- 1825k time_namelookup: 0.509005 time_connect: 0.528261 time_appconnect: 0.577235 time_pretransfer: 0.577324 time_redirect: 0.000000 time_starttransfer: 1.327013 ---------- time_total: 3.154850 ---------- size_download: 5895467 Bytes speed_download: 1868699.000B/s 

我们注意到,上面示例中的情况取决于多种因素。 在撰写本文时,我再次进行了测试。 两个平台的结果大致相同。 这告诉我们,即使对于大型运营商和云提供商而言,中国的互联网有时也会表现出不同的行为。


我将在上一段中为Akamai加上一个大加号:如果Ali显示出这样的高性能和非常低的闪烁(这适用于Ali CDN,Ali CEN和Ali IPSEC),那么无论我如何测试他们的网络,每次都在Akamai工作稳定。
Akamai确实在中国拥有广泛的覆盖范围,并通过许多提供商开展工作。


什么不喜欢:


  • 我不喜欢Web界面和工作方案-这些都是零。 但基本上您已经习惯了(可能)。
  • 测试结果比我们的网站差。
  • 测试期间发生的错误比在我们网站上的错误还多(下面的正常运行时间)。
  • 中国没有DNS服务器。 从这里开始,由于DNS解析超时,测试中出现了很多错误。
  • 不提供其IP范围->无法在我们的服务器上注册正确的set_real_ip_from

指标(〜3626运行;除正常运行时间(以毫秒为单位)外的所有指标;一段时间内的统计信息):


CDN提供商中位数75%95%回应网页回应乌梅域名解析连接等一下负荷SSL协议
阿里CDN919510749174891,71510,74599.5315717927479200
赤舞978311887198882,35211,55098.98042491140838150

百分比分布(以毫秒为单位):


百分位赤舞阿里CDN
107,0926,942
207,7757,583
308,4468,092
409,1468,596
509,7839,195
6010,4979,770
7011,37110,383
8012,67011,255
9015,88213,165
10091,59291,596

结论是:Akamai的选件是可行的,但与Ali CDN结合使用时,其稳定性和速度指标却不如我们自己的解决方案。


小笔记


故事中没有包括一些要点,但我也想写些关于它们的内容。


北京+东京和香港


如上所述,我们测试了IPSEC通往香港(HK)的隧道。 但是我们也在香港之前测试了CEN。 它的价格便宜一些,而且有趣的是它如何在距离约100公里的城市之间工作。 事实证明,这些城市之间的延迟比我们原始版本(到台湾)的延迟高100毫秒。 台湾的速度,稳定性也更好。 结果,我们离开香港作为IPSEC的备用地区。


另外,我们尝试提出这样的安装:


  • 在北京的客户终止,
  • IPSEC和CEN前往东京,
  • 在阿里,CDN被列为北京的原始服务器。

尽管从整体速度来看,该方案并不那么稳定,但它并不逊色于我们的解决方案。 至于隧道,我什至看到CEN都应该是稳定的定期下降。 因此,我们回到了旧的方案并取消了这一阶段。


以下是不同通道上不同区域之间的延迟统计信息。 也许有人会对它感兴趣。


安全协议
Ali cn-北京<-> GCP Asia-northeast1-193ms
Ali CN-深圳<-> GCP Asia-east2-91ms
阿里cn深圳<-> GCP us-east4-200ms



Ali cn-北京<---> Ali ap-northeast-1-54ms(!)
Ali CN-深圳<---> Ali CN-香港-6毫秒(!)
Ali CN-深圳<---> Ali us-east1-216ms


有关中国互联网的一般信息


作为Internet问题的补充,本文的第一部分在开头就进行了介绍。


  • 中国的互联网速度非常快。
    • 得出结论的基础是在大量人使用公共Wi-Fi网络的各个位置进行测试。
    • 到中国内部服务器的下载和上传速度分别约为20 Mbps和5-10 Mbps。
    • 到中国境外的服务器的速度非常糟糕,不到1 Mbps。
  • 中国的互联网不是很稳定。
    • 如果配置不变,则有时站点可以快速打开,有时可以缓慢打开(在同一天的不同日期)。 我们以semrushchina.cn为例进行了观察。 这可以归因于Ali CDN,它也可以这种方式工作,并且取决于一天中的时间,星星的位置等。
  • 移动互联网几乎无处不在4G或4G +。 赶地铁,乘电梯-简而言之,无处不在。
  • 中国用户仅信任.cn区域中的域的事实是一个神话。 我们直接从用户那里学到了这一点。
    • 您可以看到http://baidu.cn如何重定向到www.baidu.com(以及在中国大陆)。
  • 许多资源确实被阻塞。 原始语言:google.com,Facebook,Twitter。 但是,许多Google资源都可以工作(当然,并不是同时使用所有的Wi-Fi和VPN(当然,在路由器端也是如此))。
  • 被阻止的公司的许多“技术”领域也起作用。 这意味着您不应该总是鲁ck地切掉所有Google和其他看似阻塞的资源。 您需要查找一些禁止域列表。
  • 他们只有三个主要的互联网提供商:中国联通,中国电信,中国移动。 甚至更小,但它们的市场份额微不足道

奖金:最终决定方案



总结


自项目开始以来已经过去了一年。 我们首先说,我们的网站原则上拒绝在中国正常工作,但GET curl仅花费了5.5秒。


然后,在第一个决策中使用此类指标(Cloudflare):


解决方案乌梅中位数75%95%
云耀斑86.618岁30秒60年代

结果,我们得出以下结果(上个月的统计数据):


解决方案乌梅中位数75%95%
阿里CDN + CEN / IPsec + GLB99.868.8秒9.5秒13.7秒

如您所见,尚未达到100%的正常运行时间,但是我们会提出一些建议,然后在新文章中告诉您结果:)


对于已经阅读完所有三个部分的人-尊重。 我希望你们和我一样感兴趣。


PS以前的零件


第一部分
第二部分

Source: https://habr.com/ru/post/zh-CN459024/


All Articles