Konektivitas jaringan di layanan terkelola Google Cloud
Halaman ini menjelaskan cara menyiapkan konektivitas pribadi dari Integration Connectors ke layanan backend Anda seperti CloudSQL untuk MySQL, CloudSQL untuk PostgreSQL, dan CloudSQL untuk SQL Server. Halaman ini mengasumsikan bahwa Anda memahami konsep berikut:
Pertimbangan
Saat membuat lampiran layanan PSC, pertimbangkan poin-poin utama berikut:
- Lampiran layanan PSC dan load balancer dibuat di subnet yang berbeda dalam VPC yang sama. Secara khusus, lampiran layanan selalu dibuat di subnet NAT.
- Server proxy SOCKS5 harus terikat ke alamat IP
0.0.0.0:<port>karena hal ini diperlukan untuk traffic masuk dari load balancer dan pemeriksaan health check. Untuk mengetahui informasi selengkapnya, lihat Health check. - Traffic dari load balancer dan pemeriksaan health check harus dikirim ke port yang sama.
- Konfigurasi aturan firewall untuk memfasilitasi alur traffic.
Aturan ingress
- Traffic dari subnet lampiran layanan PSC harus menjangkau layanan backend Anda.
- Dalam subnet ILB, ILB harus dapat mengirim traffic ke server proxy SOCKS5.
- Pemeriksaan health check harus dapat mengakses server proxy SOCKS5. Pemeriksaan health check Google Cloud memiliki rentang IP tetap (
35.191.0.0/16, 130.211.0.0/22). Jadi, IP ini dapat diizinkan untuk mengirim traffic ke server proxy SOCKS.
Aturan egress
Traffic egress diaktifkan secara default di project Google Cloud, kecuali jika aturan penolakan tertentu dikonfigurasi.
- Semua komponen Google Cloud Anda seperti lampiran layanan PSC dan load balancer harus berada di region yang sama.
- Pastikan server proxy SOCKS5 Anda menerima traffic dalam skenario berikut:
- Load balancer passthrough (L4 TCP/UDP ILB): Permintaan dari IP NAT lampiran layanan PSC harus dapat menjangkau server proxy SOCKS5 Anda. Oleh karena itu, Anda harus mengizinkan seluruh rentang IP subnet NAT untuk lampiran layanan. Untuk mengetahui informasi selengkapnya, lihat Subnet Private Service Connect.
- Load balancer berbasis proxy/HTTP(s) (L4 proxy ILB, L7 ILB): Semua permintaan baru berasal dari load balancer. Oleh karena itu, server proxy SOCKS5 Anda harus menerima permintaan dari subnet proxy jaringan VPC Anda. Untuk mengetahui informasi selengkapnya, lihat Subnet khusus proxy untuk load balancer berbasis Envoy.
Mengonfigurasi konektivitas pribadi
Beberapa layanan terkelola Google Cloud seperti CloudSQL MySQL mengekspos lampiran layanan PSC untuk konektivitas pribadi. Dalam hal ini, Anda dapat melewati langkah ini untuk membuat lampiran layanan PSC, dan lampiran layanan PSC yang disediakan oleh layanan terkelola dapat digunakan untuk membuat lampiran endpoint Integration Connectors.
Anda harus membuat lampiran layanan PSC baru dalam skenario berikut:
- Layanan terkelola Google Cloud tidak mengekspos lampiran layanan, tetapi mengekspos alamat IP menggunakan akses layanan pribadi.
- Layanan terkelola Google Cloud mengekspos lampiran layanan, tetapi tidak mendukung daftar yang diizinkan untuk project Integration Connectors agar dapat menggunakan lampiran layanan.
Langkah-langkah untuk membuat lampiran layanan untuk kedua skenario ini dijelaskan secara mendetail di bagian berikut. Setelah membuat lampiran layanan, Anda harus membuat lampiran endpoint dan mengonfigurasi koneksi untuk menggunakan lampiran endpoint.
Membuat lampiran layanan untuk layanan terkelola yang membatasi akses
Layanan terkelola mungkin tidak mengizinkan project Integration Connectors untuk dimasukkan ke daftar yang diizinkan agar dapat menggunakan lampiran layanan yang dieksposnya. Dalam hal ini, Anda harus membuat load balancer yang menggunakan lampiran layanan dan mengekspos load balancer ke Integration Connectors dengan membuat lampiran layanan lain di project Anda.
Gambar berikut menunjukkan layanan terkelola yang mengekspos lampiran layanan:
Untuk contoh layanan terkelola yang mengekspos lampiran layanan, lihat Konektivitas pribadi untuk cluster MongoDB Atlas.
Membuat load balancer dengan NEG PSC sebagai backend
- Buat NEG untuk terhubung ke layanan yang dipublikasikan.
- Tambahkan backend ke Load Balancer Jaringan proxy internal regional.
Untuk mengetahui informasi selengkapnya, lihat Membuat NEG Private Service Connect.
Membuat lampiran layanan
- Buat subnet untuk NAT PSC.
- Buat aturan firewall untuk mengizinkan permintaan dari NAT PSC ke load balancer
- Buat lampiran layanan.
Untuk mengetahui informasi selengkapnya, lihat Membuat lampiran layanan PSC
Mengizinkan koneksi Private Service Connect dari project Integration Connectors
Untuk mengetahui informasi tentang cara memasukkan koneksi Private Service Connect dari project Integration Connectors ke daftar yang diizinkan, lihat Memasukkan Integration Connectors ke daftar yang diizinkan.
Membuat lampiran layanan untuk layanan terkelola yang mengekspos alamat IP
Jika layanan terkelola tidak mengekspos lampiran layanan, traffic dari Integration Connectors harus di-proxy melalui project Anda.
Gambar berikut menunjukkan layanan terkelola yang tidak mengekspos lampiran layanan:
Untuk mengonfigurasi konektivitas pribadi, lakukan langkah-langkah berikut:
- Buat lampiran layanan PSC.
- Buat instance VM Compute Engine untuk menjalankan server proxy SOCKS5.
- Buat instance proxy 1.
gcloud compute instances create PROXY_INSTANCE_1 \ --project=PROJECT_ID \ --network-interface=network-tier=PREMIUM,subnet=SUBNET_NAME_2,no-address
Berdasarkan persyaratan Anda, Anda dapat membuat instance VM sebanyak yang diperlukan.
- Buat instance proxy 1.
- Buat aturan firewall untuk mengizinkan SSH ke instance VM Anda.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_SSH \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:22 - SSH ke instance VM Anda.
gcloud compute ssh \ --tunnel-through-iap \ PROXY_INSTANCE_1 - Instal server proxy Dante SOCKS5.
sudo apt update sudo apt install dante-server - Periksa antarmuka server.
sudo ip a
- Buat cadangan konfigurasi Dante.
sudo mv /etc/danted.conf /etc/danted.conf.bak
- Buat file konfigurasi Dante baru.
sudo nano /etc/danted.conf
- Salin konfigurasi berikut ke file konfigurasi:
logoutput: /var/log/socks.log # Bind the server to the 0.0.0.0 IP address to allow traffic # traffic from the load balancer and the health check probes. internal: 0.0.0.0 port = 1080 external: ens4 clientmethod: none socksmethod: none user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } socks block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error }
- Mulai ulang server Dante dan periksa statusnya.
sudo systemctl restart danted sudo systemctl status danted - Keluar dari instance VM.
exit
- Buat load balancer dengan instance VM sebagai backend.
- Buat grup instance tidak terkelola.
gcloud compute instance-groups unmanaged create INSTANCE_GROUP_NAME
- Tambahkan instance VM yang dibuat pada langkah 3 ke grup.
gcloud compute instance-groups unmanaged add-instances INSTANCE_GROUP_NAME \ --instances=PROXY_INSTANCE_1 - Buat pemeriksaan health check dan izinkan traffic dari pemeriksaan.
- Buat pemeriksaan health check.
gcloud compute health-checks create tcp HEALTH_CHECK_NAME \ --port BACKEND_SERVER_PORT --region=REGION
Dalam perintah ini, tetapkan BACKEND_SERVER_PORT ke 1080, yang merupakan port default tempat server proxy SOCKS5 berjalan.
- Buat aturan firewall untuk mengizinkan traffic dari pemeriksaan.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_HEALTHCHECK \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK --allow=tcp:BACKEND_SERVER_PORT \ --source-ranges=35.191.0.0/16,130.211.0.0/22
- Buat pemeriksaan health check.
- Buat load balancer internal L4 dan izinkan traffic dari load balancer.
- Buat layanan backend.
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=internal --protocol=tcp --health-checks=HEALTH_CHECK_NAME \ --health-checks-region=REGION
- Tambahkan grup instance ke layanan backend.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=ZONE
- Buat aturan penerusan.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=internal --network=VPC_NETWORK --subnet=SUBNET_NAME_2 \ --ip-protocol=TCP --ports=BACKEND_SERVER_PORT --backend-service=BACKEND_SERVICE \ --backend-service-region=REGION
-
Buat aturan firewall untuk mengizinkan traffic internal dari load balancer ke grup instance.
gcloud compute firewall-rules create FIREWALL_RULE_NAME_INTERNAL \ --direction=INGRESS --priority=1000 --network=VPC_NETWORK \ --action=ALLOW --rules=all --source-ranges=SUBNET_RANGE_2
- Buat layanan backend.
Membuat lampiran endpoint
Setelah membuat lampiran layanan untuk layanan terkelola, Anda harus membuat lampiran endpoint, lalu menggunakannya dalam koneksi Anda.
Lampiran endpoint sebagai alamat IPUntuk mengetahui petunjuk tentang cara membuat lampiran endpoint sebagai alamat IP, lihat Membuat lampiran endpoint sebagai alamat IP.
Lampiran endpoint sebagai nama hostDalam kasus tertentu seperti backend yang mengaktifkan TLS, tujuan mengharuskan Anda menggunakan nama host, bukan IP pribadi untuk melakukan validasi TLS. Dalam kasus ketika DNS pribadi digunakan, bukan alamat IP untuk tujuan host, selain membuat lampiran endpoint sebagai alamat IP, Anda juga harus mengonfigurasi zona terkelola. Untuk mengetahui petunjuk tentang cara membuat lampiran endpoint sebagai nama host, lihat Membuat lampiran endpoint sebagai nama host.
Nanti, saat mengonfigurasi koneksi untuk menggunakan lampiran endpoint, Anda dapat memilih lampiran endpoint ini.
Mengonfigurasi koneksi untuk menggunakan lampiran endpoint
Setelah membuat lampiran endpoint, gunakan lampiran endpoint dalam koneksi Anda. Saat membuat koneksi baru atau memperbarui koneksi yang ada, di bagian Destinations, pilih Endpoint attachment sebagai Destination Type dan pilih lampiran endpoint yang Anda buat dari daftar Endpoint Attachment.
Jika Anda membuat zona terkelola, pilih Host Address sebagai Destination Type dan gunakan A-record yang Anda buat saat membuat zona terkelola.
Tips pemecahan masalah
Jika Anda mengalami masalah dengan konektivitas pribadi, ikuti panduan yang tercantum di bagian ini untuk menghindari masalah umum.
- Pastikan project tenant konektor dimasukkan ke daftar yang diizinkan dalam lampiran layanan.
- Pastikan konfigurasi berikut untuk aturan firewall:
- Traffic dari subnet lampiran layanan PSC harus diizinkan untuk menjangkau layanan backend Anda.
- Pemeriksaan health check harus dapat mengakses sistem backend Anda. Pemeriksaan health check Google Cloud memiliki rentang IP tetap (35.191.0.0/16, 130.211.0.0/22). Jadi, alamat IP ini harus diizinkan untuk mengirim traffic ke server backend Anda.
- Uji Konektivitas Google Cloud dapat digunakan untuk mengidentifikasi celah dalam konfigurasi jaringan Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menjalankan Uji Konektivitas.
- Buat grup instance tidak terkelola.
Instance VM akan digunakan untuk mem-proxy traffic dari Integration Connectors ke layanan terkelola. Instal proxy SOCKS5 di instance VM. Proxy Auth Cloud SQL mendukung chaining melalui proxy SOCKS5, yang memungkinkan Anda meneruskan traffic terenkripsi dari proxy Auth Cloud SQL ke instance Cloud SQL tujuan.
Langkah-langkah mendetail untuk menginstal dan mengonfigurasi server proxy SOCKS5 berada di luar cakupan dokumen ini, dan Anda dapat menginstal proxy SOCKS5 pilihan Anda. Langkah-langkah berikut menunjukkan cara menginstal dan mengonfigurasi server proxy Dante SOCKS5.
- Buat instance VM Compute Engine untuk menjalankan server proxy SOCKS5.