Criar instâncias de appliance do roteador

O dispositivo roteador é um dos vários tipos de spoke compatíveis com o Network Connectivity Center. Veja nesta página como criar e configurar uma instância do dispositivo roteador. Conforme a abordagem escolhida, algumas partes do processo podem ser automatizadas. No entanto, todas as tarefas necessárias precisam ser concluídas antes de estabelecer a conectividade usando um spoke de dispositivo roteador.

As tarefas necessárias incluem:

  1. Crie a VM que você quer usar como instância do dispositivo roteador. É possível criar a VM usando uma solução de parceiro compatível ou sua própria imagem personalizada.

  2. Verifique se a instância do appliance do roteador está acessível para o tráfego BGP por meio da porta TCP 179. Para garantir essa acessibilidade, talvez seja necessário criar uma regra de firewall.

  3. Crie um spoke que use a instância do seu roteador.

  4. Configure um Cloud Router. Esta tarefa inclui as seguintes subtarefas:

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

    2. Criar duas interfaces no Cloud Router.

    3. Configurar o peering do BGP no Cloud Router.

  5. Configure o peering do BGP na instância do dispositivo do roteador.

A maneira como você conclui essas tarefas pode variar significativamente. Por exemplo, se você criar uma instância de dispositivo de roteador usando uma solução de parceiro, algumas das tarefas posteriores poderão ser automatizadas para você.

O Network Connectivity Center permite implementar uma arquitetura hub e spoke para o gerenciamento da conectividade de rede no Google Cloud. Saiba mais na Visão geral do Network Connectivity Center.

Exemplo de configuração

Veja nesta página como definir um exemplo de configuração site a nuvem. Nesta configuração, duas instâncias do dispositivo roteador fornecem conectividade entre uma rede de nuvem privada virtual (VPC, na sigla em inglês) e uma rede local. O Network Connectivity Center usa o roteamento de vários caminhos de custo igual (ECMP, na sigla em inglês) para balancear a carga do tráfego nas instâncias do dispositivo roteador. Ele usa o Border Gateway Protocol (BGP) para distribuir rotas entre as redes.

A configuração de amostra coloca as instâncias do dispositivo roteador na mesma sub-rede. No entanto, cada instância do dispositivo roteador está em uma zona diferente.

Cada instância do dispositivo roteador mantém as sessões do BGP com o mesmo Cloud Router. Esse Cloud Router tem duas interfaces. Cada instância do dispositivo roteador faz peering com cada uma dessas interfaces, totalizando quatro sessões de peering.

Essa topologia não exemplifica a transferência de dados site a site. No entanto, as instruções para configurar essa topologia são quase idênticas às que você usaria para metade de uma topologia de transferência de dados site a site. As exceções estão explicadas nas instruções. Saiba mais sobre a transferência de dados site a site na Visão geral do roteador Router.

Como criar sessões do BGP para dispositivos do roteador
Como criar sessões do BGP para instâncias do dispositivo de roteador (clique para ampliar)

Antes de começar

Antes de começar, leia as seções a seguir.

Crie ou selecione um projeto.

Para facilitar a configuração do Network Connectivity Center, identifique 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.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  1. Se você estiver usando a Google Cloud CLI, defina o ID do projeto usando o comando gcloud config set.

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo ID exclusivo do seu projeto.

    As instruções da CLI gcloud nesta página presumem que você tenha definido o ID do projeto.

  1. Para confirmar se você definiu o ID do projeto corretamente, use o comando gcloud config list.

    gcloud config list --format='text(core.project)'

Ativar a API Network Connectivity

Antes de executar qualquer tarefa do Network Connectivity Center, é necessário ativar a API Network Connectivity.

Console

Para ativar a API Network Connectivity:

  1. No console do Google Cloud, acesse a página do Network Connectivity Center.

    Acessar o Network Connectivity Center

  2. Clique em Ativar.

Como alternativa, é possível ativar a API usando a biblioteca de APIs do console do Google Cloud, conforme descrito em Como ativar APIs.

Conseguir acesso

Para trabalhar com o Network Connectivity Center, você precisa das permissões descritas em Papéis e permissões.

Ao configurar o Network Connectivity Center, você também trabalha com recursos do Google Cloud, como redes VPC, sub-redes e regras de firewall. Para mais informações sobre as permissões necessárias para trabalhar com esses recursos, consulte a documentação de controle de acesso do Compute Engine.

