双活数据中心方案

article/2025/9/20 19:30:33

目录

一、全局站点方案综述    1

二、全局站点双活解决方案    1

2.1 互联网区站点双活方案    1

2.2 互联网区站点故障切换    1

2.2.1 站点级故障切换    1

【专业术语说明】

GSLB: 全局站点负载均衡设备

SLB:本地服务器负载均衡

LLB: 多链路负载均衡

一、全局站点方案综述

全局站点的高可靠性规划主要目的是当主站点或某一个站点的某个环节或全部发生故障后,可以智能或手工进行故障切换,保证线业务的高可靠;

针对多站点之间和站点内多链路之间的高可靠性保证和负载均衡,我们建议在主站点和备站点分别部署专业的GSLB设备和多链路负载均衡LLB设备以实现站点级别的智能故障切换和站点内链路级别的智能故障切换;

另外在B中心双活数据中心架构下的业务引导和业务智能切换,GSLB设备起到关键性的作用;

我们建议在两个数据中心采用全局负载均衡、链路负载均衡和本地负载均衡整体解决方案,实现B中心双活数据中心建设;

  • GSLB设备实现站点级负载均衡,
  • LLB设备实现多链路负载均衡
  • SLB设备实现站点内Web服务器负载均衡;

在双活数据中心设计时,在业务访问层面主要考虑两个重点:

第一:如何选择最佳站点,将外部用户的访问同时引导至两个数据中心;

第二:业务的连续性,即如何保障业务的故障切换;

灾备切换需要考虑以下两点:

业务层面的切换:当某一数据中心故障后,所有得业务需要手动或自动切换到另一个数据中心,保证业务能够继续运行。针对业务层面的容灾切换,全局负载均衡技术是最佳的选择,全局负载均衡技术可以智能的将业务请求切换到正常的数据中心,保证数据中心的高可用性。

数据层面的切换:数据层面目前采用主中心单一数据库,无需考虑切换问题。

本环节主要讨论数据中心业务层面的故障切换,故障切换主要从一下几点分析:

  1. 数据中心内业务层系统瘫痪;主要是指主站内部某些系统全部瘫痪,此时主站点无法正常提供服——Web服务器层
  2. 整个站点瘫痪(由于天灾、掉电等因素或所有互联网链路故障)

整个站点故障主要是指站点接入链路故障或整个数据中心因自然灾难或掉电引起的故障;。

二、全局站点双活解决方案

2.1 互联网区站点双活方案

访问方式:基于域名访问的B/S模式

实现技术:主域授权DNS配合GSLB设备的智能DNS 解析

业务模型设计:互联网WEB层基于域名访问设计;

工作原理:当用户在浏览器访问www.xxx.com时,首先要进行DNS 解析,即查找出www.xxx.com对应的A纪录IP 地址,然后用户与该IP地址建立TCP连接访问网站内容。在部署全局负载均衡设备后,具体的DNS解析过程交给GSLB全局负载均衡设备来完成,需要在域xxx.com的授权DNS服务器上增加多笔NS记录,即www.xxx.com的NS 纪录指向位于双站点的GSLB设备的接口IP地址,对www.xxx.com的解析将由该GSLB设备负责完成;

授权DNS服务器域名解析配置(以双站点双链路接入为例):

www.xxx.com NS A中心 ISP1 IP(10.10.10.10)

www.xxx.com NS A中心 ISP2 IP(11.11.11.11)

www.xxx.com NS B中心 ISP1 IP(12.12.12.12)

www.xxx.com NS B中心 ISP2 IP(13.13.13.13)

【备注:以下GSLB处理流程及DNS处理机制以阿里云DNS为例】

假定A中心站点作为万网DNS的首选NS查询记录,DNS解析的整个过程分析如下:

  1. 用户访问www.xxx.com时,其DNS请求发到其LocalDNS 服务器; 步骤1
  2. LocalDNS查看本地是否有该域名的缓存记录,如果有,LocalDNS直接回应对应的A记录;步骤2
  3. 若LocalDNS服务器没有缓存,LocalDNS请求将域名注册商的授权DNS服务器;步骤3
  4. 授权DNS服务器收到LocalDNS的请求后,授权DNS服务器将按照配置的NS记录策略,将4笔NS记录对应的IP地址全部返回给LocalDNS;步骤4
  5. LocalDNS同时发起对四笔NS记录地址的查询,直到请求到查询结果;LocalDNS查询请求到达两个站点的GSLB设备 (LocalDNS查询NS的机制取决与运营商DNS的设置,这里按照向所有NS记录同时发查询请求的机制介绍) 步骤5
  6. 两个站点的GSLB设备收到LocalDNS的查询请求后,做全局站点优选判断,将最佳站点的IP地址作为A记录返回给LocalDNS。步骤6
  7. LocalDNS收到A记录响应后,将解析结果返回给客户端,并缓存到本地;(注:LocalDNS缓存DNS的TTL时间会学习授权域名DNS服务器的TTL时间值) 步骤7
  8. 假设GSLB设备返回的A记录为A中心站点ISP1链路对应的地址,用户将通过A中心站点的ISP1线路访问;步骤8
  9. 请求进入站点后,会先到达互联网区的WEB SLB本地负载均衡设备;步骤9
  10. SLB设备将请求负载分发至Web层服务器群;步骤10
  11. Web服务器请求内网业务区的数据库服务器;步骤11
  12. 请求响应按原路径返回,完成完整的业务访问;

