上海區(qū)是生產(chǎn)環(huán)境、北京區(qū)是災(zāi)備、IDC是辦公室機(jī)房

具體要求:
1、2條專線分別從IDC-上海、IDC-北京,能做到雙活切換
2、上海、北京互通,北京災(zāi)備保持與上海的數(shù)據(jù)一致。

實(shí)施難點(diǎn)

網(wǎng)段重疊:客戶的上海、北京、IDC均是172.18.0.0/16網(wǎng)段
專線切換:IDC-上海、IDC-北京,任意一條專線中斷可自動(dòng)切換到另外一條。

需求分析

1、由于網(wǎng)段重疊,無(wú)法使用對(duì)等連接,只能使用云聯(lián)網(wǎng) 來(lái)解決網(wǎng)段重疊問(wèn)題。
2、客戶IDC也是172.18.0.0/16網(wǎng)段,導(dǎo)致在上海、北京分別到IDC的路由沖突,無(wú)法同時(shí)存在。故只能做到主備,正常開(kāi)啟上海的路由,上海-IDC專線中斷后切換到北京-IDC。使用python調(diào)用云聯(lián)網(wǎng)SDK操作開(kāi)啟/關(guān)閉路由。
3、北京災(zāi)備方面,云數(shù)據(jù)庫(kù)用DTS實(shí)時(shí)同步數(shù)據(jù)、網(wǎng)站文件利用COS遷移工具將上海CVM數(shù)據(jù)遷移到北京COS,然后北京服務(wù)器再?gòu)腃OS取數(shù)據(jù)。或者直接使用rsync同步數(shù)據(jù)。北京服務(wù)器可由上海已配置環(huán)境的服務(wù)器做鏡像,鏡像復(fù)制到北京,再利用鏡像開(kāi)出服務(wù)器。

操作配置

1、云聯(lián)網(wǎng)配置

新建云聯(lián)網(wǎng)(目前公測(cè)階段,需要申請(qǐng)此產(chǎn)品),并關(guān)聯(lián)對(duì)應(yīng)實(shí)例
關(guān)聯(lián)實(shí)例后會(huì)自動(dòng)把實(shí)例所擁有的路由自動(dòng)添加到云聯(lián)網(wǎng)路由表里。

2、專線配置(云平臺(tái))

專線網(wǎng)關(guān)創(chuàng)建配置(云產(chǎn)品->私有網(wǎng)絡(luò)->專線網(wǎng)關(guān))

新建專線網(wǎng)關(guān)時(shí),關(guān)聯(lián)網(wǎng)絡(luò)類型要選擇為云聯(lián)網(wǎng),云聯(lián)網(wǎng)實(shí)例可現(xiàn)在關(guān)聯(lián)也可之后關(guān)聯(lián)。
專用通道創(chuàng)建配置(云產(chǎn)品->專線接入->專用通道)

創(chuàng)建專用通道時(shí)選擇專線類型,本例使用的是共享專線,需要填寫(xiě)專線提供方的賬戶ID、共享專線ID,接入網(wǎng)絡(luò)選擇云聯(lián)網(wǎng)。一條專線(專用通道)對(duì)應(yīng)一個(gè)專線網(wǎng)關(guān)。

VLAN ID、IDC側(cè)BGP AS號(hào)這些需向?qū)>€提供方索要,邊界IP和專線提供方協(xié)商規(guī)劃。這些配置完畢后等待專線提供方接受提交的申請(qǐng),然后再I(mǎi)DC設(shè)置上配置BGP宣告IDC內(nèi)網(wǎng)網(wǎng)段,如果路由方式是靜態(tài)路由那就在設(shè)備上寫(xiě)到云上的路由。

3、專線網(wǎng)關(guān)上添加路由

點(diǎn)擊需要添加路由的專線網(wǎng)關(guān),進(jìn)入IDC網(wǎng)段添加需要的IDC網(wǎng)段

如果此專線網(wǎng)關(guān)未加入云聯(lián)網(wǎng),請(qǐng)?jiān)谠坡?lián)網(wǎng)下關(guān)聯(lián)此專線網(wǎng)關(guān),在專線網(wǎng)關(guān)上添加的路由會(huì)自動(dòng)添加到云聯(lián)網(wǎng)路由表里。

在云聯(lián)網(wǎng)路由表里可看出路由的詳情,下一跳、是否啟動(dòng)該路由等。如果存在路由重疊,優(yōu)先匹配長(zhǎng)掩碼(例如同網(wǎng)段24和25掩碼,優(yōu)先匹配25掩碼的路由)。如果路由網(wǎng)段相同后添加的則自動(dòng)禁用此路由。

使用云聯(lián)網(wǎng)SDK自動(dòng)切換路由