Endereços IP e instâncias de dispositivo do roteador

Para configurar uma instância de dispositivo de roteador, estabeleça o peering entre a instância e o Cloud Router. Para configurar o peering, a VM precisa usar um endereço IP interno RFC 1918. Não é possível fazer o peering desses dois recursos se a VM usar um tipo de endereço diferente.

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

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

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

Recomendamos que você forneça à instância do dispositivo de roteador um endereço IP interno estático para que o endereço não seja alterado durante a reinicialização. Se o endereço for alterado, o peering do BGP falhará.

Você tem várias opções para atribuir um endereço IP reservado. É possível reservar o endereço IP com antecedência. Como alternativa, é possível reservar o endereço IP ao criar a VM. Se você atribuir um endereço temporário à VM, poderá convertê-lo em um endereço estático posteriormente. Para mais informações sobre endereços IP estáticos, consulte Como reservar um endereço IP interno estático.

Endereços IP para peering do BGP

Uma instância de dispositivo de roteador usa o endereço IP interno para fazer peering com o Cloud Router. A instância não usa um endereço link-local (como 169.254.x.x) para o peering do BGP.

Da mesma forma, o Cloud Router usa dois endereços IP internos RFC 1918 para fazer o peering com a instância do dispositivo do roteador, um endereço para cada interface. Esses endereços IP podem ser atribuídos de modo manual ou automático da sub-rede que contém a instância do dispositivo do roteador e a interface do Cloud Router.

Criar recursos da VPC

As seções a seguir descrevem como criar uma rede e uma sub-rede VPC.

Crie uma rede VPC

Se ainda não tiver feito isso, crie uma rede VPC. Defina o modo de roteamento dinâmico da rede como global.

Para mais informações sobre como criar redes VPC, consulte Criar redes.

Console

Para criar uma rede VPC personalizada usando o console do Google Cloud, consulte Como criar uma rede de modo personalizado. Defina o Modo de roteamento dinâmico como Global. Se você quiser seguir as convenções de nomenclatura usadas na configuração de amostra, chame sua rede network-a.

gcloud

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

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

Substitua NETWORK pelo nome da rede VPC. Por exemplo, network-a.

API

Para criar uma rede VPC personalizada usando a API Compute Engine, consulte Criar e gerenciar redes VPC.

Criar uma sub-rede

Crie uma sub-rede em network-a para conter as instâncias de VM usadas como instâncias do dispositivo do roteador.

Console

Para adicionar uma sub-rede usando o console do Google Cloud, consulte Como adicionar sub-redes.

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

  • Name: subnet-a-1
  • Região: us-west1
  • Intervalo: 10.0.1.0/24

gcloud

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

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

Substitua:

  • SUBNET: o nome da sub-rede que contém a VM do dispositivo do roteador. Por exemplo, subnet-a-1.
  • NETWORK: a rede que contém a sub-rede, por exemplo, network-a.
  • REGION: a região que contém a sub-rede, por exemplo, us-west1.
  • RANGE: o intervalo de IP da sub-rede na notação CIDR, por exemplo, 10.0.1.0/24.

API

Para criar uma sub-rede VPC usando a API Compute Engine, consulte Criar e gerenciar redes VPC.

Criar VMs de dispositivo roteador

Criar as VMs do Compute Engine que atuam como instâncias de appliance do roteador. A configuração de amostra usa duas VMs, router-app-a e router-app-b.

Em um nível alto, você cria uma imagem de dispositivo de roteador criando uma VM que usa uma imagem de dispositivo virtual de rede. Essa imagem pode ser qualquer uma destas:

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

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

Os exemplos nesta seção pressupõem que você tem endereços IP reservados para a instância do dispositivo do roteador. Para mais informações, consulte Endereços IP e instâncias do dispositivo roteador.

Console

Para criar as duas VMs mostradas na configuração de amostra, consulte Criar e iniciar uma instância de VM. Ao criar a VM, faça as seguintes opções:

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

    • Nome: router-app-a ou router-app-b
    • Região:us-west1
    • Zona: us-west1-a ou us-west1-b
  • Para selecionar uma imagem, acesse a área Disco de inicialização da página, clique em Alterar e navegue até a imagem apropriada para a VM.

  • Expanda Opções avançadas e depois Rede. Use os valores a seguir:

    • Em Encaminhamento de IP, selecione Ativar.
    • Em Interfaces de rede, selecione Adicionar uma interface de rede e preencha os seguintes campos:
      • Selecione a Sub-rede em que você quer localizar a instância do dispositivo do roteador, por exemplo, subnet-a-1.
      • Em IP interno primário, selecione o endereço IP interno RFC 1918 reservado que você quer usar, por exemplo, 10.0.1.10.
      • Em Nível de serviço de rede, selecione Premium; Essa escolha maximiza a extensão em que o tráfego usa a rede do Google.

