跳轉到

使用 API 在 MVE 與 Microsoft Azure 之間建立 VXC

本主題說明使用 API 從 MVE 建立 VXC 至 Microsoft Azure ExpressRoute 的程序。組態分為兩個步驟:首先,使用 Azure 服務金鑰查詢 Azure 互連位置,接著即可在您的 MVE 上的特定 vNIC 建立 VXC。

備註

在連線到 Azure 之前,您需要先在 Azure 主控台中設定一個 ExpressRoute 線路。設定完成後,您會收到包含連線詳細資料的服務金鑰。若要將 MVE 連線設定到 Azure,請先查詢服務金鑰詳細資料,然後建立連往 Azure 連接埠的 VXC。

MVE 到 Azure 的部署包含下列工作:

  1. 在 Azure 主控台中設定 ExpressRoute 線路

    部署後,您會取得一組服務金鑰。當您驗證服務金鑰時,系統會提供主要與次要連接埠,您可以選擇要用於連線的連接埠。您也可以第二次使用該金鑰,為未使用的連接埠建立另一個連線。

    如需詳細資訊,請參閱 Microsoft 說明主題 Tutorial: Create and modify an ExpressRoute circuit

  2. 驗證 Azure 服務金鑰

    在申請 Azure 服務時,請使用該服務金鑰並確認有可用的連接埠可供連線。

    API 回應會包含相關連接埠與對等端的 ExpressRoute 詳細資料。您需要 Azure 連接埠詳細資料來建立 VXC。

  3. 建立並部署 VXC

    透過已驗證的服務金鑰與連接埠詳細資料,從 MVE 建立指向 Microsoft Azure 的 VXC。

    在 VXC 的組態中,您可以選擇 peering 類型。Peering 類型可以是 private 或 Microsoft。

    指定的 peering 類型會在 Azure 與 Megaport 兩端自動完成 peering 設定,並部署為已知可正常運作的組態。部署後,您可以再行修改組態。

開始之前,請先取得有效的存取權杖。欲了解更多資訊,請參閱 建立 API 金鑰

驗證服務金鑰

使用 API 驗證 Microsoft Azure 服務金鑰。回應包含相關連接埠與對等端的 ExpressRoute 詳細資料。您需要 Azure 連接埠詳細資料來建立 VXC。

檢視服務金鑰並確認有可用的連接埠可供連線。在 API 回應中,可用的連接埠會列為 "vxc":null,而已指派數值的連接埠則不可使用。

如需各回應欄位的詳細資訊,請參閱 Azure 服務金鑰回應欄位

驗證服務金鑰

  • 使用 GET Look Up Azure Service Key (GET 查詢 Azure 服務金鑰) API,透過服務金鑰查詢 Microsoft Azure 位置詳細資料:

    GET {baseUrl}/v2/secure/azure/{service_key}

以下為具有可用連接埠(vxc = null)的配對金鑰之回應範例。

{
    "message": "查詢成功",
    "terms": "本資料受可接受使用政策約束 https://www.megaport.com/legal/acceptable-use-policy",
    "data": {
       "bandwidth": 50,
       "connectType": "AZURE",
       "managed": false,
       "megaports": [
           {
               "productId": 53013,
               "productUid": "83f95deb-a537-485e-80d9-c442c776ddc9",
               "name": "London Primary",
               "nServiceId": 119129,
               "description": "Azure ExpressRoute at Equinix LD5",
               "companyId": 1475,
               "companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
               "companyName": "Azure ExpressRoute",
               "portSpeed": 10000,
               "locationId": 90,
               "state": null,
               "country": "United Kingdom",
               "port": 53013,
               "type": "primary",
               "vxc": null
           },
           {
               "productId": 53014,
               "productUid": "d84ad163-8e22-4150-8cb7-44f1aecf9e90",
               "name": "London Secondary",
               "nServiceId": 119130,
               "description": "Azure ExpressRoute at Equinix LD5",
               "companyId": 1475,
               "companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
               "companyName": "Azure ExpressRoute",
               "portSpeed": 10000,
               "locationId": 90,
               "state": null,
               "country": "United Kingdom",
               "port": 53014,
               "type": "secondary",
               "vxc": null
           }
       ],
       "peers": [],
       "resource_type": "csp_connection",
       "service_key": "3f0f66b9-0c82-4d61-ae31-f5985c841a4a",
       "vlan": 19
   }
}

建立並部署 VXC 至特定 vNIC

