V社刀塔漫谈:我们是如何在2015年解决被DDOS攻击的问题的
发表时间:2024-04-05 15:01:32 浏览:0
4月5日讯 V社官方近期发布一篇名为《刀塔漫谈:如何拒绝拒绝服务》,阐述如何在2015年解决被DDOS攻击的问题。欢迎回到“刀塔漫谈”特色博文,我们开发团队的成员会在文章中梳理
4月5日讯 V社官方近期发布一篇名为《刀塔漫谈:如何拒绝拒绝服务》,阐述如何在2015年解决被DDOS攻击的问题。欢迎回到“刀塔漫谈”特色博文,我们开发团队的成员会在文章中梳理自己遇到的一些挑战、错误修复还有偶尔令人莞尔的意外,主要是在开发像Dota这样独特游戏的过程中。这是一个关于互联网的故事,还有它如何不按应有的方式工作,什么时候在正常工作,实际上又完全没有。 这是一个关于互联网如何停止服务我们的客户,以及我们如何修复它的故事。互联网和我们心目中的相比是一片更为狂野的边界。离开了双因素身份验证和可信cookie的安全范围,外面可能会有点荒乱,充满了身怀恶意的随机坏蛋——而且他们越来越有能力让你的生活变得非常悲惨,不为别的,就因为他们能做得到。当时还是2014年,这些坏蛋使用的方法是分布式拒绝服务(DDoS)攻击。“分布式”是指大量互联网主机恶意向特定目标IP注入流量,企图压垮网络堆栈。这被称为饱和攻击,而其目的并不是尝试进入网络。只是企图拒绝服务。分布式拒绝服务意味着想要合法服务的合法人会被恶意流量挤出去。DDoS攻击的问题是在于,截至2014年底,实施这些攻击的并不是拥有高级计算机科学学位、专精于数据泄露的超级黑客。 实施的几乎可以是任何人,他们只要付钱就能找到人或者机器人来为他们办事。而且原因很明显。尽管有些人纯粹是为了破坏公物而乐意这样做,但其他人是有动机的:DDoS攻击肯定会导致你或你支持的人马上要输的比赛被迫中止。这就不再只是偶然的烦恼了。这会演变为公然攻击有玩家比赛的任何游戏。到了2015年初,我们发现Dota和CS:GO遭遇的DDoS攻击次数大幅增加,其他公司也有大幅增加的报告。突然之间,有人让任何人都可以很容易地发动攻击。2015年8月,国际邀请赛被DDoS攻击扰乱比赛现场。尽管比赛中的职业选手没有受到影响,但在两个多小时的时间里,转播方无法进入比赛进行实况的解说。直播流的外送成为了一个难题。选手们就像是在虚空里打的比赛。这是一场有数百万人观看、有数百万美元奖金的职业竞技赛事,但有人用了五美元的软件就扰乱了整个比赛。这是Valve无法忽视的问题。在找到了有效的解决方案之前,我们尝试了多种应对DDoS攻击的解决方案。最初,我们尝试使用功能强大的网络交换机来过滤流量。不幸的是,这种类型的过滤本质上很难去针对游戏流量。游戏服务器的本质就是从任意IP地址接收未经请求的UDP(用户数据报协议)流量。想象一下,你有一家邮局,专门为你清理不需要的垃圾信件。但再想象一下,你的工作是给人建议的专栏作家,而且你一直收到大量来自随机陌生人的合法信件。对你来说,邮局不知道什么是垃圾信件,什么不是。游戏服务器的流量往往就是这样的情况。此外,UDP数据包中的源IP不安全,很容易被欺骗。我们的邮局甚至无法通过信封上的回邮地址来寻找线索,因为垃圾信件的发件人伪造了他们的地址。Steam提供了大量的游戏内容,并为此建立了一个庞大的网络。我们已经利用该网络通过专用链路来传输游戏流量、获得良好的对等互连、确保使用网络工程的最佳实践等。 这能使玩家ping时间保持在较低水平,但无法阻止DDoS攻击。问题是在于UDP协议不安全,因此虽然我们拥有自己的网络,但并不是私有的。为了防止攻击者使用我们自己的网络来攻击我们的服务器,我们需要控制所有入口并保护它们。为了实现这个目标,我们为游戏流量创建代理、通过中继设备传输网络上的每个数据包。现在,当客户端想要与游戏服务器通信时,它必须通过中继设备来实现,中继设备既会对其进行身份验证,又会将该流量代理到游戏服务器。这意味着服务器的IP地址始终都是隐藏的——攻击者根本不会知道要攻击哪里。重新使用上述的邮局比喻,我们的垃圾信件发送者再也没有地址让他们去寄送垃圾信件。他们可以把垃圾信件发送到该地区的每个邮局并要求他们邮寄,但没有授权的情况下,邮局并不会这样做。(而且,邮局会发现有人企图向一个人寄出100000封信是有点可疑。)但不能直接攻击中继设备吗?严格来说,可以的。但我们的数量基本上是无限的,而且我们构建的目的就是为了被攻击。“中继设备”只是运行软件的计算机的另一种说法。可以攻击它或使其离线,但是设计协议时就考虑过这样的情况。如果客户端尝试玩游戏并与中继设备失去联系,它只会再切换到下个设备。中继设备就像散布在世界各地的数百个棋子,其唯一目的是守卫游戏服务器。(顺便说一句,干掉中继设备比听起来要难。它们的设计非常好,并且位于网络的特定位置,所以尽管它们是为了离线而设计的,但我们还没有失去过一个。)这个解决方案简单但有效。之前如果有人想要破坏游戏,他们只需击垮一台游戏服务器(门槛非常低)。现在他们必须击垮整个数据中心——门槛非常非常高。那还有攻击可以做到吗?当然有。那还有任何人在网上花五美元买到的攻击可以做到吗?没有。这么复杂的攻击背后需要的财力超出了大多数人的承受范围。随着这个新系统的启动和运行,我们顿悟了:如果我们控制自己的私有网络,我们就不会受制于正常互联网的工作原理。我们可以利用它来改善客户体验。在常规的互联网中,当你将数据包从一个IP地址发送到另一个IP地址,你使用的路由是由边界网关协议(BGP)来决定。这是一种路由算法,会决定你的数据包在网络中的传输方式,并且你无权决定它挑选的路由。但是,了由数百个全球中继设备和数据中心组成的虚拟私有网络,我们基本上可以自行选择从客户端到游戏服务器的路由——通常是比默认路由更快的捷径。如果你使用Steam数据报中继(SDR),Steam Overlay会显示你的ping时间以及我们为你提供的路由,以便你可以亲自了解是如何优化的。最初用于保护Dota游戏服务器的一个功能现在超出了所有人的预期。SDR网络通常每秒传输多达140M数据包和550GBit。我们在31个数据中心设有中继设备,容量超过5TBit。现在我们所说的Steam数据报中继不仅可以防止DDoS攻击,还可以提升每个Dota玩家的连接稳定性并且降低延迟。不仅适用于Dota,也适用于Steam上任何想要利用它的游戏。我们希望大家能再次从刀塔漫谈中享受到乐趣。这次的文章技术性很强,感谢你能坚持读完!也请随时告诉我们,你希望下期介绍哪方面的内容。推荐新闻
-
10月6日讯 2024英雄联盟全球总决赛瑞士轮,LNG战胜DK,成为第一支晋级八强的队伍。赛后Zika选手作为代表出席媒...发表于: 10-06 10:08
-
10月6日讯 2024全球总决赛瑞士轮第三轮GEN战胜HLE,晋级八强。赛后GEN辅助Lehends选手接受媒体群访,群访内容翻...发表于: 10-06 10:08
-
10月6日讯 近日执导过《星际战警》的导演Barry Sonnenfeld在接受网台节目访问,大爆威尔史密斯当年的“臭”事...发表于: 10-06 10:07
-
10月6日讯 2024英雄联盟全球总决赛瑞士轮D3,LNG 2-0战胜DK,晋级八强。今日Gala选手发布视频,感谢大家的支持,并...发表于: 10-06 10:07
-
10月6日讯 近日Fy在直播时爆料,杨哥收编八王新队,阵容还可以,LGD的成分很多!(猜一下,感觉基本就是Shiro、莫言、JT...发表于: 10-06 10:07
-
10月6日讯 2024英雄联盟全球总决赛瑞士轮D3,LNG 2-0战胜DK,晋级S14八强。LPL选手官方发布S14动容时刻,GALA:“不...发表于: 10-06 10:07
-
10月6日讯 2024英雄联盟全球总决赛瑞士轮第二轮LNG战胜BLG后, LNG中单Scout选手接受韩媒视频采访。(注:10月4日...发表于: 10-06 10:06
-
10月6日讯 2024英雄联盟全球总决赛瑞士轮D3,LNG 2-0战胜DK,晋级八强。赛后GALA选手接受外媒采访。Q:恭喜以全胜...发表于: 10-06 10:06
-
10月6日讯 据多家媒体报道,美国技术大亨埃隆·马斯克名下的社交媒体X平台4日称已缴清罚款,申请解除其在巴西境...发表于: 10-06 10:06
录像/集錦
- 足球录像
- 篮球录像
- 足球集锦
- 篮球集锦
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 03:00
-
欧联杯联赛阶段 10-04 00:45
-
欧联杯联赛阶段 10-04 00:45
-
欧联杯联赛阶段 10-04 00:45
-
欧联杯联赛阶段 10-04 00:45
-
欧联杯联赛阶段 10-04 00:45
-
欧联杯联赛阶段 10-04 00:45
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 16:00
-
CBA 10-05 16:00
-
CBA 10-05 15:30
-
CBA 10-05 15:00
-
CBA 10-04 19:30
-
CBA 10-04 19:30
-
CBA 10-04 19:30
-
CBA 10-04 19:30
-
CBA 10-04 19:30
-
CBA 10-04 16:00
-
阿森纳3 10-05 22:00
-
英超 10-05 22:00
-
中甲 10-05 19:30
-
中甲 10-05 19:30
-
中甲 10-05 19:30
-
中甲 10-05 19:30
-
英超 10-05 19:30
-
中冠 10-05 17:30
-
中冠 10-05 15:30
-
中甲 10-05 15:30
-
中乙 10-05 15:00
-
中冠 10-05 15:00
-
西甲 10-05 03:00
-
法甲 10-05 02:45
-
意甲 10-05 02:45
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 19:30
-
CBA 10-05 16:00
-
CBA 10-05 16:00
-
CBA 10-05 15:30
-
CBA 10-05 15:30
-
CBA 10-05 15:00
-
NBA 10-05 10:30
-
篮球 10-05 09:30
-
NBA 10-05 09:00
-
篮球 10-05 07:30
-
NBA 10-05 00:00
热门标签
- 足球
- 篮球