跳轉到

使用 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

  1. 取得產品清單。

    GET {baseUrl}/v2/products/
    
  2. 在回傳的產品詳細資料中,找出你要連線的 MCR 的 productUid 值。

    本範例使用此值:fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0

下一步,尋找支援 AWS Hosted Connection 的美國市場之位置 ID。

在美國市場中尋找可使用 AWS Hosted Connection 的 locationId

  1. 取得 Megaport 與雲端服務供應商(CSP)之間所有介面的清單。

    GET {baseUrl}/v2/dropdowns/partner/megaports
    

    你可以依 connectTypevxcPermitted 篩選結果。

    GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWSHC&vxcPermitted=true
    
  2. 按一下放大鏡,並在回應中搜尋符合你位置條件的站點。

    在此範例中,選擇 “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

  1. 使用下列 URL 建立請求:

    POST {baseUrl}/v3/networkdesign/buy
    

    提示

    若您想在下單前測試您的請求,可以使用: POST {baseUrl}/v3/networkdesign/validate

  2. 在請求中加入以下標頭:

    • Content-Type: application/json
    • Authorization: Bearer {your accessToken}
  3. 以所需的設定細節建立請求的 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"
 }
],
若 ipRoutes 陣列為空,代表沒有設定任何靜態路由。

屬性 說明 必要 合法輸入
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 對等

  1. 使用下列 URL 建立請求:

    POST {baseUrl}/v3/networkdesign/buy
    
  2. 在請求中加入以下標頭:

    • Content-Type: application/json
    • Authorization: Bearer {your accessToken}
  3. 建立請求主體(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