gcloud

Para criar as duas VMs do dispositivo de roteador mostradas na configuração de amostra, use o comando gcloud compute instances create. Use o comando duas vezes, uma vez para criar router-app-a e novamente para criar router-app-b.

O snippet de amostra a seguir atribui à VM um endereço IP interno estático e um endereço IP externo estático. Ele também especifica uma imagem fornecida pelo fornecedor para usar na VM.

  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:

  • INSTANCE_NAME: o nome da VM que atua como uma instância do dispositivo roteador, por exemplo, router-app-a ou router-app-b.
  • PROJECT: o nome do projeto que contém as VMs do dispositivo do roteador. Por exemplo, my-project.
  • ZONE: a zona do Google Cloud em que a VM está localizada, por exemplo, us-west1-a.
  • MACHINE_TYPE: o recurso do tipo de máquina a ser usado para a VM, por exemplo, n1-standard-2.
  • NETWORK_TIER: ao criar as VMs do dispositivo do roteador, defina o nível da rede como premium; Essa opção maximiza até que ponto o tráfego usa a rede do 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 conecta 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 ser instalada. Por exemplo, debian-10-buster-v20210217.

API

Para criar as duas VMs do dispositivo roteador mostradas na configuração de amostra, use o método compute.instances.insert. Use o método duas vezes: uma para criar router-app-a e outra para router-app-b.

O snippet de amostra a seguir atribui à VM um endereço IP interno estático e um endereço IP externo estático. Ele também especifica uma imagem fornecida pelo fornecedor para usar na 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:

  • PROJECT: o nome do projeto que contém as VMs do dispositivo do roteador. Por exemplo, my-project.
  • ZONE: a zona do Google Cloud em que a VM está localizada, por exemplo, us-west1-a.
  • MACHINE_TYPE: o recurso do tipo de máquina a ser usado 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 da interface da VM que se conecta ao Cloud Router, por exemplo, 10.0.1.10
  • NETWORK_TIER: ao criar as VMs do dispositivo do roteador, defina o nível da rede como premium; Essa opção maximiza até que ponto o tráfego usa a rede do Google
  • IMAGE_PROJECT: o nome do projeto que contém a imagem especificada ao criar a VM, por exemplo, debian-cloud
  • IMAGE: o nome da imagem a ser usada ao criar a VM, por exemplo, debian-10-buster-v20210217.

Criar uma regra de firewall para permitir o BGP

Crie uma regra de firewall que permita o tráfego do BGP para network-a na porta TCP 179.

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

Console

Para criar uma regra de firewall da VPC usando o console do Google Cloud, consulte Usar regras de firewall da VPC.

gcloud

Saiba como criar uma regra de firewall da VPC usando a Google Cloud CLI em Usar regras de firewall da VPC.

API

Para criar uma regra de firewall VPC usando a API Compute Engine, consulte Usar regras de firewall VPC.

Criar recursos do Network Connectivity Center

Antes de usar uma VM de dispositivo roteador, você precisa criar os recursos necessários do Network Connectivity Center, incluindo um spoke de roteador.

Criar um hub

Antes de criar spokes do Network Connectivity Center, é preciso criar um hub.

Console

  1. No console do Google Cloud, acesse a página do Network Connectivity Center.

    Acessar o Network Connectivity Center

  2. No menu do projeto, selecione um projeto.

  3. Insira um nome do hub.

  4. Insira uma descrição opcional.

  5. Verifique o ID do projeto. Se o ID do projeto estiver incorreto, selecione um projeto diferente usando o menu na parte superior da tela.

  6. Clique em Continuar.

  7. O console exibe um formulário que permite criar um spoke. Para preenchê-lo agora, use as etapas descritas em Criar um spoke de dispositivo com roteador.

  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 do texto do rótulo opcional
  • VALUE: o valor no par de chave-valor do texto do rótulo 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 do texto do rótulo opcional
  • VALUE: o valor no par de chave-valor do texto do rótulo opcional