【备注:客户端被GSLB设备解析到B中心站点的访问与上述业务流程相同;】

2.2 互联网区站点故障切换

2.2.1 站点级故障切换

站点级故障切换包括的因素:

  • ISP链路全部故障
  • GSLB设备全部故障
  • WEB层或SLB设备全部故障
  • 出口交换机或路由器全部故障
  • 自然灾害因素

以上各环节,其中任何一个环节出现问题都会导致整个站点无法提供服务;

站点级故障的业务切换主要是靠LocalDNS查询授权DNS响应的NS记录实现,如下图中第5步LocalDNS请求同时查询两个站点的GSLB的NS地址,假设A中心为故障站点,对NS查询请求无法响应,自然由B中心站点GSLB设备回应A记录实现所有用户到B中心 站点的访问;

  1. 用户访问www.xxx.com时,其DNS请求发到其LocalDNS 服务器; 步骤1
  2. LocalDNS查看本地是否有该域名的缓存记录,如果有,LocalDNS直接回应对应的A记录;步骤2
  3. 若LocalDNS服务器没有缓存,LocalDNS请求将域名注册商的授权DNS服务器;步骤3
  4. 授权DNS服务器收到LocalDNS的请求后,授权DNS服务器将按照配置的NS记录策略,将4笔NS记录对应的IP地址全部返回给LocalDNS;步骤4
  5. LocalDNS同时发起对四笔NS记录地址的查询,直到请求到查询结果;LocalDNS查询请求到达两个站点的GSLB设备 (LocalDNS查询NS的机制取决与运营商DNS的设置,这里按照向所有NS记录同时发查询请求的机制介绍)步骤5

【故障分析】

假设LocalDNS在查询时A中心站点瘫痪,B中心 站点工作正常,继续解析A记录;

假设A中心站点故障后,B中心 站点的GSLB设备收到DNS查询请求后会进行多链路层面的静态或动态的就近性判断,为客户端解析最佳的运营商线路;并将该链路对应的业务地址作为A记录返回给LocalDNS。

  1. 此时,只有B中心站点的GSLB设备收到LocalDNS的查询请求,GSLB设备做完链路优选后,将本站点最佳链路的IP地址作为A记录返回给LocalDNS。步骤6
  2. LocalDNS收到A记录响应后,将解析结果返回给客户端,并缓存到本地;(注:LocalDNS缓存DNS的TTL时间会学习授权域名DNS服务器的TTL时间值) 步骤7
  3. 假设GSLB设备返回的A记录为B中心 站点ISP1链路对应的地址,用户将通过B中心 站点的ISP1线路访问,请求到达互联网区的LLB链路负载均衡设备;步骤8
  4. WEB请求到达互联网区的WEB SLB负载均衡设备;步骤9
  5. WEB层SLB设备将请求负载分发至Web层服务器群;步骤10
  6. Web服务器请求内网业务区的数据库服务器;步骤11
  7. 请求响应按原路径返回,完成完整的业务访问;

【备注:B中心 站点故障切换过程与上述一致;】


http://chatgpt.dhexx.cn/article/Mk0hBXBx.shtml

相关文章

程序设计-在校整理-07 基于机器学习算法的DGA域名识别(NB、XGboost、MLP初探)

【在校整理-07 基于机器学习算法的DGA域名识别(NB、XGboost、MLP初探)】(注:仅供参考学习使用) 一、课题内容和要求二、理论基础2.1 DGA域名生成算法2.2 DGA算法原理 三、代码详细说明1. 安装环境:2. 库文件…

毕业设计-基于DGA 恶意域名的检测算法

目录 前言 课题背景和意义 实现技术思路 一、相关工作 二、域名特征选取及方案设计 三、实验与分析 四、总结 实现效果图样例 最后 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力…

DGA 域名生成和检测算法

文章目录 DGA 域名生成DGA 域名检测白样本黑样本检测模型 DGA 域名生成 360提供了基于 python的 DGA 算法,包含如下 10 种DGA家族。 DGA 域名检测 白样本 cisco top 1million:收费alexa top 1million: majestic top 1million: …

DGA域名检测的数据分析与深度学习分类

