Estabeleça a conetividade através de um dispositivo de terceiros

O Centro de conectividade de rede permite-lhe usar um dispositivo virtual de rede de terceiros para estabelecer a conetividade entre um site externo e os recursos de rede da sua nuvem virtual privada (VPC). Para estabelecer a conetividade desta forma, usa a funcionalidade do dispositivo de encaminhamento.

O dispositivo de router é um dos vários tipos de raios suportados para o Network Connectivity Center. Para informações sobre o Network Connectivity Center, consulte a vista geral do Network Connectivity Center. Para mais informações sobre o dispositivo Router, consulte a vista geral do dispositivo Router.

Configuração de exemplo

Na topologia seguinte, um site externo liga-se a duas redes VPC através de um spoke de dispositivo de router.

A VM que aloja a instância do dispositivo de router tem uma interface em cada rede VPC. A instância do dispositivo de router mantém sessões do protocolo de gateway de fronteira (BGP) com os Cloud Routers em ambas as redes.

Cada Cloud Router tem duas interfaces. A interface do dispositivo de encaminhamento em cada rede estabelece uma relação de pares com ambas as interfaces do Cloud Router adequado, num total de quatro sessões de peering.

Criar sessões de BGP para dispositivos de encaminhamento
Topologia de exemplo do site para a nuvem (clique para aumentar)

Tarefas necessárias

Para configurar a configuração de exemplo, certifique-se de que cumpre os pré-requisitos para realizar este procedimento e, em seguida, conclua as tarefas necessárias:

  1. Crie a máquina virtual (VM) do Compute Engine que funciona como uma instância de dispositivo de encaminhamento. Pode criar a VM através de uma solução de parceiros suportada ou da sua própria imagem personalizada.

  2. Certifique-se de que a instância do dispositivo de router está acessível ao tráfego BGP através da porta TCP 179. Para o tornar acessível, pode ter de criar regras de firewall.

  3. Crie dois raios, um em cada rede de VPC. Cada spoke usa a mesma instância do dispositivo de router que o respetivo recurso de apoio.

  4. Configure dois Cloud Routers, um em cada rede de VPC. Para cada Cloud Router, esta tarefa inclui as seguintes subtarefas:

    1. Crie um Cloud Router na mesma região que a instância do dispositivo de router.

    2. Crie duas interfaces em cada Cloud Router.

    3. Configure a interligação BGP em cada Cloud Router.

  5. Configure a interligação BGP na instância do dispositivo de encaminhamento.

A forma como conclui estas tarefas pode variar significativamente. Por exemplo, se criar uma instância de dispositivo de encaminhamento através de uma solução de parceiros, algumas das tarefas posteriores podem ser automatizadas para si.

Antes de começar

Antes de começar, reveja as secções seguintes.

Crie ou selecione um projeto

