CodeLab: Pertukaran Rute Dinamis dengan NCC

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.

c06021c6aaa47682.png

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:

6bc606cb34bce7e8.png

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.

6c8baa1bf0676379.png

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.

ad64a1dee6dc74c9.png

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.

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}"
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.

715e7803d5c09569.png

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).

647c835a25a9ceb4.png

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. f266a4a762333161.png

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.