Criando um MCR VXC com a API
Este tópico descreve o procedimento API para criar um MCR VXC. O primeiro exemplo cria uma Conexão Hospedada AWS no mercado dos EUA - uma das configurações mais complexas. Mais adiante neste tópico aparecem também templates para outros provedores de serviços de nuvem (CSPs).
Criando um VXC entre um MCR e a AWS com uma conexão hospedada
Este exemplo cria uma Conexão Hospedada AWS no mercado dos EUA. Os passos incluem como:
- obter o ID de produto do MCR
- encontrar o ID de local para um mercado dos EUA disponível
- validar e solicitar o VXC
- configurar duas rotas estáticas
- configurar BGP“Border Gateway Protocol.
Um protocolo padronizado de roteamento feito para trocar informações de rota e de disponibilidade entre sistemas autônomos (AS) na internet. conexões – uma conexão com MEDMulti-Exit Discriminator.
Um atributo de caminho BGP que pode influenciar um vizinho BGP a pegar uma rota preferida quanto o sistema autônomo (AS) anunciante é o mesmo para rotas candidatas e há múltiplos pontos de entrada para aquele AS. e BFDBidirectional Forwarding Detection.
O protocolo BFD detecta quaisquer falhas de caminho entre vizinhos BGP conectados diretamente, permitindo por um tempo mais curto de re-convergência no roteamento BGP. detalhes e um sem
Antes de começar, obtenha um token de acesso válido. Para mais informações, veja Criando uma Chave 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/
-
Dos detalhes de produto retornados, localize o valor
productUid
do MCR que você deseja conectar.Este exemplo usa o seguinte valor: fee85cc0-f06f-4ad7-bce7-36aef7dbe0d0
Em seguida, encontre o ID de local para o mercado dos EUA que você deseja com suporte para Conexões Hospedadas AWS.
Para encontrar o locationId no mercado dos EUA onde Conexões Hospedadas AWS estão disponíveis
-
Obtenha a lista de todas as interfaces que a Megaport possui com provedores de serviços de nuvem.
GET {baseUrl}/v2/dropdowns/partner/megaports
Você pode filtrar os resultados por
connectType
evxcPermitted
.GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWSHC&vxcPermitted=true
-
Clique na lupa e pesquise na resposta por um local que se adequa aos seus critérios.
Por exemplo, escolha “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
},
Aviso
[DZ-RED] significa Zona de Diversidade Vermelha. Cada local de Conexão Hospedada AWS oferece duas zonas de diversidade para garantir redundância: DZ-Red e DZ-Blue.
Com o ID do MCR e o ID de local da AWS, você pode criar um VXC.
Para criar o VXC
-
Crie uma solicitação com esta URL:
POST {baseUrl}/v3/networkdesign/buy
Dica
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 corpo (Body) da solicitação com os detalhes de configuração.
Este exemplo usa o ID de produto do MCR, o ID de local da AWS para a terminação B, cria duas rotas estáticas, e configura conexões BGP – uma conexão com detalhes de MEDs e BFD e outra 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,
"aEnd": {
"locationId": 320,
"vlan": 0,
"partnerConfig": {
"connectType": "VROUTER",
"interfaces": [
{
"ipAddresses": [
"10.191.0.25/29"
],
"bfd": {
"txInterval": 300,
"rxInterval": 300,
"multiplier": 3
},
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"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",
"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": "684021030471",
"connectType": "AWSHC"
}
},
"productType": "VXC",
"connectType": "AWSHC"
}
]
}
]
Rotas Estáticas
Você pode criar diversas rotas estáticas em cada interface acrescentando uma array ipRoutes
à array de interfaces do objeto de configuração do parceiro de terminação A:
"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 | Exigido | Input Válido |
---|---|---|---|
prefix | prefixo IP (V4 & V6) para rotear para o nextHop | Sim | prefixo IP =v4/v6 - Se nenhuma máscara for apresentada o endereço será tratado como um endereço host (/32) |
nextHop | endereço do Next Hop | Sim | Endereço de IP v4/v6 - Deve estar na mesma sub-rede que a interface mas não no IP da interface |
description | Descrição opcional da rota estática | Não | String - Comprimento máximo 100 caracteres |
Conexões BGP
Você pode criar diversas conexões BGP em cada interface adicionando uma array bgpConnections à array de interfaces do objeto de configuração do parceiro de terminação A:
"bgpConnections": [
{
"peerAsn": 62512,
"localIpAddress": "10.191.0.25",
"peerIpAddress": "10.191.0.26",
"password": "cnn6eaeaETSjvjvjvjv",
"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",
"shutdown": false,
"description": "BGP without MED or BFD",
"asPathPrependCount": "3",
"bfdEnabled": false
}
],
Atributo | Descrição | Exigido | Input Válido |
---|---|---|---|
peerAsn | O ASN do peer BGP remoto. | Sim | ASN válido - números inteiros de 1 a 4294967294 |
localAsn | O ASN Local pode se sobrepor ao ASN do MCR para este par BGP. Na maioria dos casos deve ser deixado como padrão. | Não | ASN válido - números inteiros de 1 a 4294967294 O localAsn não pode ser definido se peerAsn == mcrAsn O localAsn não pode corresponder ao peerAsn se peerAsn != mcrAsn |
localIpAddress | O endereço IPv4 or IPv6 a ser usado nesta interface para se comunicar com o peer BGP. | Sim | Endereço de IP v4/v6 válido. Deve ser um endereço de IP da interface |
peerIpAddress | O endereço de IP do peer BGP. | Sim | Endereço de IP válido v4/v6 |
password | A Uma chave compartilhada usada para autenticar o peer BGP peer, d3e até 32 caracteres . | Não | 0-32 caracteres |
shutdown | Por padrão, conexões BGP ficam ativas e tentarão ativamente se conectar ao peer. Selecione shutdown para temporariamente inativar a sessão BGP sem removê-la. Isso pode ser útil na resolução de problemas ou para testar 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 menor valor será preferida. | Não | Suporta valores entre 0 e 4,294,967,295 |
medOut | será aplicado a todas as rotas transmitidas nesta conexão BGP. O sistema autônomo vizinho tem a prerrogativa de preferir o menor valor. | Não | Suporta valores entre 0 e 4,294,967,295 |
asPathPrependCount | asPathPrependCount é um número inteiro representando o número de vezes que o número do AS local será anexado (prepended) em anúncios BGP feitos ao peer. | Não | Valores aceitáveis estão entre 1-10 |
bfdEnabled | BFD (Bidirectional Forwarding Detection) permite a detecção rápida de problemas nesta conexão BGP. Quando a conectividade for perturbada a seção BGP será derrubada sem esperar que o timer de hold do BGP expire. O BFD pode melhorar o tempo de fail over quando múltiplas rotas estiverem 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 tenham bfdEnabled = true
. Se qualquer conexão BGP tiver bfdEnabled
, então o objeto bfd
será exigido. Se não, ele será opcional.
Aviso
Essas configurações serão usadas para todas as conexões BGP no VXC em que BFD estiver ativo.
Um objeto bfd
é adicionado a cada interface.
Atributo | Descrição | Exigido | Input Válido |
---|---|---|---|
txInterval | O tempo mínimo entre o envio de pacotes BFD ao vizinho. O intervalo suportado é de 300ms a 9000ms. | Sim | 300-9000 |
rxInterval | O tempo mínimo entre pacotes BFD que um vizinho envia. O intervalo suportado é de 300ms a 9000ms. | Sim | 300-9000 |
multiplier | A sessào BGP será desmontada se esse número de pacotes BFD consecutivos não forem recebidos do vizinho. | Sim | 3-50 |
Autoconfiguração com AWS, Azure, e Google
Para Azure, AWS Hosted VIF, e Google, a Megaport pode configurar o endereçamento IP e detalhes BGP tanto no MCR quanto no lado do CSP garantindo uma configuração BGP funcional. Isso também minimiza a quantidade de trocas entre os portais do CSP e da Megaport.
Embora o Portal se encarregue da configuração automática por padrão, você também pode usar a API para ativar a autoconfiguração BGP. A funcionalidade é ativada quando a chave de interfaces no partnerConfig não existe ou é nula.
Para configurar o 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 corpo (Body) da solicitação com os detalhes da configuração.
Aqui estão disponíveis diferentes templates 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 detalhes de configuração da Azure, veja Criando um VXC entre um MCR e a Microsoft Azure com a API.