1. Pengantar
Ringkasan
Dalam lab ini, pengguna akan mempelajari cara Network Connectivity Center (NCC) dapat digunakan untuk membangun konektivitas on-premise dalam skala besar melalui dukungan untuk Spoke VPC dan pertukaran rute dinamis. Jika pengguna menentukan VPC sebagai spoke VPC, mereka dapat menghubungkannya ke beberapa jaringan VPC secara bersamaan melalui Hub NCC. Untuk membuat konektivitas jaringan dengan jaringan lokal pengguna, mereka dapat melampirkan NIC virtual Router appliance, tunnel HA_VPN, atau lampiran VLAN Interconnect ke hub NCC yang sama dengan spoke VPC NCC.
Resource hub menyediakan model pengelolaan konektivitas terpusat untuk menghubungkan spoke.
Yang akan Anda bangun
Dalam codelab ini, Anda akan membuat topologi hub dan spoke logis dengan hub NCC yang akan menerapkan konektivitas hybrid antara jaringan lokal dan VPC workload.
Yang akan Anda pelajari
- Membedakan antara VPC Workload dan VPC Routing
- Integrasi NCC Spoke VPC dan Spoke Hybrid
Yang Anda butuhkan
- Pengetahuan tentang jaringan VPC GCP
- Pengetahuan tentang Cloud Router dan perutean BGP
- Project Google Cloud
- Periksa Quota:Networks dan minta Jaringan tambahan jika diperlukan, screenshot di bawah:
Tujuan
- Menyiapkan Lingkungan GCP
- Mengonfigurasi Network Connectivity Center dengan VPC sebagai spoke
- Mengonfigurasi Network Connectivity Center dengan tunnel HA-VPN sebagai spoke hybrid
- Memvalidasi Jalur Data
- Mempelajari fitur kemampuan servis NCC
- Membersihkan resource yang digunakan
Sebelum memulai
Konsol Google Cloud dan Cloud Shell
Untuk berinteraksi dengan GCP, kita akan menggunakan Konsol Google Cloud dan Cloud Shell di seluruh lab ini.
Project NCC Hub Konsol Google Cloud
Cloud Console 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 penerapan konfigurasi gcloud di Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
region="us-central1"
zone="us-central1-a"
Peran IAM
NCC memerlukan peran IAM untuk mengakses API tertentu. Pastikan untuk mengonfigurasi pengguna dengan peran IAM NCC sesuai kebutuhan.
Peran/Deskripsi | Izin |
networkconnectivity.networkAdmin - Mengizinkan administrator jaringan mengelola hub dan spoke. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager - Memungkinkan penambahan dan pengelolaan spoke di hub. Untuk digunakan di VPC Bersama dengan project host yang memiliki Hub, tetapi admin lain di project lain dapat menambahkan spoke untuk lampiran mereka ke Hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer - Memungkinkan pengguna jaringan melihat berbagai atribut hub dan spoke. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Menyiapkan Lingkungan Jaringan
Ringkasan
Di bagian ini, kita akan men-deploy tiga jaringan VPC dan aturan firewall dalam satu project. Diagram logis mengilustrasikan lingkungan jaringan yang akan disiapkan pada langkah ini. Untuk tujuan codelab ini, VPC akan digunakan untuk menyimulasikan jaringan on-premise.
Konsep Utama 1
VPC Global Google Cloud menyediakan konektivitas jalur data di antara lebih dari 44 region GCP. Cloud Router, layanan regional, secara dinamis mengiklankan subnet dan menerapkan rute yang dipelajari di region tempat router dikonfigurasi atau di seluruh jaringan VPC. Hal yang menentukan router cloud untuk menyebarkan rute secara regional atau global bergantung pada pengguna yang menentukan mode pemilihan rute dinamis: regional atau global.
Di bagian ini, kita akan mulai dengan mengonfigurasi setiap VPC dengan mode pemilihan rute regional. Untuk sisa codelab ini:
- "Routing VPC" mengidentifikasi VPC yang TIDAK dikonfigurasi sebagai spoke VPC NCC.
- "Workload VPC" mengidentifikasi VPC yang dikonfigurasi sebagai spoke NCC.
Membuat VPC beban kerja dan Subnet
Jaringan VPC berisi subnet tempat Anda akan menginstal VM GCE untuk validasi jalur data
vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Membuat VPC perutean dan subnet
NCC mendukung semua rentang subnet IPv4 yang valid, kecuali alamat IP publik yang digunakan secara pribadi.
routing_vpc_network_name="routing-vpc"
routing_vpc_subnet_name="routing-vpc-subnet"
routing_vpc_subnet_range="10.0.2.0/24"
gcloud compute networks create "${routing_vpc_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${routing_vpc_subnet_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--range="${routing_vpc_subnet_range}"
Membuat VPC dan subnet On-prem
NCC mendukung semua rentang subnet IPv4 yang valid, kecuali alamat IP publik yang digunakan secara pribadi.
on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet"
on_prem_subnet_range="10.0.3.0/24"
gcloud compute networks create "${on_prem_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"
Mengonfigurasi Aturan Firewall VPC Beban Kerja
workload_vpc_firewall_name="workload-protocol-fw-vpc"
workload_port_firewall_name="workload-port-firewall-vpc"
gcloud compute firewall-rules create "${workload_vpc_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${workload_port_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Mengonfigurasi VPC Routing dan Aturan Firewall VPC
routing_vpc_fw_name="routing-vpc-protocol-fw"
routing_vpc_port_fw_name="routing-vpc--port-fw"
gcloud compute firewall-rules create "${routing_vpc_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${routing_vpc_port_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Mengonfigurasi VPC On-Prem dan Aturan Firewall VPC
prem_protocol_fw_name="onprem-vpc-protocol-firewall"
prem_port_firewall_name="onprem-vpc-port-firewall-prem"
gcloud compute firewall-rules create "${prem_protocol_fw_name}" \
--network=${on_prem_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${prem_port_firewall_name}" \
--network=${on_prem_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Mengonfigurasi VM GCE di Setiap VPC
Anda memerlukan akses internet sementara untuk menginstal paket di "vm1-vpc1-ncc".
Buat tiga virtual machine, setiap VM akan ditetapkan ke salah satu VPC yang dibuat sebelumnya
gcloud compute instances create vm1-vpc-workload \
--zone us-central1-a \
--subnet="${vpc_spoke_subnet_name}" \
--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-vpc-routing \
--zone us-central1-a \
--subnet="${routing_vpc_subnet_name}" \
--no-address
gcloud compute instances create vm3-onprem \
--zone us-central1-a \
--subnet="${on_prem_subnet_name}" \
--no-address
3. Menyiapkan Konektivitas Hybrid
Di bagian ini, kita akan mengonfigurasi tunnel VPN dengan ketersediaan tinggi (HA) untuk menghubungkan jaringan VPC on-prem dan perutean secara bersamaan.
Mengonfigurasi Cloud Router dengan BGP di VPC perutean
routing_vpc_router_name="routing-vpc-cr"
routing_vpc_router_asn=64525
gcloud compute routers create "${routing_vpc_router_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--asn="${routing_vpc_router_asn}"
Mengonfigurasi Cloud Router dengan BGP di VPC Lokal
on_prem_router_name="on-prem-router"
on_prem_router_asn=64526
gcloud compute routers create "${on_prem_router_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--asn="${on_prem_router_asn}"
Mengonfigurasi VPN Gateway di VPC pemilihan rute
routing_vpn_gateway_name="routing-vpc-vpn-gateway"
gcloud compute vpn-gateways create "${routing_vpn_gateway_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}"
Mengonfigurasi VPN Gateway di VPC Lokal
on_prem_gateway_name="on-prem-vpn-gateway"
gcloud compute vpn-gateways create "${on_prem_gateway_name}" \
--region="${region}" \
--network="${on_prem_network_name}"
Mengonfigurasi tunnel VPN di VPC pemilihan rute dan VPC lokal
secret_key=$(openssl rand -base64 24)
routing_vpc_tunnel_name="routing-vpc-tunnel"
on_prem_tunnel_name="on-prem-tunnel"
gcloud compute vpn-tunnels create "${routing_vpc_tunnel_name}" \
--vpn-gateway="${routing_vpn_gateway_name}" \
--peer-gcp-gateway="${on_prem_gateway_name}" \
--router="${routing_vpc_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
gcloud compute vpn-tunnels create "${on_prem_tunnel_name}" \
--vpn-gateway="${on_prem_gateway_name}" \
--peer-gcp-gateway="${routing_vpn_gateway_name}" \
--router="${on_prem_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
Membuat sesi BGP ke BGP peer VPC perutean dan router cloud lokal
interface_hub_name="if-hub-to-prem"
hub_router_ip="169.254.1.1"
gcloud compute routers add-interface "${routing_vpc_router_name}" \
--interface-name="${interface_hub_name}" \
--ip-address="${hub_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${routing_vpc_tunnel_name}" \
--region="${region}"
bgp_hub_name="bgp-hub-to-prem"
prem_router_ip="169.254.1.2"
gcloud compute routers add-bgp-peer "${routing_vpc_router_name}" \
--peer-name="${bgp_hub_name}" \
--peer-ip-address="${prem_router_ip}" \
--interface="${interface_hub_name}" \
--peer-asn="${on_prem_router_asn}" \
--region="${region}"
interface_prem_name="if-prem-to-hub"
gcloud compute routers add-interface "${on_prem_router_name}" \
--interface-name="${interface_prem_name}" \
--ip-address="${prem_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${on_prem_tunnel_name}" \
--region="${region}"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers add-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--peer-ip-address="${hub_router_ip}" \
--interface="${interface_prem_name}" \
--peer-asn="${routing_vpc_router_asn}" \
--region="${region}"
Secara default, subnet Hub NCC tidak diumumkan ke spoke hybrid. Pada langkah berikutnya, konfigurasikan router cloud untuk mengumumkan rute subnet NCC ke jaringan lokal.
Mengiklankan subnet spoke VPC ke cloud router on-premise
gcloud compute routers update "${routing_vpc_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--set-advertisement-ranges="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Mengiklankan subnet lokal ke router cloud vpc perutean
gcloud compute routers update "${on_prem_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--region="${region}"
Perbarui konfigurasi peering BGP router cloud on-prem untuk mengumumkan awalan dengan nilai MED "111". Di bagian selanjutnya, kita akan mengamati perilaku NCC dengan nilai BGP Med.
on_prem_router_name="on-prem-router"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers update-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--advertised-route-priority="111" \
--region="${region}"
Memeriksa status tunnel vpc perutean
gcloud compute vpn-tunnels describe routing-vpc-tunnel \
--region=us-central1 \
--format='flattened(status,detailedStatus)'
Memeriksa status cloud router vpc perutean
Gunakan perintah gcloud untuk mencantumkan rute yang dipelajari BGP router cloud vpc pemilihan rute.
gcloud compute routers get-status routing-vpc-cr \
--region=us-central1
4. Hub Network Connectivity Center
Ringkasan
Di bagian ini, kita akan mengonfigurasi Hub NCC menggunakan perintah gcloud. Hub NCC akan berfungsi sebagai bidang kontrol yang bertanggung jawab untuk membuat konfigurasi perutean di antara setiap spoke VPC.
Mengaktifkan Layanan API
Aktifkan network connectivity API jika belum diaktifkan:
gcloud services enable networkconnectivity.googleapis.com
Membuat Hub NCC
Membuat hub NCC menggunakan perintah gCloud
hub_name="mesh-hub"
gcloud network-connectivity hubs create "${hub_name}"
Contoh output
Create request issued for: [mesh-hub]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719930559145-61c448a0426e4-2d18c8dd-7107edbe] to complete...done.
Created hub [mesh-hub].
Jelaskan Hub NCC yang baru dibuat. Perhatikan nama dan jalur terkait.
gcloud network-connectivity hubs describe mesh-hub
createTime: '2024-07-02T14:29:19.260054897Z'
exportPsc: false
name: projects/ncc/locations/global/hubs/mesh-hub
policyMode: PRESET
presetTopology: MESH
routeTables:
- projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uniqueId: 08f9ae88-f76f-432b-92b2-357a85fc83aa
updateTime: '2024-07-02T14:29:32.583206925Z'
NCC Hub memperkenalkan tabel perutean yang menentukan bidang kontrol untuk membuat konektivitas data. Menemukan nama tabel pemilihan rute NCC Hub
gcloud network-connectivity hubs route-tables list --hub=mesh-hub
NAME HUB DESCRIPTION
default mesh-hub
Temukan URI tabel rute default NCC.
gcloud network-connectivity hubs route-tables describe default --hub=mesh-hub
createTime: '2024-07-02T14:29:22.340190411Z'
name: projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uid: fa2af78b-d416-41aa-b442-b8ebdf84f799
Cantumkan konten tabel pemilihan rute default NCC Hub. Catatan* Tabel rute NCC Hub akan kosong hingga spoke campuran NCC atau spoke VPC ditentukan.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub --route_table=default
Tabel rute Hub NCC harus kosong.
5. NCC dengan Spoke Hybrid dan VPC
Ringkasan
Di bagian ini, Anda akan mengonfigurasi dua Spoke NCC menggunakan perintah gCloud. Satu spoke akan menjadi spoke VPC dan spoke kedua akan menjadi spoke hybrid (VPN).
Mengonfigurasi VPC Workload sebagai Spoke NCC
Konfigurasikan VPC beban kerja sebagai spoke NCC dan tetapkan ke hub NCC yang dibuat sebelumnya. Panggilan API spoke NCC memerlukan lokasi yang ditentukan. Flag "–global" memungkinkan pengguna menghindari penentuan jalur URI lengkap saat mengonfigurasi spoke NCC baru.
vpc_spoke_name="workload-vpc-spoke"
vpc_spoke_network_name="workload-vpc"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Create request issued for: [workload-vpc-spoke]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719931097138-61c44aa15463f-90de22c7-40c10e6b] to complete...done.
Created spoke [workload-vpc-spoke].
createTime: '2024-07-02T14:38:17.315200822Z'
group: projects/ncc/locations/global/hubs/mesh-hub/groups/default
hub: projects/ncc/locations/global/hubs/mesh-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/ncc/global/networks/workload-vpc
name: projects/ncc/locations/global/spokes/workload-vpc-spoke
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 33e50612-9b62-4ec7-be6c-962077fd47dc
updateTime: '2024-07-02T14:38:44.196850231Z'
Mengonfigurasi tunnel VPN di VPC Pemilihan Rute sebagai spoke hybrid
Gunakan perintah gcloud ini untuk mengonfigurasi tunnel VPN sebagai spoke hybrid untuk bergabung dengan hub mesh.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels create "${vpn_spoke_name}" \
--region="${region}" \
--hub="${hub_name}" \
--vpn-tunnels="${routing_vpc_tunnel_name}"
Contoh Output
Create request issued for: [hybrid-spoke]
Waiting for operation [projects/ncc/locations/us-central1/operations/operation-1719932916561-61c45168774be-0a06ae03-88192175] to complete...done.
Created spoke [hybrid-spoke].
Memverifikasi konfigurasi spoke mesh-hub
Gunakan perintah gcloud untuk membuat daftar konten tabel pemilihan rute default NCC Hub.
gcloud network-connectivity hubs list-spokes mesh-hub
Menganalisis tabel pemilihan rute default mesh-hub
Gunakan perintah gcloud untuk membuat daftar konten tabel pemilihan rute default NCC Hub.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub \
--route_table=default
Awalan yang dipelajari Cloud Router dengan nilai MED BGP di-propagasi di seluruh spoke NCC saat menggunakan pertukaran rute dinamis dengan spoke campuran NCC.
Gunakan perintah gcloud untuk melihat nilai prioritas "111".
gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.0.3.0/24
6. Memverifikasi jalur data
Pada langkah ini, kita akan memvalidasi jalur data antara spoke VPC dan hybrid NCC.
Gunakan output dari perintah gcloud ini untuk login ke VM on prem.
gcloud compute instances list --filter="name=vm3-onprem"
Login ke instance VM yang berada di jaringan lokal.
gcloud compute ssh vm3-onprem --zone=us-central1-a
Di terminal vm3-onprem, gunakan perintah curl untuk membuat sesi web ke VM yang dihosting di workload-vpc.
curl 10.0.1.2 -v
* Trying 10.0.1.2:80...
* Connected to 10.0.1.2 (10.0.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.0.1.2
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 03 Jul 2024 15:41:34 GMT
< Server: Apache/2.4.59 (Debian)
< Last-Modified: Mon, 01 Jul 2024 20:36:16 GMT
< ETag: "1e-61c358c8272ba"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
<
<h3>Web Server: www-vm1</h3>
* Connection #0 to host 10.0.1.2 left intact
7. Pembersihan
Login ke cloud shell dan hapus resource GCP.
Menghapus spoke NCC
gcloud network-connectivity spokes delete workload-vpc-spoke --global \
--quiet
gcloud network-connectivity spokes delete hybrid-spoke \
--quiet \
--region us-central1
Menghapus Hub NCC
gcloud network-connectivity hubs delete mesh-hub --quiet
Menghapus Aturan Firewall
gcloud compute firewall-rules delete onprem-vpc-port-firewall-prem onprem-vpc-protocol-firewall routing-vpc--port-fw routing-vpc-protocol-fw workload-port-firewall-vpc workload-protocol-fw-vpc --quiet
Menghapus Tunnel VPN dengan Ketersediaan Tinggi (HA)
gcloud compute vpn-tunnels delete on-prem-tunnel \
--region=us-central1 \
--quiet
gcloud compute vpn-tunnels delete routing-vpc-tunnel \
--region=us-central1 \
--quiet
Menghapus VPN-Gateway
gcloud compute vpn-gateways delete on-prem-vpn-gateway \
--region=us-central1 --quiet
gcloud compute vpn-gateways delete routing-vpc-vpn-gateway \
--region us-central1 --quiet
Menghapus Cloud Router
gcloud compute routers delete routing-vpc-cr --region us-central1 --quiet
gcloud compute routers delete on-prem-router --region us-central1 --quiet
Menghapus Instance GCE
gcloud compute instances delete vm1-vpc-workload \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm2-vpc-routing \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm3-onprem \
--zone=us-central1-a \
--quiet
Menghapus Subnet VPC
gcloud compute networks subnets delete workload-subnet --region us-central1 --quiet
gcloud compute networks subnets delete on-prem-subnet --region us-central1 --quiet
gcloud compute networks subnets delete routing-vpc-subnet --region us-central1 --quiet
Menghapus VPC
gcloud compute networks delete on-prem-net-vpcworkload-vpc routing-vpc
--quiet
8. Selamat!
Anda telah menyelesaikan Lab Network Connectivity Center Pertukaran Rute Dinamis.
Yang telah Anda pelajari
- Pertukaran Rute Dinamis dengan Network Connectivity Center
Langkah Berikutnya
©Google, LLC atau afiliasinya. Semua hak dilindungi undang-undang. Jangan didistribusikan.