Criar um spoke de dispositivo roteador

Crie um spoke de dispositivo do roteador que use as duas instâncias do appliance do roteador que você acabou de criar. A criação de um spoke é necessária para ativar o peering do BGP entre a instância do dispositivo do roteador e o Cloud Router, que você criará na próxima etapa.

Saiba mais sobre como criar um spoke em Trabalhar com hubs e spokes.

Console

Inserir detalhes básicos do spoke

  1. No console do Google Cloud, acesse a página do Network Connectivity Center.
  2. Acessar o Network Connectivity Center
  3. No menu suspenso, selecione um projeto.
  4. Clique na guia Spokes.
  5. Clique em Add spokes.
  6. No formulário Novo spoke, defina o Tipo de spoke.
  7. Insira um Nome de spoke e, opcionalmente, uma Descrição.
  8. Selecione o campo Região para o novo spoke.
  9. Em Transferência de dados site a site, selecione Ativado ou Desativado. Se a região selecionada não oferecer suporte para a transferência de dados, o campo será desativado. Saiba mais sobre esse caso de uso na Visão geral da transferência de dados site a site.
  10. Na lista suspensa Rede VPC, selecione uma rede. Se você tiver mais de um spoke que use o recurso de transferência de dados, todos esses spokes deverão estar na mesma rede VPC. Portanto, se você já tiver criado um spoke que usa a transferência de dados, o valor da Rede VPC será preenchido automaticamente e não poderá ser alterado.

Inserir detalhes do dispositivo de roteador

  1. Defina o Spoke type como Router Appliance.
  2. Selecione a Região do spoke.
  3. Escolha uma instância do roteador:
    1. Clique em Adicionar instância.
    2. No menu Instâncias, selecione uma instância de dispositivo de roteador existente.
  4. Para adicionar mais instâncias do dispositivo de roteador a este spoke, repita a etapa anterior. Quando terminar, clique em Concluído e continue para Salvar o spoke.

Salvar o spoke

  1. Se quiser adicionar mais spokes, clique em Adicionar spoke e comece o processo novamente, primeiramente inserindo um Nome do spoke.
  2. Quando terminar de adicionar os spokes, clique em Criar. A página Network Connectivity Center é atualizada para mostrar detalhes sobre os spokes que você criou.

gcloud

Para criar um spoke do dispositivo roteador, use o comando gcloud network-connectivity spokes linked-router-appliances create.

O snippet de amostra a seguir cria um spoke com duas instâncias de appliance do roteador. Neste exemplo, o spoke não usa o recurso de transferência de dados site a site. Para ativar a transferência de dados, adicione mais uma sinalização: --site-to-site-data-transfer.

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

Substitua os seguintes valores:

  • NAME: o nome do spoke
  • HUB_NAME: o nome do hub ao qual você está anexando o spoke
  • DESCRIPTION: texto opcional que descreve o spoke. Por exemplo: us-vpn-spoke
  • ROUTER_APPLIANCE_URI: o nome da instância do dispositivo roteador. Por exemplo,
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: o endereço IP interno da primeira instância do appliance de roteador
  • ROUTER_APPLIANCE_URI_2: o URI da segunda instância do appliance do roteador
  • IP_ADDRESS_2: o endereço IP interno da segunda instância do appliance de roteador
  • REGION: a região do Google Cloud em que você quer localizar o spoke, por exemplo, us-west1
  • KEY: a chave no par de chave-valor do texto do rótulo opcional
  • VALUE: o valor no par de chave-valor do texto do rótulo opcional

    Por exemplo, o comando a seguir cria um spoke do appliance que usa router-app-a e router-app-b como recursos subjacentes:

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

    Para criar o mesmo spoke, mas ativar a transferência de dados, use este comando:

    gcloud network-connectivity spokes linked-router-appliances create my-spoke \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \
        --region=us-west1 \
        --labels="environment"="test"
        --site-to-site-data-transfer
    

API

Para criar um spoke do dispositivo roteador, use o método networkconnectivity.spokes.create.

O snippet de amostra a seguir cria um spoke com duas instâncias do dispositivo roteador. Cada instância está incluída na 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,
        },
        {
          "virtualMachine": "ROUTER_APPLIANCE_URI_2,
          "ipAddress": INTERNAL_IP_ADDRESS_2,
        }
      ],
      "siteToSiteDataTransfer": BOOLEAN
    }
  }
 

