Criando uma tabela de roteamento

Crie uma tabela de roteamento para definir regras para encaminhar o tráfego de rede pelo melhor caminho em direção ao seu destino. Por exemplo, uma tabela de roteamento fornece informações para o envio de um pacote de dados para o próximo hop em sua rota através da rede.

Antes de Iniciar

Antes de criar uma tabela de roteamento, certifique-se de que você tenha pelo menos uma VPC e analise e siga as limitações e diretrizes da tabela de roteamento.

É possível criar uma tabela de roteamento para um serviço IBM Cloud usando o console, a CLI, a API ou o Terraform.

Criação de uma tabela de roteamento no console

Para criar uma tabela de roteamento no console, siga estas etapas:

  1. No console do IBM Cloud, selecione o ícone Menu no menu de navegação e clique em Infraestrutura VPC > Rede > Tabelas de roteamento. A página Tabelas de roteamento para VPC aparece.

  2. Clique em Criar na parte superior direita da página.

  3. Na página “Tabela de roteamento para provisionamento de VPC”, preencha as seguintes informações:

    • Insira um nome exclusivo para a sua tabela de roteamento.

    • Selecione a Nuvem Privada Virtual que você deseja associar à tabela de roteamento.

    • Tags- (Opcional) Adicione tags para ajudar a organizar e localizar seus recursos. É possível incluir mais tags posteriormente. Para obter mais informações, consulte Trabalhando com tags.

    • Tags de gerenciamento de acesso - (Opcional) Adicione tags de gerenciamento de acesso aos recursos para ajudar a organizar as relações de controle de acesso. O único formato suportado para as tags de gerenciamento de acesso é key:value. Para obter mais informações, consulte Controlando o acesso aos recursos usando tags.

    • Nuvem privada virtual- Selecione sua VPC.

    • Na seção Tráfego, é possível selecionar entre esses recursos opcionais:

      • Aceita rotas de (opcional)- Escolha quais recursos podem criar rotas na tabela de roteamento. Você pode selecionar o switch para servidor VPN, gateway VPN ou ambos.

        Para gateways VPN baseados em políticas, as rotas não são descobertas automaticamente. A tabela de roteamento deve ser configurada para aceitar rotas do gateway VPN, e as rotas propagadas são limitadas aos prefixos CIDR definidos na política VPN. Gateways VPN baseados em rotas com BGP anunciam dinamicamente as rotas aprendidas. Para obter mais informações sobre como definir prefixos CIDR para VPNs baseadas em políticas, consulte Adicionando conexões a um gateway VPN.

        As rotas do servidor VPN são derivadas do conjunto de endereços do cliente e de quaisquer rotas do cliente configuradas e são propagadas quando a tabela de roteamento é configurada para aceitar rotas do servidor VPN.

      • Origem do tráfego (opcional)- Selecione a origem do tráfego para usar essa tabela de roteamento para encaminhar o tráfego para a VPC.

        • Direct Link- Permite o tráfego de entrada proveniente de uma IBM Cloud Direct Link conexão Dedicated ou Connect para um local no próprio estabelecimento. Opcionalmente, você pode anunciar rotas para um link direto que não esteja no intervalo de prefixo de endereço da VPC.
        • Gateway de trânsito — Permite o tráfego de entrada proveniente de um IBM Cloud Transit Gateway para outra VPC ou infraestrutura clássica. Opcionalmente, você pode anunciar rotas para um gateway de trânsito que não estejam no intervalo de prefixo de endereço da VPC.
        • Zona VPC — Permite o tráfego de entrada para outra zona de disponibilidade da mesma VPC.
        • Internet pública — Permite que o tráfego de entrada da Internet pública com destino a um IP flutuante seja roteado para um IP de próximo salto da VPC.
  4. Clique em “Criar tabela de roteamento ”.

Criação de uma tabela de roteamento pela CLI

Antes de começar, configure seu ambiente de CLI.

Para criar uma tabela de roteamento pela CLI, execute o seguinte comando:

ibmcloud is vpc-routing-table-create VPC [--name NAME] [--direct-link-ingress false | true] [--internet-ingress, --internet false | true] [--transit-gateway-ingress false | true] [--vpc-zone-ingress false | true] [--accept-routes-from-resource-type-filters, --ar-rtf vpn_server | vpn_gateway] [--advertise-routes-to direct_link | transit_gateway | direct_link, transit_gateway] [--output JSON] [-q, --quiet]

Em que:

VPC
É o ID ou o nome da VPC.
--name
É o nome da tabela de roteamento da VPC.
--direct-link-ingress, --direct-link
Opcional. Se configurada como “ true ”, esta tabela de roteamento é usada para rotear o tráfego proveniente de IBM Cloud e Direct Link para esta VPC. Para que o roteamento seja bem-sucedido, a VPC não deve já possuir uma tabela de roteamento com essa propriedade definida como “ true ”. Um dos seguintes: false, true.
--internet-ingress, --internet
Indica se esta tabela de roteamento é usada para rotear o tráfego que se origina da internet. A atualização para true seleciona essa tabela de roteamento, desde que nenhuma outra tabela de roteamento na VPC já tenha essa propriedade definida como true``. Ao atualizar para o false , essa tabela de roteamento é desmarcada. Um dos seguintes: false, true.
--transit-gateway-ingress, --transit-gateway
Se configurada como “ true ”, esta tabela de roteamento é usada para rotear o tráfego proveniente de Transit Gateway para esta VPC. Para que o roteamento seja bem-sucedido, a VPC não deve já possuir uma tabela de roteamento com essa propriedade definida como “ true ”. Um dos seguintes: false, true.
--vpc-zone-ingress, --vpc-zone
Opcional. Se configurada como “ true ”, esta tabela de roteamento é usada para rotear o tráfego proveniente da Internet pública. Para que o roteamento seja bem-sucedido, a VPC não deve ter uma tabela de roteamento existente com essa propriedade definida como “ true ”. Um dos seguintes: false, true.
--accept-routes-from-resource-type-filters, --ar-rtf
Filtros de tipo de recurso separados por vírgulas que podem criar rotas nesta tabela de roteamento. Um de: vpn_server, vpn_gatewa.
--advertise_routes_to TARGETS
Opcional. É uma lista separada por vírgulas de alvos de anúncio para rotas nessa tabela de roteamento. Atualmente, direct_link e transit_gateway são os valores permitidos. direct_link exige que direct-link-ingress seja definido como true. transit_gateway exige que transit—gateway-ingress seja definido como true. Todas as rotas na tabela de roteamento com a opção advertise definida como true são anunciadas para as origens de entrada especificadas por 'advertise_routes_to'.
--output
É o formato de saída. Um dos seguintes: JSON.
-q, --quiet
Suprime a saída detalhada.

