全部产品
Search
文档中心

Cloud Enterprise Network:Mengizinkan VPC terisolasi untuk mengakses VPC bersama

更新时间:Jul 06, 2025

Cloud Enterprise Network (CEN) mendukung komunikasi, isolasi, dan pengalihan kebijakan untuk Virtual Private Cloud (VPC) dalam wilayah yang sama. Topik ini menjelaskan cara mengonfigurasi CEN untuk mengizinkan VPC terisolasi mengakses VPC bersama.

Catatan

Anda dapat menjalankan kode contoh dengan satu klik.

Latar Belakang

Skenario berikut digunakan sebagai contoh dalam topik ini. Sebuah perusahaan telah menerapkan tiga VPC di wilayah China (Hangzhou). VPC 3 berfungsi sebagai VPC bersama. Perusahaan ingin mengaktifkan VPC 1 dan VPC 2 untuk mengakses VPC 3 sementara VPC 1 dan VPC 2 tetap terisolasi.

Jaringan

Untuk mengizinkan VPC 1 dan VPC 2 mengakses VPC 3, lakukan operasi berikut untuk mengonfigurasi fitur yang disediakan oleh CEN, seperti tabel rute kustom, pengaitan pengalihan, dan pembelajaran rute:

  • Saat menambahkan VPC 3 ke transit router, aktifkan fitur lanjutan Associate with Default Route Table of Transit Router dan Propagate System Routes to Default Route Table of Transit Router.

    Setelah fitur-fitur ini diaktifkan, tabel rute default dari transit router secara otomatis mempelajari rute sistem VPC 3. VPC 3 dapat meneruskan lalu lintas jaringan dengan memeriksa rute default dari transit router.

  • Saat menambahkan VPC 1 dan VPC 2 ke transit router, aktifkan hanya fitur lanjutan Propagate System Routes to Default Route Table of Transit Router. Kemudian, tambahkan rute yang mengarah ke VPC 3 ke tabel rute kustom dari transit router, dan asosiasikan VPC 1 dan VPC 2 dengan tabel rute kustom.

    Dengan cara ini, tabel rute default dari transit router dapat mempelajari rute sistem VPC 1 dan VPC 2. VPC 1 dan VPC 2 dapat meneruskan lalu lintas ke VPC 3 dengan memeriksa tabel rute kustom. Dalam hal ini, VPC 1 tidak dapat berkomunikasi dengan VPC 2.

  • Tambahkan rute 0.0.0.0/0 ke tabel rute VPC 1, VPC 2, dan VPC 3, serta atur hop berikutnya ke rute yang mengarah ke transit router.

  • Dalam contoh ini, tiga VPC dibuat di wilayah China (Hangzhou), dan vSwitches dibuat di zona tertentu di wilayah tersebut. Tabel berikut menjelaskan blok CIDR dari VPC:

    Penting

    Pastikan bahwa blok CIDR dari VPC tidak tumpang tindih.

    VPC

    vSwitch

    Zona vSwitch

    Blok CIDR

    Alamat IP ECS

    VPC 1

    Blok CIDR utama: 192.168.0.0/16

    vSwitch 1

    Zona A

    192.168.0.0/24

    192.168.0.224

    vSwitch 2

    Zona B

    192.168.1.0/24

    VPC 2

    Blok CIDR utama: 172.16.0.0/16

    vSwitch 3

    Zona A

    172.16.0.0/24

    172.16.0.222

    vSwitch 4

    Zona B

    172.16.1.0/24

    VPC 3

    Blok CIDR utama: 10.0.0.0/16

    vSwitch 5

    Zona A

    10.0.0.0/24

    10.0.0.112

    vSwitch 6

    Zona B

    10.0.1.0/24

Prosedur

Topik ini menyediakan dua metode konfigurasi: Konsol dan Terraform. Pilih metode yang sesuai dengan kebutuhan Anda.

Console

Langkah 1: Buat instance CEN