Substitua os seguintes valores:

  • PROJECT_ID: o ID do projeto
  • REGION: a região do Google Cloud em que você quer localizar o spoke, por exemplo, us-west1
  • SPOKE_NAME: o nome que você quer dar ao dicionário.
  • HUB_URI: o URI do hub a que você está anexando 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 do texto do rótulo opcional
  • VALUE: o valor no par de chave-valor do texto do rótulo opcional
  • ROUTER_APPLIANCE_URI: o nome da instância do dispositivo roteador. Por exemplo,
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: o endereço IP interno da primeira instância do appliance de roteador
  • ROUTER_APPLIANCE_URI_2: o URI da segunda instância do appliance do roteador
  • IP_ADDRESS_2: o endereço IP interno da segunda instância do appliance de roteador
  • BOOLEAN: um valor que determina se a transferência de dados site a site está ativada para esse spoke.

    Por exemplo, para criar um spoke que usa router-app-a e router-app-b como seus recursos subjacentes, o corpo da sua solicitação deve ser estruturado da seguinte maneira:

    {
      "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-west1-a/instances/router-app-a",
             "ipAddress": "10.0.1.10",
           },
           {
             "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",
             "ipAddress":  "10.0.1.11",
           }
        ],
        "siteToSiteDataTransfer": true
      }
    }
    
    

Configurar um Cloud Router

O appliance do Cloud Router usa um Cloud Router para trocar rotas com sua rede VPC. Por isso, é preciso criar um Cloud Router e concluir algumas outras tarefas de configuração.

Criar um Cloud Router

Crie o recurso na mesma rede e região na qual a VM do roteador está. Na configuração de amostra, esses recursos são network-a e us-west1.

Para mais informações, consulte Criar um Cloud Router.

Console

Para criar um Cloud Router no console do Google Cloud, use uma das seguintes abordagens:

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

  • Use a página Centro de conectividade de rede. A vantagem dessa abordagem é que ela permite criar o roteador, as interfaces e as sessões do BGP ao mesmo tempo. Para mais informações sobre como concluir todas essas etapas, consulte Configurar o peering do 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:

  • NAME: o nome do Cloud Router. Por exemplo, cloud-router-a.
  • REGION: a região que contém o Cloud Router. Por exemplo, us-west1.
  • NETWORK: a rede VPC que contém o Cloud Router. Por exemplo, network-a.
  • ASN: o número de sistema autônomo (ASN, na sigla em inglês) do Cloud Router. Esse ASN precisa ser um ASN privado de 16 ou 32 bits, conforme definido na RFC 6996, por exemplo, 65000
  • PROJECT_ID: o ID do projeto para o Cloud Router. Por exemplo, my-project.

API

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

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

Substitua:

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

Criar duas interfaces redundantes no Cloud Router

Crie duas interfaces redundantes do Cloud Router que, na configuração de amostra, estejam associadas a subnet-a-1.

A interface do Cloud Router usa um endereço IP interno regional.

Se você especificar o endereço IP interno da interface, o endereço IP precisará pertencer ao intervalo de endereços IP primário da sub-rede. Ele não pode estar sendo usado por outro recurso, como uma VM ou uma interface diferente do Cloud Router. Para reservar um endereço IP da sub-rede com antecedência, crie um recurso de endereço e use o endereço IP reservado para a interface do Cloud Router.

Não há instruções do console do Google Cloud para esta etapa, porque ao criar um peering do BGP usando o console do Google Cloud, as interfaces são criadas automaticamente.

gcloud

Para criar as duas interfaces redundantes do Cloud Router mostradas na configuração da amostra, use o comando gcloud compute routers add-interface. Use o comando duas vezes: uma vez para criar router-appliance-interface-0 e novamente para criar router-appliance-interface-1.

