Estabelecer conectividade usando um dispositivo de terceiros

O Network Connectivity Center permite usar um dispositivo virtual de rede de terceiros para estabelecer a conectividade entre um site externo e seus recursos de rede de nuvem privada virtual (VPC). Para estabelecer a conectividade desta forma, use o recurso do dispositivo roteador.

O dispositivo roteador é um dos vários tipos de spoke compatíveis com o Network Connectivity Center. Saiba mais sobre o Network Connectivity Center na Visão geral do Network Connectivity Center. Saiba mais sobre o dispositivo roteador na Visão geral do dispositivo roteador.

Exemplo de configuração

Na topologia a seguir, um site externo se conecta a duas redes VPC usando um spoke do dispositivo roteador.

A VM que hospeda a instância do dispositivo roteador tem uma interface em cada rede VPC. A instância do dispositivo roteador mantém as sessões do protocolo de gateway de borda (BGP, na sigla em inglês) com os Cloud Routers nas duas redes.

Cada Cloud Router tem duas interfaces. A interface do dispositivo roteador em cada rede faz peering com as duas interfaces do Cloud Router apropriado, totalizando quatro sessões de peering.

Como criar sessões do BGP para dispositivos do roteador
Exemplo de topologia site a nuvem (clique para ampliar)

Tarefas necessárias

Para definir a configuração de amostra, confira se você atende aos 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 atua como uma 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 estabelecer o acesso, pode ser necessário criar regras de firewall.

  3. Crie dois spokes, um em cada rede VPC. Cada spoke usa a mesma instância do dispositivo roteador como recurso de apoio.

  4. Configure dois Cloud Routers, um em cada rede 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 roteador.

    2. Crie duas interfaces em cada Cloud Router.

    3. Configure o peering do BGP em cada 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ê.

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. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  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. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

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

    gcloud init
  10. 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.

  11. 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. Além disso, os dois endereços IP precisam estar na mesma região.

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 endereços IP estáticos.

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

Veja nas seções a seguir como criar redes e sub-redes VPC.

Criar duas redes VPC

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

Para mais informações sobre como criar redes VPC, consulte Como 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 as redes 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, como network-a ou network-b.

API

Para criar uma rede VPC personalizada usando a API Compute Engine, consulte Como usar VPC.

Criar uma sub-rede

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

Console

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

Se quiser seguir as convenções de nomenclatura aplicadas na configuração de amostra, use os seguintes valores para a sub-rede em network-a:

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

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

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

gcloud

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

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

Substitua:

  • NAME: o nome da sub-rede que contém a VM do dispositivo roteador, como subnet-a ou subnet-b.
  • NETWORK: a rede que contém a sub-rede, como 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 do CIDR, como 10.1.3.0/24 ou 192.168.10.0/24.

API

Para criar uma sub-rede VPC usando a API Compute Engine, consulte Como usar VPC.

Criar a VM do dispositivo roteador

Crie a VM do Compute Engine que atua como uma instância do dispositivo roteador. A VM está representada na topologia de amostra como router-app-a. Ela tem duas interfaces, uma em network-a e outra em network-b.

Ao criar a VM, selecione 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:

Saiba mais sobre como criar uma VM em Como 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 para o roteador do roteador.

Console

Saiba como criar a VM usada na configuração de exemplo em Como 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:

    • Name: router-app-a
    • Região:us-central1
    • Zona: us-central1-a
  • 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, crie duas interfaces: uma em network-a e outra em network-b. Para criar cada interface, selecione a rede apropriada e clique em Adicionar uma interface de rede. Preencha os campos a seguir:
      • Selecione a Sub-rede em que você quer localizar a instância do dispositivo roteador, como subnet-a ou subnet-b.
      • Em IP interno primário, selecione o endereço IP interno RFC 1918 reservado que você quer usar, como 10.1.3.8 ou 192.168.10.3.
      • 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 roteador 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 roteador. Substitua INSTANCE_NAME pelo nome da VM que atua como uma instância do dispositivo roteador.

No exemplo a seguir, atribua o endereço IP interno estático e o endereço IP externo estático reservado anteriormente à VM. Você também especifica o projeto que contém uma imagem fornecida pelo fornecedor para a VM, junto 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:

  • 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 usadas na configuração de exemplo, use o método compute.instances.insert.

Para ver outros métodos de criação, consulte Como 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:

  • 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 duas regras de firewall, uma em network-a e outra em network-b. Cada regra permite o tráfego BGP na porta TCP 179.

Para mais informações sobre comandos de firewall, consulte Como usar regras de firewall.

Console

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

gcloud

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

API

