腾讯云联网灾备方案

  

客户需求

  

上海区云,北京区云,IDC互通。
上海区是生产环境,北京区是灾备,IDC是办公室机房

  
      <李>具体要求:
    1, 2条专线分别从IDC——上海,IDC——北京,能做到双活切换
    2,上海,北京互通,北京灾备保持与上海的数据一致。   
  

实施难点

  
      <李>网段重叠:客户的上海,北京,IDC均是172.18.0.0/16网段李   <李>专线切换:IDC -上海,IDC——北京,任意一条专线中断可自动切换到另外一条。   
  

需求分析

  

1,由于网段重叠,无法使用对等连接,只能使用云联网来解决网段重叠问题。
2,客户IDC也是172.18.0.0/16网段,导致在上海,北京分别到IDC的路由冲突,无法同时存在。故只能做到主备,正常开启上海的路,由上海IDC专线中断后切换到北京IDC。使用python调用云联网SDK操作开启/关闭路由。
3,北京灾备方面,云数据库用DTS实时同步数据,网站文件利用因为迁移工具将上海CVM数据迁移到北京COS,然后北京服务器再从因为取数据,或者直接使用rsync同步数据。北京服务器可由上海已配置环境的服务器做镜像,镜像复制到北京,再利用镜像开出服务器。

  

腾讯云联网灾备方案

  

操作配置

  
      <李> <强> 1,云联网配置   
        <李>新建云联网(目前公测阶段,需要申请此产品),并关联对应实例
      腾讯云联网灾备方案   <李>关联实例后会自动把实例所拥有的路由自动添加到云联网路由表里。   李
      <李>   

    <强> 2,专线配置(云平台)

      
        <李>专线网关创建配置(云产品→私有网络→专线网关)
      腾讯云联网灾备方案”> <br/>新建专线网关时,关联网络类型要选择为云联网,云联网实例可现在关联也可之后关联。</李>
  <李>专用通道创建配置(云产品→专线接入→专用通道)</李>
  </ul>
  <p> <img src=

        

      创建专用通道时选择专线类型,本例使用的是共享专线,需要填写专线提供方的账户ID,共享专线ID,接入网络选择云联网。一条专线(专用通道)对应一个专线网关。

        

      腾讯云联网灾备方案

        

      VLAN ID, IDC侧边界网关协议号这些需向专线提供方索要,边界IP和专线提供方协商规划。这些配置完毕后等待专线提供方接受提交的申请,然后再IDC设置上配置边界网关协议宣告IDC内网网段,如果路由方式是静态路由那就在设备上写到云上的路由。

        李   <李>   

      <强> 3,专线网关上添加路由

        
          <李>点击需要添加路由的专线网关,进入IDC网段添加需要的IDC网段
        腾讯云联网灾备方案   
        

      如果此专线网关未加入云联网,请在云联网下关联此专线网关,在专线网关上添加的路由会自动添加到云联网路由表里。

        

      腾讯云联网灾备方案”> <br/>在云联网路由表里可看出路由的详情,下一跳,是否启动该路由等。如果存在路由重叠,优先匹配长掩码(例如同网段24和25掩码,优先匹配25掩码的路由)。如果路由网段相同后添加的则自动禁用此路由。</p>
  李</>
  </ul>
  <h4>使用云联网SDK自动切换路由</h4>
  <ul>
  <李>
  <p> <强> 1,编写相关代码</强> <br/>将代码放置到相关服务器上,触发脚本条件可设置为平隧道边界ip及IDC内网ip,如果同时不通则触发脚本切换专线。</p>
  <pre> <代码> # !/usr/bin/env python
  # - * -编码:utf - 8 - *
  #作者:liyk时间:2019/1/3
  #文件:CCN.py
  从tencentcloud.common导入证书
  从tencentcloud.vpc。v20170312进口vpc_client模型
  进口json
  #
  def Auth_vpc (id、键):
  #认证正义与发展党
  信誉=credential.Credential (id、键)
  Vpc_client=vpc_client.VpcClient(信誉,“ap-shanghai”)
  返回Vpc_client
  #
  def SH_DescribeCcnRoutesRequest (Vpc_client):
  #获取上海专线网关路由ID
  要求=models.DescribeCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  resp=Vpc_client.DescribeCcnRoutes(要求)
  结果=json.loads (resp.to_json_string ())
  RouteSet=结果(“RouteSet”)
  SH_RouteIds=[]
  因为我在RouteSet:
  如果我“都”==皊hanghai-IDC”:
  SH_RouteId=我(“RouteId”)
  SH_RouteIds.append (SH_RouteId)
  返回SH_RouteIds
  #
  def BJ_DescribeCcnRoutesRequest (Vpc_client):
  #获取北京专线网关路由ID
  要求=models.DescribeCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  resp=Vpc_client.DescribeCcnRoutes(要求)
  结果=json.loads (resp.to_json_string ())
  RouteSet=结果(“RouteSet”)
  BJ_RouteIds=[]
  因为我在RouteSet:
  如果我“都”==癰eijing-IDC”:
  BJ_RouteId=我(“RouteId”)
  BJ_RouteIds.append (BJ_RouteId)
  返回BJ_RouteIds
  #
  def SH_EnableCcnRoutes (Vpc_client SH_id):
  #开启上海路由
  要求=models.EnableCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  要求的事情。RouteIds=[' % s ' % SH_id]
  打印(“开启上海路由% s的% SH_id)
  resp=Vpc_client.EnableCcnRoutes(要求)
  #打印(resp.to_json_string ())
  #
  def BJ_EnableCcnRoutes (Vpc_client BJ_id):
  #开启北京路由
  要求=models.EnableCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  要求的事情。RouteIds=[' % s ' % BJ_id]
  打印(“开启北京路由% s的% BJ_id)
  resp=Vpc_client.EnableCcnRoutes(要求)
  #
  def SH_DisableCcnRoutes (Vpc_client SH_id):
  要求=models.DisableCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  要求的事情。RouteIds=[' % s ' % SH_id]
  打印('关闭上海路由% s的% SH_id)
  resp=Vpc_client.DisableCcnRoutes(要求)
  #
  def BJ_DisableCcnRoutes (Vpc_client BJ_id):
  要求=models.DisableCcnRoutesRequest ()
  要求的事情。CcnId=' ccn-a187ua1z '
  要求的事情。RouteIds=(“% s”% BJ_id)
  打印('关闭北京路由% s的% BJ_id)
  resp=Vpc_client.DisableCcnRoutes(要求)
  #
  if __name__==癬_main__”:
  id=癆KID * * * * * * * sTzK”
  关键=' KUWT M * * * * * * *”
  Vpc_client=Auth_vpc (id、键)
  SH_RouteIds=SH_DescribeCcnRoutesRequest (Vpc_client)
  BJ_RouteIds=BJ_DescribeCcnRoutesRequest (Vpc_client)
  #这里可使用平返回结果
  ③=腾讯云联网灾备方案