热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解密BGP高防系统

0x00、BGP高防业务需求·有业务能付得起高昂的高防IP费用么?中国线上棋牌类游戏从98年的联众游

0x00、BGP高防业务需求

1、业务需求描述

·有业务能付得起高昂的高防IP费用么?

中国线上棋牌类游戏从98年的联众游戏、2003年的QQ游戏,到2008年德州扑克、2009年的捕鱼,在到2016年的闲徕游戏,开拓了俗人线上棋牌游戏的模式。游戏行业掀起了腥风血雨的蔓延,到2017年6~7月期间全国大大小小的棋牌公司有上百家。

业务模式:熟人4个人可以通过手机打麻将,游戏公司收取的是桌台费,通过总代的方式拉拢客源进入棋牌游戏群里,假设一场麻将10几分钟,收取6块钱桌台费,那么线下渠道拉客源可以给到4块,通过病毒式的传播后,省内Top棋牌类公司一天的营业额大约在10几或者几十万不等。这样竞争对手看到这么暴力的营收都坐不住了,纷纷研发棋牌游戏,但是一个省玩麻将的就这么些人,自然的相互攻击的现象时有发生,如果你的App服务器访问不了,大家都上其他家App玩了。

2、解决方案选择

·为什么要使用BGP高防?

游戏公司有钱支付抗D的费用,那么DDoS防御的需求就发展起来了。那么传统的抗D解决方案能满足需求么?答案是不行的,因为棋牌游戏的实时要求非常高,在高延时的情况下,会严重影响用户体验。所以需要,绝对好的线路,传统的单线高防,在运营商之前切换延时无法满足业务需求。

·为啥用3线BGP高防?

传统的BGP高防机房,都是使用自建BGP机房资源做,这种IDC也只有腾讯会有,而且费用昂贵。大家都知道BGP线路都是优先给公有云IAAS服务的,拿来做高防太浪费了(BGP线路是普通单线的至少3倍以上价格),而且这种BGP线路,一般都也只有100G左右,不会有更大的带宽。这种针对棋牌类的攻击一般都在200G~300G左右,当时和闲徕聊过,他们业务高峰的时候攻击量是平均500G~700G。这么大的带宽存BGP机房是无法承受的。

·CDN与三线BGP高防联营

如果直接和运营商谈这个机房只做高防机房,其实这是非常亏的,因为高防的流量很大,攻击时间也不确定,那么,如果我们使用CDN网络中的其中一个节点做高防机房,CDN使用出口带宽,高防使用入口带宽。这样带宽利用率会上升很多。如果按照出入向1:5的比例,80G CDN流量可以换400G入口流量。如果按照平均8元/Mbps.月, CDN的运营费用:160万。如果你量用到了,其实高防是免费用的。当然,你要集中这个省的几个节点,一般一个CDN节点按照20G规划。

0x01、BGP高防架构

有了以上论证,我们有了三线BGP高防,那么,下一步要做什么呢?大家都知道高防切换是使用cname的方式做切换。其实如果你在游戏终端安装一个安全sdk,切换这就完全摆脱cname的方式,可以使用WebDNS切换。也就是阿里云的游戏盾模式。游戏盾相关的介绍可以参考我以前的文章。本节主要是讲我们三线BGP高防如何工作。

一、高防系统架构

解密BGP高防系统

二、转发模块

·模块作用

转发模块在整个高防系统中起到至关重要的作用,把用户的真实IP隐藏到转发系统后面,配合用户通过cname方式切换现有业务系统到高防机房,同时把清洗后的正常流量转发给真正的用户业务系统。

·功能描述

转发系统分为4层转发和7层转发,针对棋牌类App业务数据使用4层转发,升级等系统使用7层转发(一般都是挂在CDN上的一个url下载地址)

·原理

4层转发

高防机房一般会分配几个C段高防IP端,这些IP就是给转发模块用的,我们假定它为IP1

realIP1是用户业务源站IP地址

graph LR
A[clientIP:TCP:2004] 
A--> |正常访问| B[IP1:TCP:2004]
    B--> |4层转发| C[realIP1:TCP:10000]
    C--> |4层转发| D[用户业务源站]

7层转发

graph LR
A[clientIP:TCP:80] 
A--> |正常访问| B[IP1:TCP:80]
    B--> |4层转发| C[realIP1:TCP:80]
    C--> |7层转发| D[用户业务源站]

·业务流程

1、用户在控制台创建高防IP,系统会在剩余的高防IP列表中随机选一个IP地址。

2、然后通知lvs系统建立pool,通过pool建立虚拟IP,然后建立对应member IP(回源IP)

解密BGP高防系统

3、设置完以上参数,需要等待用户把我们产生的随机域名设置到他们生产网站别名。

4、启动BGP高防,借助CDN的DNS系统,当联通用户,根据不同线路解析到对应的联通高防机房,电信、移动也一样。

5、不使用的时候可以切换到回源IP上。

返回VIP是否分配成功。

三、清洗系统

解密BGP高防系统

·模块组成

一般清洗模块要配合检测模块配合使用,我们先把检查模块使用NTA标识,清洗模块使用ADS标识。

