使用 API 建立 MCR VXC
本主題說明使用 API 建立 MCR VXC 的程序。第一個範例會在美國市場建立 AWS Hosted Connection - 這是較為複雜的設定之一。其他 CSP 的範本將在本文後段提供。
如需更多資訊,請參閱 API 參考中的 POST Validate MCR VXC Order (v3)。
使用 Hosted Connection 在 MCR 與 AWS 之間建立 VXC
此範例會在美國市場建立 AWS Hosted Connection。步驟包含:
- 取得 MCR 產品 ID
- 尋找可用的美國市場之位置 ID
- 驗證並下單 VXC
- 設定兩條靜態路由
- 設定 BGPBorder Gateway Protocol (BGP) 是一種標準化的路由協定,用於在網際網路上的自治系統 (AS) 之間交換路由與可達性資訊。
連線 – 一個連線包含 MED多出口鑑別器(MED)是 BGP 路徑屬性,當候選路由的宣告來源自治系統(AS)相同且該 AS 有多個進入點時,它可以影響 BGP 鄰居選擇偏好的路由。較低的 MED 度量值會優先於較高的度量值。
詳細資料,另一個不包含。
開始之前,請先取得有效的存取權杖。更多資訊請參閱 建立 API 金鑰。
要建立 VXC,我們需要 MCR 的 productUid。
取得 MCR 的 productUid
-
取得產品清單。
GET {baseUrl}/v2/products/ -
在回傳的產品詳細資料中,找出你要連線的 MCR 的
productUid值。本範例使用此值:fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0
下一步,尋找支援 AWS Hosted Connection 的美國市場之位置 ID。
在美國市場中尋找可使用 AWS Hosted Connection 的 locationId
-
取得 Megaport 與雲端服務供應商(CSP)之間所有介面的清單。
GET {baseUrl}/v2/dropdowns/partner/megaports你可以依
connectType與vxcPermitted篩選結果。GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWSHC&vxcPermitted=true -
按一下放大鏡,並在回應中搜尋符合你位置條件的站點。
在此範例中,選擇 “US West (Oregon) (us-west-2) [DZ-RED]”,其 “locationId”: 57。
{
"connectType": "AWSHC",
"productUid": "f274bd09-1796-43af-8837-28fa4fa2a1ab",
"vxcPermitted": true,
"companyUid": "605cb850-dfb4-4a05-a171-8bf17757b3a2",
"companyName": "AWS",
"title": "US West (Oregon) (us-west-2) [DZ-RED]",
"locationId": 57,
"speed": 10000,
"rank": 275,
"lag_id": 5,
"lag_primary": true,
"aggregation_id": 106462
},
備註
[DZ-RED] 代表紅色多元區(Red diversity zone)。每個 AWS Hosted Connection 站點皆提供兩個多元區以實現備援:DZ-Red 和 DZ-Blue。
擁有 MCR ID 與 AWS 位置 ID 後,您即可建立 VXC。
建立 VXC
-
使用下列 URL 建立請求:
POST {baseUrl}/v3/networkdesign/buy提示
若您想在下單前測試您的請求,可以使用: POST {baseUrl}/v3/networkdesign/validate
-
在請求中加入以下標頭:
- Content-Type: application/json
- Authorization: Bearer {your accessToken}
-
以所需的設定細節建立請求的 Body。
此範例使用 MCR 產品 ID、作為 B-End 的 AWS 位置 ID、建立兩條靜態路由,並設定 BGP 連線——包含一條帶有 MED 詳細設定的連線與一條未設定 MED 的連線。以下章節會提供靜態路由與 BGP 連線的詳細資訊。
[
{
"productUid": "fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0",
"associatedVxcs": [
{
"rateLimit": 100,
"productName": "awshc",
"term": 12,
"shutdown": false,
"promoCode": "promox3mnthfree2",
"aEnd": {
"locationId": 320,
"vlan": 0,
"partnerConfig": {
"connectType": "VROUTER",
"interfaces": [
{
"vlan": null,
"ipMtu": 5000,
"ipAddresses": [
"10.191.0.25/29",
],
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP with MED and BFD enabled",
"medIn": 100,
"medOut": 100,
"bfdEnabled": true
},
{
"peerAsn": 62511,
"localIpAddress": "10.191.0.27",
"peerIpAddress": "10.191.0.28",
"password": "cnn23049asdkfj",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP without MED or BFD",
"medIn": null,
"medOut": null,
"bfdEnabled": false
}
],
"ipRoutes": [
{
"prefix": "10.0.0.0/24",
"nextHop": "10.191.0.26",
"description": "test static route 1"
},
{
"prefix": "10.0.1.9/24",
"nextHop": "10.191.0.27",
"description": "test static route 2"
}
],
"natIpAddresses": []
}
]
}
},
"bEnd": {
"locationId": 57,
"ownerUid": "605cb850-dfb4-4a05-a171-8bf17757b3a2",
"productUid": "d5518ee1-e915-4e3d-a4e1-a2c7e04f2fdd",
"vlan": 0,
"partnerConfig": {
"name": "awshc",
"ownerAccount": "XXXXXXXXXXXX",
"connectType": "AWSHC"
}
},
"productType": "VXC",
"connectType": "AWSHC"
}
]
}
]
靜態路由
您可以透過在 A-End partner 配置物件的 interfaces 陣列中加入 ipRoutes 陣列,於每個介面建立多條靜態路由:
"ipRoutes": [
{
"prefix": "10.0.0.0/24",
"nextHop": "10.191.0.26",
"description": "test static route 1"
},
{
"prefix": "10.0.1.9/24",
"nextHop": "10.191.0.27",
"description": "test static route 2"
}
],
| 屬性 | 說明 | 必要 | 合法輸入 |
|---|---|---|---|
| prefix | 要路由至 nextHop 的 IP 前綴(V4 & V6) | 是 | IP 前綴 v4/v6-若無遮罩則視為主機位址 (/32) |
| nextHop | 下一跳位址 | 是 | IP 位址 v4/v6 - 必須和介面處於同一子網路,且不可為介面 IP |
| description | 靜態路由的選填說明 | 否 | 字串-最長 100 字元 |
BGP 連線
您可以透過在 A-End partner 配置物件的 interfaces 陣列中加入 bgpConnections 陣列,於每個介面建立多條 BGP 連線:
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP with MED and BFD enabled",
"medIn": 100,
"medOut": 100,
"bfdEnabled": true
},
{
"peerAsn": 62511,
"localIpAddress": "10.191.0.27",
"peerIpAddress": "10.191.0.28",
"password": "cnn23049asdkfj",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP without MED or BFD",
"asPathPrependCount": "3",
"bfdEnabled": false
}
],
| 屬性 | 說明 | 必要 | 合法輸入 |
|---|---|---|---|
| peerAsn | 遠端 BGP 對等體的 ASN。 | 是 | 合法 ASN-介於 1 - 4294967294 的整數 |
| localAsn | 本地 ASN 可覆寫此 BGP 對等體設定上的 MCR ASN。多數情況應保持預設值。 | 否 | 合法 ASN-介於 1 - 4294967294 的整數 若 peerAsn == mcrAsn 則不可設定 localAsn 若 peerAsn != mcrAsn,localAsn 不可與 peerAsn 相同 |
| localIpAddress | 此介面上和 BGP 對等體通訊所使用的 IPv4 或 IPv6 位址。 | 是 | 合法 IP 位址 v4/v6。必須是此介面的 IP 位址 |
| peerIpAddress | BGP 對等體的 IP 位址。 | 是 | 合法 IP 位址 v4/v6 |
| password | 驗證 BGP 對等體所用的共用金鑰,最長 32 字元。 | 否 | 0-32 字元 |
| importWhitelist | 使用允許動作的入站前綴過濾。MCR 會將前綴過濾用於此鄰居送來的入站 BGP 路由廣播。不符合此清單前綴的路由會在最早階段被拒絕,且不會被 MCR 使用。 | 否 | 1-100 字元 |
| importBlacklist | 使用拒絕動作的入站前綴過濾。MCR 會將前綴過濾用於此鄰居送來的入站 BGP 路由廣播。符合此清單前綴的路由會被阻擋;其他所有前綴都可進入 MCR 路由表。 | 否 | 1-100 字元 |
| exportWhitelist | 使用允許動作的出站前綴過濾。MCR 會將前綴過濾用於出站路由。符合前綴清單的路由會廣播給 BGP 鄰居,其他所有路由將被過濾。 | 否 | 1-100 字元 |
| exportBlacklist | 使用拒絕動作的出站前綴過濾。MCR 會將前綴過濾用於出站路由。符合前綴清單的路由都不會廣播給 BGP 鄰居,其餘路由皆會被廣播。 | 否 | 1-100 字元 |
| shutdown | 預設情況下,BGP 連線會啟用並主動連線至對等體。選擇 shutdown 可暫時停用 BGP 連線但不移除,對於除錯或測試備援場景很有用。 | 否 | true/false-預設為 false |
| description | BGP 連線的選填說明 | 否 | 0-100 字元 |
| medIn | 本欄位所設值將套用到此 BGP 連線收到的所有路由。留空則沿用對等體提供的值。值越低者優先。 | 否 | 支援 0 至 4,294,967,295 的數值 |
| medOut | 本欄位所設值將套用到所有經此 BGP 連線傳送的路由。鄰近自治系統可自行決定是否偏好最小值。 | 否 | 支援 0 至 4,294,967,295 的數值 |
| asPathPrependCount | asPathPrependCount 為一正整數,表示要在對等體的輸出 BGP 公告中重複本地 AS 編號的次數。 | 否 | 可接受值為 1-10 |
| bfdEnabled | 雙向轉送偵測(BFD)允許對此 BGP 連線迅速偵測故障。當連線中斷時,BGP 連線不必等候 hold timer 到期就會終止。若有多條路由時,BFD 可加速故障轉移。 | 否 | true/false- 預設為 false 選填 |
雙向轉送偵測 (BFD)
bfd 設定物件會套用到介面上所有設定了 bfdEnabled = true 的 BGP 連線。
BFD 設定無法編輯。啟用 BFD 時預設值如下:
- 傳送間隔BGP 對等體向其 BGP 對等體傳送用於存活偵測的 BFD 封包的最小傳送間隔。
:300 毫秒 - 接收間隔BGP 對等體向介面傳送 BFD 存活偵測封包的最小傳送間隔。
:300 毫秒 - 倍率在將 BGP 工作階段視為中斷之前允許遺失的 BFD 封包最小數量。
:3
備註
這些設定將套用於所有啟用 BFD 的 VXC 上 BGP 連線。
AWS、Azure 與 Google 的自動設定
針對 Azure、AWS Hosted VIF 和 Google,Megaport 可協助於 MCR 及 CSP 端設置 IP 位址及 BGP 詳細資訊,以確保 BGP 能正常運作。這也能減少在 CSP 與 Megaport 入口網站間切換的次數。
雖然 Portal 預設會自動處理自動組態,您也可以使用 API 觸發 BGP 自動組態。當 partnerConfig 的 interfaces 鍵不存在或為 null 時,便會觸發該功能。
為 CSP 設定 BGP 對等
-
使用下列 URL 建立請求:
POST {baseUrl}/v3/networkdesign/buy -
在請求中加入以下標頭:
- Content-Type: application/json
- Authorization: Bearer {your accessToken}
-
建立請求主體(Body),包含設定細節。
此處提供多種範本,適用於最受歡迎的雲端服務供應商(CSP)。
AWS 託管 VIF
{
"productUid": "{{mcrid}}",
"associatedVxcs": [
{
"productName": "Test AWS VIF VXC",
"rateLimit": 100,
"term": 12,
"aEnd": {
"vlan": 0
},
"bEnd": {
"productUid": "{{awsPortUid}}",
"partnerConfig": {
"connectType": "AWS",
"type": "private",
"ownerAccount": "{{yourAWSAccountNumber}}"
}
}
}
]
}
Google Cloud
{
"productUid": "{{mcrid}}",
"associatedVxcs": [
{
"productName": "Test Google VXC",
"rateLimit": 100,
"term": 12,
"aEnd": {
"vlan": 0
},
"bEnd": {
"productUid": "{{googlePortUid}}",
"partnerConfig": {
"connectType": "GOOGLE",
"pairingKey": "{{googlekey}}"
}
},
"productType": "VXC"
}
]
}
Microsoft Azure
如需 Azure 設定詳細資訊,請參閱 使用 API 在 MCR 與 Microsoft Azure 之間建立 VXC。