前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何利用腾讯云BGP网络提升客户外网出口的冗余

如何利用腾讯云BGP网络提升客户外网出口的冗余

原创
作者头像
张小波
修改2018-10-29 18:29:18
6.7K2
修改2018-10-29 18:29:18
举报
文章被收录于专栏:云之翼云之翼

背景:

最近几年,互联网公司发展迅速,有很多互联网公司本身的基础架构都构建在一些公有云厂商之上,除了节省初期投资之外,另外也是借助于一些大的云厂商本身的网络能力,实现业务更好的覆盖。

另外,也有一些公司,自己的业务系统都构建在自己的IDC或者一些机房托管服务商上,例如国内有很多的托管IDC,但是随着业务的发展,外网的网络带宽和服务质量,对现有业务带来了很多的制约。例如经常会遇到:

  1. 网络出口光纤挖断,客户访问的唯一外网出口故障。
  2. 由于多个客户公用同一个IDC托管出口,其中一个客户遭受DDOS攻击,如果外网出口带宽有瓶颈,会影响其他用户。
  3. 中国不同的区域,存在众多中小服务商,经常会存在跨网访问,访问质量差的问题。

由于这些问题的存在,如果云厂商能够提供更好的网络服务质量,可以帮助众多客户减少上述问题的发生。在我们接触的众多客户中,也遇到多个场景,需要对于外网和前端业务做一个冗余。

现状说明:

某场景下,客户的业务都托管在深圳某IDC,该IDC建设较久,遇到过几次网络质量的问题,并且当前提供的带宽有些,因此考虑提供外网访问的冗余,在网络质量异常的情况下,能够提供外网访问的备份功能。

①用户通过DNS解析,用户请求接入到EN(External Network),通过自建的的Haproxy + Array做前端业务转发,后端内网IN也基于Haproxy + Array做内部的业务转发。

②在DCN区部署业务逻辑,包括应用服务器JBoss/Tomcat,以及中间件Dubbo。

③消息队列主要使用Kafka,承载业务系统以及日志业务,并且使用了少量的RabbitMQ。

④缓存使用Redis,当前存在集群版和主从版。

⑤数据库主要基于MySQL,MongoDB

客户规划主要几个阶段:

第一阶段:构建外网的冗余能力

第一阶段,建立腾讯云上的外网入口:

①用户通过运营商网络,接入腾讯BGP网络。

②用户接入使用BGP高防IP(10G+90G)提供外网DDoS防护。

③BGP高防接入腾讯云后端负载均衡(四层),将流量转发到Nginx集群,通过Nginx将流量转发到xx现有数据中心。

④建立xx和腾讯云之间的专线,用户的访问请求通过专线接入xx现有数据中心的业务逻辑。

⑤主动外访出口暂时通过现有的出口访问。

第二阶段:主动外访切换到腾讯云

第二阶段将,现有外访出口全部切换到腾讯云:

①在腾讯云上创建NAT网关,配置EIP,作为用户主动外访的出口。

②在xx现有需要主动访问的业务逻辑上,配置外访的静态路由,通过创建的NAT转发。

③在腾讯云上的专线网关配置到NAT的路由。

第三阶段:建立在腾讯云上的业务容灾系统:

第三阶段,建立腾讯云上的业务逻辑,缓存以及数据库层。

①部署全量业务逻辑,实现对现有xx业务的完全容灾。

a)建立Redis缓存/MQ在腾讯云上的灾备平面。

b)MySQL使用DTS,和腾讯云CDB建立主从关系,在腾讯云上建立Tdata(Oracle一体机),通过Dataguard建立到腾讯云的同步。

②部署部分业务逻辑作为测试环境,新建独立的CDB。

功能验证和测试:

针对第一和第二阶段,如何实现功能的验证,需要和客户一起配合,来建立和实现一个测试的环境和系统:

第一步:打通专线

https://console.qcloud.com/dc/dc

1)到腾讯云专线控制界面,填写创建专线申请,由客户拉裸纤,因此选择客户自建。

2)腾讯云后端负责分配专线接入点。

3)客户负责拉裸纤到腾讯云接入点。

4)专线建好以后,配置专线网关,打通腾讯云和IDC数据中心。

第二步:搭建nginx环境,简单验证:

基于Nginx实现业务转发,将业务通过Nginx转发到丰巢现有数据中心服务器 1)安装nginx:yum install nginx

2)查询nginx安装目录,修改nginx转发配置,实现业务7层转发:

通过nginx实现反向代理,将业务请求转发到后端的丰巢业务服务器。(具体的配置策略和参数以丰巢实际业务为主,例如权重,轮询策略。下图中的地址是测试地址,是个样例。)

第三步:配置LB监听器,配置转发逻辑:

第四步:配置外网访问逻辑(出口主动外访)

①方案说明如下: QCloud VPC中申请两个在同一个子网的CVM,并创建VIP和EIP,EIP和VIP绑定,建立Keepalived主备配置,配置过程参见 https://www.qcloud.com/document/product/215/5850

注意在创建的时候,选择创建公网网关类型,并配置公网网关优化参数。

①用户IDC需要把流量汇聚到一个统一的GRE网关,GRE网关和QCloud VPC中的VIP建立GRE Tunnel。GRE网关可以选择设备或单独的物理机

②用户把服务器访问公网的流量路由到GRE网关上,然后通过专线到达主CVM,主CVM内配置iptables规则,把来源是用户IDC网段的流量做SNAT,源IPSNAT为VIP,通过TGW出公网

③在主CVM中配置路由,把目的IP是用户IDC网段的流量下一跳指向GRE设备 5.在主备切换的时候,记得要在CVM内添加指向GRE设备的路由

实现GRE Tunnel

基于Linux GRE tunnel功能,打通客户内部GRE网关和腾讯云Keepalived的CVM之间的tunnel,实现数据包的隧道封装。

实际过程中,主动出访通过GRE封装逻辑比较复杂,容易出问题,不建议这么操作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档