Para facilitar a configuração do Network Connectivity Center, comece por identificar um projeto válido.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.

  5. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.

  10. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Se estiver a usar a CLI do Google Cloud, defina o ID do projeto com o comando gcloud config set.

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo seu ID do projeto exclusivo.

    As instruções da CLI gcloud nesta página pressupõem que definiu o ID do projeto.

  13. Para confirmar que definiu o ID do projeto corretamente, use o comando gcloud config list.

    gcloud config list --format='text(core.project)'
  14. Ative a API Network Connectivity

    Antes de poder realizar quaisquer tarefas com o Network Connectivity Center, tem de ativar a API Network Connectivity.

    Consola

    Para ativar a API Network Connectivity:

    1. Na Google Cloud consola, aceda à página Centro de conetividade de rede.

      Aceder ao Network Connectivity Center

    2. Clique em Ativar.

    Em alternativa, pode ativar a API através da Google Cloud biblioteca de APIs da consola, conforme descrito no artigo Ativar APIs.

    Obtenha acesso

    Para trabalhar com o Network Connectivity Center, precisa das autorizações descritas em Funções e autorizações.

    Quando configura o Network Connectivity Center, também trabalha com Google Cloud recursos como redes VPC, sub-redes e regras de firewall. Para mais informações sobre as autorizações de que precisa para trabalhar com estes recursos, consulte a documentação de controlo de acesso do Compute Engine.

    Endereços IP e instâncias de dispositivos de encaminhamento

    Para configurar uma instância de dispositivo de router, tem de estabelecer o peering entre a instância e o Cloud Router. Para configurar a interligação, a VM tem de usar um endereço IP interno RFC 1918. Não pode estabelecer uma relação de peering entre estes dois recursos se a VM usar um tipo de endereço diferente. Além disso, ambos os endereços IP têm de estar na mesma região.

    Para informações sobre como ver os endereços IP de uma VM, consulte os seguintes documentos:

    Para ver definições e informações detalhadas sobre os tipos de endereços IP, consulte o artigo Endereços IP.

    Reserve um endereço IP interno estático (recomendado)

    Recomendamos que atribua um endereço IP interno estático à instância do dispositivo de encaminhamento para que o endereço não se altere durante o reinício. Se o endereço for alterado, a partilha de tráfego BGP falha.

    Tem várias opções para atribuir um endereço IP reservado. Pode reservar o endereço IP antecipadamente. Em alternativa, pode reservar o endereço IP quando criar a VM. Se atribuir por engano um endereço efémero à VM, pode converter posteriormente o endereço num endereço estático. Para mais informações acerca de endereços IP estáticos, consulte Reservar endereços IP estáticos.

    Endereços IP para peering BGP

    Uma instância de dispositivo de encaminhamento usa o respetivo endereço IP interno para estabelecer interação com o Cloud Router. A instância não usa um endereço link-local (como 169.254.x.x) para a interligação BGP.

    Da mesma forma, o Cloud Router usa dois endereços IP internos RFC 1918 para estabelecer a interligação com a instância do dispositivo de router, um endereço para cada interface. Estes endereços IP podem ser atribuídos manual ou automaticamente a partir da sub-rede que contém a interface da instância do dispositivo de encaminhamento e a interface do Cloud Router.

    Crie recursos de VPC

    As secções seguintes descrevem como criar redes VPC e sub-redes.

    Crie duas redes VPC

    Se ainda não o fez, crie duas redes VPC. Defina o modo de encaminhamento dinâmico de cada rede como global.

    Para mais informações sobre a criação de redes VPC, consulte o artigo Criar redes.

    Consola

    Para criar uma rede VPC personalizada através da Google Cloud consola, consulte Criar uma rede de modo personalizado. Certifique-se de que define o Modo de encaminhamento dinâmico como Global. Se quiser seguir as convenções de nomenclatura usadas na configuração de exemplo, chame as suas redes de network-a e network-b.

    gcloud

    Para criar uma rede VPC personalizada, use o comando gcloud compute networks create.

      gcloud compute networks create NAME \
          --subnet-mode custom \
          --bgp-routing-mode global
    

    Substitua NAME pelo nome da rede VPC, por exemplo, network-a ou network-b.

    API

    Para criar uma rede VPC personalizada através da API Compute Engine, consulte o artigo Usar a VPC.

    Crie uma sub-rede

    Crie uma sub-rede em network-a e uma sub-rede em network-b.

    Consola

    Para adicionar uma sub-rede através da Google Cloud consola, consulte o artigo Adicionar sub-redes.

    Se quiser seguir as convenções de atribuição de nomes usadas na configuração de exemplo, use os seguintes valores para a sub-rede em network-a:

    • Nome: subnet-a
    • Região: us-central1
    • Intervalo: 10.1.3.0/24

    Use os seguintes valores para a sub-rede em network-b:

    • Nome: subnet-b
    • Região: us-central1
    • Intervalo: 192.168.10.0/24

    gcloud

    Para criar uma sub-rede da VPC, use o comando gcloud compute networks subnets create.

      gcloud compute networks subnets create NAME \
          --network=NETWORK \
          --region=REGION \
          --range=RANGE
    

    Substitua o seguinte:

    • NAME: o nome da sub-rede que contém a VM do dispositivo de encaminhamento, por exemplo, subnet-a ou subnet-b
    • NETWORK: a rede que contém a sub-rede, por exemplo, network-a ou network-b
    • REGION: a região que contém a sub-rede, por exemplo, us-central1
    • RANGE: o intervalo de IP da sub-rede na notação CIDR, por exemplo, 10.1.3.0/24 ou 192.168.10.0/24

    API

    Para criar uma sub-rede da VPC através da API Compute Engine, consulte o artigo Usar a VPC.

    Crie a VM do dispositivo de encaminhamento

    Crie a VM do Compute Engine que funciona como uma instância de dispositivo de encaminhamento. A VM é representada na topologia de exemplo como router-app-a. Tem duas interfaces, uma em network-a e outra em network-b.

    Quando cria a VM, tem de selecionar uma imagem de dispositivo virtual de rede. Esta imagem pode ser qualquer uma das seguintes opções:

    Para mais informações sobre como especificar imagens, consulte os seguintes recursos:

    Para obter informações detalhadas sobre como criar uma VM, consulte o artigo Criar e iniciar uma instância de VM.

    Os exemplos nesta secção pressupõem que reservou endereços IP para a instância do dispositivo de router. Para mais informações, consulte o artigo Endereços IP para o dispositivo Router.

    Consola

    Para criar a VM usada na configuração de exemplo, consulte o artigo Criar e iniciar uma instância de VM. Quando criar a VM, faça as seguintes escolhas:

    • Se quiser seguir as convenções de nomenclatura usadas na configuração de exemplo, use os seguintes valores:

      • Nome: router-app-a
      • Região:us-central1
      • Zona: us-central1-a
    • Para selecionar uma imagem, aceda à área Disco de arranque da página, clique em Alterar e navegue até à imagem adequada para a VM.

    • Expanda Opções avançadas e, de seguida, expanda Redes. Use os seguintes valores:

      • Em Encaminhamento de IP, selecione Ativar.
      • Em Interfaces de rede, crie duas interfaces: uma em network-a e outra em network-b. Para criar cada interface, selecione a rede adequada e, de seguida, clique em Adicionar uma interface de rede. Preencha os seguintes campos:
        • Selecione a sub-rede onde quer localizar a instância do dispositivo de router, por exemplo, subnet-a ou subnet-b.
        • Em IP interno principal, selecione o endereço IP interno RFC 1918 reservado que quer usar, por exemplo, 10.1.3.8 ou 192.168.10.3.
        • Em Nível de serviço de rede, selecione Premium. Esta opção maximiza a medida em que o tráfego usa a rede da Google.

    gcloud

    Para criar as duas VMs de dispositivo de encaminhamento usadas na configuração de exemplo, use o comando gcloud compute instances create.

    Execute o comando duas vezes: uma para cada instância do dispositivo de router. Substitua INSTANCE_NAME pelo nome da VM que funciona como uma instância de dispositivo de router.

    No exemplo seguinte, atribui o endereço IP interno estático e o endereço IP externo estático que reservou anteriormente à VM. Também especifica o projeto que contém uma imagem fornecida pelo fornecedor para a VM, juntamente com o nome da imagem.

      gcloud compute instances create INSTANCE_NAME \
          --project=PROJECT \
          --zone=ZONE \
          --machine-type=MACHINE_TYPE \
          --network-tier=NETWORK_TIER \
          --network-interface=[subnet=SUBNET,private-network-ip=INTERNAL_IP_ADDRESS] \
          --can-ip-forward \
          --image-project=IMAGE_PROJECT \
          --image=IMAGE
    

    Substitua o seguinte:

    • INSTANCE_NAME: o nome da VM que funciona como uma instância de dispositivo de encaminhamento, por exemplo, router-app-a ou router-app-b
    • PROJECT: o nome do projeto que contém as VMs do dispositivo de encaminhamento, por exemplo, my-project
    • ZONE: a zona em que a VM está localizada, por exemplo, us-west1-a Google Cloud
    • MACHINE_TYPE: o recurso de tipo de máquina a usar para a VM, por exemplo, n1-standard-2
    • NETWORK_TIER: quando criar as VMs do dispositivo de router, defina o nível de rede como premium; esta escolha maximiza a extensão em que o tráfego usa a rede da Google
    • SUBNET: a sub-rede atribuída à interface de rede principal da VM, por exemplo, subnet-a-1
    • INTERNAL_IP_ADDRESS: o endereço IP interno RFC 1918 atribuído à interface da VM que se liga ao Cloud Router, por exemplo, 10.0.1.10
    • IMAGE_PROJECT: o nome do projeto que contém a imagem especificada no campo image, por exemplo, debian-cloud
    • IMAGE: o nome da imagem a instalar, por exemplo, debian-10-buster-v20210217

    API

    Para criar as duas VMs de dispositivo de encaminhamento usadas na configuração de exemplo, use o método compute.instances.insert.

    Para ver métodos de criação adicionais, consulte o artigo Criar e iniciar uma instância de VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
     {
       "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
       "name": "INSTANCE_NAME",
       "canIpForward": "true",
       "networkInterfaces": [{
         "subnetwork": "regions/REGION/subnetworks/SUBNET",
         "networkIP": "INTERNAL_IP_ADDRESS",
         "accessConfigs": [{
             "networkTier": "NETWORK_TIER,
           }]
         }],
        "disks": [{
          "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
          },
          "boot": true
       }]
     }
    

    Substitua o seguinte:

    • PROJECT: o nome do projeto que contém as VMs do dispositivo de encaminhamento, por exemplo, my-project
    • ZONE: a zona em que a VM está localizada, por exemplo, us-west1-a Google Cloud
    • MACHINE_TYPE: o recurso de tipo de máquina a usar para a VM, por exemplo, zones/us-west1-a/machineTypes/n1-standard-2
    • INSTANCE_NAME: o nome da VM, por exemplo, router-app-a ou router-app-b
    • REGION: a região que contém a VM, por exemplo, us-west1
    • SUBNET: a sub-rede atribuída à interface de rede principal da VM, por exemplo, regions/us-west1/subnetworks/subnet-a-1
    • INTERNAL_IP_ADDRESS: o endereço IP interno RFC 1918 atribuído à VM; configure o endereço para a interface da VM que se liga ao Cloud Router, por exemplo, 10.0.1.10
    • NETWORK_TIER: quando criar as VMs do dispositivo de router, defina o nível de rede como premium; esta escolha maximiza a extensão em que o tráfego usa a rede da Google
    • IMAGE_PROJECT: o nome do projeto que contém a imagem especificada quando cria a VM, por exemplo, debian-cloud
    • IMAGE: o nome da imagem a usar ao criar a VM, por exemplo, debian-10-buster-v20210217

    Crie uma regra de firewall para permitir o BGP

    Crie duas regras de firewall, uma em network-a e outra em network-b. Cada regra deve permitir o tráfego BGP na porta TCP 179.

    Para mais informações sobre os comandos da firewall, consulte o artigo Usar regras da firewall.

    Consola

    Para criar uma regra de firewall de VPC através da Google Cloud consola, consulte o artigo Criar regras de firewall.

    gcloud

    Para criar uma regra de firewall de VPC através da Google Cloud CLI, consulte o artigo Criar regras de firewall.

    API

    Para criar uma regra de firewall da VPC através da API Compute Engine, consulte o artigo Criar regras de firewall.

    Crie recursos do Network Connectivity Center

    Antes de poder usar uma VM de dispositivo de encaminhamento, tem de criar os recursos do Network Connectivity Center necessários.

    Crie um hub

    Antes de poder criar raios do Centro de conectividade de rede, tem de criar um hub.

    Consola

    1. Na Google Cloud consola, aceda à página Centro de conetividade de rede.

      Aceder ao Network Connectivity Center

    2. No menu do projeto, selecione um projeto.

    3. Introduza um Nome do hub.

    4. Introduza uma Descrição opcional.

    5. Valide o ID do projeto. Se o ID do projeto estiver incorreto, selecione um projeto diferente através do menu na parte superior do ecrã.

    6. Clique em Continuar.

    7. A consola apresenta um formulário que lhe permite criar um spoke. Para o preencher já, siga os passos descritos no artigo Crie um spoke do dispositivo Router.

    8. Clique em Concluído.

    gcloud

    Para criar um hub, use o comando gcloud network-connectivity hubs create.

      gcloud network-connectivity hubs create HUB_NAME \
        --description="DESCRIPTION" \
        --labels="KEY"="VALUE"
    

    Substitua os seguintes valores:

    • HUB_NAME: o nome do novo hub
    • DESCRIPTION: texto opcional que descreve o hub
    • KEY: a chave no par de chave-valor para o texto da etiqueta opcional
    • VALUE: o valor no par de chave-valor para o texto da etiqueta opcional

    API

    Para criar um hub, use o método networkconnectivity.hubs.create.

      POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs
      {
        "name":"HUB_NAME",
        "description":"DESCRIPTION",
        "labels": {
          "KEY": "VALUE"
        }
      }
    

    Substitua os seguintes valores:

    • PROJECT_ID: o ID do projeto que contém o novo hub
    • HUB_NAME: o nome do novo hub
    • DESCRIPTION: texto opcional que descreve o hub
    • KEY: a chave no par de chave-valor para o texto da etiqueta opcional
    • VALUE: o valor no par de chave-valor para o texto da etiqueta opcional

    Crie dois raios do dispositivo router

    Crie dois raios de dispositivo Router. Ambos os spokes usam o mesmo recurso de apoio: a instância do dispositivo de encaminhamento que acabou de criar. Um raio usa a interface em network-a e o outro usa a interface em network- b.

    A criação de um spoke é necessária para ativar o peering BGP entre a instância do dispositivo de router e o Cloud Router, que cria no passo seguinte.

    Para mais informações sobre como criar um raio, consulte o artigo Trabalhe com hubs e raios.

    Consola

    Introduza os detalhes básicos do raio

    1. Na Google Cloud consola, aceda à página Centro de conetividade de rede.

      Aceder ao Network Connectivity Center

    2. No menu do projeto, selecione um projeto.

    3. Clique no separador Spokes.

    4. Clique em Adicionar raios.

    5. No formulário Novo raio, defina o Tipo de raio como Dispositivo de encaminhamento.

    6. Introduza um nome do raio, por exemplo, spoke-a ou spoke-b

    7. Opcionalmente, introduza uma Descrição.

    8. Selecione o campo Região para o novo spoke.

    9. Em Transferência de dados de site para site, selecione Desativar.

    10. Na lista pendente Rede de VPC, selecione uma rede.

    Introduza os detalhes do dispositivo do router

    1. Em Anexe instâncias ao spoke, use a lista pendente para selecionar um dispositivo de encaminhamento, por exemplo, router-app-a.
    2. Para adicionar mais instâncias de dispositivo de encaminhamento a este spoke, clique em Adicionar instância e repita o passo anterior.
    3. Quando terminar, clique em Concluído e continue para guardar o raio.

    Guarde os raios

    1. Para adicionar os segundos raios, clique em Adicionar raio e comece o processo novamente, começando por introduzir um Nome do raio.
    2. Quando terminar de adicionar raios, clique em Criar. A página Centro de conectividade de rede é atualizada para mostrar detalhes sobre os spokes que criou.

    gcloud

    Para criar os raios do dispositivo Router, use o comando gcloud network-connectivity spokes linked-router-appliances create. Execute o comando duas vezes, uma para cada spoke.

      gcloud network-connectivity spokes linked-router-appliances create NAME \
        --hub="HUB_URI" \
        --description="DESCRIPTION" \
        --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \
        --region=REGION \
        --labels="KEY"="VALUE"
     

    Substitua os seguintes valores:

    • NAME: o nome do spoke, por exemplo, spoke-a
    • HUB_URI: o URI do hub ao qual está a anexar o spoke
    • DESCRIPTION: texto opcional que descreve o raio
    • ROUTER_APPLIANCE_URI: o URI da instância do dispositivo router, por exemplo:
      https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
    • IP_ADDRESS: o endereço IP interno da instância do dispositivo de encaminhamento, na rede VPC adequada, por exemplo, 10.1.3.8 ou 192.168.10.3
    • REGION: a Google Cloud região onde quer localizar o spoke, por exemplo, us-central1
    • KEY: a chave no par de chave-valor para o texto da etiqueta opcional
    • VALUE: o valor no par de chave-valor para o texto da etiqueta opcional

      Por exemplo, o seguinte comando cria um spoke de dispositivo de encaminhamento que usa router-app-a como os respetivos recursos subjacentes. Este comando faz referência à instância do dispositivo de encaminhamento através da respetiva interface network-a:

      gcloud network-connectivity spokes linked-router-appliances create spoke-a \
          --hub=my-hub \
          --description="Test spoke 1" \
          --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=10.1.3.8 \
          --region=us-central1 \
      

      Por exemplo, o seguinte comando cria um spoke de dispositivo de encaminhamento que usa router-app-a como os respetivos recursos subjacentes. Este comando faz referência à instância do dispositivo de encaminhamento através da respetiva interface network-b:

      gcloud network-connectivity spokes linked-router-appliances create spoke-b \
          --hub=my-hub \
          --description="Test spoke 1" \
          --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=192.168.10.3\
          --region=us-central1 \
      

    API

    Para criar um spoke de dispositivo Router, use o networkconnectivity.spokes.create método. Para cada instância do dispositivo router que quer associar ao spoke, adicione uma instância usando a matriz linkedRouterApplianceInstances.instances.

      POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME
      {
        "hub": "HUB_URI",
        "labels": {"KEY": "VALUE"},
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "ROUTER_APPLIANCE_URI",
              "ipAddress": INTERNAL_IP_ADDRESS,
            },
          ],
          "siteToSiteDataTransfer": BOOLEAN
        }
      }
     

    Substitua os seguintes valores:

    • PROJECT_ID: o ID do projeto
    • REGION: a Google Cloud região onde quer localizar o spoke, por exemplo, us-west1
    • SPOKE_NAME: o nome que quer dar ao raio
    • HUB_URI: o URI do hub ao qual está a associar o spoke, por exemplo:
      http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME 
    • KEY: a chave no par de chave-valor para o texto da etiqueta opcional
    • VALUE: o valor no par de chave-valor para o texto da etiqueta opcional
    • ROUTER_APPLIANCE_URI: o URI da instância do dispositivo router, por exemplo:
      https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
    • IP_ADDRESS: o endereço IP interno da instância do dispositivo de encaminhamento para a rede VPC adequada, por exemplo, 10.1.3.8 ou 192.168.10.3
    • BOOLEAN: um valor que determina se a transferência de dados de site para site está ativada para este spoke; para este exemplo de utilização, defina a opção como false

      Por exemplo, para criar um raio que use router-app-a para a interface em network-a, o corpo do seu pedido deve ser estruturado da seguinte forma:

      {
        "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
      
        "labels": {
          "environment" : "test"
        },
      
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
              "ipAddress": "10.1.3.8",
            },
          ],
          "siteToSiteDataTransfer": false
        }
      }
      
      

      Para criar um raio que use router-app-a para a interface em network-b, o corpo do seu pedido deve ser estruturado da seguinte forma:

      {
        "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
      
        "labels": {
          "environment" : "test"
        },
      
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
              "ipAddress": "192.168.10.3",
            },
          ],
          "siteToSiteDataTransfer": false
        }
      }
      
      

    Configure routers do Cloud Router

    O dispositivo de router usa routers da nuvem para trocar trajetos com redes VPC. Por este motivo, tem de criar um Cloud Router em cada rede VPC e concluir algumas outras tarefas de configuração.

    Crie os Cloud Routers

    Se estiver a usar os mesmos valores que a topologia de exemplo, crie dois Cloud Routers, um em network-a e outro em network-b. Ambos os routers do Google Cloud devem estar em us-central1.

    Para mais informações, consulte o artigo Criar routers na nuvem.

    Consola

    Para criar um Cloud Router na Google Cloud consola, use uma das seguintes abordagens:

    • Use a página Cloud Router, conforme descrito em Crie um Cloud Router.

    • Use a página Network Connectivity Center. A vantagem desta abordagem é que permite criar o router, as interfaces e as sessões BGP ao mesmo tempo. Para mais informações sobre como concluir todos estes passos em conjunto, consulte o artigo Configurar a interligação BGP no Cloud Router.

    gcloud

    Para criar um Cloud Router, use o comando gcloud compute routers create.

      gcloud compute routers create NAME \
          --region=REGION \
          --network=NETWORK \
          --asn=ASN \
          --project=PROJECT_ID
    

    Substitua o seguinte:

    • NAME: o nome do Cloud Router, por exemplo, cloud-router-a ou cloud-router-b
    • REGION: a região que contém o Cloud Router, por exemplo, us-central1
    • NETWORK: a rede VPC que contém o Cloud Router, por exemplo, network-a ou network-b
    • ASN: o número do sistema autónomo (ASN) para o router na nuvem. Este ASN tem de ser um ASN privado de 16 ou 32 bits, conforme definido na RFC 6996. Por exemplo, 65000
    • PROJECT_ID: o ID do projeto do Cloud Router, por exemplo, my-project

    API

    Para criar um Cloud Router, use o métodocompute.routers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
    {
     "name": "NAME",
     "network": "NETWORK",
     "bgp": {
       "asn": ASN
      }
    }
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do Cloud Router, por exemplo, my-project
    • REGION: a região que contém o Cloud Router, por exemplo, us-central1
    • NAME: o nome do Cloud Router, por exemplo, cloud-router-a ou cloud-router-b
    • NETWORK: o URI da rede VPC que contém o Cloud Router, por exemplo, /global/networks/network-a ou /global/networks/network-b
    • ASN: o número do sistema autónomo (ASN) para o router na nuvem. Este ASN tem de ser um ASN privado de 16 ou 32 bits, conforme definido na RFC 6996. Por exemplo, 65000

    Crie duas interfaces em cada Cloud Router

    Para estabelecer a redundância, crie duas interfaces em cada Cloud Router. Em cada Cloud Router, as duas interfaces têm de estar associadas à mesma sub-rede que a interface do dispositivo de encaminhamento correspondente. Se estiver a usar os valores da topologia de exemplo, faça o seguinte:

    • Para cloud-router-a, crie duas interfaces em subnet-a.
    • Para cloud-router-b, crie duas interfaces em subnet-b.

    Cada interface do Cloud Router usa um endereço IP interno regional. Se especificar explicitamente o endereço IP interno da interface, o endereço IP tem de pertencer ao intervalo de endereços IP principal da sub-rede. Não pode estar já a ser usado por outro recurso, como uma VM ou outra interface do Cloud Router.

    Não existem Google Cloud instruções da consola para este passo. Se estiver a usar a consola, quando concluir a tarefa seguinte (Criar peering BGP em cada Cloud Router), as interfaces são criadas automaticamente. Google Cloud

    gcloud

    Para criar interfaces redundantes nos seus Cloud Routers, use o comando gcloud compute routers add-interface.

    Conclua os passos seguintes duas vezes: uma para cloud-router-a e outra para cloud-router-b:

    1. Para cada Cloud Router, crie a primeira interface:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name=FIRST_INTERFACE_NAME \
          --ip-address=FIRST_INTERFACE_IP_ADDRESS \
          --subnetwork=SUBNET \
          --region=REGION \
          --project=PROJECT_ID
      

      Substitua o seguinte:

      • ROUTER_NAME: o nome do Cloud Router a atualizar, por exemplo, cloud-router-a ou cloud-router-b
      • FIRST_INTERFACE_NAME: o nome da interface, por exemplo, interface-1
      • FIRST_INTERFACE_IP_ADDRESS: o endereço IP interno RFC 1918 a usar para a primeira interface; se não especificar um valor, a Google tenta encontrar um endereço livre no intervalo de endereços IP principal da sub-rede
      • SUBNET: a sub-rede que contém a interface do Cloud Router e a interface da instância do dispositivo do router correspondente
      • REGION: a Google Cloud região onde o Cloud Router está, por exemplo, us-central1
      • PROJECT_ID: o ID do projeto do Cloud Router, por exemplo, my-project
    2. Para cada router na nuvem, crie a segunda interface:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name=SECOND_INTERFACE_NAME \
          --ip-address=SECOND_INTERFACE_IP_ADDRESS \
          --subnetwork=SUBNET \
          --redundant-interface=FIRST_INTERFACE_NAME \
          --region=REGION \
          --project=PROJECT_ID
      

      Substitua o seguinte:

      • ROUTER_NAME: o nome do Cloud Router a atualizar, por exemplo, cloud-router-a ou cloud-router-b
      • SECOND_INTERFACE_NAME: o nome da interface, por exemplo, interface-2
      • SECOND_INTERFACE_IP_ADDRESS: o endereço IP interno RFC 1918 a usar para a segunda interface; se não especificar um valor, a Google tenta encontrar um endereço livre no intervalo de endereços IP principal da sub-rede
      • SUBNET: a sub-rede que contém as duas interfaces do Cloud Router e a interface da instância do dispositivo do router correspondente
      • FIRST_INTERFACE_NAME: o nome da interface que criou no passo 1
      • REGION: a Google Cloud região onde o Cloud Router está, por exemplo, us-central1
      • PROJECT_ID: o ID do projeto do Cloud Router, por exemplo, my-project

      Exemplos de comandos para cloud-router-a

      O seguinte comando cria a primeira interface em cloud-router-a:

      gcloud compute routers add-interface cloud-router-a \
          --interface-name=interface-1 \
          --ip-address=10.1.3.14 \
          --subnetwork=subnet-a \
          --region=us-central1 \
          --project=my-project
      

      O comando seguinte cria a segunda interface em cloud-router-a:

      gcloud compute routers add-interface cloud-router-a \
          --interface-name=interface-2 \
          --ip-address=10.1.3.15 \
          --subnetwork=subnet-a \
          --redundant-interface=interface-1 \
          --region=us-central1 \
          --project=my-project
      

      Exemplos de comandos para cloud-router-b

      O seguinte comando cria a primeira interface em cloud-router-b:

      gcloud compute routers add-interface cloud-router-b \
          --interface-name=interface-1 \
          --ip-address=192.168.10.14 \
          --subnetwork=subnet-b \
          --region=us-central1 \
          --project=my-project
      

      O comando seguinte cria a segunda interface em cloud-router-b:

      gcloud compute routers add-interface cloud-router-b \
         --interface-name=interface-2 \
         --ip-address=192.168.10.15 \
         --subnetwork=subnet-b \
         --redundant-interface=interface-1 \
         --region=us-central1 \
         --project=my-project
      

    API

    Para criar interfaces redundantes nos seus Cloud Routers, use o método compute.routers.patch.

    Use o seguinte pedido duas vezes: uma para cloud-router-a e outra para cloud-router-b:

        "PATCH
        https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
        {
          "region":"REGION",
          "interfaces":[
            {
              "name":"FIRST_INTERFACE_NAME",
              "privateIpAddress:"FIRST_INTERFACE_IP_ADDRESS",
              "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
            },
            {
              "name":"SECOND_INTERFACE_NAME",
              "privateIpAddress:"SECOND_INTERFACE_IP_ADDRESS",
              "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
              "redundantInterface": "FIRST_INTERFACE_NAME"
            }
          ]
        }
      

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do Cloud Router, por exemplo, my-project
    • REGION: a Google Cloud região onde o Cloud Router está, por exemplo, us-central1
    • NAME: o nome do Cloud Router a atualizar, por exemplo, cloud-router-a ou cloud-router-b
    • NETWORK: a rede VPC que contém o Cloud Router, por exemplo,network-a
    • FIRST_INTERFACE_NAME: o nome da primeira interface, por exemplo, interface-1
    • FIRST_INTERFACE_IP_ADDRESS: o endereço IP interno RFC 1918 a usar para a primeira interface; se não especificar um valor, a Google tenta encontrar um endereço livre no intervalo de endereços IP principal da sub-rede
    • SUBNET: a sub-rede que contém as duas interfaces do Cloud Router e a interface da instância do dispositivo do router correspondente
    • SECOND_INTERFACE_NAME: o nome da segunda interface, por exemplo, interface-2
    • SECOND_INTERFACE_IP_ADDRESS: o endereço IP interno RFC 1918 a usar para a segunda interface; se não especificar um valor, a Google tenta encontrar um endereço livre no intervalo de endereços IP principal da sub-rede

      Exemplos de comandos para cloud-router-a

      O seguinte comando cria duas interfaces em cloud-router-a:

       "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-a
        {
         "region":"us-central1",
         "interfaces":[
           {
            "name":"router-appliance-interface-0",
            "privateIpAddress:"10.1.3.14",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a"
           },
           {
            "name":"router-appliance-interface-1",
            "privateIpAddress:"10.1.3.15",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a",
            "redundantInterface": "router-appliance-interface-0"
           }
         ]
        }
       

      Exemplo de comando para cloud-router-b

      O seguinte comando cria duas interfaces em cloud-router-b:

      "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-b
       {
         "region":"us-central1",
         "interfaces":[
           {
            "name":"router-appliance-interface-0",
            "privateIpAddress:"192.168.10.14",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b"
         },
         {
            "name":"router-appliance-interface-1",
            "privateIpAddress:"192.168.10.15",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b",
            "redundantInterface": "router-appliance-interface-0"
         }
       ]
      }
      

    Configure o peering BGP em cada Cloud Router

    Para cada interface na instância do dispositivo de encaminhamento, tem de criar duas sessões de peering BGP, uma para cada interface do Cloud Router. Se estiver a usar os valores da topologia de exemplo, faça o seguinte:

    • Crie duas sessões de intercâmbio entre cloud-router-a e a interface network-a de router-app-a.

    • Crie duas sessões de intercâmbio entre cloud-router-b e a interface network-b de router-app-a.

    Consola

    Conclua os passos seguintes duas vezes: uma para spoke-a e outra para spoke-b:

    1. Aceda à página Network Connectivity Center.
    2. Aceder ao Network Connectivity Center
    3. No menu do projeto, selecione um projeto.
    4. Clique no separador Spokes.
    5. Na coluna Nome do spoke, selecione um spoke para ver a página Detalhes do spoke. Por exemplo, selecione spoke-a ou spoke-b.
    1. Na coluna Nome, localize router-app-a. Clique no ícone de expansão para apresentar os links Configurar sessão BGP. Clique num destes links. Em resposta, o sistema apresenta o painel Configurar sessões de BGP e Cloud Router.

    1. Na secção Router na nuvem, faça uma das seguintes ações:

      • Para selecionar um Cloud Router existente, clique em Usar existente. Use o campo Cloud Router para identificar o recurso adequado e, de seguida, clique em Selecionar e continuar.
      • Para criar um Cloud Router na página Network Connectivity Center, clique em Criar novo e siga as instruções para criar o Cloud Router. Em seguida, clique em Criar e continuar.
    2. Em Sessões de BGP, configure as duas sessões de BGP. Conclua os seguintes passos duas vezes, uma para cada sessão:
      1. Clique em Editar sessão BGP.
      2. Preencha o formulário introduzindo um Nome, um ASN de pares e uma Prioridade de rota anunciada (MED). Clique em Guardar e continuar.
    3. Clique em Criar.

    gcloud

    Para criar pares BGP nos seus Cloud Routers, use o comando gcloud compute routers add-bgp-peer.

    Conclua os passos seguintes duas vezes: uma para cloud-router-a e outra para cloud-router-b:

    1. Crie o primeiro ponto de troca BGP:

      gcloud compute routers add-bgp-peer NAME \
          --peer-name=PEER_NAME \
          --interface=INTERFACE \
          --peer-ip-address=PEER_IP_ADDRESS \
          --peer-asn=PEER_ASN \
          --instance=ROUTER_APPLIANCE \
          --instance-zone=ROUTER_APPLIANCE_ZONE \
          --region=REGION
      
    2. Crie o segundo ponto de troca de tráfego BGP:

      gcloud compute routers add-bgp-peer NAME \
          --peer-name=PEER_NAME \
          --interface=INTERFACE \
          --peer-ip-address=PEER_IP_ADDRESS \
          --peer-asn=PEER_ASN \
          --instance=ROUTER_APPLIANCE \
          --instance-zone=ROUTER_APPLIANCE_ZONE \
          --region=REGION
      

      Substitua o seguinte:

      • NAME: o nome do Cloud Router a atualizar, por exemplo, cloud-router-a ou cloud-router-b
      • PEER_NAME: o nome da sessão de peering de BGP a estabelecer com a instância do dispositivo de router
      • INTERFACE: o nome da interface para este par BGP
      • PEER_IP_ADDRESS: o endereço IP interno do router de pares (a instância do dispositivo de router), por exemplo, 10.1.3.8 ou 192.168.10.3
      • PEER_ASN: o número do sistema autónomo (ASN) do BGP para este par do BGP. Este ASN tem de ser um ASN privado de 16 ou 32 bits conforme definido na RFC 6996
      • ROUTER_APPLIANCE: o nome da VM que atua como a instância do dispositivo de encaminhamento, por exemplo, router-app-a
      • ROUTER_APPLIANCE_ZONE: a zona onde se encontra a VM que atua como a instância do dispositivo de router. Por exemplo, us-central1-a
      • REGION: a região onde a VM que funciona como a instância do dispositivo de encaminhamento está localizada, por exemplo, us-central1

      Exemplos de comandos para cloud-router-a

      Use os seguintes comandos para criar os pares BGP para cloud-router-a:

      gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-a-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=10.1.3.8 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      
      gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-a-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=10.1.3.8 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      

      Exemplos de comandos para cloud-router-b

      Use os seguintes comandos para criar os pares BGP para cloud-router-b:

      gcloud compute routers add-bgp-peer cloud-router-b \
         --peer-name=router-appliance-bgp-peer-router-app-a-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=192.168.10.3 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      
      gcloud compute routers add-bgp-peer cloud-router-b \
        --peer-name=router-appliance-bgp-peer-router-app-a-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=192.168.10.3 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      

    API

    Para criar pares BGP num Cloud Router, use o método compute.routers.patch. Use este método duas vezes: uma para cloud-router-a e outra para cloud-router-b.

     PATCH
    https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
       {
        "bgpPeers": [
         {
           "name": "PEER_NAME",
           "interfaceName": "INTERFACE_NAME",
           "ipAddress": "IP_ADDRESS",
           "peerIpAddress": "PEER_IP_ADDRESS",
           "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
           "peerAsn": PEER_ASN,
         }
         {
           "name": "PEER_NAME",
           "interfaceName": "INTERFACE_NAME",
           "ipAddress": "IP_ADDRESS",
           "peerIpAddress": "PEER_IP_ADDRESS",
           "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
           "peerAsn": PEER_ASN
         }
        ]
       }
     

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto do Cloud Router
    • REGION: a região onde a VM que atua como a instância do dispositivo de encaminhamento está localizada
    • NAME: o nome do Cloud Router a atualizar
    • PEER_NAME: o nome da sessão de peering de BGP a estabelecer com a instância do dispositivo de router
    • INTERFACE_NAME: o nome da interface do Cloud Router à qual adicionar o par
    • IP_ADDRESS: o endereço IP interno RFC 1918 do router na nuvem a usar para a sessão de peering
    • PEER_IP_ADDRESS: o endereço IP interno da VM que atua como uma instância de dispositivo de router; por exemplo, 10.1.3.8 ou 192.168.10.3
    • ROUTER_APPLIANCE_INSTANCE: o nome no formato de URL para a VM que atua como a instância do dispositivo de encaminhamento
    • ROUTER_APPLIANCE_ZONE: a zona onde se encontra a VM que atua como instância do dispositivo de router
    • PEER_ASN: o número do sistema autónomo (ASN) do BGP para este par do BGP. Este ASN tem de ser um ASN privado de 16 ou 32 bits conforme definido na RFC 6996

      Exemplos de comandos para cloud-router-a

      PATCH
      https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
      {
       "bgpPeers": [
       {
         "name": "router-appliance-bgp-peer-router-app-a-0",
         "interfaceName": "router-appliance-interface-0",
         "ipAddress": "10.1.3.14",
         "peerIpAddress": "10.1.3.8",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001,
       }
       {
         "name": "router-appliance-bgp-peer-router-app-a-1",
         "interfaceName": "router-appliance-interface-1",
         "ipAddress": "10.1.3.15",
         "peerIpAddress": "10.1.3.8",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001
       }
       ]
      }
      

      Exemplos de comandos para cloud-router-b

      PATCH
      https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-b
      {
       "bgpPeers": [
       {
         "name": "router-appliance-bgp-peer-router-app-a-0",
         "interfaceName": "router-appliance-interface-0",
         "ipAddress": "192.168.10.14",
         "peerIpAddress": "192.168.10.3",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001,
       }
       {
         "name": "router-appliance-bgp-peer-router-app-a-1",
         "interfaceName": "router-appliance-interface-1",
         "ipAddress": "192.168.10.15,
         "peerIpAddress": "192.168.10.3",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001
       }
       ]
      }
      

    Configure o BGP na instância do dispositivo de encaminhamento

    Configure a instância do dispositivo de router para a conetividade BGP aos dois Cloud Routers. Para o fazer, consulte a documentação do fornecedor da imagem do dispositivo de router.

    O que se segue?