导航:

  这里将一个案例事项按照流程进行了整合,这样查看起来比较清晰。部分资料来自于Cloudflare

  1.DDoS介绍

  2.常用DDoS攻击

  3.DDoS防护方式以及产品

  4.Cloudflare DDoS配置案例

背景信息

本案例场景为给XX项目Login服务器以及Game服务器增加 DDOS防护,使用Cloudflare。

环境架构由

Client → Login/Game服务器

(客户端的流量直接连接Login/Game服务器)

升级为

Client → CloudFlare → Login/Game服务器

(客户端流量发送给CloudFlare,在由CloudFlare反向代理至Login/Game服务器)

注意:图中敏感信息已打码;另所有域名信息使用www.baidu.com代替,IP端口为虚假信息。

 

1.流程图

1.1 登录服

  XX项目版Login服务器不增加DDOS防护时,玩家直接通过DNS服务器解析到Login服务器的真实IP地址连接Login服务器的80端口,并获取区服列表

  具体流程见下图;

  在加入DDOS防护后,DNS域名会将映射解析到 Cloudflare的边缘防护IP上,然后Cloud Flare会将请求反向代理到Login的真实IP上.

2.1 游戏服

  XX项目版Game服务器不增加DDOS防护时,由于Game没有域名配置,玩家直接通过Login服务器获取Game的IP地址,然后连接Game服的8000-8001端口,连接Game服务器;由于XX项目 Game服为滚服架构,那么每个Game区服都会开放8000-8001端口.

  具体流程见下图.

  加入DDOS防护后,由于DDOS边缘防护IP数量有限(根据沟通,CloudFlare边缘IP上限为10个),并且,一个边缘IP只能开放一个相同端口;所以,边缘IP以及Game服的对外IP依次递增对外端口来满足配置需求.

2.配置案例

  XX项目环境信息如下

角色

域名

边缘IP

服务器对外真实IP

服务器对外端口

Login服务器

www.baidu.com

2.2.2.2

1.1.1.1

80

Game1

2.2.2.2

10.10.10.10

8000,8001

Game2

2.2.2.2

10.10.10.11

8002,8003

  由于login服务器和game服务器端口不冲突,所以这里只用一个边缘ip:2.2.2.2。所有对外端口依次递增。

  在XX项目环境中,需要配置的模块有3个,分别为以下:

  CloudFlare

  配置至真实游戏服(登录服)的反向代理目的地址,并获取CloudFlare的边缘IP。

  DNS

  由于DNS在没有DDOS防护前,直接将映射解析至Login的服务上,在加入DDOS防护后,需要将解析更改至CloudFlare的边缘IP上。

  游戏服(登录服)

  为了节约成本以及IP资源的节省,对外端口由8000-8001递增的方式添加。