一、引言 在恶意软件发展的初期,恶意软件编写者会直接将控制服务器的域名或IP直接写在恶意软件中(即使是现在也会有恶意软件遵从这种方式,笔者部署的蜜罐捕获的僵尸网络样本中,很多经过逆向之后发现也是直接将IP写在软件中&#…

支持向量机检测DGA

先来介绍支持向量机。 其英文全称是Support Vector Machines。支持向量机是我们用于分类的一种算法。支持向量机 (SVM) 是一个非常经典且高效的分类模型。但是,支持向量机中涉及许多复杂的数学推导,并需要比较强的凸优化基础,在参考链接中读者…

新瓶装旧酒,Ares 银行木马新增 Qakbot DGA 算法

Ares 银行木马在 2021 年 2 月出现,研究人员一直在跟踪该恶意软件的发展。Ares 基于 Osiris 恶意软件家族而来,后者也是由 Kronos 银行木马衍生而来。2022 年 3 月到 2022 年 8 月,Ares 一直都处于静默期。但是 2022 年 8 月 Ares 又重出江湖…

使用机器学习做DGA域名识别

DGA域名 域名生成算法(Domain Generation Algorithm, DGA) 是一项古老但一直活跃的技术, 是中心结构僵尸网络赖以生存的关键武器, 该技术给打击和关闭该类型僵尸网络造成了不小的麻烦。 研究人员需要快速掌握域名生成算法和输入, 以便对生成的域名及时进行处置。 DGA依…

机器学习DGA域名检测

恶意域名 恶意域名是指黑客在攻击过程中或者对目标网络实施控制时,使用dga算法生成的域名,这种域名通常硬编码在恶意软件中。我们在做流量分析时不仅要通过流量的指纹特征识别威胁,也可以通过检测是否解析了恶意域名来判断网络中是否存在肉鸡…

DGA 域名生成算法攻防

文章目录 一、简介二、背景三、作用四、攻击原理五、DGA域名分类按照种子进行分类按照生成算法进行分类 六、DGA域名举例Banjori DGA 域名生成算法 七、检测手段(研究现状)概述基于监督学习的检测基于无监督学习的检测基于注册状态进行检测基于威胁情报进…

基于Python深度学习的DGA域名检测

1 背景介绍 1.1 DGA 域名简介 如今,互联网上的很多恶意攻击行为开始借助由域名生成算法生成的域名来抵抗安防软件的检测。这些域名生成算法通常会借助一组随机种子,持续不断的生成大量随机域名。使用这些 DGA 域名进行攻击的流程如图 1.1 所示。 图 1.…

一个简单的DGA(Domain Generate Algorithm)

黑产的规模和技术是越来越强了,想到一句话:任何人都被骗过,所以同样的任何人都被黑过。 针对大规模简单而粗暴的DDoS网络破坏是如何实现的呢,通常除了一些大规模有组织且政府允许的,还有各种各样的个人组织&#xff0c…

DGA数据集和算法研究

针对DGA的研究现在已经很多了,cnki 里面有116篇论文,涉及到dga黑样本,域名白名单,dga算法分析等,在数据集和dga原理的基础上,提出创新检测方案。因此,抽取共性,综合各家dga之所长&am…

dga (Domain Generation Algorithm) 域名 生成算法 简介

目录 一、引言 二、背景 三、检测 四、发展 五、总结 一、引言 恶意软件如今已经发展为威胁网络安全的头号公敌,为了逃避安全设施的检测,其制作过程也越来越复杂,其中一个典型做法是在软件中集成DGA(Domain Generation Algo…

你没见过的中文编程工具,用中文开发android安卓应用,安卓开发的初体验!

如果你对中文开发有一定的了解,那么你一定会知道易语言。易语言是仿VB制作的一款中文编程工具。它可以用来开发Windows软件。那有没有用于android安卓开发的中文编程工具呢?有!那就是猎码安卓中文开发工具 小编身为一个程序员,在…

自学android编程教程,安卓编程入门教程 安卓编程如何自学

安卓编程入门教程 安卓编程如何自学 时间:2017-04-10 来源:Android开发学习网 安卓编程越来越火,发展前景无比诱人,越来越多的人加入了android开发者的行列。安卓编程入门很简单,今天小编给大家提供一份安卓编程入门教程,告诉大家安卓编程如何自学,希望能够给您带去帮…

没有编程基础如何做安卓开发,试试这款简单易学的中文开发编程工具!

对于没有java编程基础的人来说,想要开发自己的安卓app可能很难。 我们都知道,现在流行的编程工具都是外国人开发的。全英文的界面,再加上全程使英文来写代码,让很多初学者望而却步。绝大部分人选择花费一大笔学费去参加培训班,一学就是几个月,有的甚至半年多。那有没有什…

安卓编程基础——网格布局

目录 前言 一、新课讲解 (一)网格布局概述 1、布局特点 2、继承关系图 3、常用属性 (二)案例演示:计算器界面 1、创建安卓应用 2、准备背景图片 3、字符串资源文件 4、自定义边框配置文件 5、主布局资源文件…

Android应用程序开发需要哪些编程语言?

开发一款Android上的应用程序通常需要以下编程语言: Java:Java是Android开发的主要编程语言。几乎所有的Android应用程序都使用Java进行核心开发。你可以使用Java编写应用程序的业务逻辑、界面设计和数据处理等。 刚好我这里有嵌入式、plc、单片机的资料…