1. Pengantar
Ringkasan
Di lab ini, pengguna akan mempelajari cara penggunaan Network Connectivity Center(NCC) untuk membuat konektivitas Inter-VPC dalam skala besar melalui dukungan untuk VPC Spokes. Saat pengguna mendefinisikan VPC sebagai spoke VPC, hal ini memungkinkan mereka untuk menghubungkannya ke beberapa jaringan VPC bersama-sama melalui NCC Hub. NCC dengan konfigurasi spoke VPC mengurangi kompleksitas operasional dalam mengelola konektivitas antar-VPC berpasangan melalui peering VPC, alih-alih menggunakan model pengelolaan konektivitas terpusat.
Ingat bahwa Network Connectivity Center (NCC) adalah model bidang kontrol hub-and-spoke untuk pengelolaan konektivitas jaringan di Google Cloud. Resource hub menyediakan model manajemen konektivitas terpusat untuk menghubungkan spoke.
Yang akan Anda bangun
Dalam codelab ini, Anda akan membangun hub logis dan topologi spoke dengan hub NCC yang akan menerapkan fabric konektivitas VPC yang sepenuhnya bertautan di tiga VPC berbeda.
Yang akan Anda pelajari
- Konektivitas VPC Mesh Penuh dengan NCC
- NAT Pribadi di seluruh VPC
Yang Anda butuhkan
- Mengetahui jaringan VPC GCP
- Mengetahui perutean Cloud Router dan BGP
- Dua project GCP terpisah
- Codelab ini memerlukan 5 VPC. Salah satu VPC tersebut harus berada di project terpisah dari hub NCC
- Periksa Kuota:Jaringan dan minta penambahan Jaringan jika diperlukan, screenshot di bawah:
Tujuan
- Menyiapkan Lingkungan GCP
- Mengonfigurasi Network Connectivity Center dengan VPC sebagai diucapkan
- Validasi Jalur Data
- Mempelajari fitur kemudahan servis NCC
- Membersihkan resource yang digunakan
Sebelum memulai
Konsol Google Cloud dan Cloud Shell
Untuk berinteraksi dengan GCP, kami akan menggunakan Konsol Google Cloud dan Cloud Shell di seluruh lab ini.
Project NCC Hub Konsol Google Cloud
Konsol Cloud dapat diakses di https://console.cloud.google.com.
Siapkan item berikut di Google Cloud untuk mempermudah konfigurasi Network Connectivity Center:
Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Luncurkan Cloud Shell. Codelab ini menggunakan $variables untuk membantu implementasi konfigurasi gcloud di Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [HUB-PROJECT-NAME]
projectname=[HUB-PROJECT-NAME]
echo $projectname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
Peran IAM
NCC memerlukan peran IAM untuk mengakses API tertentu. Pastikan untuk mengonfigurasi pengguna Anda dengan peran IAM NCC sesuai kebutuhan.
Peran/Deskripsi | Izin |
networkconnectivity.networkAdmin - Memungkinkan administrator jaringan mengelola hub dan spoke. | networkConnectivity.hubs.networkConnectivity.spokes. |
networkconnectivity.networkSpokeManager - Memungkinkan penambahan dan pengelolaan spoke di hub. Untuk digunakan di VPC Bersama tempat project host memiliki Hub, tetapi admin lain dalam project lain dapat menambahkan spoke untuk lampiran mereka ke Hub. | networkConnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer - Memungkinkan pengguna jaringan melihat atribut hub dan spoke yang berbeda. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Menyiapkan Lingkungan Jaringan
Ringkasan
Di bagian ini, kita akan men-deploy jaringan VPC dan aturan firewall dalam satu project. Diagram logis menggambarkan lingkungan jaringan yang akan disiapkan di langkah ini.
Untuk mendemonstrasikan dukungan spoke lintas project, pada langkah berikutnya, kita akan men-deploy aturan VPC dan firewall dalam project yang berbeda.
Membuat VPC dan Subnet
Jaringan VPC berisi subnet yang akan Anda instal VM GCE untuk validasi jalur data
gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom
gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1
gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1
Rentang Subnet yang Didukung VPC
NCC mendukung semua rentang subnet IPv4 yang valid, kecuali alamat IP publik yang digunakan secara pribadi. Pada langkah ini, buat rentang IP yang valid di VPC4 yang akan diimpor ke tabel rute hub.
gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1
gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1
gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1
gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1
gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1
gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1
gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1
gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1
Membuat Rentang Subnet yang Tumpang Tindih
NCC tidak akan mengimpor rentang IP yang tumpang-tindih ke tabel rute hub. Pengguna akan mengatasi pembatasan ini di langkah selanjutnya. Untuk saat ini, buat dua rentang Ip yang tumpang tindih untuk VPC2 dan VPC3.
gcloud compute networks subnets create overlapping-vpc2 \
--network vpc3-ncc --range 10.3.3.0/24 --region us-central1
gcloud compute networks subnets create overlapping-vpc3 \
--network vpc2-ncc --range 10.3.3.0/24 --region us-central1
Mengonfigurasi Aturan Firewall VPC
Konfigurasikan aturan firewall di setiap VPC untuk mengizinkan
- SSH
- IAP Internal
- Rentang 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-internal \
--network vpc1-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc2-vpc-internal \
--network vpc2-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc3-vpc-internal \
--network vpc3-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc4-vpc-internal \
--network vpc4-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-iap \
--network vpc1-ncc \
--allow all \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc2-vpc-iap \
--network vpc2-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc3-vpc-iap \
--network vpc3-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc4-vpc-iap \
--network vpc4-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
Mengonfigurasi VM GCE di Setiap VPC
Anda memerlukan akses internet sementara untuk menginstal paket di "vm1-vpc1-ncc."
Buat empat virtual machine, setiap VM akan ditetapkan ke salah satu VPC yang sebelumnya dibuat
gcloud compute instances create vm1-vpc1-ncc \
--subnet vpc1-ncc-subnet1 \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
apt-get install tcpdump -y
service apache2 restart
echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'
gcloud compute instances create vm2-vpc2-ncc \
--zone us-central1-a \
--subnet vpc2-ncc-subnet1 \
--no-address
gcloud compute instances create pnat-vm-vpc2 \
--zone us-central1-a \
--subnet overlapping-vpc3 \
--no-address
gcloud compute instances create vm1-vpc4-ncc \
--zone us-east1-b \
--subnet class-e-rfc5735 \
--no-address
3. Hub Network Connectivity Center
Ringkasan
Di bagian ini, kita akan mengonfigurasi NCC Hub menggunakan perintah gcloud. NCC Hub akan berfungsi sebagai bidang kontrol yang bertanggung jawab dalam membangun konfigurasi perutean di antara setiap spoke VPC.
Aktifkan Layanan API
Aktifkan API konektivitas jaringan jika belum diaktifkan:
gcloud services enable networkconnectivity.googleapis.com
Buat NCC Hub
Membuat hub NCC menggunakan perintah gcloud
gcloud network-connectivity hubs create ncc-hub
Contoh output
Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.
Created hub [ncc-hub]
Jelaskan NCC Hub yang baru dibuat. Perhatikan nama dan jalur yang terkait.
gcloud network-connectivity hubs describe ncc-hub
gcloud network-connectivity hubs describe ncc-hub
createTime: '2023-11-02T02:28:34.890423230Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub
routeTables:
- projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uniqueId: de749c4c-0ef8-4888-8622-1ea2d67450f8
updateTime: '2023-11-02T02:28:48.613853463Z'
NCC Hub memperkenalkan tabel {i>routing<i} yang mendefinisikan bidang kontrol untuk membuat konektivitas data. Menemukan nama tabel {i>routing<i} NCC Hub
gcloud network-connectivity hubs route-tables list --hub=ncc-hub
NAME: default
HUB: ncc-hub
DESCRIPTION:
Temukan URI tabel rute default NCC.
gcloud network-connectivity hubs route-tables describe default --hub=ncc-hub
createTime: '2023-02-24T17:32:58.786269098Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uid: eb1fdc35-2209-46f3-a8d6-ad7245bfae0b
updateTime: '2023-02-24T17:33:01.852456186Z'
Buat daftar isi tabel perutean default NCC Hub. Catatan* Tabel rute NCC Hub akan kosong hingga spoke
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
Tabel rute NCC Hub harus kosong.
4. NCC dengan VPC Spoke
Ringkasan
Di bagian ini, Anda akan mengonfigurasi tiga VPC sebagai Spoke NCC menggunakan perintah gcloud.
Mengonfigurasi VPC sebagai Spoke NCC
Konfigurasikan VPC berikut sebagai NCC Spoke dalam urutan ini
- VPC4
- VPC1
- VPC2
- VPC3
Mengonfigurasi VPC4 sebagai spoke NCC dan menetapkannya ke hub NCC yang telah dibuat sebelumnya. Panggilan API yang berbicara dengan NCC memerlukan lokasi yang ditentukan. Tanda "–global" menyederhanakan sintaksis gcloud dengan memungkinkan pengguna menghindari menentukan jalur URI lengkap saat mengonfigurasi spoke NCC baru.
gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global
Mengonfigurasi VPC1 sebagai spoke NCC.
Administrator dapat mengecualikan rute subnet agar tidak diekspor dari VPC yang diucapkan ke tabel rute hub NCC. Di bagian codelab ini, buat aturan ekspor pengecualian berdasarkan awalan ringkasan untuk mencegah subnet VPC1 diekspor ke tabel rute NCC Hub.
Gunakan perintah gcloud ini untuk menampilkan daftar semua subnet yang dimiliki VPC1.
gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc
Perhatikan pasangan subnet /25 yang sebelumnya dibuat di bagian penyiapan.
NAME REGION NETWORK RANGE STACK_TYPE
vpc1-ncc-subnet1 us-central1 vpc1-ncc 10.1.1.0/24 IPV4_ONLY
vpc1-ncc-subnet2 us-central1 vpc1-ncc 10.1.2.0/25 IPV4_ONLY
vpc1-ncc-subnet3 us-central1 vpc1-ncc 10.1.2.128/25 IPV4_ONLY
Konfigurasikan VPC1 sebagai panggilan NCC dan kecualikan pasangan subnet /25 agar tidak diimpor ke tabel perutean hub menggunakan metode "export-exclude-ranges" kata kunci untuk memfilter rute ringkasan /24 dari rentang spesifik tersebut..
gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global
Catatan* Pengguna dapat memfilter hingga 16 rentang IP unik per panggilan NCC.
Buat daftar isi tabel perutean default NCC Hub. Apa yang terjadi pada pasangan subnet /25 di tabel {i>routing<i} NCC Hub?
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.1.1.0/24 ACTIVE VPC_PRIMARY_SUBNET vpc1-ncc ncc-hub default
Mengonfigurasi VPC2 sebagai spoke NCC
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global
Mengonfigurasi VPC3 sebagai spoke NCC dan menetapkannya ke hub NCC yang telah dibuat sebelumnya.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global
Apa yang terjadi?
ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)
NCC Hub mendeteksi rentang IP yang tumpang-tindih dengan VPC2. Ingat bahwa VPC2 dan VPC3 disiapkan dengan subnet IP 10.3.3.0/24 yang sama.
Memfilter Rentang IP yang Tumpang Tindih dengan Kecualikan Ekspor
Pada saat menulis codelab ini, masalah umum yang terjadi adalah pengguna harus menghapus dan membuat ulang spoke NCC untuk melakukan perubahan konfigurasi pada filter ekspor.
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
Catatan: Penghapusan spoke VPC yang terkait dengan VPC tertentu memerlukan periode tunggu selama 10 menit hingga berakhir agar dapat membuat ulang spoke baru yang merujuk VPC yang sama tersebut.
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
Mengonfigurasi VPC3 sebagai spoke NCC dan menetapkannya ke hub NCC yang telah dibuat sebelumnya. Percobaan untuk menambahkan VPC3 sebagai spoke NCC ini seharusnya berhasil.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
Buat daftar isi tabel perutean default NCC Hub dan periksa outputnya.
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
Rentang IP yang tumpang-tindih dari VPC2 dan VPC3 dikecualikan. Tabel perutean NCC Hub mendukung semua jenis rentang valid IPv4 yang valid, kecuali untuk alamat IP publik yang digunakan secara pribadi (PUPI).
5. NCC dengan Cross Project Spoke
Ringkasan
Sejauh ini, Anda telah mengonfigurasi spoke NCC yang termasuk dalam project yang sama dengan Hub. Di bagian ini, Anda akan mengonfigurasi VPC sebagai NCC Spoke dari project terpisah selain NCC Hub menggunakan perintah gcloud.
Hal ini memungkinkan pemilik project yang mengelola VPC mereka sendiri untuk berpartisipasi dalam konektivitas jaringan dengan NCC Hub.
Lintas Project: Konsol Google Cloud dan Cloud Shell
Untuk berinteraksi dengan GCP, kami akan menggunakan Konsol Google Cloud dan Cloud Shell di seluruh lab ini.
Cross Project Spoke Google Cloud Console
Konsol Cloud dapat diakses di https://console.cloud.google.com.
Siapkan item berikut di Google Cloud untuk mempermudah konfigurasi Network Connectivity Center:
Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Luncurkan Cloud Shell. Codelab ini menggunakan $variables untuk membantu implementasi konfigurasi gcloud di Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-CROSSPROJECT-NAME]
xprojname=[YOUR-CROSSPROJECT-NAME]
echo $xprojname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
Peran IAM
NCC memerlukan peran IAM untuk mengakses API tertentu. Pastikan untuk mengonfigurasi pengguna Anda dengan peran IAM NCC sesuai kebutuhan.
Setidaknya, administrator lintas project harus diberi peran IAM: "networkconnection.networkSpokeManager. "
Tabel di bawah mencantumkan peran IAM yang diperlukan untuk admin NCC Hub dan Spoke sebagai referensi.
Peran/Deskripsi | Izin |
networkconnectivity.networkAdmin - Memungkinkan administrator jaringan mengelola hub dan spoke. | networkConnectivity.hubs.networkConnectivity.spokes. |
networkconnectivity.networkSpokeManager - Memungkinkan penambahan dan pengelolaan spoke di hub. Untuk digunakan di VPC Bersama tempat project host memiliki Hub, tetapi admin lain dalam project lain dapat menambahkan spoke untuk lampiran mereka ke Hub. | networkConnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer - Memungkinkan pengguna jaringan melihat atribut hub dan spoke yang berbeda. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
Membuat VPC dan Subnet di Lintas Project
Jaringan VPC berisi subnet yang akan Anda instal VM GCE untuk validasi jalur data
gcloud compute networks create xproject-vpc \
--subnet-mode custom
gcloud compute networks subnets create xprj-net-1 \
--network xproject-vpc \
--range 10.100.1.0/24 \
--region us-central1
URI Project NCC Hub
Gunakan perintah gcloud ini untuk menemukan URI NCC Hub. Anda akan memerlukan jalur URI untuk mengonfigurasi NCC lintas project yang diucapkan di langkah berikutnya.
gcloud network-connectivity hubs describe ncc-hub
VPC Spoke Lintas Project
Login ke project lain yang VPC BUKAN bagian dari project NCC Hub. Di cloudshell, gunakan perintah ini untuk mengonfigurasi VPC sebagai spoke NCC.
- HUB_URI harus berupa URI hub di project yang berbeda.
- VPC_URI harus berada dalam project yang sama dengan spoke
- VPC-network menentukan bahwa VPC dalam lintas project ini akan bergabung dengan NCC Hub di project lain
gcloud network-connectivity spokes linked-vpc-network create xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--vpc-network=xproject-vpc
.
Create request issued for: [xproj-spoke]
Waiting for operation [projects/xproject/locations/global/operations/operation-1689790411247-600dafd351158-2b862329-19b747f1] to complete...done.
Created spoke [xproj-spoke].
createTime: '2023-07-19T18:13:31.388500663Z'
hub: projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/xproject-vpc
name: projects/xproject/locations/global/spokes/xproj-spoke
reasons:
- code: PENDING_REVIEW
message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 46b4d091-89e2-4760-a15d-c244dcb7ad69
updateTime: '2023-07-19T18:13:38.652800902Z'
Bagaimana keadaan referensi lintas proyek yang dibicarakan NCC? Mengapa?
6. Menolak atau Menerima Percakapan Lintas Project
Ringkasan
Admin NCC Hub harus secara eksplisit menyetujui permintaan lintas project untuk bergabung ke hub. Tindakan ini mencegah pemilik project menambahkan spoke NCC yang berbahaya ke tabel perutean global NCC. Setelah lisan diterima atau ditolak, kemudian dapat ditolak atau diterima sebanyak yang diinginkan dengan menjalankan perintah di atas.
Kembali ke project tempat hub NCC berada dengan login ke Cloud Shell.
Mengidentifikasi Percakapan Lintas Project yang akan Ditinjau
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="reason:PENDING_REVIEW"
Menerima spoke
gcloud network-connectivity spokes accept xproj-spoke --global
Opsional: Menolak lisan
gcloud network-connectivity spokes reject xproj-spoke \
--global \
--details="some reason to reject"
Membuat daftar Active Spokes di Hub
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="state:ACTIVE"
NAME PROJECT LOCATION TYPE STATE STATE REASON
Xproj-spoke xproj global VPC_NETWORK ACTIVE
vpc4-spoke4 user-3p-dev global VPC_NETWORK ACTIVE
vpc1-spoke1 user-3p-dev global VPC_NETWORK ACTIVE
vpc2-spoke2 user-3p-dev global VPC_NETWORK ACTIVE
vpc3-spoke3 user-3p-dev global VPC_NETWORK ACTIVE
Mencantumkan rute subnet di Hub
Dari output tersebut, dapatkah Anda melihat rute subnet dari lintas VPC yang diucapkan?
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:xprj-vpc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.100.0.0/16 ACTIVE VPC_PRIMARY_SUBNET xprj-vpc ncc-hub default
7. NAT Pribadi Antar-VPC
Ringkasan
Di bagian ini, Anda akan mengonfigurasi NAT pribadi untuk rentang subnet yang tumpang-tindih di antara dua VPC. Perhatikan bahwa NAT pribadi antar-VPC memerlukan NCC.
Di bagian sebelumnya, VPC2 dan VPC3 dikonfigurasi dengan rentang subnet "10.3.3.0/24" yang tumpang-tindih. Kedua VPC dikonfigurasi sebagai spoke NCC untuk mengecualikan subnet yang tumpang-tindih agar tidak dimasukkan ke dalam tabel rute hub NCC, yang berarti tidak ada jalur data lapisan 3 untuk menjangkau host yang berada di subnet tersebut.
Gunakan perintah ini di project hub NCC untuk menemukan rentang subnet yang tumpang-tindih.
gcloud compute networks subnets list --network vpc2-ncc
gcloud compute networks subnets list --network vpc3-ncc
Pada vpc2-ncc, apa nama subnet yang berisi Rentang IP yang tumpang-tindih?
*Catat dan simpan nama subnet di suatu tempat. Anda akan mengonfigurasi NAT sumber untuk rentang ini.
Mengonfigurasi NAT Pribadi
Khususkan rentang subnet yang dapat dirutekan untuk mendapatkan traffic NAT dari subnet VPC2 yang tumpang-tindih. Dengan mengonfigurasi rentang subnet yang tidak tumpang-tindih menggunakan "–goal=PRIVATE_NAT" penanda.
gcloud compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT
Membuat {i>router<i} cloud khusus untuk melakukan NAT pribadi
gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1
Konfigurasikan router cloud untuk mendapatkan NAT rentang tumpang tindih 10.3.3.0/24 dari vpc2-ncc. Pada contoh konfigurasi di bawah ini, "overlapping-vpc3" adalah nama subnet yang tumpang-tindih. "SEMUA" kata kunci menentukan bahwa semua rentang IP di subnet akan menggunakan NAT sumber.
gcloud compute routers nats create ncc2-nat \
--router=private-nat-cr \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=overlapping-vpc3:ALL \
--router-region=us-central1
Langkah sebelumnya membuat kumpulan rentang IP NAT dan subnet tertentu yang akan diterjemahkan. Di langkah ini, buat Aturan NAT "1" yang menerjemahkan paket jaringan yang cocok dengan traffic yang bersumber dari rentang subnet yang tumpang tindih jika jaringan tujuan mengambil jalur dari tabel perutean hub NCC.
gcloud compute routers nats rules create 1 \
--router=private-nat-cr \
--region=us-central1 \
--match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/$projectname/locations/global/hubs/ncc-hub"' \
--source-nat-active-ranges=ncc2-spoke-nat \
--nat=ncc2-nat
Verifikasi NAT Pribadi
gcloud compute routers nats describe ncc2-nat --router=private-nat-cr
Contoh output
enableDynamicPortAllocation: true
enableEndpointIndependentMapping: false
endpointTypes:
- ENDPOINT_TYPE_VM
name: ncc2-nat
rules:
- action:
sourceNatActiveRanges:
- https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/ncc2-spoke-nat
match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/yueri-3p-dev/locations/global/hubs/ncc-hub"
ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/overlapping-vpc3
sourceIpRangesToNat:
- ALL_IP_RANGES
type: PRIVATE
Secara opsional,
- Beralih ke konsol web
- buka "Layanan Jaringan > Cloud NAT > ncc2-nat"
Pastikan alokasi port dinamis diaktifkan secara default.
Selanjutnya, Anda akan memverifikasi jalur data yang menggunakan jalur NAT pribadi yang dikonfigurasi untuk VPC2.
Buka sesi SSH ke "vm1-vpc1-ncc" dan gunakan perintah tcpdump di bawah untuk menangkap paket yang bersumber dari rentang kumpulan NAT "10.10.10.0/29."
vm1-vpc1-ncc
sudo tcpdump -i any net 10.10.10.0/29 -n
Pada saat menulis codelab ini, NAT pribadi tidak mendukung paket ICMP. sesi SSH ke "pNat-vm-vpc2" dan gunakan perintah curl seperti yang ditunjukkan di bawah untuk terhubung ke "vm1-vpc1-ncc" di port TCP 80.
pnat-vm-vpc2
curl 10.1.1.2 -v
Periksa output tcpdump di "vm1-vpc1-ncc." Apa alamat IP sumber yang berasal dari sesi TCP ke server web kami di "vm1-vpc1-ncc."
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:05:27.504761 ens4 In IP 10.10.10.2.1024 > 10.1.1.2:80: Flags [S], seq 2386228656, win 65320, options [mss 1420,sackOK,TS val 3955849029 ecr 0,nop,wscale 7], length 0
19:05:27.504805 ens4 Out IP 10.1.1.2:80 > 10.10.10.2.1024: Flags [S.], seq 48316785, ack 2386228657, win 64768, options [mss 1420,sackOK,TS val 1815983704 ecr 3955849029,nop,wscale 7], length 0
<output snipped>
8. Memverifikasi Konektivitas Jalur Data
Lihat diagram, verifikasi jalur data antara setiap virtual machine.
Jalankan SSH ke "vm1-vpc1-ncc", lalu mulai dump TCP untuk melacak paket ICMP dari " vm2-vpc2-ncc." Sebagai pengingat, VM ini berada di VPC2.
vm1-vpc1-ncc
sudo tcpdump -i any icmp -v -e -n
Buat sesi SSH ke "vm1-vpc2-ncc" dan "ping" alamat IP "vm1-vpc1-ncc".
vm1-vpc2-ncc
ping 10.1.1.2
Buat SSH ke "vm1-vpc2-ncc" dan "ping" alamat IP "vm1-vpc4-ncc".
vm1-vpc2-ncc
ping 240.0.0.2
9. Pembersihan
Login ke Cloud Shell dan hapus instance VM di jaringan situs hub dan cabang
Menghapus konfigurasi NAT VPC pribadi
gcloud compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet
gcloud compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet
gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet
Menghapus jari-jari ncc
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet
gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet
Tolak spoke lintas project
Tolak VPC lintas project yang diucapkan dari hub NCC.
gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global
Menghapus NCC Hub
gcloud network-connectivity hubs delete ncc-hub --quiet
Menghapus Aturan Firewall
gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet
Hapus Instance GCE
gcloud compute instances delete vm1-vpc1-ncc --zone=us-central1-a --quiet
gcloud compute instances delete vm2-vpc2-ncc --zone=us-central1-a --quiet
gcloud compute instances delete pnat-vm-vpc2 --zone=us-central1-a --quiet
gcloud compute instances delete vm1-vpc4-ncc --zone=us-east1-b --quiet
Menghapus Subnet VPC
gcloud compute networks subnets delete ncc2-spoke-nat --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet2 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet3 --region us-central1 --quiet
gcloud compute networks subnets delete vpc2-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc2 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc3 --region us-central1 --quiet
gcloud compute networks subnets delete benchmark-testing-rfc2544 --region us-east1 --quiet
gcloud compute networks subnets delete class-e-rfc5735 --region us-east1 --quiet
gcloud compute networks subnets delete ietf-protcol-assignment-rfc6890 --region us-east1 --quiet
gcloud compute networks subnets delete ipv6-4-relay-rfc7526 --region us-east1 --quiet
gcloud compute networks subnets delete pupi --region us-east1 --quiet
gcloud compute networks subnets delete test-net-1-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-2-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-3-rfc5737 --region us-east1 --quiet
Menghapus VPC
gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc
--quiet
10. Selamat!
Anda telah menyelesaikan Lab Network Connectivity Center!
Yang telah Anda pelajari
- Mengonfigurasi jaringan Peering VPC Mesh Penuh dengan NCC Hub
- Filter Kecualikan NCC
- Dukungan Spoke Lintas Project
- NAT Pribadi antara VPC
Langkah Berikutnya
©Google, LLC atau afiliasinya. Semua hak dilindungi undang-undang. Jangan disebarluaskan.