云计算
客户需求
上海区云、北京区云、IDC互联互通。
上海是生产环境,北京是容灾,IDC是办公室。
具体要求:
分别来自IDC-上海、IDC-北京的1、2条专线可以在主动和被动之间切换。
2.上海和北京是互联互通的,北京的备灾和上海的数据是一致的。
实施中的困难
网段重叠:客户的上海、北京、IDC都是172.18.0.0/16网段。
专线切换:IDC-上海,IDC-北京,任何一条专线都可以自动切换到另一条。
需求分析
1.由于网段重叠,无法使用对等连接,只能使用云组网来解决网段重叠的问题。
2.客户IDC也是172.18.0.0/16网段,导致上海和北京到IDC的路由冲突,无法共存。所以只能主备,正常开通上海的路由,上海-IDC专线中断后切换到北京-IDC。使用python调用云联网SDK打开/关闭路由。
3.北京容灾,云数据库使用DTS实时同步数据,网站文件使用COS迁移工具将上海CVM数据迁移到北京COS,然后北京服务器从COS取数据。或者使用rsync直接同步数据。北京的服务器可以通过在上海配置好环境的服务器镜像,镜像复制到北京,再镜像打开。
操作配置
1.云网络配置
新建一个云联网(目前处于公测阶段,需要申请该产品),并关联相应的例子。
关联实例后,该实例拥有的路由将自动添加到云网络路由表中。
2.专线配置(云平台)
私有网关创建配置(云产品-私有网络-私有网关)
构建新的专用网关时,关联的网络类型应选择为云网络,云网络的实例可以现在关联,也可以以后关联。
专用通道创建配置(云产品-专线接入-专用通道)
创建专用信道时,选择专线类型。在本例中,使用了共享专用线路。需要填写专线提供商的账号ID和共享专线ID,选择云联网接入网络。专用线路(专用信道)对应于专用线路网关。
IDC侧的VLAN ID和BGP AS号需要向专线提供商请求,边界IP和专线提供商协商规划。完成这些配置后,等待专线提供商接受提交的申请,然后在IDC设置上配置BGP以通告IDC内部网段。如果路由方法是静态路由,则将路由写在云上的设备上。
3.添加到专用网关的路由。
点击专用网关添加路由,进入IDC网段添加需要的IDC网段。
如果该私有网关没有加入云联网,请在云联网下连接该私有网关,私有网关上添加的路由会自动添加到云联网路由表中。
路线的细节,下一跳,是否开始路线等。可以在云网络的路由表中看到。如果有路由重叠,应优先匹配长掩码(例如,具有24和25个网段掩码和25个掩码的路由应优先)。如果该航段是相同的,并且是在之后添加的,则该航段将被自动禁用。
使用云网络SDK自动切换路由
1.编写相关代码
当代码放在相关服务器上时,触发脚本的条件可以设置为ping隧道边界ip和IDC内网ip。如果同时失败,将触发脚本切换专线。
#!/usr/bin/env python
# -*-编码:utf-8 -*-
#作者:liyk时间:2019/1/3
#文件:CCN.py
来自腾讯云. common导入凭据
从tencentcloud.vpc.v20170312导入vpc_client,型号
导入json
#
def Auth_vpc(id,key):
#认证ak
cred=凭证。凭据(id,密钥)
Vpc客户端=vpc客户端。VPC客户(cred,亚太-上海)
返回Vpc_client
#
def SH _ DescribeCcnRoutesRequest(Vpc _ client):
#获取上海专线的网关路由ID
req=型号。DescribeCcnRoutesRequest()
请求。CcnId=\\\'ccn-a187ua1z\\\ '
resp=Vpc_client。描述cnRoutes(r
resp=Vpc_client .描述cnroute(请求)
结果=JSON。负载(分别为to _ JSON _ string())
路由集=结果[\ \ '路由集\ \ ']
BJ _路泰兹=[]
对于路由集中的我:
如果我[\ \ '实例名\ \ ']==北京-国际数据中心:
bj _ route id=I[\ \ '路线id \ \ \ \ n]
BJ _路由Id . append(BJ _路由id)
返回BJ路线
#
def SH _ enableccongures(VPC客户端,SH_id):
#年#月#日开启上海路由
req=型号.enableccnroutesrequest()
请求,请回答S7-1200可编程控制器
请求,请回答。路由器id=[\ \ % s \ \ \ \ sh _ id]
打印(\\\)开启上海路由% s \ \ \ \ sh _ id)
resp=Vpc_client .启用ccongutes(请求)
# print(resp.to_json_string())
#
def bj _ enableccongusers(VPC _客户端,BJ_id):
#年#月#日开启北京路由
req=型号.enableccnroutesrequest()
请求,请回答S7-1200可编程控制器
请求,请回答。路由器id=[\ \ % s \ \ \ \ bj _ id]
打印(\\\)开启北京路由% s \ \ \ \ bj _ id
resp=Vpc_client .启用ccongutes(请求)
#
定义SH _ disable帐户用户(VPC客户,SH_id):
req=型号.disableccnroutesrequest()
请求,请回答S7-1200可编程控制器
请求,请回答。路由器id=[\ \ % s \ \ \ \ sh _ id]
打印(\\\)关闭上海路由% s \ \ \ \ sh _ id)
resp=Vpc_client .残疾人非政府组织(请求)
#
def bj _ disable ccongures(VPC _客户端,BJ_id):
req=型号.disableccnroutesrequest()
请求,请回答S7-1200可编程控制器
请求,请回答。路由器id=[% s % bj _ id]
打印(\\\)关闭北京路由% s \ \ \ \ bj _ id
resp=Vpc_client .残疾人非政府组织(请求)
#
如果__ _ _名称_ _ _ _主_ _:
id=\ \ ' akid * * * * * * * * * * * * * * * stzk \ \ '
键=\\ '库wt * * * * * * * * * * * m \ \ '
Vpc_client=Auth_vpc(id、key)
sh _ route ids=sh _ describe cn route s request(VPC客户)
bj _ route ids=bj _ describe cn route s request(VPC _客户端)
#年#月#日这里可使用平,平返回结果
操作=正常
如果oper==正常:
对于bj _ routeids中的BJ身份证:
bj _ disable客户(VPC _客户,BJ_id)
对于sh _ routeids中的SH_id:
SH _ enableccongures(VPC客户端,SH_id)
# sh _禁用非政府组织(Vpc_client、SH_id)
其他语句:
对于sh _ routeids中的SH_id:
SH _ disable帐户用户(VPC客户,SH_id)
对于bj _ routeids中的BJ身份证:
bj _ enableccongusers(VPC _客户端、BJ_id)
2 ._测试效果
模拟异常时切换:
切换完毕时中间大概中断30秒左右。
最佳方案
如果网络不重叠,2个VPC(消歧义)之间使用对等连接~我爱你~使用2个云联网然后分别加入对应VPC(消歧义)和(同induecourse)在适当时候的专线,这样从(同induecourse)在适当时候到云上可实现双活。例如国际数据中心上海中断,可通过国际数据中心北京再通过对等连接到上海。
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理商官网页:1