使用 API 在 VXC 与 Microsoft Azure 之间创建 MCR
本文介绍使用 API 从 MCR 到 Microsoft Azure ExpressRoute 创建 VXC 的流程,包括如何查询 Azure 互联位置并订购 VXC。
从 MCR 到 Azure 的部署包括以下任务:
-
在 Azure 控制台中设置 ExpressRoute 电路
部署后,您将获得一个服务密钥。验证服务密钥时,系统会提供主用和备用 端口,您可以为连接选择其中一个 端口。您可以第二次使用该密钥,为未使用的 端口 创建另一条连接。
有关详细信息,请参阅 Microsoft 帮助主题 Tutorial: Create and modify an ExpressRoute circuit。
-
使用服务密钥创建并部署 VXC
作为 VXC 配置的一部分,您可以选择 peering 类型。
peering 类型可以是 private 或 Microsoft。
指定 peering 类型后,系统会自动配置 peering,在 Azure 端和 Megaport 端匹配对等体,并以已知可用的配置完成部署。部署后您可以修改该配置。
开始之前,请获取一个有效的访问令牌。有关详细信息,请参阅 创建 API 密钥。
验证服务密钥
使用 API 验证 Azure 服务密钥时,响应会包含关联 端口 和对等体的 ExpressRoute 详细信息。您需要这些 端口 详细信息来创建 VXC。
在 Postman 集合中验证服务密钥
-
在 Postman 左侧导航中展开 Cloud Connectivity > MCR > Azure (云连接 > MCR > Azure),然后选择 GET Look Up Azure Service Key (GET 查找 Azure 服务密钥)。
-
将服务密钥添加到端点。
-
单击 Send (发送),向 API 服务器发起 GET 请求。
GET {baseUrl}/v2/secure/azure/{service_key}
以下是一个新密钥的示例响应(未配置 VXC):
{
"message": "Successful lookup",
"terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
"data": {
"managed": false,
"connectType": "AZURE",
"resource_type": "csp_connection",
"bandwidth": 200,
"service_key": "3e2480b2-b4d5-424b-976a-7b0de65a1b62",
"vlan": 3289,
"megaports": [
{
"portSpeed": 10000,
"name": "Washington DC Primary",
"state": "VA",
"description": "Azure ExpressRoute at Equinix DC2/6",
"productUid": "a7ae8a35-433e-44aa-87cb-a1b7995ab008",
"nServiceId": 32832,
"companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
"country": "USA",
"vxc": null,
"port": 14570,
"companyName": "Azure ExpressRoute",
"locationId": 67,
"productId": 14570,
"type": "primary",
"companyId": 1475
},
{
"portSpeed": 10000,
"name": "Washington DC Secondary",
"state": "VA",
"description": "Azure ExpressRoute at Equinix DC2/6",
"productUid": "07ab0ee6-7f77-41ac-bbe6-335e3ee6d182",
"nServiceId": 36431,
"companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
"country": "USA",
"vxc": null,
"port": 16108,
"companyName": "Azure ExpressRoute",
"locationId": 67,
"productId": 16108,
"type": "secondary",
"companyId": 1475
}
],
"peers": []
}
}
有关每个响应字段的更多信息,请参阅 Azure 服务密钥响应字段。
使用对等选项订购 VXC
利用服务密钥中的详细信息,创建一个到主端口的 VXC 和另一个到备端口的 VXC。确保选择与服务密钥查询请求中的 Azure 端口位于同一地区的 MCR。
如果你在 API 请求中为 VXC 指定了对等类型,Megaport 将在 MCR 和 Azure 端都配置 IP 地址和 BGP 细节,以确保 BGP 能正常运行。
要指定对等类型,请在 partnerConfig 部分的 peers 数组中添加对等类型。如果 peers 数组不存在,则会从 Azure 获取 peers。如果在创建 VXC 时未指定 peers 并且 Azure 中也没有 peers(新服务密钥通常为此情况),则 MCR 对等将不会自动配置。
MCR 会为每种已配置的对等类型创建一个 VLAN。如果同时指定了私有和 Microsoft 对等选项,MCR 会配置两个内部 VLAN。
注意
对等类型会被记录,若密钥已被使用过则无法更改。
创建 VXC
-
使用 POST Create VXC to Azure (v3) 端点创建请求:
POST {baseUrl}/v3/networkdesign/buy提示
若要在下单前测试请求,可以使用: POST {baseUrl}/v3/networkdesign/validate
-
在请求的 Body 中填写 MCR 的
productUid、VXC 的名称、Azure 端口的productUid以及服务密钥。包含相应的对等选项。最大速率(rateLimit)在服务密钥响应的带宽值中定义。本例为 200。Azure VLAN(如指定)是 Q-in-Q 的外层标签 VLAN。如果你未指定 VLAN,则会自动分配。
如需使用带有私有对等选项的 Azure 密钥,请使用以下模板:
[
{
"productUid": "{{mcrid}}",
"associatedVxcs": [
{
"productName": "Azure Primary VXC",
"rateLimit": 200,
"term": 12,
"shutdown": false,
"promoCode": "promox3mnthfree2",
"aEnd": {
"vlan": 0
},
"bEnd": {
"productUid": "{{azurepuid}}",
"vlan": "{{azurevlan}}",
"partnerConfig" : {
"connectType": "AZURE",
"serviceKey": "{{azurekey}}",
"peers": [{"type": "private"}]
}
}
}
]
}
]
对于 Microsoft 对等,请为 peers 使用以下行:
若需同时支持 Microsoft 和私有对等,请使用以下行:
创建了连接至主 Azure 端口的 VXC 后,再创建另一个 VXC 用于连接至备 Azure 端口的 productUid(请更改 productName 和 bEnd: productUid)。
配置响应
当你用对等选项创建 VXC 后,另一次服务密钥验证请求将显示完整配置。
{
"message": "Successful lookup",
"terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
"data": {
"managed": true,
"connectType": "AZURE",
"resource_type": "csp_connection",
"bandwidth": 200,
"service_key": "3e2480b2-b4d5-424b-976a-7b0de65a1b62",
"vlan": 3289,
"megaports": [
{
"portSpeed": 10000,
"name": "Washington DC Primary",
"state": "VA",
"description": "Azure ExpressRoute at Equinix DC2/6",
"productUid": "a7ae8a35-433e-44aa-87cb-a1b7995ab008",
"nServiceId": 32832,
"companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
"country": "USA",
"vxc": 60574,
"port": 14570,
"companyName": "Azure ExpressRoute",
"locationId": 67,
"productId": 14570,
"type": "primary",
"companyId": 1475
},
{
"portSpeed": 10000,
"name": "Washington DC Secondary",
"state": "VA",
"description": "Azure ExpressRoute at Equinix DC2/6",
"productUid": "07ab0ee6-7f77-41ac-bbe6-335e3ee6d182",
"nServiceId": 36431,
"companyUid": "c40de5ed-4707-4471-a78c-69436de2c505",
"country": "USA",
"vxc": 60575,
"port": 16108,
"companyName": "Azure ExpressRoute",
"locationId": 67,
"productId": 16108,
"type": "secondary",
"companyId": 1475
}
],
"peers": [
{
"peer_asn": 133937,
"shared_key": null,
"primary_subnet": "169.254.167.176/30",
"secondary_subnet": "169.254.167.180/30",
"vlan": 100,
"type": "private"
},
{
"peer_asn": 133937,
"shared_key": null,
"prefixes": "117.18.81.116/30,117.18.81.120/30",
"primary_subnet": "117.18.81.116/30",
"secondary_subnet": "117.18.81.120/30",
"vlan": 200,
"type": "microsoft"
}
]
}
}