Untuk menghubungkan instance jaringan, Anda harus membuat instance CEN.

  1. Masuk ke Konsol CEN.

  2. Di halaman Instances, klik Create CEN Instance.

  3. Dalam kotak dialog Create CEN Instance, atur parameter berikut dan klik OK:

    • Name: Masukkan nama untuk instance CEN.

    • Description: Masukkan deskripsi untuk instance.

Langkah 2: Tambahkan VPC ke instance CEN

  1. Di halaman Instances, klik ID instance CEN.

  2. Di tab Basic Information dari instance CEN, klik ikon 添加网络实例 di bawah VPC.

  3. Di halaman Connection with Peer Network Instance, atur parameter berikut dan klik OK:

    • Network Type: Secara default, Virtual Private Cloud (VPC) dipilih.

    • Region: Pilih wilayah tempat instance jaringan berada. Untuk contoh ini, pilih China (Hangzhou).

    • Transit Router: Sistem secara otomatis membuat transit router di wilayah yang dipilih.

    • Resource Owner UID: Pilih akun Alibaba Cloud yang memiliki VPC. Nilai default Current Account digunakan.

    • Billing method: Pilih opsi default Pay-As-You-Go.

    • Attachment Name: Masukkan nama untuk koneksi ini.

    • Network Instance: Pilih ID VPC yang akan dihubungkan. VPC 3 dipilih dalam contoh ini.

    • VSwitch: Pilih vSwitch di zona yang didukung oleh transit router.

      • Jika transit router edisi perusahaan diterapkan di wilayah yang hanya mendukung satu zona, pilih vSwitch di zona tersebut.

      • Jika diterapkan di wilayah yang mendukung beberapa zona, pilih setidaknya dua vSwitch yang berada di zona berbeda untuk pemulihan bencana zona. Ini memastikan transmisi data tanpa gangguan antara VPC dan transit router.

      • Kami merekomendasikan Anda memilih vSwitch di setiap zona untuk mengurangi latensi dan meningkatkan kinerja jaringan karena data dapat ditransmisikan melalui jarak yang lebih pendek.

    • Advanced Settings: Secara default, sistem secara otomatis memilih fitur lanjutan berikut. Dalam contoh ini, hanya Associate with Default Route Table of Transit Router dan Propagate System Routes to Default Route Table of Transit Router yang dipilih untuk VPC 3.

    • Setelah menambahkan VPC 3 ke instance CEN, klik Create More Connections.

      Ulangi Langkah 3 untuk membuat koneksi untuk VPC 1 dan VPC 2. Saat menambahkan VPC 1 dan VPC 2 ke instance CEN, pilih hanya Propagate System Routes to Default Route Table of Transit Router.

    • Setelah membuat koneksi VPC, klik Return to the List untuk kembali ke halaman detail instance CEN.

    Langkah 3: Asosiasikan VPC 1 dan VPC 2 dengan tabel rute kustom

    1. Di halaman detail instance CEN, klik ID transit router.

    2. Di halaman detail transit router, klik tab Route Table.

    3. Di bagian kiri, klik Create Route Table.

    4. Dalam kotak dialog Create Route Table, atur parameter berikut dan klik OK:

      • Transit Router: Sistem secara otomatis memilih transit router di wilayah saat ini.

      • Route Table Name: Masukkan nama untuk tabel rute.

      • Route Table Description: Masukkan deskripsi untuk tabel rute.

      • Multi-region ECMP Routing: Pertahankan nilai default.

    5. Klik View Route Table Details untuk kembali ke tab Route Table.

    6. Di tab Route Table, pilih tabel rute yang dibuat pada langkah sebelumnya, klik tab Route Table Association, lalu klik Create Association.

    7. Dalam kotak dialog Add Association, pilih koneksi instance jaringan untuk diasosiasikan dengan tabel rute kustom, dan klik OK.

      Dalam contoh ini, VPC 1 dan VPC 2 diasosiasikan dengan tabel rute kustom untuk meneruskan lalu lintas dengan memeriksa tabel rute kustom.

    8. Di halaman detail tabel rute kustom, klik tab Route Entry, lalu klik Add Route Entry.

    9. Dalam kotak dialog Add Route Entry, atur parameter berikut dan klik OK:

      • Route Table: Sistem default ke tabel rute kustom saat ini.

      • Transit Router: Sistem memilih tabel rute kustom saat ini secara default.

      • Name: Masukkan nama untuk entri rute.

      • Destination CIDR Block: Masukkan blok CIDR tujuan untuk entri rute. 10.0.0.0/16 digunakan dalam contoh ini.

      • Blackhole Route: Jika Anda memilih Yes, lalu lintas yang ditujukan untuk rute ini akan dijatuhkan. Dalam contoh ini, No dipilih.

      • Next Hop: Pilih hop berikutnya untuk entri rute. VPC 3 dipilih dalam contoh ini.

      • Description: Masukkan deskripsi untuk entri rute.

    Langkah 4: Tambahkan rute default ke VPC

    Tambahkan rute default dengan blok CIDR tujuan 0.0.0.0/0 dan hop berikutnya sebagai transit router ke tabel rute VPC 1, VPC 2, dan VPC 3.

    1. Masuk ke Konsol VPC.

    2. Di panel navigasi sisi kiri, klik Route Tables.

    3. Di bilah navigasi atas, pilih wilayah tempat tabel rute berada.

    4. Di halaman Route Tables, klik ID tabel rute.

      Dalam contoh ini, tabel rute VPC 3 dipilih.

    5. Di halaman detail tabel rute, klik Route Entry di bawah tab Custom Route, dan klik Add Route Entry.

    6. Di panel Add Route Entry, atur parameter berikut dan klik OK:

      • Name: Masukkan nama untuk entri rute.

      • Destination CIDR Block: Masukkan blok CIDR tujuan untuk entri rute. 0.0.0.0/0 digunakan dalam contoh ini.

      • Next Hop Type: Pilih tipe hop berikutnya. Untuk contoh ini, pilih Transit Router.

      • Transit Router: Pilih koneksi ke VPC. Dalam contoh ini, VPC 3 dipilih.

      Untuk informasi lebih lanjut, lihat Gunakan tabel rute kustom untuk mengelola lalu lintas jaringan.

    7. Ulangi Langkah4 hingga Langkah6 untuk menambahkan rute dengan blok CIDR tujuan 0.0.0.0/0 dan hop berikutnya adalah transit router ke VPC 1 dan VPC 2.

      Kemudian, Anda dapat melihat tabel rute VPC 1, VPC 2, VPC 3, dan transit router di halaman detail transit router di Konsol CEN.

      1. Di halaman detail transit router, klik Network Routes untuk melihat rute VPC 1, VPC 2, dan VPC 3.

        1. Di halaman detail transit router, klik Network Routes.

        2. Pilih ID VPC 1, VPC 2, atau VPC 3 dari daftar drop-down Network Instance.

          Gambar 1. Rute VPC 1

          image

          Gambar 2. Rute VPC 2

          image

          Gambar 3. Rute VPC 3

          image

      2. Di tab Route Table, lihat rute yang telah dipelajari oleh tabel rute default dari VPC 1, VPC 2, dan VPC 3.

        1. Di halaman detail transit router, klik tab Route Table.

        2. Di tab Route Table, lihat rute di tabel rute.

          Gambar 4. Tabel Rute Sistem

          image

          Gambar 5. Tabel Rute Kustom

          image

    Langkah 5: Uji konektivitas jaringan

    Setelah menyelesaikan langkah-langkah sebelumnya, Anda dapat melakukan operasi berikut untuk menguji konektivitas antara VPC 1, VPC 2, dan VPC 3:

    Catatan

    Sebelum memulai, pastikan aturan grup keamanan VPC 1, VPC 2, dan VPC 3 mengizinkan instance ECS di dalam VPC untuk saling berkomunikasi. Untuk informasi lebih lanjut, lihat Lihat Aturan Grup Keamanan.

    1. Masuk ke instance ECS di VPC 1. Untuk informasi lebih lanjut, lihat Ikhtisar Metode Koneksi Jarak Jauh ECS.

    2. Jalankan perintah ping untuk ping alamat IP instance ECS yang diterapkan di VPC 3 untuk menguji konektivitas antara VPC 1 dan VPC 3.

      Hasil ini menunjukkan bahwa VPC 1 dan VPC 3 dapat berkomunikasi satu sama lain. VPC1 to VPC3 connectivity

    3. Masuk ke instance ECS di VPC 2 dan jalankan perintah ping untuk ping alamat IP instance ECS di VPC 3. Ini menguji konektivitas antara VPC 2 dan VPC 3.

      Hasilnya menunjukkan bahwa VPC 2 dan VPC 3 dapat berkomunikasi satu sama lain. VPC2 to VPC3 connectivity

    4. Masuk ke instance ECS di VPC 1 dan jalankan perintah ping untuk ping alamat IP instance ECS di VPC 2 untuk menguji konektivitas antara VPC 1 dan VPC 2.

      Hasilnya menunjukkan bahwa VPC 1 dapat berkomunikasi dengan VPC 2. VPC1 to VPC2 no connectivity

    Terraform

    Anda dapat menggunakan Terraform untuk menyiapkan lingkungan dalam topik ini. Untuk detail tentang instalasi dan konfigurasi Terraform, lihat Instal Terraform.

    Langkah-langkah berikut menunjukkan cara menjalankan Terraform v1.9.8 pada host Linux. Pastikan Anda telah menyelesaikan Autentikasi.

    Catatan

    Catatan bahwa sumber daya tertentu dalam contoh ini mungkin menimbulkan biaya. Lepaskan atau berhenti berlangganan dari sumber daya tersebut ketika tidak lagi dibutuhkan.

    Langkah 1: Buat sumber daya

    1. Buat direktori untuk skenario dan navigasikan ke direktori tersebut.

      mkdir tf-CenSharedVpc && cd tf-CenSharedVpc
    2. Buat file main.tf untuk mendefinisikan sumber daya.

      touch main.tf
    3. Buka file main.tf, tempel kode berikut ke dalam file, dan simpan perubahan. File ini mencakup semua sumber daya dan konfigurasi yang diperlukan.

      variable "pname" {
        description = "Nama awalan untuk sumber daya"
        type        = string
        default     = "tf-CenSharedVpc"
      }
      
      variable "default_region" {
        description = "Wilayah default"
        type        = string
        default     = "cn-hangzhou"
      }
      
      variable "az_list" {
        description = "Daftar zona ketersediaan yang akan digunakan"
        type        = list(string)
        default     = ["cn-hangzhou-j", "cn-hangzhou-k"]
      }
      
      variable "vpc_cidr_list" {
        description = "Daftar blok CIDR VPC"
        type        = list(string)
        default     = ["192.168.0.0/16", "172.16.0.0/12", "10.0.0.0/16"]
      }
      
      variable "vsw_cidr_list" {
        description = "Daftar blok CIDR VSW"
        type        = list(string)
        default = [
          "192.168.0.0/24", "192.168.1.0/24",
          "172.16.0.0/24", "172.16.1.0/24",
          "10.0.0.0/24", "10.0.1.0/24"
        ]
      }
      
      variable "ecs_ip_list" {
        description = "Daftar IP ECS"
        type        = list(string)
        default     = ["192.168.0.124", "172.16.0.222", "10.0.0.112"]
      }
      
      provider "alicloud" {
        region = var.default_region
      }
      
      # --- 3vpc 6vsw 3ecs
      resource "alicloud_vpc" "vpc" {
        count      = length(var.vpc_cidr_list)
        vpc_name   = "${var.pname}-vpc${count.index + 1}"
        cidr_block = var.vpc_cidr_list[count.index]
      }
      
      resource "alicloud_vswitch" "vsw" {
        count        = length(var.vsw_cidr_list)
        vpc_id       = alicloud_vpc.vpc[floor(count.index / length(var.az_list))].id
        cidr_block   = var.vsw_cidr_list[count.index]
        zone_id      = var.az_list[count.index % length(var.az_list)]
        vswitch_name = "${var.pname}-vsw${count.index + 1}"
      }
      
      resource "alicloud_instance" "ecs" {
        count                = length(var.vpc_cidr_list)
        instance_name        = "${var.pname}-ecs${count.index + 1}"
        instance_type        = "ecs.e-c1m1.large"
        security_groups      = [alicloud_security_group.sg[count.index].id]
        vswitch_id           = alicloud_vswitch.vsw[count.index * length(var.az_list)].id
        image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
        system_disk_category = "cloud_essd"
        private_ip           = var.ecs_ip_list[count.index]
        instance_charge_type = "PostPaid"
      }
      
      # --- 3 sg
      resource "alicloud_security_group" "sg" {
        count  = length(var.vpc_cidr_list)
        name   = "${var.pname}-${count.index + 1}"
        vpc_id = alicloud_vpc.vpc[count.index].id
      }
      
      resource "alicloud_security_group_rule" "allow_inbound_ssh" {
        count             = length(var.vpc_cidr_list)
        type              = "ingress"
        ip_protocol       = "tcp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "22/22"
        priority          = 1
        security_group_id = alicloud_security_group.sg[count.index].id
        cidr_ip           = "0.0.0.0/0"
      }
      
      resource "alicloud_security_group_rule" "allow_inbound_icmp" {
        count             = length(var.vpc_cidr_list)
        type              = "ingress"
        ip_protocol       = "icmp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "-1/-1"
        priority          = 1
        security_group_id = alicloud_security_group.sg[count.index].id
        cidr_ip           = "0.0.0.0/0"
      }
      
      # --- cen and tr
      resource "alicloud_cen_instance" "cen" {
        cen_instance_name = "${var.pname}-cen1"
      }
      resource "alicloud_cen_transit_router" "tr" {
        transit_router_name = "${var.pname}-tr"
        cen_id              = alicloud_cen_instance.cen.id
      }
      data "alicloud_cen_transit_router_route_tables" "tr" { # get tr sys table
        transit_router_id               = alicloud_cen_transit_router.tr.transit_router_id
        transit_router_route_table_type = "System"
      }
      
      # 3 attach
      resource "alicloud_cen_transit_router_vpc_attachment" "attach" {
        count             = length(var.vpc_cidr_list)
        cen_id            = alicloud_cen_instance.cen.id
        transit_router_id = alicloud_cen_transit_router.tr.transit_router_id
        vpc_id            = alicloud_vpc.vpc[count.index].id
        zone_mappings {
          zone_id    = var.az_list[0]
          vswitch_id = alicloud_vswitch.vsw[count.index * length(var.az_list)].id
        }
        zone_mappings {
          zone_id    = var.az_list[1]
          vswitch_id = alicloud_vswitch.vsw[count.index * length(var.az_list) + 1].id
        }
        transit_router_vpc_attachment_name = "attach${count.index + 1}"
      }
      
      # 3 propa
      resource "alicloud_cen_transit_router_route_table_propagation" "propa" {
        count                         = length(var.vpc_cidr_list)
        transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr.tables[0].id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[count.index].transit_router_attachment_id
      }
      
      # 1 custom_table
      resource "alicloud_cen_transit_router_route_table" "custom_table" { # create tr custom_table
        transit_router_id               = alicloud_cen_transit_router.tr.transit_router_id
        transit_router_route_table_name = "custom_table"
      }
      
      resource "alicloud_cen_transit_router_route_entry" "tr_entry" {
        transit_router_route_table_id                     = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
        transit_router_route_entry_destination_cidr_block = "10.0.0.0/16"
        transit_router_route_entry_next_hop_type          = "Attachment"
        transit_router_route_entry_name                   = "entry1_name"
        transit_router_route_entry_description            = "entry1_desc"
        transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach[2].transit_router_attachment_id
      }
      
      # associate attach1\2   custom_table
      resource "alicloud_cen_transit_router_route_table_association" "ass1" {
        transit_router_route_table_id = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[0].transit_router_attachment_id
      }
      resource "alicloud_cen_transit_router_route_table_association" "ass2" {
        transit_router_route_table_id = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[1].transit_router_attachment_id
      }
      # ass attach3 sys_table
      resource "alicloud_cen_transit_router_route_table_association" "ass3" {
        transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr.tables[0].id
        transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[2].transit_router_attachment_id
      }
      
      # vpc entry
      resource "alicloud_route_entry" "vpc_entry" {
        count                 = length(var.vpc_cidr_list)
        route_table_id        = alicloud_vpc.vpc[count.index].route_table_id
        destination_cidrblock = "0.0.0.0/0"
        nexthop_type          = "Attachment"
        nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach[count.index].transit_router_attachment_id
      }
      
      output "ecs1_login_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[0].id}"
      }
      
      output "ecs2_login_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[1].id}"
      }
      
      output "ecs3_login_address" {
        value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[2].id}"
      }
    4. Inisialisasi folder untuk menyelesaikan pengaturan Terraform.

      terraform init
    5. Buat sumber daya. Terraform akan menampilkan pratinjau sumber daya yang akan dibuat. Setelah verifikasi, masukkan yes untuk memulai proses pembuatan.

      terraform apply

    Langkah 2: Uji konektivitas

    Anda dapat melakukan langkah-langkah berikut untuk menguji konektivitas antara VPC 1, VPC 2, dan VPC 3:

    1. Masuk ke ECS 1 di VPC 1 (nama instansinya adalah tf-CenSharedVpc-ecs1).

      Alamat login untuk ECS 1 tersedia di Output Terraform. Salin alamat ini ke browser untuk mengaksesnya. Setelah masuk, pilih Temporary SSH Key-based sebagai metode autentikasi.

      image

    2. Untuk menguji konektivitas antara VPC 1 dan VPC 3, jalankan perintah ping untuk ping alamat IP instance ECS di VPC 3.

      ping 10.0.0.112

      Hasil di bawah ini mengonfirmasi bahwa VPC 1 dan VPC 3 dapat berkomunikasi satu sama lain. 共享VPC-VPC1-VPC3

    3. Masuk ke instance ECS 2 di VPC 2 (nama instansinya adalah tf-CenSharedVpc-ecs2). Jalankan perintah ping untuk ping alamat IP instance ECS 3 di VPC 3 untuk menguji konektivitas antara VPC 2 dan VPC 3.

      ping 10.0.0.112

      Hasilnya menunjukkan bahwa VPC 2 dan VPC 3 dapat berkomunikasi satu sama lain. 共享VPC-VPC2-VPC3

    4. Untuk menguji konektivitas antara VPC 1 dan VPC 2, masuk ke instance ECS 1 di VPC 1 (nama instansinya adalah tf-CenSharedVpc-ecs1). Jalankan perintah ping untuk ping alamat IP instance ECS 2 di VPC 2.

      ping 172.16.0.222

      Hasilnya menunjukkan bahwa VPC 1 tidak dapat berkomunikasi dengan VPC 2. 共享VPC-VPC1-VPC2

    Langkah 3: Lepaskan sumber daya

    Setelah verifikasi selesai dan Anda tidak lagi membutuhkan sumber daya, jalankan perintah berikut untuk melepaskannya dan menghentikan penagihan.

    terraform destroy --auto-approve