Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
API ExpressRoute Partner Resource Manager позволяет партнерам ExpressRoute управлять конфигурацией каналов ExpressRoute уровня 2 и уровня 3 клиента ExpressRoute. API ExpressRoute Partner Resource Manager представляет новый тип ресурса expressRouteCrossConnections. Партнеры используют этот ресурс для управления каналами ExpressRoute клиента.
Workflow
Ресурс ExpressRouteCrossConnections — это теневой ресурс для канала ExpressRoute. Когда клиент Azure создает канал ExpressRoute и выбирает конкретного партнера ExpressRoute, корпорация Майкрософт создает ресурс expressRouteCrossConnections в подписке на управление Azure ExpressRoute партнера. При этом корпорация Майкрософт определяет группу ресурсов для создания ресурса expressRouteCrossConnections. Стандарт именования для группы ресурсов — CrossConnection-PeeringLocation; где PeeringLocation = местоположение ExpressRoute. Например, если клиент создает канал ExpressRoute в Денвере, кросссоединение будет создано в подписке Azure партнера в следующей группе ресурсов : CrossConnection-Denver.
Партнеры ExpressRoute управляют конфигурацией уровня 2 и уровня 3 путем выдачи операций REST в ресурсе expressRouteCrossConnections.
Преимущества
Преимущества перехода на ресурс expressRouteCrossConnections:
Любые будущие улучшения для партнеров ExpressRoute будут доступны в ресурсе ExpressRouteCrossConnection.
Партнеры могут применять управление доступом на основе ролей Azure (Azure RBAC) к ресурсу expressRouteCrossConnection. Эти элементы управления могут определять разрешения, для которых учетные записи пользователей могут изменять ресурс expressRouteCrossConnection и добавлять или обновлять или удалять конфигурации пиринга.
Ресурс expressRouteCrossConnection предоставляет API, которые могут быть полезны при устранении неполадок подключений ExpressRoute. Сюда входят таблица ARP, сводка по таблице маршрутов BGP и сведения о таблице маршрутов BGP. Эта возможность не поддерживается классическими API развертывания.
Партнеры также могут искать объявленные сообщества в пирингах Майкрософт с помощью ресурса RouteFilter .
Этапы разработки и интеграции API
Для работы с API партнёра, партнёры ExpressRoute используют тестового клиента и тестовую среду партнёра. Тестовая настройка клиента будет использоваться для создания каналов ExpressRoute в тестовых участках пиринга, которые сопоставляют с фиктивными устройствами и портами. Настройка конфигурации тестового партнера используется для управления каналами ExpressRoute, созданными в локации сетевого пиринга.
1. Перечислите подписки
Чтобы запросить настройку тестового партнера и тестового клиента, предоставьте две подписки Azure с оплатой по мере использованияYou-Go вашему контакту в инженерной команде ExpressRoute:
ExpressRoute_API_Provider_Sub: Эта подписка будет использоваться для управления производственными каналами ExpressRoute, созданными в расположениях пиринга.
ExpressRoute_API_Dev_Provider_Sub: Эта подписка будет использоваться для управления каналами ExpressRoute, созданными в тестовых узлах пиринга на фиктивных устройствах и портах.
ExpressRoute_API_Dev_Customer_Sub: Эта подписка будет использоваться для создания каналов ExpressRoute в тестовых точках пиринга, которые сопоставляются с фиктивными устройствами и портами.
Тестовые расположения пиринга: фиктивные устройства и порты по умолчанию не экспонируются пользователям в продакшене. Чтобы создать каналы ExpressRoute, соответствующие тестовой настройке, необходимо включить флаг функции подписки.
2. Регистрация подписки Dev_Provider для доступа к API expressRouteCrossConnections
Чтобы получить доступ к API expressRouteCrossConnections, подписка партнера должна быть зарегистрирована в поставщике ресурсов Microsoft.Network. Выполните действия, описанные в статье поставщиков ресурсов и типов Azure , чтобы завершить процесс регистрации.
3. Настройка проверки подлинности для вызовов REST API Azure Resource Manager
Большинству служб Azure требуется код клиента для проверки подлинности с помощью Resource Manager с использованием допустимых учетных данных перед вызовом API-интерфейсов службы. Проверка подлинности координируется между различными субъектами с помощью идентификатора Microsoft Entra и предоставляет клиенту маркер доступа в качестве подтверждения проверки подлинности.
Процесс проверки подлинности состоит из двух основных этапов:
4. Предоставление разрешения участника сети клиентскому приложению
После успешной настройки проверки подлинности необходимо предоставить участнику сети доступ к клиентскому приложению в Dev_Provider_Sub. Чтобы предоставить разрешение, войдите на портал Azure и выполните следующие действия.
- Перейдите к подпискам и выберите Dev_Provider_Sub
- Перейдите к Управлению доступом (IAM)
- Добавить назначение роли
- Выберите роль участника сети
- Назначение доступа пользователю, группе или принципалу службы Microsoft Entra
- Выбор клиентского приложения
- Сохранение изменений
5. Разработка
Разработка с использованием API expressRouteCrossConnections.
Рабочий процесс управления подключением
Получив ключ службы ExpressRoute от целевого клиента, следуйте приведенным ниже рабочим процессам и примерам операций API, чтобы настроить подключение ExpressRoute:
- Список expressRouteCrossConnection: Чтобы управлять подключением ExpressRoute, необходимо определить имя и группу ресурсов целевого ресурса expressRouteCrossConnection. Имя expressRouteCrossConnection — это ключ целевой службы канала ExpressRoute клиента. Чтобы найти ResourceGroupName, необходимо перечислить все expressRouteCrossConnections в подписке поставщика и найти в результатах целевой ключ службы. Здесь вы можете зафиксировать ResourceGroupName и сформировать вызов API GET для expressRouteCrossConnection.
GET /subscriptions/<ProviderManagementSubscription>/providers/Microsoft.Network/expressRouteCrossConnections?api-version=2018-02-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXAiOiJKV...
User-Agent: ARMClient/1.2.0.0
Accept: application/json
x-ms-request-id: f484de7d-6c19-412f-a5eb-e5c9dd247d3c
---------- Response (601 ms) ------------
HTTP/1.1 200 OK
Pragma: no-cache
x-ms-request-id: 620ec7bf-4fd1-446f-96e9-97fbae16722f
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-reads: 14999
x-ms-correlation-request-id: 6e484d0b-2f2e-4cef-9e18-87a9b7441bc4
x-ms-routing-request-id: WESTUS:20180501T192531Z:6e484d0b-2f2e-4cef-9e18-87a9b7441bc4
X-Content-Type-Options: nosniff
Date: Tue, 01 May 2018 19:25:31 GMT
{
"value": [
{
"name": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/24e6ea2b-6940-4bec-b0b3-3a9e5471e512",
"etag": "W/\"19fa7ada-5189-4817-a9d6-499b02e379cc\"",
"type": "Microsoft.Network/expressRouteCrossConnections",
"location": "eastus2euap",
"properties": {
"provisioningState": "Succeeded",
"expressRouteCircuit": {
"id": "/subscriptions/<TargetCustomerSubscription>/resourceGroups/Karthikcrossconnectiontest/providers/Microsoft.Network/expressRouteCircuits/TestCircuit2"
},
"peeringLocation": "EUAP Test",
"bandwidthInMbps": 200,
"serviceProviderProvisioningState": "Provisioned",
"peerings": []
}
},
{
"name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/<ProviderManagementSubscription>",
"etag": "W/\"f07a267f-4a5c-4538-83e5-de1fcb183801\"",
"type": "Microsoft.Network/expressRouteCrossConnections",
"location": "eastus2euap",
"properties": {
"provisioningState": "Succeeded",
"expressRouteCircuit": {
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/Karthikcrossconnectiontest/providers/Microsoft.Network/expressRouteCircuits/TestCircuitXYZ"
},
"peeringLocation": "EUAP Test",
"bandwidthInMbps": 200,
"serviceProviderProvisioningState": "NotProvisioned",
"peerings": []
}
}
]
}
- GET expressRouteCrossConnection: После определения имени и resourceGroupName целевого ресурса expressRouteCrossConnection необходимо выполнить вызов API GET expressRouteCrossConnection.
GET /subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f?api-version=2018-02-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXAiOiJKV...
User-Agent: ARMClient/1.2.0.0
Accept: application/json
x-ms-request-id: d17924c4-f977-4c82-b933-d66c5fa334dd
---------- Response (3317 ms) ------------
HTTP/1.1 200 OK
Pragma: no-cache
x-ms-request-id: 41621c90-2e59-4220-9a32-3b29b1198bf5
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-reads: 14999
x-ms-correlation-request-id: 85e08ce4-5a8f-4fe4-a434-e3fddef250d4
x-ms-routing-request-id: WESTUS:20180501T193230Z:85e08ce4-5a8f-4fe4-a434-e3fddef250d4
X-Content-Type-Options: nosniff
Date: Tue, 01 May 2018 19:32:29 GMT
{
"name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"etag": "W/\"f07a267f-4a5c-4538-83e5-de1fcb183801\"",
"type": "Microsoft.Network/expressRouteCrossConnections",
"location": "eastus2euap",
"properties": {
"provisioningState": "Succeeded",
"expressRouteCircuit": {
"id": "/subscriptions/<TargetCustomerSubscription>/resourceGroups/Karthikcrossconnectiontest/providers/Microsoft.Network/expressRouteCircuits/TestCircuitXYZ"
},
"peeringLocation": "EUAP Test",
"bandwidthInMbps": 200,
"serviceProviderProvisioningState": "NotProvisioned",
"primaryAzurePort": "EUAP-ARMTEST-06GMR-CIS-1-PRI-A",
"secondaryAzurePort": "EUAP-ARMTEST-06GMR-CIS-2-SEC-A",
"sTag": 3,
"peerings": []
}
}
- PUT expressRouteCrossConnection: После настройки соединения уровня 2 обновите ServiceProviderProvisioningState на Provisioned. На этом этапе клиент может настроить Microsoft или Частный Пиринг и создать подключение от контура ExpressRoute к шлюзу виртуальной сети, развернутого в подписке клиента.
PUT /subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f?api-version=2018-02-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXAiOiJKV...
User-Agent: ARMClient/1.2.0.0
Accept: application/json
x-ms-request-id: d867c3c9-2acf-4c54-a0f0-d7ca50fc7b9b
{
"properties": {
"serviceProviderProvisioningState": "Provisioned",
"peeringLocation": "EUAP Test",
"expressRouteCircuit": {
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/Karthikcrossconnectiontest/providers/Microsoft.Network/expressRouteCircuits/TestCircuitXYZ"
},
"bandwidthInMbps": 200
},
"location": "East US 2 EUAP"
}
---------- Response (1740 ms) ------------
HTTP/1.1 200 OK
Pragma: no-cache
Retry-After: 10
x-ms-request-id: cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a
Azure-AsyncOperation: https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Network/locations/eastus2euap/operations/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a?api-version=2018-02-01
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: d2d38c28-0dbe-4b40-8824-c74968c46b50
x-ms-routing-request-id: WESTUS:20180501T222105Z:d2d38c28-0dbe-4b40-8824-c74968c46b50
X-Content-Type-Options: nosniff
Date: Tue, 01 May 2018 22:21:04 GMT
{
"name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"etag": "W/\"ecdcb1a4-873b-4dad-ae56-a4b17795a84a\"",
"type": "Microsoft.Network/expressRouteCrossConnections",
"location": "eastus2euap",
"properties": {
"provisioningState": "Updating",
"expressRouteCircuit": {
"id": "/subscriptions/<TargetCustomerSubscription>/resourceGroups/Karthikcrossconnectiontest/providers/Microsoft.Network/expressRouteCircuits/TestCircuitXYZ"
},
"peeringLocation": "EUAP Test",
"bandwidthInMbps": 200,
"serviceProviderProvisioningState": "Provisioned",
"primaryAzurePort": "",
"secondaryAzurePort": "",
"sTag": 0,
"peerings": []
}
}
C:\Users\Admin\Documents\Expressroute\Partner APIs\ARMClient-master\ARMClient-master>armclient get https://management.azure.com/subscriptions/<ProviderManagementSubscription>/providers/Microsoft.Network/locations/eastus2euap/operations/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a?api-version=2018-02-01
{
"status": "Succeeded"
}
- (Необязательно) Используйте команду PUT expressRouteCrossConnection для настройки частного пиринга Если вы управляете соединением уровня 3 BGP, вы можете включить частный пиринг
PUT /subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/peerings/AzurePrivatePeering?api-version=2018-02-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXAiOiJKV...
User-Agent: ARMClient/1.2.0.0
Accept: application/json
x-ms-request-id: 9c1413a5-6d27-4e87-b075-1fedb15d63a3
{
"properties": {
"peeringType": "AzurePrivatePeering",
"peerASN": 500,
"primaryPeerAddressPrefix": "10.0.0.0/30",
"secondaryPeerAddressPrefix": "10.0.0.4/30",
"sharedKey": "A1B2C3D4",
"vlanId": 200
},
"name": "AzurePrivatePeering"
}
---------- Response (2354 ms) ------------
HTTP/1.1 201 Created
Pragma: no-cache
Retry-After: 10
x-ms-request-id: dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b
Azure-AsyncOperation: https://management.azure.com/subscriptions/<ProviderManagementSubscription>/providers/Microsoft.Network/locations/eastus2euap/operations/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b?api-version=2018-02-01
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: b5d08e36-339c-423a-ac2c-b6ec2063c8a6
x-ms-routing-request-id: WESTUS:20180501T194026Z:b5d08e36-339c-423a-ac2c-b6ec2063c8a6
X-Content-Type-Options: nosniff
Date: Tue, 01 May 2018 19:40:26 GMT
{
"name": "AzurePrivatePeering",
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/peerings/AzurePrivatePeering",
"properties": {
"provisioningState": "Updating",
"peeringType": "AzurePrivatePeering",
"azureASN": 0,
"peerASN": 500,
"primaryPeerAddressPrefix": "10.0.0.0/30",
"secondaryPeerAddressPrefix": "10.0.0.4/30",
"sharedKey": "A1B2C3D4",
"state": "Disabled",
"vlanId": 200,
"lastModifiedBy": ""
}
}
C:\Users\kaanan\Documents\Expressroute\Partner APIs\ARMClient-master\ARMClient-master>armclient get https://management.azure.com/subscriptions/<ProviderManagementSubscription>/providers/Microsoft.Network/locations/eastus2euap/operations/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b?api-version=2018-02-01
{
"status": "Succeeded"
}
- (Необязательно) PUT expressRouteCrossConnection для настройки пиринга Майкрософт При управлении подключением уровня 3 BGP можно включить пиринг Майкрософт
PUT /subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/peerings/MicrosoftPeering?api-version=2018-02-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer eyJ0eXAiOiJKV...
User-Agent: ARMClient/1.2.0.0
Accept: application/json
x-ms-request-id: af4527eb-7b68-4a50-b953-c0606524d8f3
{
"properties": {
"peeringType": "MicrosoftPeering",
"peerASN": 900,
"primaryPeerAddressPrefix": "203.0.113.0/30",
"secondaryPeerAddressPrefix": "203.0.113.4/30",
"vlanId": 300,
"microsoftPeeringConfig": {
"advertisedPublicPrefixes": [
"203.0.113.128/25"
],
"customerASN": 45,
"routingRegistryName": "ARIN"
}
},
"name": "MicrosoftPeering"
}
---------- Response (2530 ms) ------------
HTTP/1.1 201 Created
Pragma: no-cache
Retry-After: 10
x-ms-request-id: eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c
Azure-AsyncOperation: https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Network/locations/eastus2euap/operations/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c?api-version=2018-02-01
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-cache
Server: Microsoft-HTTPAPI/2.0; Microsoft-HTTPAPI/2.0
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: 8e26bc5d-f1cd-4305-a373-860aaf7bb694
x-ms-routing-request-id: WESTUS:20180501T213857Z:8e26bc5d-f1cd-4305-a373-860aaf7bb694
X-Content-Type-Options: nosniff
Date: Tue, 01 May 2018 21:38:56 GMT
{
"name": "MicrosoftPeering",
"id": "/subscriptions/<ProviderManagementSubscription>/resourceGroups/CrossConnection-EUAPTest/providers/Microsoft.Network/expressRouteCrossConnections/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/peerings/MicrosoftPeering",
"properties": {
"provisioningState": "Updating",
"peeringType": "MicrosoftPeering",
"azureASN": 0,
"peerASN": 900,
"primaryPeerAddressPrefix": "203.0.113.0/30",
"secondaryPeerAddressPrefix": "203.0.113.4/30",
"state": "Disabled",
"vlanId": 300,
"lastModifiedBy": "",
"microsoftPeeringConfig": {
"advertisedPublicPrefixes": [
"203.0.113.128/25"
],
"advertisedPublicPrefixesState": "NotConfigured",
"customerASN": 45,
"legacyMode": 0,
"routingRegistryName": "ARIN"
}
}
}
C:\Users\Admin\Documents\Expressroute\Partner APIs\ARMClient-master\ARMClient-master>armclient get https://management.azure.com/subscriptions/<ProviderManagementSubscription>/providers/Microsoft.Network/locations/eastus2euap/operations/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c?api-version=2018-02-01
{
"status": "Succeeded"
}
REST API
См. документацию по REST API ExpressRoute CrossConnections.
API размещения каналов
API размещения канала ExpressRoute позволяет партнерам ExpressRoute подготавливать подключение к каналу для определенной пары портов. Ознакомьтесь с API размещения каналов для документации по API.
Дальнейшие шаги
Дополнительные сведения обо всех REST API ExpressRoute см. в разделе REST API ExpressRoute.