透過服務金鑰查詢取得的 Azure ExpressRoute 通訊埠詳細資訊,建立前往 Azure 的 VXC。

您需要在請求的 Body 內指定設定細節。第一個 productUid 為 MVE 的識別碼,而 bEnd: productUid 則指向 Azure 介面。您也必須於 serviceKey 欄位提供 Azure ExpressRoute 服務金鑰。

提示

請以 v2/dropdowns/partner/megaports 端點查詢連線 B-End 的 Azure 位置。

您可以為一個 Azure 介面建立多條連線,例如同時將 Private 和 Microsoft peerings 連接至相同介面。

單一 Azure Peering VLAN

在本範例中,使用的是單一 Azure Peering VLAN。您可以從 aEnd innerVlan 和 bEnd innerVlan 都有填寫得知。如為單一 Azure Peering VLAN,兩者必須設定為相同值。

若將此值設為 0,系統會自動分配並設定一個有效的 inner VLAN。

提示

若想在下單前測試您的請求並查看價格細節,請以 /v3/networkdesign/validate 端點及相同的 Body 設定進行測試。

建立 VXC

  1. 使用 POST Create VXC to Azure (v3) 端點建立請求:

    POST {baseUrl}/v3/networkdesign/buy
    
  2. 請於請求 Body 中填入 MVE 的 productUid、VXC 名稱、Azure 通訊埠的 productUid,並設定服務金鑰 innerVlan 為 501、vNicIndex 為 0(介面 1)。

    備註

    vNIC 編號對應至以下 MVE 介面:

    • vNIC 0 = 在 MVE 上的介面 1
    • vNIC 1 = 在 MVE 上的介面 2
    • vNIC 2 = 在 MVE 上的介面 3
    • vNIC 3 = 在 MVE 上的介面 4
    • vNIC 4 = 在 MVE 上的介面 5
[
  {
   "productUid": "{{ mveid }}",
    "associatedVxcs": [
      {
        "productName": "Link to Azure ",
        "partnerConfigs" : {
           "connectType": "AZURE",
           "serviceKey": "((azureServiceKey}}"
        },
        "rateLimit": 1000,
        "term": 12,
        "shutdown": false,
        "promoCode": "promox3mnthfree2",
        "aEnd": {
          "vNicIndex":0,
          "innerVlan": 501
        },
        "bEnd": {
               "productUid": "{{ azurePortUid }}",
          "innerVlan": 501
        }
      }
    ]
  }
]

送出請求後,當 VXC 訂購完成,您會收到成功的回應。

以下為範例回應內容:

