Konektivitas jaringan di layanan terkelola Google Cloud
Halaman ini menjelaskan cara menyiapkan konektivitas pribadi dari Konektor Integrasi ke layanan backend Anda seperti CloudSQL untuk MySQL, CloudSQL untuk PostgreSQL, dan CloudSQL untuk SQL Server. Halaman ini mengasumsikan bahwa Anda sudah memahami konsep berikut:
Pertimbangan
Saat Anda membuat lampiran layanan PSC, pertimbangkan poin-poin penting 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 probe health check harus dikirim ke port yang sama.
- Konfigurasikan aturan firewall untuk memfasilitasi aliran traffic.
Aturan traffic masuk
- Traffic dari subnet lampiran layanan PSC akan 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. Penguji
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 traffic keluar
Traffic keluar 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 pass-through (ILB TCP/UDP L4): 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) (ILB proxy L4, ILB L7): Semua permintaan baru berasal dari load balancer. Oleh karena itu, server proxy SOCKS5 Anda harus menerima permintaan dari subnet proxy jaringan VPC Anda. Untuk informasi selengkapnya, lihat Subnet khusus proxy untuk load balancer berbasis Envoy.
Mengonfigurasi konektivitas pribadi
Beberapa layanan Google Cloud terkelola seperti CloudSQL MySQL mengekspos lampiran layanan PSC untuk konektivitas pribadi. Dalam kasus tersebut, Anda dapat melewati langkah ini untuk membuat lampiran layanan PSC, dan lampiran layanan PSC yang disediakan oleh layanan terkelola yang disediakan dapat digunakan untuk membuat lampiran endpoint Konektor Integrasi.
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 Konektor Integrasi 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 diizinkan untuk menggunakan lampiran layanan yang dieksposnya. Dalam hal ini, Anda harus membuat load balancer yang menggunakan lampiran layanan dan mengekspos load balancer ke Konektor Integrasi dengan membuat lampiran layanan lain di project Anda.
Gambar berikut menampilkan layanan terkelola yang mengekspos lampiran layanan:
Membuat load balancer dengan PSC NEG sebagai backend
- Buat NEG untuk terhubung ke layanan yang dipublikasikan.
- Menambahkan backend ke Load Balancer Jaringan proxy internal regional.
Untuk mengetahui informasi selengkapnya, lihat Membuat NEG Private Service Connect.
Membuat lampiran layanan
- Buat subnet untuk PSC NAT.
- Membuat aturan firewall untuk mengizinkan permintaan dari PSC NAT ke load balancer
- Membuat lampiran layanan.
Untuk informasi selengkapnya, lihat Membuat lampiran layanan PSC
Mengizinkan koneksi Private Service Connect dari project Integration Connectors
Untuk mengetahui informasi tentang cara mengizinkan koneksi Private Service Connect dari project Konektor Integrasi, lihat Mengizinkan Konektor Integrasi.
Membuat lampiran layanan untuk layanan terkelola yang mengekspos alamat IP
Jika layanan terkelola tidak mengekspos lampiran layanan, traffic dari Konektor Integrasi harus di-proxy melalui project Anda.
Gambar berikut menampilkan 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 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
- Gunakan SSH untuk terhubung ke instance VM Anda.
gcloud compute ssh \ --tunnel-through-iap \ PROXY_INSTANCE_1
- Instal server proxy SOCKS5 Dante.
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 probe 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 probe.
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 probe 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
- Membuat 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.
Lampiran endpoint sebagai alamat IPUntuk petunjuk 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. Jika DNS pribadi digunakan, bukan alamat IP untuk tujuan host, selain membuat lampiran endpoint sebagai alamat IP, Anda juga harus mengonfigurasi zona terkelola. Untuk petunjuk cara membuat lampiran endpoint sebagai nama host, lihat Membuat lampiran endpoint sebagai nama host.
Kemudian, 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 di koneksi Anda. Saat Anda membuat koneksi baru atau memperbarui koneksi yang ada, di bagian Tujuan, pilih Lampiran endpoint sebagai Jenis Tujuan dan pilih lampiran endpoint yang Anda buat dari daftar Lampiran Endpoint.
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 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 kesenjangan dalam konfigurasi jaringan Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menjalankan Uji Konektivitas.
- Buat grup instance tidak terkelola.
Instance VM akan digunakan untuk melakukan proxy traffic dari Konektor Integrasi ke layanan terkelola. Instal proxy SOCKS5 di instance VM. Proxy Auth Cloud SQL mendukung rantai melalui proxy SOCKS5, yang memungkinkan Anda meneruskan traffic terenkripsi dari proxy Auth Cloud SQL ke instance Cloud SQL tujuan. Oleh karena itu, Anda memerlukan server proxy SOCKS5 untuk terhubung ke instance Cloud SQL pribadi.
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 SOCKS5 Dante.
- Buat instance VM Compute Engine untuk menjalankan server proxy SOCKS5.