使用 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 的部署包含下列工作:
-
在 Azure 主控台中設定 ExpressRoute 線路
部署後,您會取得一組服務金鑰。當您驗證服務金鑰時,系統會提供主要與次要連接埠,您可以選擇要用於連線的連接埠。您也可以第二次使用該金鑰,為未使用的連接埠建立另一個連線。
如需詳細資訊,請參閱 Microsoft 說明主題 Tutorial: Create and modify an ExpressRoute circuit。
-
驗證 Azure 服務金鑰
在申請 Azure 服務時,請使用該服務金鑰並確認有可用的連接埠可供連線。
API 回應會包含相關連接埠與對等端的 ExpressRoute 詳細資料。您需要 Azure 連接埠詳細資料來建立 VXC。
-
建立並部署 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
-
使用 POST Create VXC to Azure (v3) 端點建立請求:
POST {baseUrl}/v3/networkdesign/buy -
請於請求 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 }}"
}
}
]
}
]