检查模块负责:需要统计各个高防IP对进入高防机房的流量,传统检测手段,例如绿盟的NTA使用netflow和交换机配合,主要是准确性差一些。建议还是使用大数据方式计算其流量(spark streaming 统计各种包的数量,聚合计算检测),一旦出现流量超出通知核心交换丢弃目的IP所有流量。

清洗模块负责:需要在用户购买的黑洞阈值内对攻击流量做清洗。针对4层DDoS攻击流量,比如:Syn Flood PPS达到8000的时候,启动清洗,这就需要流量学习的技术。动态设定PPS。清洗模块是由集群组成,单台处理能力能达到40G,小包20G能力,一般一个高防机房需要400G,一个机架柜搞定。针对7层的攻击流量,要测量一下nginx服务器大小,一台服务器http处理能力大约8万QPS,4台4层转发lvs+8台7层转发nginx。两个机架柜。如果是https处理能力大约在7000~8000QPS,一般加SSL加速卡。提升其单台服务器处理能力。一个集群处理7层流量大约60万QPS,4层清洗能力大约400G。

·业务流程

1、分线路解析

2、流量检测发布黑洞路由=>对应套餐上限

3、经过4层流量清洗。

4、经过lvs+nginx做4/7层转发CC清洗。

5、清洗完成后把干净数据转发给用户源站。

四、管控中台

·功能

主要是完成用户购买高防套餐,对高防IP的自动分配,设置DNS分线路解析。

同时要采集攻击流量图,连接数,攻击告警,显示给用户。

五、调度系统

·网络状况感知

主要是通过CDN拨测系统,了解目标用户的网络状况,通过延时和丢包率统计上来,作为调度系统决策手段,一般延时不能大于100ms,丢包率一般不要大于5%,BGP线路一般都是2%左右。监控准确性取决于CDN拨测点数和反馈数据准确性。后台可以通过tsdb存储。

·调度

一般通过手工调度,调度功能有:

@1、调度算法,根据网络状况感知模块决定,降级/升级调度(取决于机房的延时和丢包率定义升降),

@2、调度管理:调度首先要明确你的调度对象,针对哪个用户,哪个线路进行调度。还是整个机房调度。如果整个机房由于特殊的原因无法使用,需要把这个机房所有用户调度到其他可用机房,如果我们有单线机房,我们可以在BGP机房单个线路调度到相应的机房

@3、资产管理:管理我们现有的高防机房,管理我们高防机房中有高防IP资产。

@4、超卖率统计:高防如何想赚钱必须达到3~5倍的超卖率。超卖率=当前销售的总带宽/高防机房现有带宽。

六、监控系统

·日常监控

主要监控高防机房所有的设备监控状态,例如:CPU、memory、DISK、network、process、socket。

·性能监控

需要了解4、7层性能。ip_port连接的pps,http连接的cps。

0x02、未来发展

BGP高防体系也在不断的演变,运营商也看上了这块市场,包括电信云堤,联通也在全国部署了相应的清洗服务。再加上运营商可以自己控制路由器,所有IP anycast也是有可能实现的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 我们


推荐阅读
  • 负载均衡 LVS vs Nginx 对比
    前言今天总结一下负载均衡中LVS与Nginx的区别,之前看过好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TU ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • springcloud:微服务涉及哪些技术、有哪些核心组件(二)
    0.引言上一期我们介绍了什么是微服务,微服务的基础概念,那么本期我们来介绍一下微服务涉及的技术点以及所需要的组件1.微服务涉及哪些技术1.1、基础 ... [详细]
  • Nginx的TCP/UDP负载均衡是应用Stream代理模块(ngx_stream_proxy_module)和Stream上游模块(ngx_stream_upstream_mod ... [详细]
  • 计算机网络概述计算机网络基本概念计算机网络计算机网络是互连的、自治的计算机集合。协议计算机网络中的实体在进行数据交换的过程中必须遵循的规定或约定,称为网络协议。协议的三个要素:语法 ... [详细]
  • 真强悍!从0为公司搭建后端技术!
    如何您是一名创业公司的负责人,如何从0搭建公司的后端技术栈。今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框 ... [详细]
  • 企业之haproxy
    haproxy是一款功能强大、灵活好用反向代理软件,提供了高可用、负载均衡、后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持cookietrack,headerre ... [详细]
  • 【图解HTTP】第一章 了解web及网络基础
    [图解HTTP]了解Web及网络基础Web页面是如何呈现的?根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resour ... [详细]
  • 什么是网络数据包代理?为何需要网络数据包代理?为更优的决策获得更全面、精准的数据更严格的安全性更快地解决问题提高主动性更好的投资回报率NPB到底能做什么?冗余数据包去重SSL解密报 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 简介RSocket是在华盛顿特区举行的SpringOne平台会议上宣布的,是一种新的第7层语言无关的应用网络协议。它是一种基于ReactiveStreams背压的双 ... [详细]
  • SmartMesh WireLess HART 资料总结
    SmartMeshWireLessHART资料总结--刘振君2017.01.0923:00:00IEEE802.15是一个工作组98年成立,专门从事 ... [详细]
  • php懒加载如何实现?
    导读:本篇文章编程笔记来给大家介绍有关php懒加载如何实现的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、PHP网站如何 ... [详细]
author-avatar
安静的美男只
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有