As rotas com uma ação de entrega são tratadas como descartadas, a menos que o próximo salto seja um endereço IP vinculado a uma interface de rede em uma sub-rede na zona da rota. Portanto, se um pacote de entrada corresponder a uma rota com um next-hop de um endereço IP vinculado à Internet ou a uma conexão de gateway de VPN, o pacote será descartado.

É possível definir uma opção de entrada como “ true ” em apenas uma tabela de roteamento por VPC, e somente se essa tabela de roteamento não estiver associada a nenhuma sub-rede.

Exemplo da CLI

ibmcloud is vpc-routing-table-create 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --name my-vpc-routing-table -—advertise-routes-to direct_link --direct-link-ingress true -—output JSON
ibmcloud is vpc-routing-table-create my-vpc --name my-vpc-routing-table --advertise-routes-to transit_gateway —-transit-gateway-ingress true --output JSON
ibmcloud is vpc-routing-table-create my-vpc --name my-vpc-routing-table --advertise-routes-to direct_link, transit_gateway  --direct-link-ingress true —transit-gateway-ingress true -—output JSON
ibmcloud is vpc-routing-table-create 979b4bc6-f018-40a2-92f5-0b1cf777b55d --name test-vpc-cli-routing-tb1 --direct-link-ingress false --internet-ingress false   --transit-gateway-ingress false  --vpc-zone-ingress true

Criação de uma tabela de roteamento com a API

Para criar uma tabela de roteamento usando a API, siga estas etapas:

  1. Configure o seu Ambiente de API.

  2. Armazene o valor VpcId em uma variável a ser usada no comando da API:

    export VpcId=<your_vpc_id>
    
  3. Crie uma tabela de roteamento.

    Tabela de roteamento de egresso

    curl -X POST \
    "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables?version=$api_version&generation=2" \
    -H "Authorization: ${iam_token}" \
    -d '{
          "name": "test-routing-table"
        }'
    

    Tabela de roteamento de ingresso:

       curl -X POST "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables?version=$api_version&generation=2" \
       -H "Authorization: Bearer $iam_token" \
       -d '{
             "name": "my-ingress-routing-table",
             "route_direct_link_ingress": true
           }'
    

Para obter mais informações e conhecer os parâmetros opcionais, consulte “Criar uma tabela de roteamento para uma VPC” na Referência da API da VPC.

Criação de uma tabela de roteamento com o Terraform

Para criar uma tabela de roteamento com o Terraform, siga estas etapas:

  1. Configure seu ambiente do Terraform.

  2. Use um dos exemplos a seguir:

    • Para criar uma tabela de roteamento:
       resource "ibm_is_vpc_routing_table" "example" {
         vpc                           = ibm_is_vpc.example.id
         name                          = "example-vpc-routing-table"
         route_direct_link_ingress     = true
       }
    
    • Para criar uma tabela de roteamento que aceite rotas criadas a partir de um servidor VPN:
       resource "ibm_is_vpc_routing_table" "example" {
         vpc                              = ibm_is_vpc.example.id
         name                             = "example-vpc-routing-table"
         route_direct_link_ingress        = true
         accept_routes_from_resource_type = ["vpn_server"]
       }
    
    • Para criar uma tabela de roteamento que encaminhe o tráfego proveniente de IBM Cloud Direct Link para esta VPC:
       resource "ibm_is_vpc_routing_table" "is_vpc_routing_table_instance" {
         vpc                           = ibm_is_vpc.example.id
         name                          = "example-vpc-routing-table"
         route_direct_link_ingress     = true
         route_transit_gateway_ingress = false
         route_vpc_zone_ingress        = false
         advertise_routes_to           = ["direct_link", "transit_gateway"]
       }
    
    • Para criar uma tabela de roteamento que inclua tags de usuário e tags de acesso:
       resource "ibm_is_vpc_routing_table" "example" {
         tags                          = ["rt-tag"]
         access_tags                   = ["access:dev"]
         vpc                           = ibm_is_vpc.example.id
         name                          = "example-vpc-routing-table"
         route_direct_link_ingress     = true
         route_transit_gateway_ingress = false
         route_vpc_zone_ingress        = false
       }
    

    O CRN e o grupo de recursos estão incluídos nas respostas e nas fontes de dados.

    resource "ibm_is_subnet" "example" {
      name               = "example-subnet"
      vpc                = ibm_is_vpc.example.id
      zone               = "us-south-1"
      ipv4_cidr_block    = "10.240.0.0/24"
      routing_table_crn  = ibm_is_vpc_routing_table.example.crn
    }
    

Para obter documentação sobre o recurso ibm_is_vpc_routing_table , consulte o Terraform Registry.