Saiba como criar uma regra de firewall da VPC usando a API Compute Engine em Como criar regras de firewall.

Criar recursos do Network Connectivity Center

Antes de usar uma VM de dispositivo roteador, crie os recursos necessários do Network Connectivity Center.

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 dois spokes do dispositivo roteador

Crie dois spokes do dispositivo roteador. Os dois spokes usam o mesmo recurso de apoio, isto é, a instância do dispositivo roteador que você acabou de criar. Um spoke usa a interface de network-a e o outro usa a interface de network- b.

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.

    Acessar o Network Connectivity Center

  2. No menu do projeto, selecione um projeto.

  3. Clique na guia Spokes.

  4. Clique em Add spokes.

  5. No formulário Novo spoke, defina o Tipo de spoke como Dispositivo roteador.

  6. Digite um Nome de spoke, como spoke-a ou spoke-b.

  7. Opcionalmente, insira uma Descrição.

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

  9. Em Transferência de dados site a site, selecione Desativado.

  10. Na lista suspensa Rede VPC, selecione uma rede.

Inserir detalhes do dispositivo de roteador

  1. Em Anexar instâncias ao spoke, use a lista suspensa para selecionar um dispositivo roteador, como router-app-a.
  2. Para adicionar mais instâncias do dispositivo roteador a esse spoke, clique em Adicionar instância e repita a etapa anterior.
  3. Ao terminar, clique em Concluído e prossiga para Salvar o spoke.

Salvar os spokes

  1. Para adicionar o segundo spoke, clique em Adicionar spoke e inicie o processo outra vez, começando pelo Nome do spoke.
  2. Quando terminar de adicionar os spokes, clique em Criar. A página Network Connectivity Center é atualizada para exibir detalhes dos spokes que você criou.

gcloud

Para criar spokes do dispositivo roteador, 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, como spoke-a
  • HUB_URI: o URI do hub ao qual você está anexando o spoke
  • DESCRIPTION: texto opcional que descreve o spoke
  • ROUTER_APPLIANCE_URI: o nome da instância do dispositivo roteador, como
    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 roteador na rede VPC apropriada, como 10.1.3.8 ou 192.168.10.3
  • REGION: a região do Google Cloud em que você quer localizar o spoke, por exemplo, us-central1
  • 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 dispositivo roteador que usa router-app-a como recursos subjacentes. Esse comando faz referência à instância do dispositivo roteador usando a 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 comando a seguir cria um spoke do dispositivo roteador que usa router-app-a como recursos subjacentes. Esse comando faz referência à instância do dispositivo roteador usando a 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 do dispositivo roteador, use o método networkconnectivity.spokes.create. Para cada instância do roteador do roteador que você 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 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, como
    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 roteador para a rede VPC apropriada, como 10.1.3.8 ou 192.168.10.3
  • BOOLEAN: um valor que determina se a transferência de dados site a site está ativada para esse spoke. Para esse caso de uso, defina a opção como false

    Por exemplo, para criar um spoke que use router-app-a para a interface em network-a, o corpo da solicitação precisa 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-central1-a/instances/router-app-a",
            "ipAddress": "10.1.3.8",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

    Para criar um spoke que use router-app-a para a interface em network-b, o corpo da solicitação precisa 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-central1-a/instances/router-app-a",
            "ipAddress": "192.168.10.3",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

Configurar Cloud Routers

O dispositivo roteador usa os Cloud Routers para trocar rotas com as redes VPC. Por isso, crie um Cloud Router em cada rede VPC e realize algumas outras tarefas de configuração.

Criar os Cloud Routers

Se você estiver usando os mesmos valores que a topologia de amostra, crie dois Cloud Routers, um em network-a e outro em network-b. Os dois Cloud Routers precisam estar em us-central1.

Para mais informações, consulte Como criar Cloud Routers.

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 Como 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, como 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, como network-a ou network-b
  • 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-central1.
  • NAME: o nome do Cloud Router, como cloud-router-a ou cloud-router-b
  • NETWORK: o URI da rede VPC que contém o Cloud Router, como /global/networks/network-a ou /global/networks/network-b
  • 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 em cada Cloud Router

Para estabelecer redundância, crie duas interfaces em cada Cloud Router. Em cada Cloud Router, as duas interfaces precisam ser associadas à mesma sub-rede que a interface do dispositivo roteador correspondente. Se você estiver usando os valores do exemplo de topologia, faça o seguinte:

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

A interface do Cloud Router usa um endereço IP interno regional. Se você especificar explicitamente o endereço IP interno para a interface, ele precisa pertencer ao intervalo de endereços IP principal da sub-rede. O endereço não pode estar sendo usado por outro recurso, como uma VM ou outra interface do Cloud Router.

