APIを使用してVXCをMVEとMicrosoft Azure間に作成する
このトピックでは、VXCをMVEからMicrosoft Azure ExpressRouteに作成するためのAPIプロシージャについて説明します。構成は二段階のプロセスです: まず、Azureインターコネクトの場所をAzureサービスキーで検索し、それから特定のvNICに対してVXCを作成できます。
注記
Azureに接続する前に、AzureコンソールでExpressRoute回線を設定する必要があります。設定が完了すると、接続詳細を含むサービスキーを受け取ります。AzureへのMVE接続を構成するには、サービスキーの詳細を調べ、AzureポートへのVXCを作成します。
MVEからAzureへの展開には以下のタスクが含まれます:
-
AzureコンソールでExpressRoute回線を設定する
展開されると、サービスキーを取得します。サービスキーを検証すると、プライマリポートとセカンダリポートが表示され、接続のためのポートを選ぶことができます。キーをもう一度使用して、未使用のポートにもう一つの接続を作成できます。
詳細については、Microsoftのヘルプトピック チュートリアル: ExpressRoute回線を作成および変更するを参照してください。
-
Azureサービスキーを検証する
Azureサービスを注文する際に、サービスキーを使用して接続のための空きポートがあることを確認します。
APIの応答には、関連するポートとピアのExpressRoute詳細が含まれます。VXCを作成するためには、Azureポートの詳細が必要です。
-
VXCを作成および展開する
検証済みのサービスキーとポート詳細を使用して、VXCをMVEからMicrosoft Azureに作成します。
VXCの構成の一環として、ピアリングタイプを選ぶことができます。ピアリングタイプはプライベートまたはMicrosoftのいずれかです。
定義されたピアリングタイプは、AzureとMegaportの両側で一致したピアとの自動構成されたピアリングと、既知の動作する構成の展開されたシステムをもたらします。展開後に構成を変更することができます。
始める前に、有効なアクセストークンを取得してください。詳細については、APIキーの作成を参照してください。
サービスキーを検証する
Microsoft Azureのサービスキーを検証するためにAPIを使用します。応答には関連するポートとピアのExpressRoute詳細が含まれています。VXCを作成するためには、Azureポートの詳細が必要です。
サービスキーを確認し、接続のための空きポートがあることを確認してください。APIの応答では、利用可能なポートは"vxc":nullと表示され、値が割り当てられているポートは利用できません。
各応答フィールドの詳細については、Azureサービスキーレスポンスフィールドを参照してください。
サービスキーを検証するために
-
GET Look Up Azure Service Key APIを使用して、サービスキーでMicrosoft Azureの場所の詳細を検索します:
GET {baseUrl}/v2/secure/azure/{service_key}
こちらは利用可能なポートを持つペアリングキーのサンプルレスポンスです (vxc = null)。
{
"message": "Successful lookup",
"terms": "This data is subject to the Acceptable Use Policy 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
}
}
特定の vNIC に VXC を作成および展開する
サービスキー参照から取得した Azure ExpressRoute ポートの詳細を使用して、Azure への VXC を作成します。
リクエストの Body に設定情報を指定します。最初の productUid は MVE を識別し、bEnd: productUid は Azure インターフェースを識別します。また、serviceKey フィールドに Azure ExpressRoute サービスキーを指定する必要があります。
ヒント
接続の B-End の Azure ロケーションは、v2/dropdowns/partner/megaports エンドポイントで参照できます。
同じ Azure インターフェースに対して複数の接続を作成できます。例えば、プライベートピアリングと Microsoft ピアリングの両方を同じインターフェースに接続する場合などです。
シングル Azure ピアリング VLAN
この例ではシングル Azure ピアリング VLAN を使用しています。aEnd innerVlan と bEnd innerVlan の両方が指定されていることから判別できます。シングル Azure ピアリング VLAN では両方とも同じ値に設定されます。
この値が 0 に設定されている場合は、有効な inner VLAN がシステムによって割り当てられて設定されます。
ヒント
注文前にリクエストをテストし、価格詳細を確認するには、同じ Body 構成で /v3/networkdesign/validate エンドポイントを使用してください。
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] created.",
"terms": "This data is subject to the Acceptable Use Policy 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 ピアリング(Q-in-Q)
Single Azure Peering VLAN を使用せず、Q-in-Q を使って単一の VXC 上で複数の Microsoft ピアリングを行いたい場合は、aEnd の innerVlan の値のみを指定してください。
Q-in-Q を使用すると、Azure に設定された Azure ピアリング VLAN ID は Megaport の API や Portal には表示されません。これはお客様が Azure ExpressRoute ピアリングで設定し、MVE インスタンスの設定で一致させます。
以下の例では、aEnd innerVlan フィールドの 100 は実際には MVE 上の外側 VLAN または s-tag です。innerVlan 内で動作する Q-in-Q の内側 VLAN(c-tag)は 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 }}"
}
}
]
}
]