Se você não especificar a opção --ip-address, o Google tentará encontrar um endereço IP gratuito do intervalo de IP principal da sub-rede para ser atribuído à interface.

  1. Crie a primeira interface do Cloud Router:

    gcloud compute routers add-interface NAME \
        --interface-name=INTERFACE_NAME \
        --ip-address=IP_ADDRESS \
        --subnetwork=SUBNET \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Crie a interface redundante do Cloud Router:

    gcloud compute routers add-interface NAME \
        --interface-name=INTERFACE_2_NAME \
        --ip-address=IP_ADDRESS \
        --subnetwork=SUBNET \
        --redundant-interface=INTERFACE_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    Substitua:

    • NAME: o nome do Cloud Router a ser atualizado. Por exemplo, cloud-router-a.
    • INTERFACE_NAME: o nome da interface. Por exemplo, router-appliance-interface-0.
    • IP_ADDRESS: o endereço IP interno RFC 1918 a ser usado para a interface, por exemplo, 10.0.1.5 ou 10.0.1.6.
    • SUBNET: a sub-rede que inclui o endereço IP interno, por exemplo, subnet-a-1
    • INTERFACE_2_NAME: a interface redundante do Cloud Router que faz peering com a mesma instância do dispositivo do roteador da interface principal. Por exemplo, router-appliance-interface-1
    • REGION: a região do Google Cloud em que o Cloud Router está. Por exemplo, us-west1.
    • PROJECT_ID: o ID do projeto para o Cloud Router. Por exemplo, my-project.
  • O comando a seguir cria a primeira interface no Cloud Router, conforme descrito na configuração de amostra:

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=router-appliance-interface-0 \
        --ip-address=10.0.1.5 \
        --subnetwork=subnet-a-1 \
        --region=us-west1 \
        --project=my-project
    
  • O comando a seguir cria as interfaces redundantes no Cloud Router, conforme descrito na configuração de amostra:

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=router-appliance-interface-1 \
        --ip-address=10.0.1.6 \
        --subnetwork=subnet-a-1 \
        --redundant-interface=router-appliance-interface-0 \
        --region=us-west1 \
        --project=my-project
    

API

Para criar as duas interfaces redundantes do Cloud Router mostradas na configuração da amostra, use o método compute.routers.patch. Use o método duas vezes, uma vez para criar router-appliance-interface-0 e novamente para criar router-appliance-interface-1.

Se você não especificar a opção privateIpAddress, o Google tentará encontrar um endereço IP gratuito do intervalo de IP principal da sub-rede para ser atribuído à interface.

  1. Crie a primeira interface do Cloud Router:

    "PATCH
    https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
    {
      "region":"REGION",
      "interfaces":[
        {
          "name":"INTERFACE_NAME",
          "privateIpAddress:"IP_ADDRESS",
          "subnetwork": "https":"//www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
        }
      ]
    }
    
  2. Crie a interface redundante do Cloud Router:

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

    Substitua:

    • PROJECT_ID: o ID do projeto para o Cloud Router. Por exemplo, my-project.
    • REGION: a região do Google Cloud em que o Cloud Router está. Por exemplo, us-west1.
    • NAME: o nome do Cloud Router a ser atualizado. Por exemplo, cloud-router-a.
    • NETWORK: a rede VPC que contém o Cloud Router, por exemplo, network-a
    • INTERFACE_NAME_1: o nome da interface principal. Por exemplo, router-appliance-interface-0
    • SUBNET: o URL da sub-rede que contém o endereço IP interno RFC 1918.
    • IP_ADDRESS: o endereço IP interno a ser usado para a interface, por exemplo, 10.0.1.5 ou 10.0.1.6.
    • INTERFACE_NAME_2: o nome da interface redundante do Cloud Router, por exemplo, router-appliance-interface-1
  • O comando a seguir cria a primeira interface em cloud-router-a, conforme descrito na configuração de amostra:

    "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
    {
    "region":"us-west1",
    "interfaces":[
      {
        "name":"router-appliance-interface-0",
        "privateIpAddress:"10.0.1.5",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/>"
      }
    ]
    }
    
  • O comando a seguir cria as interfaces redundantes em cloud-router-a, conforme descrito na configuração de amostra:

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

Configurar o peering do BGP no Cloud Router

Para cada instância do dispositivo roteador, é necessário criar dois peerings do BGP no Cloud Router, um para cada interface do Cloud Router. O endereço IP de peering do BGP precisa ser o endereço IP interno principal da VM configurada como uma instância do dispositivo roteador.

Crie pares do BGP para router-app-a

Nesta seção, descrevemos como criar dois peerings de BGP para a instância do dispositivo roteador chamada router-app-a na configuração da amostra. A próxima seção descreve como criar dois peerings de BGP em router-app-b.

O exemplo a seguir mostra como configurar router-app-a como um peering do BGP em ambas as interfaces do Cloud Router cloud-router-a.