Não há instruções do console do Google Cloud para esta etapa. Se você estiver usando o console do Google Cloud, ao concluir a próxima tarefa (Como criar peering do BGP em cada Cloud Router), as interfaces serão criadas automaticamente.

gcloud

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

Conclua as etapas a seguir 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:

    • ROUTER_NAME: o nome do Cloud Router que será atualizado. 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 que será usado para a primeira interface. Se você não especificar um valor, o Google tentará encontrar um endereço gratuito 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 roteador correspondente.
    • REGION: a região do Google Cloud em que o Cloud Router está. Por exemplo, us-central1.
    • PROJECT_ID: o ID do projeto para o Cloud Router. Por exemplo, my-project.
  2. Para cada Cloud Router, 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:

    • ROUTER_NAME: o nome do Cloud Router que será atualizado. 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 que será usado para a segunda interface. Se você não especificar um valor, o Google tentará encontrar um endereço gratuito 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 de instância do dispositivo roteador correspondente.
    • FIRST_INTERFACE_NAME: o nome da interface que você criou na Etapa 1
    • REGION: a região do Google Cloud em que o Cloud Router está. Por exemplo, us-central1.
    • PROJECT_ID: o ID do projeto para o Cloud Router. Por exemplo, my-project.

    Comandos de amostra para cloud-router-a

    O comando a seguir 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 a seguir 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
    

    Comandos de amostra para cloud-router-b

    O comando a seguir 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 a seguir 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 Cloud Routers, use o método compute.routers.patch.

Use a seguinte solicitação duas vezes: uma para cloud-router-a e novamente 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:

  • 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-central1.
  • NAME: o nome do Cloud Router a ser atualizado, como 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 que será usado para a primeira interface. Se você não especificar um valor, o Google tentará encontrar um endereço gratuito 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 de instância do dispositivo roteador correspondente.
  • SECOND_INTERFACE_NAME: o nome da segunda interface. Por exemplo, interface-2.
  • SECOND_INTERFACE_IP_ADDRESS: o endereço IP interno RFC 1918 que será usado para a segunda interface. Se você não especificar um valor, o Google tentará encontrar um endereço gratuito no intervalo de endereços IP principal da sub-rede.

    Comandos de amostra para cloud-router-a

    O comando a seguir 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 comando a seguir 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"
       }
     ]
    }
    

Configurar o peering do BGP no Cloud Router

Para cada interface na instância do dispositivo roteador, crie duas sessões de peering do BGP, uma para a interface de cada Cloud Router. Se você estiver usando os valores da topologia de amostra, faça o seguinte:

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

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

Console

Conclua as etapas a seguir duas vezes, uma para spoke-a e outra para spoke-b:

  1. Acesse a página Network Connectivity Center.
  2. Acessar o Network Connectivity Center
  3. No menu do projeto, selecione um projeto.
  4. Clique na guia 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 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. Na seção 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 nos Cloud Routers, use o comando gcloud compute routers add-bgp-peer.

Conclua as etapas a seguir duas vezes, uma para cloud-router-a e outra para cloud-router-b:

  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, como cloud-router-a ou cloud-router-b
    • 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 mesmo nível (a instância do dispositivo roteador), como 10.1.3.8 ou 192.168.10.3
    • 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 que atua como a instância do dispositivo roteador, como router-app-a
    • ROUTER_APPLIANCE_ZONE: a zona em que a VM atua como a instância do dispositivo roteador está localizada, como us-central1-a
    • REGION: a região onde a VM atua como a instância do dispositivo do roteador está localizada, por exemplo, us-central1.

    Comandos de amostra para cloud-router-a

    Use os comandos a seguir para criar os pares do 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
    

    Comandos de amostra para cloud-router-b

    Use os comandos a seguir para criar os pares do 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 do BGP em um Cloud Router, use o método compute.routers.patch. Use esse 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:

  • 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 do Cloud Router a ser usado para a sessão de peering.
  • PEER_IP_ADDRESS: o endereço IP interno da VM que atua como uma instância do dispositivo roteador, como 10.1.3.8 ou 192.168.10.3
  • 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

    Comandos de amostra 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
     }
     ]
    }
    

    Comandos de amostra 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
     }
     ]
    }
    

Configurar o BGP na instância do dispositivo do roteador

Configure a instância do dispositivo roteador para conectividade do BGP com os dois Cloud Routers. Para fazer isso, consulte a documentação do fornecedor sobre a imagem do dispositivo roteador.

A seguir