Pular para conteúdo

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

  1. Obtenha a lista de produtos.

    GET {baseUrl}/v2/products/
    
  2. 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

  1. 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 e vxcPermitted.

    GET {baseUrl}/v2/dropdowns/partner/megaports?connectType=AWSHC&vxcPermitted=true
    
  2. 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

  1. 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

  2. Adicione estes headers à solicitação:

    • Content-Type: application/json
    • Authorization: Bearer {your accessToken}
  3. 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"
 }
],
Uma array ipRoutes vazia indica que não há rotas estáticas.

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.

"bfd": {
  "txInterval": 300,
  "rxInterval": 300,
  "multiplier": 3
},
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

  1. Crie uma solicitação com esta URL:

    POST {baseUrl}/v3/networkdesign/buy
    
  2. Adicione estes headers à solicitação:

    • Content-Type: application/json
    • Authorization: Bearer {your accessToken}
  3. 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.