Console

  1. Acesse a página Network Connectivity Center.
  2. Acessar o Network Connectivity Center
  3. No menu suspenso, selecione um projeto.
  4. Clique na guia Spokes.
  5. Na coluna Nome do spoke, selecione um spoke para visualizar a página Detalhes do spoke.

  1. Na coluna Nome, localize router-app-a. Clique no ícone de expansão para exibir os links Configurar sessão do BGP. Clique em um desses links. Em resposta, o sistema exibe o painel Configurar o Cloud Router e as sessões do BGP.

  1. Em Cloud Router, siga um destes procedimentos:

    • Para selecionar um Cloud Router existente, clique em Usar existente. Use o campo Cloud Router para identificar o recurso apropriado e, em seguida, clique em Selecionar e continuar.
    • Para criar um Cloud Router na página Centro de conectividade de rede, 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 do BGP, configure as duas sessões do BGP. Conclua as etapas a seguir duas vezes, uma para cada sessão:
    1. Clique em Editar sessão do BGP.
    2. Preencha o formulário inserindo um Nome, um ASN de peering e uma Prioridade de rota anunciada (MED, na sigla em inglês). Clique em Salvar e continuar.
  3. Clique em Criar

gcloud

Para criar pares do BGP no Cloud Router para router-app-a, use o comando gcloud compute routers add-bgp-peer. Use o comando duas vezes: uma vez para criar o primeiro peering do BGP e novamente para criar o segundo peering do BGP.

  1. Crie o primeiro peering do 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 peering do

    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:

    • NAME: o nome do Cloud Router a ser atualizado.
    • PEER_NAME: o nome da sessão de peering do BGP a ser estabelecida com a instância do dispositivo do roteador.
    • INTERFACE: o nome da interface para este peering do BGPS
    • PEER_IP_ADDRESS: o endereço IP interno do roteador de peering (a instância do dispositivo de roteador). Esse endereço precisa corresponder ao endereço IP interno principal da interface de rede principal da VM (nic0)
    • PEER_ASN: o número de sistema autônomo (ASN, na sigla em inglês) do BGP para este par do BGP. Esse ASN precisa ser um ASN privado de 16 ou 32 bits, conforme definido na RFC 6996
    • ROUTER_APPLIANCE: o nome da VM atuando como a instância do dispositivo do roteador.
    • ROUTER_APPLIANCE_ZONE: a zona em que a VM atua como a instância do dispositivo do roteador está localizada.
    • REGION: a região onde a VM atua como a instância do dispositivo do roteador está localizada.

Os snippets de amostra a seguir mostram como criar os dois pares para router-app-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.0.1.10 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-west1-a \
      --region=us-west1
  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.0.1.10 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-west1-a \
      --region=us-west1

API

Para criar dois pares do BGP no Cloud Router para router-app-a, use o método compute.routers.patch. Use o método duas vezes: uma para criar o primeiro peering do BGP e novamente para criar o segundo peering do BGP.

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:

  • PROJECT_ID: o ID do projeto para o Cloud Router.
  • REGION: a região onde a VM atua como a instância do dispositivo do roteador está localizada.
  • NAME: o nome do Cloud Router a ser atualizado.
  • PEER_NAME: o nome da sessão de peering do BGP a ser estabelecida com a instância do dispositivo do roteador.
  • INTERFACE_NAME: o nome da interface do Cloud Router à qual o peering será adicionado
  • IP_ADDRESS: o endereço IP interno RFC 1918 a ser usado para a interface do Cloud Router.
  • PEER_IP_ADDRESS: o endereço IP interno da VM que atua como uma instância de dispositivo do roteador.
  • ROUTER_APPLIANCE_INSTANCE: o nome no formato do URL para a VM que atua como a instância do dispositivo do roteador.
  • ROUTER_APPLIANCE_ZONE: a zona em que a VM atua como a instância do dispositivo do roteador está localizada.
  • PEER_ASN: o número de sistema autônomo (ASN, na sigla em inglês) do BGP para este par do BGP. Esse ASN precisa ser um ASN privado de 16 ou 32 bits, conforme definido na RFC 6996

