Criando um MCR VXC com a API
Este tópico descreve o procedimento da API para criar um MCR VXC. O primeiro exemplo cria uma AWS Hosted Connection no mercado dos EUA - uma das configurações mais complexas. Modelos para outros CSPs aparecem mais adiante no tópico.
Para obter mais informações, consulte POST Validate MCR VXC Order (v3) na referência da API.
Criando um VXC entre um MCR e a AWS com uma Hosted Connection
Este exemplo cria uma AWS Hosted Connection no mercado dos EUA. As etapas incluem como:
- obter o ID do produto do MCR
- encontrar o ID de localização para um mercado dos EUA disponível
- validar e fazer o pedido do VXC
- configurar duas rotas estáticas
- configurar BGPBorder Gateway Protocol (BGP) é um protocolo de roteamento padronizado projetado para trocar informações de rotas e de alcançabilidade entre sistemas autônomos (AS) na internet.
connections – uma conexão com MEDMulti-Exit Discriminator (MED) é um atributo de caminho do BGP que pode influenciar um vizinho BGP a escolher uma rota preferida quando o sistema autônomo (AS) anunciante é o mesmo para as rotas candidatas e há múltiplos pontos de entrada para esse AS. Uma métrica MED menor é preferida a uma maior.
detalhes e uma sem.
Antes de começar, obtenha um token de acesso válido. Para obter mais informações, consulte Criando uma chave de API.
Para criar o VXC, precisamos do productUid do MCR.
Para obter o productUid do MCR
-
Obtenha a lista de produtos.
GET {baseUrl}/v2/products/ -
A partir dos detalhes do produto retornados, localize o valor de
productUiddo MCR que você quer conectar.Este exemplo usa este valor: fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0
Em seguida, encontre o ID de localização para o mercado dos EUA desejado com suporte a AWS Hosted Connections.
Para encontrar o locationId no mercado dos EUA onde as AWS Hosted Connections estão disponíveis
-
Obtenha a lista de todas as interfaces que a Megaport tem com os Cloud Service Providers.
GET {baseUrl}/v2/dropdowns/partner/megaportsVocê pode filtrar os resultados por
connectTypeevxcPermitted.GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWSHC&vxcPermitted=true -
Clique na lupa e pesquise na resposta por um site que corresponda aos seus critérios de localização.
Para este exemplo, selecione “US West (Oregon) (us-west-2) [DZ-RED]” com “locationId”: 57.
{
"connectType": "AWSHC",
"productUid": "f274bd09-1796-43af-8837-28fa4fa2a1ab",
"vxcPermitted": true,
"companyUid": "605cb850-dfb4-4a05-a171-8bf17757b3a2",
"companyName": "AWS",
"title": "US West (Oregon) (us-west-2) [DZ-RED]",
"locationId": 57,
"speed": 10000,
"rank": 275,
"lag_id": 5,
"lag_primary": true,
"aggregation_id": 106462
},
Nota
[DZ-RED] significa zona de diversidade Red (vermelha). Cada site de AWS Hosted Connection fornece duas zonas de diversidade para fornecer redundância: DZ-Red e DZ-Blue.
Com o ID do MCR e o ID de localização da AWS, você pode criar um VXC.
Para criar o VXC
-
Crie uma solicitação com esta URL:
POST {baseUrl}/v3/networkdesign/buyDica
Para testar sua solicitação antes de fazer o pedido, você pode usar: POST {baseUrl}/v3/networkdesign/validate
-
Adicione estes headers à solicitação:
- Content-Type: application/json
- Authorization: Bearer {your accessToken}
-
Crie o Body da solicitação com os detalhes de configuração.
Este exemplo usa o ID do produto MCR, o ID de localização AWS para o B-End, cria duas rotas estáticas e configura conexões BGP – uma conexão com detalhes MED e uma sem. As seções seguintes fornecem detalhes sobre as rotas estáticas e conexões BGP.
[
{
"productUid": "fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0",
"associatedVxcs": [
{
"rateLimit": 100,
"productName": "awshc",
"term": 12,
"shutdown": false,
"promoCode": "promox3mnthfree2",
"aEnd": {
"locationId": 320,
"vlan": 0,
"partnerConfig": {
"connectType": "VROUTER",
"interfaces": [
{
"vlan": null,
"ipMtu": 5000,
"ipAddresses": [
"10.191.0.25/29",
],
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP with MED and BFD enabled",
"medIn": 100,
"medOut": 100,
"bfdEnabled": true
},
{
"peerAsn": 62511,
"localIpAddress": "10.191.0.27",
"peerIpAddress": "10.191.0.28",
"password": "cnn23049asdkfj",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP without MED or BFD",
"medIn": null,
"medOut": null,
"bfdEnabled": false
}
],
"ipRoutes": [
{
"prefix": "10.0.0.0/24",
"nextHop": "10.191.0.26",
"description": "test static route 1"
},
{
"prefix": "10.0.1.9/24",
"nextHop": "10.191.0.27",
"description": "test static route 2"
}
],
"natIpAddresses": []
}
]
}
},
"bEnd": {
"locationId": 57,
"ownerUid": "605cb850-dfb4-4a05-a171-8bf17757b3a2",
"productUid": "d5518ee1-e915-4e3d-a4e1-a2c7e04f2fdd",
"vlan": 0,
"partnerConfig": {
"name": "awshc",
"ownerAccount": "XXXXXXXXXXXX",
"connectType": "AWSHC"
}
},
"productType": "VXC",
"connectType": "AWSHC"
}
]
}
]
Rotas estáticas
Você pode criar várias rotas estáticas por interface adicionando um array ipRoutes ao array de interfaces do objeto de configuração de parceiro do A-End:
"ipRoutes": [
{
"prefix": "10.0.0.0/24",
"nextHop": "10.191.0.26",
"description": "test static route 1"
},
{
"prefix": "10.0.1.9/24",
"nextHop": "10.191.0.27",
"description": "test static route 2"
}
],
| Atributo | Descrição | Obrigatório | Entrada Válida |
|---|---|---|---|
| prefix | Prefixo IP (V4 & V6) para rotear para nextHop | Sim | Prefixo IP v4/v6 - Se nenhuma máscara for apresentada, o endereço é tratado como um endereço de host (/32) |
| nextHop | Endereço do Next Hop | Sim | Endereço IP v4/v6 - Deve estar na mesma sub-rede que a interface, mas não o IP da interface |
| description | Descrição opcional da rota estática | Não | String - Comprimento máximo de 100 caracteres |
Conexões BGP
Você pode criar várias conexões BGP por interface adicionando um array bgpConnections ao array de interfaces do objeto de configuração de parceiro do A-End:
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP with MED and BFD enabled",
"medIn": 100,
"medOut": 100,
"bfdEnabled": true
},
{
"peerAsn": 62511,
"localIpAddress": "10.191.0.27",
"peerIpAddress": "10.191.0.28",
"password": "cnn23049asdkfj",
"importWhitelist": null,
"importBlacklist": null,
"exportWhitelist": null,
"exportBlacklist": null,
"shutdown": false,
"description": "BGP without MED or BFD",
"asPathPrependCount": "3",
"bfdEnabled": false
}
],
| Atributo | Descrição | Obrigatório | Entrada Válida |
|---|---|---|---|
| peerAsn | O ASN do peer BGP remoto. | Sim | ASN válido - Inteiros entre 1 - 4294967294 |
| localAsn | O ASN local pode substituir o ASN do MCR para este peer BGP. Na maioria dos casos, deve ser deixado como padrão. | Não | ASN válido - Inteiros entre 1 - 4294967294 localAsn não pode ser definido se peerAsn == mcrAsn localAsn não pode corresponder ao peerAsn se peerAsn != mcrAsn |
| localIpAddress | O endereço IPv4 ou IPv6 nesta interface a ser usado para comunicação com o peer BGP. | Sim | Endereço IP válido v4/v6. Deve ser um endereço IP da interface |
| peerIpAddress | O endereço IP do peer BGP. | Sim | Endereço IP válido v4/v6 |
| password | Uma chave compartilhada usada para autenticar o peer BGP, com até 32 caracteres. | Não | 0-32 caracteres |
| importWhitelist | Filtragem de prefixo de entrada usando uma ação de permissão. O MCR aplica o filtro de prefixo aos anúncios de rota BGP de entrada do vizinho. Rotas que não correspondem aos prefixos nesta lista são negadas no ponto mais cedo possível e nunca são usadas pelo MCR. | Não | 1-100 caracteres |
| importBlacklist | Filtragem de prefixo de entrada usando uma ação de negação. O MCR aplica o filtro de prefixo aos anúncios de rota BGP de entrada do vizinho. Rotas que correspondem aos prefixos nesta lista são bloqueadas. Todos os outros prefixos podem entrar na tabela de roteamento do MCR. | Não | 1-100 caracteres |
| exportWhitelist | Filtragem de prefixo de saída usando uma ação de permissão. O MCR aplica o filtro de prefixo às rotas de saída. Rotas que correspondem à lista de prefixos são anunciadas ao vizinho BGP e todas as outras rotas são filtradas. | Não | 1-100 caracteres |
| exportBlacklist | Filtragem de prefixo de saída usando uma ação de negação. O MCR aplica o filtro de prefixo às rotas de saída. Rotas que correspondem à lista de prefixos são bloqueadas do vizinho BGP e todas as outras rotas são anunciadas. | Não | 1-100 caracteres |
| shutdown | Por padrão, as conexões BGP estão habilitadas e tentarão ativamente se conectar ao peer. Selecione shutdown para desabilitar temporariamente a sessão BGP sem removê-la. Isso pode ser útil para solução de problemas ou teste de cenários de failover. | Não | true/false - Padrão é false |
| description | Descrição opcional da conexão BGP | Não | 0-100 caracteres |
| medIn | O MED será aplicado a todas as rotas recebidas nesta conexão BGP. Deixe em branco para usar o valor recebido do peer BGP. A rota com o valor mais baixo será preferida. | Não | Suporta valores entre 0 e 4.294.967.295 |
| medOut | O MED será aplicado a todas as rotas transmitidas nesta conexão BGP. O sistema autônomo vizinho pode preferir o valor mais baixo a seu critério. | Não | Suporta valores entre 0 e 4.294.967.295 |
| asPathPrependCount | asPathPrependCount é um inteiro que representa o número de vezes que o número AS local será anexado aos anúncios BGP de saída para o peer. | Não | Valores aceitáveis estão no intervalo de 1-10 |
| bfdEnabled | Bidirectional Forwarding Detection permite detecção rápida de falhas nesta conexão BGP. Quando a conectividade é interrompida, a sessão BGP é encerrada sem esperar que o temporizador de espera do BGP expire. O BFD pode melhorar o tempo de failover quando várias rotas estão disponíveis. | Não | true/false - Padrão é false Opcional |
Bidirectional Forwarding Detection (BFD)
O objeto de configuração bfd se aplica a todas as conexões BGP na interface que têm bfdEnabled = true.
As configurações BFD não são editáveis. Os valores padrão configurados quando o BFD está habilitado são:
- Transmit IntervalO menor intervalo de tempo em que o vizinho BGP transmite pacotes BFD de detecção de vivacidade ao vizinho BGP.
: 300 milissegundos - Receive IntervalO intervalo mínimo no qual o vizinho BGP envia pacotes BFD de detecção de vivacidade para a interface.
: 300 milissegundos - MultiplierO número mínimo de pacotes BFD que podem ser perdidos antes que a sessão BGP seja considerada down.
: 3
Nota
Essas configurações serão usadas para todas as conexões BGP no VXC onde o BFD estiver habilitado.
Autoconfiguração com AWS, Azure e Google
Para Azure, AWS Hosted VIF e Google, a Megaport pode configurar o endereçamento IP e os detalhes do BGP tanto no lado do MCR quanto no lado do CSP, garantindo uma configuração BGP funcional. Isso também minimiza a quantidade de alternância entre os portais do CSP e da Megaport.
Embora o Portal lide com a autoconfiguração por padrão, você também pode usar a API para acionar a autoconfiguração do BGP. A funcionalidade é acionada quando a chave de interfaces no partnerConfig não existe ou é null.
Para configurar peering BGP para CSPs
-
Crie uma solicitação com esta URL:
POST {baseUrl}/v3/networkdesign/buy -
Adicione estes headers à solicitação:
- Content-Type: application/json
- Authorization: Bearer {your accessToken}
-
Crie o Body da solicitação com os detalhes de configuração.
Diferentes templates estão disponíveis aqui para os CSPs mais populares.
AWS Hosted VIF
{
"productUid": "{{mcrid}}",
"associatedVxcs": [
{
"productName": "Test AWS VIF VXC",
"rateLimit": 100,
"term": 12,
"aEnd": {
"vlan": 0
},
"bEnd": {
"productUid": "{{awsPortUid}}",
"partnerConfig": {
"connectType": "AWS",
"type": "private",
"ownerAccount": "{{yourAWSAccountNumber}}"
}
}
}
]
}
Google Cloud
{
"productUid": "{{mcrid}}",
"associatedVxcs": [
{
"productName": "Test Google VXC",
"rateLimit": 100,
"term": 12,
"aEnd": {
"vlan": 0
},
"bEnd": {
"productUid": "{{googlePortUid}}",
"partnerConfig": {
"connectType": "GOOGLE",
"pairingKey": "{{googlekey}}"
}
},
"productType": "VXC"
}
]
}
Microsoft Azure
Para obter detalhes de configuração da Microsoft Azure, consulte Criando um VXC entre um MCR e a Microsoft Azure com a API.