1、編寫(xiě)相關(guān)代碼
將代碼放置到相關(guān)服務(wù)器上,觸發(fā)腳本條件可設(shè)置為ping隧道邊界ip及IDC內(nèi)網(wǎng)ip,如果同時(shí)不通則觸發(fā)腳本切換專線。

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# Auther: liyk time:2019/1/3
# File : CCN.py
from tencentcloud.common import credential
from tencentcloud.vpc.v20170312 import vpc_client,models
import json
#
def Auth_vpc(id,key):
# 認(rèn)證ak
cred = credential.Credential(id,key)
Vpc_client = vpc_client.VpcClient(cred,ap-shanghai)
return Vpc_client
#
def SH_DescribeCcnRoutesRequest(Vpc_client):
# 獲取上海專線網(wǎng)關(guān)路由ID
req = models.DescribeCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
resp = Vpc_client.DescribeCcnRoutes(req)
result = json.loads(resp.to_json_string())
RouteSet = result[\\\'RouteSet\\\']
SH_RouteIds = []
for i in RouteSet:
    if i[\\\'InstanceName\\\'] == shanghai-IDC:
        SH_RouteId = i[\\\'RouteId\\\']
        SH_RouteIds.append(SH_RouteId)
return SH_RouteIds
#
def BJ_DescribeCcnRoutesRequest(Vpc_client):
# 獲取北京專線網(wǎng)關(guān)路由ID
req = models.DescribeCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
resp = Vpc_client.DescribeCcnRoutes(req)
result = json.loads(resp.to_json_string())
RouteSet = result[\\\'RouteSet\\\']
BJ_RouteIds = []
for i in RouteSet:
    if i[\\\'InstanceName\\\'] == beijing-IDC:
        BJ_RouteId = i[\\\'RouteId\\\']
        BJ_RouteIds.append(BJ_RouteId)
return BJ_RouteIds
#
def SH_EnableCcnRoutes(Vpc_client,SH_id):
# 開(kāi)啟上海路由
req = models.EnableCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
req.RouteIds = [\\\'%s\\\' %SH_id]
print(\\\'開(kāi)啟上海路由 %s\\\' % SH_id)
resp = Vpc_client.EnableCcnRoutes(req)
# print(resp.to_json_string())
#
def BJ_EnableCcnRoutes(Vpc_client,BJ_id):
# 開(kāi)啟北京路由
req = models.EnableCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
req.RouteIds = [\\\'%s\\\' %BJ_id]
print(\\\'開(kāi)啟北京路由 %s\\\' % BJ_id)
resp = Vpc_client.EnableCcnRoutes(req)
#
def SH_DisableCcnRoutes(Vpc_client,SH_id):
req = models.DisableCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
req.RouteIds = [\\\'%s\\\' %SH_id]
print(\\\'關(guān)閉上海路由 %s\\\' % SH_id)
resp = Vpc_client.DisableCcnRoutes(req)
#
def BJ_DisableCcnRoutes(Vpc_client,BJ_id):
req = models.DisableCcnRoutesRequest()
req.CcnId = \\\'ccn-a187ua1z\\\'
req.RouteIds = [%s %BJ_id]
print(\\\'關(guān)閉北京路由 %s\\\' % BJ_id)
resp = Vpc_client.DisableCcnRoutes(req)
#
if __name__ == __main__:
id = \\\'AKID*******sTzK\\\'
key = \\\'KUWT*******M\\\'
Vpc_client = Auth_vpc(id, key)
SH_RouteIds = SH_DescribeCcnRoutesRequest(Vpc_client)
BJ_RouteIds = BJ_DescribeCcnRoutesRequest(Vpc_client)
# 這里可使用ping返回結(jié)果
oper = normal
if oper == normal:
    for BJ_id in BJ_RouteIds:
        BJ_DisableCcnRoutes(Vpc_client, BJ_id)
    for SH_id in SH_RouteIds:
        SH_EnableCcnRoutes(Vpc_client, SH_id)
    # SH_DisableCcnRoutes(Vpc_client, SH_id)
else:
    for SH_id in SH_RouteIds:
        SH_DisableCcnRoutes(Vpc_client, SH_id)
    for BJ_id in BJ_RouteIds:
        BJ_EnableCcnRoutes(Vpc_client, BJ_id)

2、測(cè)試效果
模擬異常時(shí)切換:

切換完畢時(shí)中間大概中斷30秒左右。

最佳方案

如果網(wǎng)絡(luò)不重疊,2個(gè)VPC之間使用對(duì)等連接、使用2個(gè)云聯(lián)網(wǎng)然后分別加入對(duì)應(yīng)VPC和IDC的專線,這樣從IDC到云上可實(shí)現(xiàn)雙活。例如IDC-上海中斷,可通過(guò)IDC-北京再通過(guò)對(duì)等連接到上海。

更多關(guān)于云服務(wù)器域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)三五互聯(lián)官網(wǎng):www.shinetop.cn

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處:三五互聯(lián)知識(shí)庫(kù) » Tencent云聯(lián)網(wǎng)災(zāi)備方案

登錄

找回密碼

注冊(cè)