Os snippets de amostra a seguir mostram como criar os dois pares para router-app-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.0.1.5",
    "peerIpAddress": "10.0.1.10",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
    "peerAsn": 65001,
  }
  {
    "name": "router-appliance-bgp-peer-router-app-a-1",
    "interfaceName": "router-appliance-interface-1",
    "ipAddress": "10.0.1.6",
    "peerIpAddress": "10.0.1.10",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
    "peerAsn": 65001
   }
 ]
}

Crie pares do BGP para router-app-b

Conforme descrito anteriormente, o Cloud Router pode estabelecer sessões do BGP para várias VMs configuradas como instâncias de dispositivo do roteador. Todas essas VMs precisam estar na mesma região. Para gerar essa configuração, crie sessões de peering do BGP adicionais nas mesmas interfaces do Cloud Router.

A seção anterior descreve como configurar o peering do BGP para router-app-a. Nesta seção, você verá como configurar router-app-b como um peering do BGP em ambas as interfaces do Cloud Router cloud-router-a.

Console

  1. Acesse a página Network Connectivity Center.
  2. Acessar o Network Connectivity Center
  3. No menu suspenso, selecione um projeto.
  4. Clique na guia Spokes.
  5. Na coluna Nome do spoke, selecione um spoke para visualizar a página Detalhes do spoke.

  1. Na coluna Nome, localize router-app-b. Clique no ícone de expansão para exibir os links Configurar sessão do BGP. Clique em um desses links. Em resposta, o sistema exibe o painel Configurar o Cloud Router e as sessões do BGP.

  1. Em Cloud Router, siga um destes procedimentos:

    • Para selecionar um Cloud Router existente, clique em Usar existente. Use o campo Cloud Router para identificar o recurso apropriado e, em seguida, clique em Selecionar e continuar.
    • Para criar um Cloud Router na página Centro de conectividade de rede, 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 do BGP, configure as duas sessões do BGP. Conclua as etapas a seguir duas vezes, uma para cada sessão:
    1. Clique em Editar sessão do BGP.
    2. Preencha o formulário inserindo um Nome, um ASN de peering e uma Prioridade de rota anunciada (MED, na sigla em inglês). Clique em Salvar e continuar.
  3. Clique em Criar

gcloud

Para criar dois pares do BGP no Cloud Router para router-app-b, use o método gcloud compute routers add-bgp-peer. Use o comando duas vezes: uma vez para criar o primeiro peering do BGP e novamente para criar o segundo peering do BGP.

  • Exemplo de configuração para o primeiro peering do BGP:

    gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-b-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=10.0.1.11 \
        --peer-asn=65002 \
        --instance=router-app-b \
        --instance-zone=us-west1-b \
        --region=us-west1
    
  • Exemplo de configuração para o segundo peering do BGP:

    gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-b-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=10.0.1.11 \
        --peer-asn=65002 \
        --instance=router-app-b \
        --instance-zone=us-west1-b \
        --region=us-west1
    

API

Para criar dois pares do BGP no Cloud Router para router-app-b, use o método compute.routers.patch. Use o método duas vezes: uma vez para criar o primeiro peering do BGP e novamente para criar o segundo peering do BGP.

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

Configurar o BGP na instância do dispositivo do roteador

Para configurar a instância do dispositivo de roteador para conectividade do BGP com o Cloud Router, consulte a documentação do fornecedor da imagem do dispositivo do roteador.

Usar rotas aprendidas personalizadas

Também é possível configurar a instância do dispositivo roteador para usar rotas aprendidas personalizadas. Quando você configura rotas aprendidas personalizadas, o Cloud Router se comporta como se tivesse aprendido as rotas do par BGP (a instância do dispositivo roteador).

Para usar rotas aprendidas personalizadas, siga estas etapas:

  1. Faça login no seu dispositivo. Para cada rota personalizada que você quiser especificar, configure uma rota estática para esse prefixo IP com o próximo salto definido para a rede externa. Essa etapa é necessária porque a instância do dispositivo roteador precisa saber como encaminhar o tráfego que usa a rota personalizada aprendida.

  2. Atualize a sessão do BGP no Cloud Router para usar as rotas aprendidas. Siga as etapas descritas em Atualizar uma sessão para usar rotas aprendidas personalizadas.

Usar a autenticação MD5

Se a imagem do dispositivo roteador que você está usando for compatível com a autenticação MD5, será possível adicionar a autenticação às sessões de peering do BGP. Para mais informações sobre o uso da autenticação MD5 com o Cloud Router, consulte Usar a autenticação MD5.

A seguir