2.1 CloudFlare

  1.登录CloudFlare

  网址: https://dash.cloudflare.com/login

  2.点击项目的域名

  XX项目使用的是baidu.com

  3.DNS以及Spectrum

  (由于配置多余的域名可能会导致额外费用,这里只展示配置过程截图)

  主要是在以下2个配置项(根据实际需求选择)里面配置反向代理的服务器IP,并获取CloudFlare边缘IP

  DNS:DNS配置项可以配置标准端口,如80和443,一般是7层协议。

  Spectrum:Spectrum配置项可以随意配置有效范围端口,比如不是标准的80和443却也是http协议。可以配置协议比较多。

 

  • DNS配置项

  如端口为80及443,配置见以下

  配置完成后点击保存.

  • Spectrum配置项

  如果后端真实服务器对外端口为非80和443,那么就需要使用Spectrum配置项.

    点击Spectrum→点击创建应用程序

  配置Spectrum(这里假设配置2个游戏服,端口号8000-8003

  Game1(端口8000-8001)

  Game1第二个端口

  Game2(端口8002-8003)

  Game2第二个端口

  注意:不管是DNS配置项还是Spectrum配置项,域名地址配置部分,一定最好保持一致,只有域名地址相同,分配的边缘IP地址才会相同。(Cloudflare还是要按照实际情况决定)

  4.页面规则

  如果是配置DDoS防护,可以不用配置默认规则,但是这里还是显示的配置一下更为清晰。

  5.获取CloudFlare的边缘IP地址

  获取CloudFlare的边缘IP地址,通过dig命令加上CloudFlare的CNAME别名来获取。

  比如XX项目只有一个主机名,那么直接 dig www.baidu.com.cdn.cloudflare.net

  注意:配置2个主机名或者1个主机名,按照实际条件选择,cloudflare按照边缘IP收费。

 

2.2 DNS

  只有有域名配置的服务器才需要配置DNS,比如Login服务器(这里XX项目login服务器功能是获取区服列表,所以配置了域名)。

  目前环境配置海外项目使用AWS route53服务来配置域名

  1.登录AWS,找到ROUTE 53服务→托管区域→找到baidu.com域名

  2.将原主机域名A记录改为CNAME记录,指向CloudFlare的CNAME域名

2.3 Login服-Game服

  内部项目信息,敏感信息这里不做公开。只需要将原来的外网地址改成cloudflare的边缘IP地址和刚才配置的端口即可。

Cloudflare DDoS配置案例的更多相关文章

  1. 使用mysql存放Ambari元数据的配置案例

    使用mysql存放Ambari元数据的配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备   详情请参考我之前的笔记:离线方式部署Ambari2.6.0.0 中关 ...

  2. Nginx插件之openresty反向代理和日志滚动配置案例

    Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...

  3. https和server-status配置案例

    https和server-status配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.https协议 我们知道http协议是明文的,所以,你的数据发送不管是请求报文(r ...

  4. Flume 高可用配置案例+load balance负载均衡+ 案例:日志的采集及汇总

    高可用配置案例 (一).failover故障转移 在完成单点的Flume NG搭建后,下面我们搭建一个高可用的Flume NG集群,架构图如下所示: (1)节点分配 Flume的Agent和Colle ...

  5. CISCO ASA 5505 经典配置案例

    nterface Vlan2 nameif outside  ----------------------------------------对端口命名外端口  security-level 0 -- ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机

    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...

  7. Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面

    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.status功能概述 status页 ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项

    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ServerSignature指令概述 ...

  9. Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享

    Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.实现用户家目录的http共享前提 在配置家目录共 ...

随机推荐

  1. java基础——多维数组和稀疏数组

    多维数组 多维数组可以堪称数组的数组,比如二维数组就是一个特殊的一维数组,其中每一个元素都是一个以为数组 而且数组 int a[][]= new int[2][3]; public class Arr ...

  2. 中间件系列一 RabbitMQ之安装和Hello World Demo

    https://blog.csdn.net/hry2015/article/details/79016854 1. 概述 RabbitMQ是一个由erlang开发的AMQP(Advanced Mess ...

  3. 联想ThinkServer服务器安装CentOS7 Redhat7系统 驱动R110i RAID卡

    1.下载对应版本的驱动(因为联想没有CentOS的驱动用redhat的驱动就可以). 2.进入BIOS里,在高级设置里找到SATA设置,把SATA模式改成RAID(重启后配置raid),sSATA模式 ...

  4. CPU 使用率 100% 怎么办

    CPU 使用率 100% 怎么办 独家号 码上实战 作者 flyhero原文链接 工作中遇到CPU使用率100%,不要慌,一起来找出原因并fix掉它. 记住这里大致流程,当线上突然遇到时,也不必手足无 ...

  5. Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播。

    Linux是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播. Linux是众多操作系统之一 , 目前流行的服务器和 PC 端操作系统有 L ...

  6. S8 Linux磁盘与文件系统管理命令

    8.1 fdisk:磁盘分区工具 8.2-3 partprobe.tune2fs 8.4 parted:磁盘分区工具 8.5-7 mkfs.dumpe2fs.resize2fs 8.8-9 fsck. ...

  7. Django(35)Django请求生命周期分析(超详细)

    Django请求生命周期分析 1.客户端发送请求 在浏览器输入url地址,例如www.baidu.com,浏览器会自动补全协议(http),变为http://www.baidu.com,现在部分网站都 ...

  8. RabbitMQ(1)学习目标

    一:安装,专业术语,简单队列,工作队列,发布/订阅队列,路由队列,主题队列,RPC队列,事务,确认模式,SpringAMQP 二:什么是MQ? MQ就是消息队列,是一种进程间通信或同一进程的不同线程间 ...

  9. Archlinux+win10双系统扩容Boot/ESP分区

    环境 系统:Archlinux + Windowns10 双系统 软件:MiniTool Partition Wizard 免费版 + Diskgenius 免费版 分区:原ESP分区100M 原恢复 ...

  10. 『动善时』JMeter基础 — 33、JMeter察看结果树的显示模式详解

    目录 1.CSS Selector Tester视图 2.HTML查看器 (1)HTML视图 (2)HTML(download resources)视图 (3)HTML Source Formatte ...