{
    "message": "VXC [7f7c22f6-5cde-45d7-8603-f3546c714118] 已建立。",
    "terms": "本資料受可接受使用政策約束 https://www.megaport.com/legal/acceptable-use-policy",
    "data": [
       {
           "createDate": 1709822378799,
           "vxcOrderId": 139947,
           "payerMegaPortId": 190079,
           "nonPayerMegaPortId": 53013,
           "payerMegaPortName": "MVE for VNIC config",
           "nonPayerMegaPortName": "London Primary",
           "payerCompanyId": 1153,
           "nonPayerCompanyId": 1475,
           "payerLocationId": 89,
           "nonPayerLocationId": 90,
           "salesId": null,
           "payerCompanyName": "Megaport Lab",
           "nonPayerCompanyName": "Azure ExpressRoute",
           "payerMegaPortNsId": 510708,
           "nonPayerMegaPortNsId": 119129,
           "payerVlanId": 0,
           "nonPayerVlanId": 0,
           "payerInnerVlanId": 501,
           "nonPayerInnerVlanId": 501,
           "payerApproverName": "name",
           "payerApproverId": 41315,
           "nonPayerApproverName": "name",
           "nonPayerApproverId": number,
           "payerApproval": number,
           "nonPayerApproval": number,
           "fixedTerm": true,
           "duration": 1,
           "rollover": true,
           "serviceName": "from MVE for VNIC config to London Primary",
           "payerStatus": "APPROVED",
           "nonPayerStatus": "APPROVED",
           "speed": 1000,
           "distanceBand": "METRO",
           "intercapPath": "",
           "awsId": null,
           "promoCode": null,
           "dealUid": null,
           "rateType": "MONTHLY",
           "vxcJTechnicalServiceId": 190104,
           "vxcJTechnicalServiceUid": "7f7c22f6-5cde-45d7-8603-f3546c714118",
           "provisionDate": 1709822378782,
           "orderType": "NEW",
           "monthlyDiscountAmount": null,
           "discountMonths": null,
           "amazonDirectConnectConfigDto": null,
           "amsixConnectConfigDto": null,
           "sdrcProvItem": null,
           "rate": null,
           "setup": null,
           "asn": null,
           "bgpPassword": null,
           "usageAlgorithm": "POST_PAID_HOURLY_SPEED_METRO_VXC",
           "costCentre": null,
           "azureServiceKey": "{{ azureServiceKey }}",
           "oracleVirtualCircuitId": null,
           "serviceKey": null,
           "vxc": {
               "serviceName": "Link to Azure ",
               "name": "Link to Azure ",
               "secondaryName": null,
               "technicalServiceId": 190104,
               "technicalServiceUid": "7f7c22f6-5cde-45d7-8603-f3546c714118",
               "requestedDate": 1709822378782,
               "configuredDate": null,
               "currentEstimatedDelivery": null,
               "companyName": "Megaport Lab",
               "companyId": 1153,
               "billingContactName": null,
               "billingContactId": null,
               "adminContactName": null,
               "adminContactId": null,
               "technicalContactName": null,
               "technicalContactId": null,
               "salesName": null,
               "salesId": null,
               "billableId": 181652,
               "billableUsageAlgorithm": null,
               "productType": "VXC",
               "provisioningStatus": "DEPLOYABLE",
               "failedReason": null,
               "inAdvanceBillingStatus": null,
               "provisioningItems": [],
               "tags": [],
               "vxcDistanceBand": "METRO",
               "intercapPath": "",
               "marketplaceVisibility": true,
               "vxcPermitted": true,
               "vxcAutoApproval": false,
               "createDate": 1709822378792,
               "terminationDate": null,
               "contractStartDate": null,
               "contractTermMonths": 1,
               "rateType": "MONTHLY",
               "trialAgreement": false,
               "payerCompanyId": null,
               "nonPayerCompanyId": null,
               "minimumSpeed": null,
               "maximumSpeed": null,
               "rateLimit": 1000,
               "errorMessage": null,
               "lagId": null,
               "aggregationId": null,
               "lagPrimary": null,
               "market": "UK",
               "accountManager": null,
               "promptUid": null,
               "components": [],
               "attributes": [],
               "aLocation": null,
               "bLocation": null,
               "aMetro": null,
               "aCountry": null,
               "aLocationId": null,
               "bLocationId": null,
               "bMetro": null,
               "bCountry": null,
               "attributeTags": {},
               "createdBy": "b0dedbd2-ecc7-4bad-a13b-6c34b4005115",
               "buyoutPort": null,
               "virtual": false,
               "locked": false,
               "adminLocked": false,
               "bgpShutdownDefault": false,
               "originDomain": null
           },
           "connectType": "AZURE",
           "payerConfig": {},
           "nonPayerConfig": {},
           "attributeTags": {},
           "serviceLicense": null,
           "originDomain": null,
           "fullyApproved": true
       }
   ]
}

多個 Microsoft Peering (Q-in-Q)

若您不想使用單一 Azure Peering VLAN,而是希望透過 Q-in-Q 在單一 VXC 上建立多個 Microsoft Peering,則只需填寫 aEnd innerVlan 的值。

使用 Q-in-Q 的情況下,在 Azure 所設定的 Peering VLAN ID 於 Megaport API 或 Portal 皆不會顯示。此數值由使用者於 Azure ExpressRoute Peering 設定,並於 MVE 實例設定中對應。

下例中,aEnd innerVlan 欄位值 100 實際上為 MVE 上的 outer vlan 或 s-tag。Q-in-Q 的內層 VLAN(c-tag)運作於 innerVlan 之內並對 Megaport 而言為透明。

備註

Azure VXC 是唯一支援指定雙層標記 VXC 的雲端 VXC 類型。

以下為範例請求內容:

[
 {
"productUid": "02ec2091-46bb-4904-bd17-96c752ff826e",
 "associatedVxcs": [
   {
     "productName": "My New Azure VXC",
     "partnerConfigs" : {
        "connectType": "AZURE",
        "serviceKey": "{{ service_key }}"
     },
     "rateLimit": 1000,
     "term": 12,
     "shutdown": false,
     "aEnd": {
       "innerVlan": 100
     },
     "bEnd": {
       "productUid": "{{ azurepuid }}"
     }
   }
 ]
 }
]