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.
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:
PentingPastikan 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.
Masuk ke Konsol CEN.
Di halaman Instances, klik Create CEN Instance.
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
Di halaman Instances, klik ID instance CEN.
Di tab Basic Information dari instance CEN, klik ikon
di bawah VPC.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.
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
Di halaman detail instance CEN, klik ID transit router.
Di halaman detail transit router, klik tab Route Table.
Di bagian kiri, klik Create Route Table.
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.
Klik View Route Table Details untuk kembali ke tab Route Table.
Di tab Route Table, pilih tabel rute yang dibuat pada langkah sebelumnya, klik tab Route Table Association, lalu klik Create Association.
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.
Di halaman detail tabel rute kustom, klik tab Route Entry, lalu klik Add Route Entry.
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.
Masuk ke Konsol VPC.
Di panel navigasi sisi kiri, klik Route Tables.
Di bilah navigasi atas, pilih wilayah tempat tabel rute berada.
Di halaman Route Tables, klik ID tabel rute.
Dalam contoh ini, tabel rute VPC 3 dipilih.
Di halaman detail tabel rute, klik Route Entry di bawah tab Custom Route, dan klik Add Route Entry.
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.
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.
Di halaman detail transit router, klik Network Routes untuk melihat rute VPC 1, VPC 2, dan VPC 3.
Di halaman detail transit router, klik Network Routes.
Pilih ID VPC 1, VPC 2, atau VPC 3 dari daftar drop-down Network Instance.
Gambar 1. Rute VPC 1

Gambar 2. Rute VPC 2

Gambar 3. Rute VPC 3

Di tab Route Table, lihat rute yang telah dipelajari oleh tabel rute default dari VPC 1, VPC 2, dan VPC 3.
Di halaman detail transit router, klik tab Route Table.
Di tab Route Table, lihat rute di tabel rute.
Gambar 4. Tabel Rute Sistem

Gambar 5. Tabel Rute Kustom

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:
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.
Masuk ke instance ECS di VPC 1. Untuk informasi lebih lanjut, lihat Ikhtisar Metode Koneksi Jarak Jauh ECS.
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.

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.

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.

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 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
Buat direktori untuk skenario dan navigasikan ke direktori tersebut.
mkdir tf-CenSharedVpc && cd tf-CenSharedVpcBuat file
main.tfuntuk mendefinisikan sumber daya.touch main.tfBuka 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®ionId=${var.default_region}&instanceId=${alicloud_instance.ecs[0].id}" } output "ecs2_login_address" { value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs®ionId=${var.default_region}&instanceId=${alicloud_instance.ecs[1].id}" } output "ecs3_login_address" { value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs®ionId=${var.default_region}&instanceId=${alicloud_instance.ecs[2].id}" }Inisialisasi folder untuk menyelesaikan pengaturan Terraform.
terraform initBuat sumber daya. Terraform akan menampilkan pratinjau sumber daya yang akan dibuat. Setelah verifikasi, masukkan
yesuntuk 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:
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.

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.112Hasil di bawah ini mengonfirmasi bahwa VPC 1 dan VPC 3 dapat berkomunikasi satu sama lain.

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.112Hasilnya menunjukkan bahwa VPC 2 dan VPC 3 dapat berkomunikasi satu sama lain.

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.222Hasilnya menunjukkan bahwa VPC 1 tidak dapat berkomunikasi dengan VPC 2.

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