Todos os produtos
Search
Central de documentação

Cloud Enterprise Network:Use um transit router da Enterprise Edition para ative a comunicação segura de tráfego

Última atualização: Jun 30, 2026

Os transit routers da Enterprise Edition oferecem gerenciamento flexível de rotas. Use um transit router para crie uma cadeia de serviços que direcione o tráfego a um servidor de segurança para filtragem. Isso garante a comunicação apenas do tráfego filtrado e aumenta a segurança da rede.

Cenário

Este tópico usa uma rede intrarregião como exemplo para demonstrar o uso de um transit router da Enterprise Edition na habilitação da comunicação segura de rede. Uma empresa implantou três virtual private clouds (VPCs) na região China (Hangzhou). A VPC1 contém serviços de segurança. As três VPCs não se comunicam entre si. Para expandir os negócios e aumentar a segurança da rede, a empresa precisa ative a comunicação entre a VPC2 e a VPC3. No entanto, os serviços de segurança na VPC1 devem filtrar o tráfego entre a VPC2 e a VPC3.

A empresa pode conectar a VPC2 e a VPC3 a um transit router da Enterprise Edition. Ao crie rotas personalizadas no transit router, a empresa atende ao requisito de comunicação segura entre a VPC2 e a VPC3.

image

Pré-requisitos

  • Antes de começar, verifique se a região da virtual private cloud (VPC) que contém o serviço de segurança oferece suporte a transit routers da Enterprise Edition. Esse suporte é obrigatório para ative a comunicação segura de rede. Para mais informações, consulte Regiões e zonas com suporte para transit routers da Enterprise Edition.

  • Três VPCs foram criadas na região China (Hangzhou). Cada VPC tem uma instância do Elastic Compute Service (ECS) implantada. Para mais informações, consulte crie uma VPC com um bloco CIDR IPv4.

    Cada VPC deve ter vSwitches suficientes implantados nas zonas do transit router da Enterprise Edition. Cada vSwitch precisa ter pelo menos um endereço ip disponível.

      Por exemplo, ao crie uma VPC na região China (Hangzhou), ela deve ter pelo menos uma instância de vSwitch na Zona J e outra na Zona K. Cada instância de vSwitch deve ter pelo menos um endereço ip disponível.

      Nota

      O transit router da Enterprise Edition cria uma elastic network interface (ENI) em um vSwitch de uma zona. A ENI serve como ponto de entrada para o tráfego da VPC rumo ao transit router. Cada ENI consome um endereço ip.

      Neste exemplo, a VPC1 possui três instâncias de vSwitch. O vSwitch1 implanta o serviço de segurança. O vSwitch2 e o vSwitch3 conectam-se ao transit router da Enterprise Edition. A tabela a seguir descreve o planejamento de rede para as três VPCs. Ao planejar sua rede, garanta que os blocos CIDR das redes que precisam se comunicar não se sobreponham. Para as três instâncias ECS, selecione a imagem Alibaba Cloud Linux.

      VPC

      vSwitch

      Zona do vSwitch

      Bloco CIDR

      Endereço ECS

      VPC1

      Bloco CIDR: 10.0.0.0/16

      vSwitch1

      Zona I

      10.0.0.0/24

      ECS1: 10.0.0.1

      vSwitch2

      Zona J

      10.0.1.0/24

      vSwitch3

      Zona K

      10.0.2.0/24

      VPC2

      Bloco CIDR: 10.1.0.0/16

      vSwitch4

      Zona I

      10.1.0.0/24

      ECS2: 10.1.0.1

      vSwitch5

      Zona J

      10.1.1.0/24

      vSwitch6

      Zona K

      10.1.2.0/24

      VPC3

      Bloco CIDR: 10.2.0.0/16

      vSwitch7

      Zona I

      10.2.0.0/24

      ECS3: 10.2.0.1

      vSwitch8

      Zona J

      10.2.1.0/24

      vSwitch 9

      Zona K

      10.2.2.0/24

    • Compreenda as regras de grupo de segurança aplicáveis às instâncias ECS na VPC1, VPC2 e VPC3. Garanta que as regras do grupo de segurança permitam tráfego de entrada pelo protocolo ICMP. Para mais informações, consulte Consultar regras de grupo de segurança e Adicionar uma regra de grupo de segurança.

    Introdução

    Este tópico descreve como configure o ambiente no console e com o Terraform. Escolha o método conforme necessário.

    Console

    Etapa 1: crie uma instância CEN

    A instância CEN é o recurso básico para crie e gerencie uma rede integrada. Antes de conectar instâncias de rede por meio de um transit router da Enterprise Edition, crie uma instância CEN.

    1. Faça login no console CEN.

    2. Na página Instances, clique em Create CEN Instance.

    3. Na caixa de diálogo Create CEN Instance, configure os parâmetros a seguir e clique em OK.

      • Name: insira um nome para a instância CEN.

      • Description: insira uma descrição para a instância CEN.

      • Resource Group: selecione um grupo de recursos para a instância CEN.

        Neste tutorial, deixe este campo vazio. A instância será adicionada ao grupo de recursos padrão.

      • Tag: Adicione uma tag à instância CEN. Neste tutorial, deixe este parâmetro vazio.

    Etapa 2: crie uma instância de transit router

    Antes de conectar instâncias de rede por meio de um transit router da Enterprise Edition, crie um transit router na região onde as instâncias de rede estão implantadas.

    1. Faça login no console CEN.

    2. Na página CEN Instance, selecione a instância CEN criada na Etapa 1 e clique em no id da instância.

    3. Na aba Basic Information > Transit Router, clique em Create Transit Router.

    4. Na caixa de diálogo Create Transit Router, configure o transit router e clique em OK.

      Parâmetro

      Descrição

      Configuração

      Region

      selecione a região onde o transit router está localizado.

      Neste exemplo, China (Hangzhou) está selecionado.

      Edition

      A edição do transit router.

      O sistema determina e exibe automaticamente a edição do transit router na região atual.

      Enable Multicast

      Especifica se deve ativar o recurso de multicast para o transit router.

      Neste exemplo, use o valor padrão e não ative o recurso de multicast.

      Name

      insira um nome para o transit router.

      insira um nome personalizado para o transit router.

      Description

      insira uma descrição para o transit router.

      insira uma descrição personalizada para o transit router.

      Tag

      Adicione uma tag ao transit router da Enterprise Edition.

      Deixe este campo vazio.

      Transit Router CIDR

      insira um bloco CIDR para o transit router.

      Para mais informações, consulte Bloco CIDR do transit router.

      Neste exemplo, não insira nenhum bloco CIDR para o transit router.

    Etapa 3: Conectar as instâncias VPC

    Conecte as instâncias de rede que precisam se comunicar ao transit router da Enterprise Edition.

    1. Faça login no console CEN.

    2. Na página CEN Instance, clique em no id da instância CEN que deseja gerencie.

    3. acesse a aba Basic Information > Transit Router, localize o transit router que deseja gerencie e clique em Create Connection na coluna Actions.

    4. Na página Connection with Peer Network Instance, defina os parâmetros a seguir e clique em OK.

      A tabela a seguir descreve os parâmetros e seus valores para VPC1, VPC2 e VPC3. Use as informações da tabela para conectar a VPC1, VPC2 e VPC3 ao transit router da Enterprise Edition.

      Parâmetro

      Descrição

      VPC1

      VPC2

      VPC3

      Network Type

      selecione o tipo de instância de rede a ser conectada.

      VPC

      VPC

      VPC

      Region

      selecione a região onde a instância de rede está implantada.

      China (Hangzhou)

      China (Hangzhou)

      China (Hangzhou)

      Transit Router

      O sistema exibe automaticamente as instâncias de transit router criadas na região.

      Account

      selecione o tipo de conta à qual a instância de rede pertence.

      Same Account

      Same Account

      Same Account

      Billing Method

      O valor padrão é Pay-As-You-Go.

      Attachment Name

      insira um nome para a conexão da instância de rede.

      attach1

      attach2

      attach3

      Tag

      Adicione uma tag à conexão da instância de rede.

      Deixe em branco.

      Deixe em branco.

      Deixe em branco.

      Networks

      selecione a instância de rede a ser conectada.

      selecione VPC1

      selecione VPC2

      selecione VPC3

      VSwitch

      selecione um vSwitch em uma zona compatível com o transit router.

      Se houver vSwitches em várias zonas compatíveis com o transit router, selecione várias zonas e um vSwitch em cada zona para implementar recuperação de desastres no nível de zona.

      • China (Hangzhou) Zona J: selecione vSwitch2

      • China (Hangzhou) Zona K: selecione vSwitch3

      • China (Hangzhou) Zona I: selecione vSwitch4

      • China (Hangzhou) Zona J: selecione vSwitch5

      • China (Hangzhou) Zona I: selecione vSwitch7

      • China (Hangzhou) Zona J: selecione vSwitch8

      Advanced Settings

      Não ative os três recursos avançados a seguir para VPC1, VPC2 ou VPC3.

      • Associate with Default Route Table of Transit Router

      • Propagate system routes to transit router route table

      • Auto-add transit router routes to all VPC route tables

      Nota

      Se você ativar os recursos avançados, a VPC1, VPC2 e VPC3 aprenderão rotas automaticamente umas das outras e poderão se comunicar. No entanto, isso não atende ao objetivo de comunicação segura de tráfego. Portanto, este exemplo não ativa os recursos avançados para as VPCs. Nas etapas seguintes, crie manualmente tabelas de rotas e adicione entradas de rota para personalizar a conectividade e ative a comunicação segura de tráfego.

    Etapa 4: Adicionar entradas de rota às VPCs

    Adicione entradas de rota à VPC1, VPC2 e VPC3 para direcionar o tráfego das VPCs ao transit router da Enterprise Edition. Em seguida, gerencie o tráfego no transit router para ative a comunicação segura.

    1. Faça login no console VPC.

    2. Na barra de navegação superior, selecione a região onde a tabela de rotas está localizada.

    3. Adicione uma entrada de rota personalizada à VPC2 e à VPC3.

      Nas tabelas de rotas do sistema da VPC2 e VPC3, adicione uma entrada de rota cujo bloco CIDR de destino seja 0.0.0.0/0 e cujo próximo salto seja o transit router. Isso encaminha todo o tráfego da VPC2 e VPC3 ao transit router da Enterprise Edition.

      1. No painel de navegação à esquerda, clique em Route Tables.

      2. Na página Route Tables, localize a tabela de rotas de destino e clique em no respectivo id.

        Neste exemplo, localize a tabela de rotas do sistema da VPC2.

      3. Na aba Route Entry List, clique em na aba Custom Route e, em seguida, clique em Add Route Entry.

      4. No painel Add Route Entry, defina os parâmetros a seguir e clique em OK.

        • Name: insira um nome para a entrada de rota personalizada.

        • Destination CIDR Block: insira 0.0.0.0/0 para este exemplo.

        • Next Hop Type: selecione Transit Router para este exemplo.

        • Transit Router: selecione o transit router associado à VPC2 para este exemplo.

      5. Repita as etapas anteriores para adicionar a mesma entrada de rota à tabela de rotas do sistema da VPC3. Defina os parâmetros a seguir.

        • Destination CIDR Block: insira 0.0.0.0/0 para este exemplo.

        • Next Hop Type: selecione Transit Router para este exemplo.

        • Transit Router: selecione o transit router associado à VPC3 para este exemplo.

    4. crie três tabelas de rotas personalizadas para a VPC1 e nomeie-as routetable1, routetable2 e routetable3. Para mais informações, consulte crie uma tabela de rotas personalizada.

    5. Associe os vSwitches às tabelas de rotas personalizadas. Para mais informações, consulte Associar um vSwitch a uma tabela de rotas.

      Neste exemplo, associe o vSwitch1 na VPC1 à routetable1, o vSwitch2 à routetable2 e o vSwitch3 à routetable3.

    6. Adicione entradas de rota às tabelas de rotas personalizadas da VPC1.

      1. Na página Route Tables, clique em na tabela de rotas personalizada routetable1 associada ao vSwitch1.

      2. Na aba Route Entry List, clique em na aba Custom Route e, em seguida, clique em Add Route Entry.

      3. No painel Add Route Entry, defina os parâmetros a seguir e clique em OK.

        • Destination CIDR Block: insira 0.0.0.0/0.

        • Next Hop Type: selecione Transit Router.

        • Transit Router: selecione attach1.

      4. Repita as etapas anteriores para adicionar uma entrada de rota à tabela de rotas personalizada routetable2 do vSwitch2:

        • Destination CIDR Block: insira 0.0.0.0/0.

        • Next Hop Type: selecione ECS Instance.

        • ECS Instance: selecione ECS1 (a instância de segurança).

      5. Repita as etapas anteriores para adicionar uma entrada de rota à tabela de rotas personalizada routetable3 do vSwitch3:

        • Destination CIDR Block: insira 0.0.0.0/0.

        • Next Hop Type: selecione ECS Instance.

        • ECS Instance: selecione ECS1 (a instância de segurança).

      Após a criação das entradas de rota, as novas entradas de rota em cada VPC aparecem na tabela a seguir:

      Instância de rede

      Nome da tabela de rotas

      vSwitch associado

      Entrada de rota

      Próximo salto

      VPC1

      routetable1

      vSwitch1

      0.0.0.0/0

      attach1 (Transit Router)

      routetable2

      vSwitch2

      0.0.0.0/0

      ECS1

      routetable3

      vSwitch3

      0.0.0.0/0

      ECS1

      VPC2

      Tabela de rotas do sistema

      • vSwitch1

      • vSwitch2

      • vSwitch3

      0.0.0.0/0

      attach2 (Transit Router)

      VPC3

      Tabela de rotas do sistema

      • vSwitch1

      • vSwitch2

      • vSwitch3

      0.0.0.0/0

      attach3 (Transit Router)

    Etapa 5: configure rotas no transit router

    Depois que o tráfego das VPCs entra no transit router da Enterprise Edition, personalize a conectividade criando tabelas de rotas e adicionando entradas de rota. Isso direciona o tráfego da VPC2 e VPC3 para a VPC1 e, em seguida, encaminha o tráfego filtrado da VPC1 ao destino.

    1. Faça login no console CEN.

    2. Na página CEN Instance, clique em no id da sua instância CEN.

    3. acesse a aba Basic Information > Transit Router e clique em no id do transit router que deseja gerencie.

    4. Na aba Route Table, crie duas tabelas de rotas personalizadas para o transit router da Enterprise Edition. Nomeie-as TR_routetable1 e TR_routetable2. Para mais informações, consulte Tabelas de rotas personalizadas.

    5. Associe attach2 e attach3 a uma tabela de rotas personalizada do transit router da Enterprise Edition e configure as entradas de rota.

      1. Na aba Route Table, selecione a tabela de rotas personalizada TR_routetable1, clique em na aba Route Table Association e, em seguida, clique em Create Association.

      2. Na caixa de diálogo Add Association, selecione as conexões de instância de rede a serem associadas à tabela de rotas personalizada e clique em OK.

        Neste exemplo, associe attach2 e a conexão VPC3 a esta tabela de rotas personalizada.

      3. Na página de detalhes da tabela de rotas, clique em na aba Route Entry e clique em Create Route Entry.

      4. Na caixa de diálogo Add Route Entry, defina os parâmetros a seguir e clique em OK.

        • Destination CIDR: insira 0.0.0.0/0 para este exemplo.

        • Blackhole Route: Se você selecione esta opção, todo o tráfego destinado a esta rota será descartado. Neste exemplo, selecione No.

        • Next Hop: selecione attach1 para este exemplo.

        Para mais informações, consulte Entradas de rota personalizadas para um transit router.

      Após concluir estas etapas, todo o tráfego da VPC2 e VPC3 é encaminhado para a VPC1.

    6. Associe a VPC1 a uma tabela de rotas personalizada e configure as entradas de rota.

      1. Na aba Route Table, selecione a tabela de rotas personalizada TR_routetable2, clique em na aba Route Table Association e, em seguida, clique em Create Association.

      2. Na caixa de diálogo Add Association, selecione a conexão de instância de rede a ser associada à tabela de rotas personalizada e clique em OK.

        Neste exemplo, associe attach1 a esta tabela de rotas personalizada.

      3. Na página de detalhes da tabela de rotas, clique em na aba Route Propagation e clique em Enable Route Propagation.

      4. Na caixa de diálogo Enable Route Propagation, selecione as conexões de instância de rede das quais a tabela de rotas aprende rotas e clique em OK.

        Neste exemplo, para Attachment, selecione attach2 e attach3. Após a associação, a tabela de rotas aprende as rotas da VPC2 e VPC3. A VPC1 pode então se comunicar com a VPC2 e VPC3 consultando esta tabela de rotas.

      Após a criação das entradas de rota, as entradas de rota do transit router da Enterprise Edition aparecem na tabela a seguir:

      Nome da tabela de rotas

      Bloco CIDR de destino

      Próximo salto

      TR_routetable1

      0.0.0.0/0

      attach1

      TR_routetable2

      10.1.0.0/16

      attach2

      10.2.0.0/16

      attach3

    Etapa 6: Testar e verifique

    Após concluir as etapas anteriores, a VPC1, VPC2 e VPC3 podem se comunicar com segurança entre si pelo caminho esperado. As etapas a seguir descrevem como testar o caminho de tráfego entre as VPCs.

    1. Faça login no ECS1 e execute o comando a seguir para ative o encaminhamento de ip. Para mais informações sobre como fazer login em uma instância ECS, consulte selecione um método para conexão remota.

      Nota

      Se o encaminhamento de ip não estiver ativado, a VPC2 e a VPC1 podem se comunicar entre si, e a VPC3 e a VPC1 podem se comunicar entre si. No entanto, a VPC2 e a VPC3 não conseguem se comunicar entre si.

      echo 1 > /proc/sys/net/ipv4/ip_forward   # Enable IP forwarding. This command takes effect temporarily and the setting is lost after a restart.
    2. Faça login no ECS2 e instale o mtr. O mtr é uma ferramenta de diagnóstico de rede que combina os recursos de ping e traceroute. Ele analisa a latência do caminho de rede e a perda de pacotes em tempo real. Neste tópico, o mtr identifica o caminho de tráfego.

      yum install -y mtr
    3. No ECS2, execute o comando mtr para testar o caminho de tráfego do ECS2 para o ECS3:

      mtr 10.2.0.1 -i 5

      Descrição do parâmetro: -i 5 especifica que uma solicitação ping é enviada a cada 5 segundos.

      image

      A saída do comando mostra que os pacotes enviados do ECS2 para o ECS3 passam por 10.0.0.1 (ECS1). Isso indica que o tráfego entre a VPC2 e a VPC3 é roteado pelo ECS1 (a instância ECS de segurança).

    Terraform

    Use o Terraform para construir o ambiente deste cenário. Para obter informações sobre como instale e configure o Terraform, consulte instale o Terraform.

    As etapas a seguir usam um host Linux executando Terraform v1.9.8 como exemplo. Antes de começar, certifique-se de ter concluído a Autenticação.

    Nota

    Alguns recursos neste tutorial geram taxas. Libere-os se não forem mais necessários para evitar cobranças adicionais.

    Etapa 1: crie recursos

    1. crie um diretório para este cenário e acesse até ele.

      mkdir tf-CenSec && cd tf-CenSec
    2. crie um arquivo main.tf para definir os recursos.

      touch main.tf
    3. Abra o arquivo main.tf. Copie o código a seguir para o arquivo e salve-o. Este arquivo contém os recursos e configurações necessários para este cenário.

      variable "pname" {
        description = "The prefix name for the resources"
        type        = string
        default     = "tf-CenSec"
      }
      
      variable "default_region" {
        description = "Default region"
        type        = string
        default     = "cn-hangzhou"
      }
      
      variable "az" {
        description = "List of availability zones to use"
        type        = list(string)
        default     = ["cn-hangzhou-i", "cn-hangzhou-j", "cn-hangzhou-k"]
      }
      
      variable "vpc_count" {
        description = "Number of VPCs to create"
        type        = number
        default     = 3
      }
      
      provider "alicloud" {
        region = var.default_region
      }
      
      # VPC
      resource "alicloud_vpc" "main" {
        count      = var.vpc_count
        vpc_name   = "${var.pname}-vpc${count.index + 1}"
        cidr_block = "10.${count.index}.0.0/16"
      }
      
      # vSwitch
      resource "alicloud_vswitch" "main" {
        count        = var.vpc_count * length(var.az)
        vpc_id       = alicloud_vpc.main[floor(count.index / length(var.az))].id
        cidr_block   = "10.${floor(count.index / length(var.az))}.${count.index % length(var.az)}.0/24"
        zone_id      = var.az[count.index % length(var.az)]
        vswitch_name = "${var.pname}-vsw${count.index + 1}"
      }
      
      # ECS
      resource "alicloud_instance" "main" {
        count                = var.vpc_count
        instance_name        = "${var.pname}-ecs${count.index + 1}"
        instance_type        = "ecs.e-c1m1.large"
        security_groups      = [alicloud_security_group.main[count.index].id]
        vswitch_id           = alicloud_vswitch.main[count.index * length(var.az)].id
        image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
        system_disk_category = "cloud_essd"
        private_ip           = "10.${count.index}.0.1"
        instance_charge_type = "PostPaid"
        user_data = base64encode(<<-EOT
          #!/bin/bash
          ${count.index == 0 ? "echo 1 > /proc/sys/net/ipv4/ip_forward" : ""} 
          yum install -y traceroute
          yum install -y mtr
        EOT
        ) # Enable IP forwarding for ECS1.
      }
      
      # Security group
      resource "alicloud_security_group" "main" {
        count  = var.vpc_count
        name   = "${var.pname}-${count.index + 1}"
        vpc_id = alicloud_vpc.main[count.index].id
      }
      
      resource "alicloud_security_group_rule" "allow_inbound_ssh" {
        count             = var.vpc_count
        type              = "ingress"
        ip_protocol       = "tcp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "22/22"
        priority          = 1
        security_group_id = alicloud_security_group.main[count.index].id
        cidr_ip           = "0.0.0.0/0"
      }
      
      resource "alicloud_security_group_rule" "allow_inbound_icmp" {
        count             = var.vpc_count
        type              = "ingress"
        ip_protocol       = "icmp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "-1/-1"
        priority          = 1
        security_group_id = alicloud_security_group.main[count.index].id
        cidr_ip           = "0.0.0.0/0"
      }
      
      resource "alicloud_security_group_rule" "allow_all_outbound" {
        count             = var.vpc_count
        type              = "egress"
        ip_protocol       = "tcp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "1/65535"
        priority          = 1
        security_group_id = alicloud_security_group.main[count.index].id
        cidr_ip           = "0.0.0.0/0"
      }
      
      # CEN
      resource "alicloud_cen_instance" "cen1" {
        cen_instance_name = var.pname
      }
      
      # Transit router
      resource "alicloud_cen_transit_router" "tr1" {
        transit_router_name = var.pname
        cen_id              = alicloud_cen_instance.cen1.id
      }
      
      # Attach attach1 to vSwitch2 and vSwitch3 in VPC1.
      resource "alicloud_cen_transit_router_vpc_attachment" "attach1" {
        cen_id            = alicloud_cen_instance.cen1.id
        transit_router_id = alicloud_cen_transit_router.tr1.transit_router_id
        vpc_id            = alicloud_vpc.main[0].id
        zone_mappings {
          zone_id    = var.az[1]
          vswitch_id = alicloud_vswitch.main[1].id # vSwitch2, vpc1-2
        }
        zone_mappings {
          zone_id    = var.az[2]
          vswitch_id = alicloud_vswitch.main[2].id # vSwitch3, vpc1-3
        }
        transit_router_vpc_attachment_name = "attach1"
      }
      
      # Attach attach2 to vSwitch4 and vSwitch5 in VPC2.
      resource "alicloud_cen_transit_router_vpc_attachment" "attach2" {
        cen_id            = alicloud_cen_instance.cen1.id
        transit_router_id = alicloud_cen_transit_router.tr1.transit_router_id
        vpc_id            = alicloud_vpc.main[1].id
        zone_mappings {
          zone_id    = var.az[0]
          vswitch_id = alicloud_vswitch.main[3].id # vSwitch4, vpc2-1
        }
        zone_mappings {
          zone_id    = var.az[1]
          vswitch_id = alicloud_vswitch.main[4].id # vSwitch5, vpc2-2
        }
        transit_router_vpc_attachment_name = "attach2"
      }
      
      # Attach attach3 to vSwitch7 and vSwitch8 in VPC3.
      resource "alicloud_cen_transit_router_vpc_attachment" "attach3" {
        cen_id            = alicloud_cen_instance.cen1.id
        transit_router_id = alicloud_cen_transit_router.tr1.transit_router_id
        vpc_id            = alicloud_vpc.main[2].id
        zone_mappings {
          zone_id    = var.az[0]
          vswitch_id = alicloud_vswitch.main[6].id # vSwitch7, vpc3-1
        }
        zone_mappings {
          zone_id    = var.az[1]
          vswitch_id = alicloud_vswitch.main[7].id # vSwitch8, vpc3-2
        }
        transit_router_vpc_attachment_name = "attach3"
      }
      
      # Create three route tables for VPC1.
      resource "alicloud_route_table" "rt" {
        count            = 3
        vpc_id           = alicloud_vpc.main[0].id
        route_table_name = "${var.pname}-rt${count.index}"
        associate_type   = "VSwitch"
      }
      
      # Associate the three route tables with vSwitch1, vSwitch2, and vSwitch3.
      resource "alicloud_route_table_attachment" "rt_attach" {
        count          = 3
        vswitch_id     = alicloud_vswitch.main[count.index].id
        route_table_id = alicloud_route_table.rt[count.index].id
      }
      
      # Route entry for VPC1
      resource "alicloud_route_entry" "rt-entry1" { # Next hop is the transit router.
        route_table_id        = alicloud_route_table.rt[0].id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Attachment"
        nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
      }
      resource "alicloud_route_entry" "rt-entry2" { # Next hop is ECS1.
        route_table_id        = alicloud_route_table.rt[1].id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Instance"
        nexthop_id            = alicloud_instance.main[0].id # ECS1
      }
      resource "alicloud_route_entry" "rt-entry3" { # Next hop is ECS1.
        route_table_id        = alicloud_route_table.rt[2].id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Instance"
        nexthop_id            = alicloud_instance.main[0].id # ECS1
      }
      
      # Route entries for VPC2 and VPC3
      resource "alicloud_route_entry" "rt-entry4" {
        route_table_id        = alicloud_vpc.main[1].route_table_id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Attachment"
        nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
      }
      resource "alicloud_route_entry" "rt-entry5" {
        route_table_id        = alicloud_vpc.main[2].route_table_id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Attachment"
        nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach3.transit_router_attachment_id
      }
      
      # Create two new transit router route tables.
      resource "alicloud_cen_transit_router_route_table" "tr_rt1" {
        transit_router_id               = alicloud_cen_transit_router.tr1.transit_router_id
        transit_router_route_table_name = "tr_rt1"
      }
      
      resource "alicloud_cen_transit_router_route_table" "tr_rt2" {
        transit_router_id               = alicloud_cen_transit_router.tr1.transit_router_id
        transit_router_route_table_name = "tr_rt2"
      }
      
      # Associate tr_rt1 with attach2 and attach3.
      resource "alicloud_cen_transit_router_route_table_association" "ass1" {
        transit_router_route_table_id = alicloud_cen_transit_router_route_table.tr_rt1.transit_router_route_table_id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
      }
      resource "alicloud_cen_transit_router_route_table_association" "ass2" {
        transit_router_route_table_id = alicloud_cen_transit_router_route_table.tr_rt1.transit_router_route_table_id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach3.transit_router_attachment_id
      }
      # Associate tr_rt2 with attach1.
      resource "alicloud_cen_transit_router_route_table_association" "ass3" {
        transit_router_route_table_id = alicloud_cen_transit_router_route_table.tr_rt2.transit_router_route_table_id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
      }
      
      # Transit router route entries
      resource "alicloud_cen_transit_router_route_entry" "tr_rt1_entry1" {
        transit_router_route_table_id                     = alicloud_cen_transit_router_route_table.tr_rt1.transit_router_route_table_id
        transit_router_route_entry_destination_cidr_block = "0.0.0.0/0"
        transit_router_route_entry_next_hop_type          = "Attachment"
        transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
      }
      resource "alicloud_cen_transit_router_route_entry" "tr_rt2_entry1" {
        transit_router_route_table_id                     = alicloud_cen_transit_router_route_table.tr_rt2.transit_router_route_table_id
        transit_router_route_entry_destination_cidr_block = "10.1.0.0/16"
        transit_router_route_entry_next_hop_type          = "Attachment"
        transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
      }
      resource "alicloud_cen_transit_router_route_entry" "tr_rt2_entry2" {
        transit_router_route_table_id                     = alicloud_cen_transit_router_route_table.tr_rt2.transit_router_route_table_id
        transit_router_route_entry_destination_cidr_block = "10.2.0.0/16"
        transit_router_route_entry_next_hop_type          = "Attachment"
        transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach3.transit_router_attachment_id
      }
      
      output "ecs1_logon_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.main[0].id}"
      }
      
      output "ecs2_logon_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.main[1].id}"
      }
      
      output "ecs3_logon_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.main[2].id}"
      }
    4. Inicialize o diretório.

      terraform init
    5. crie os recursos. Após execute o comando, o Terraform exibe uma prévia dos recursos a serem criados. Após confirme as informações, insira yes para iniciar o processo de criação.

      terraform apply

    Etapa 2: Testar e verifique

    1. Faça login na instância ECS2 (nomeada tf-CenSec-ecs2):

      Nos Outputs do Terraform, localize o endereço de login para o ECS2. Copie o endereço para o seu navegador e abra-o. Ao fazer login, selecione Temporary SSH Key como método de autenticação.

      image

    2. No ECS2, execute o comando mtr para testar o caminho de tráfego do ECS2 para o ECS3:

      mtr 10.2.0.1 -i 5

      Descrição do parâmetro: -i 5 especifica que uma solicitação ping é enviada a cada 5 segundos.

      image

      O resultado mostra que os pacotes enviados do ECS2 para o ECS3 passam por 10.0.0.1 (ECS1). Isso indica que o tráfego entre a VPC2 e a VPC3 é roteado pelo ECS1 (a instância ECS de segurança).

    Etapa 3: Liberar os recursos

    Após concluir a verificação, se não precisar mais dos recursos, execute o comando a seguir para liberá-los. Isso evita cobranças adicionais.

    terraform destroy --auto-approve