Tentang Pengarahan Layanan


Ringkasan

Anda dapat mengontrol cara traffic jaringan mengalir dalam cluster GKE dengan menggunakan Pengarahan Layanan GKE. Anda dapat menentukan aturan untuk mengarahkan jenis traffic tertentu ke fungsi jaringan yang telah Anda deploy di cluster. Pengarahan Layanan GKE mirip dengan perutean berbasis kebijakan, yang memungkinkan Anda mengganti jalur normal traffic jaringan.

Terminologi dan konsep

Halaman ini menggunakan konsep berikut:

Fungsi Layanan (SF)

Fungsi Layanan adalah komponen software yang memproses paket data yang diterima. Lapisan Layanan dapat beroperasi di lapisan model OSI mana pun, mulai dari Lapisan 2 (lapisan link data).

Fungsi Layanan dapat dikategorikan secara luas sebagai berikut:

  • Firewall untuk keamanan
  • Proxy untuk mengontrol akses
  • Akselerasi WAN untuk meningkatkan kecepatan,
  • Deep Packet Inspection (DPI) untuk menganalisis konten
  • Penyadapan yang Sah (LI) untuk pengawasan dan penyelidikan
  • Network Address Translator (NAT) untuk alamat IP pribadi dan publik
  • HTTP untuk pengayaan header
  • Load balancer untuk mendistribusikan traffic secara efisien

Terminologi alternatif untuk Fungsi Layanan mencakup:

  • Peralatan kontainer
  • Perangkat virtual
  • Fungsi jaringan virtual (NFV)
  • Fungsi jaringan dalam container (CNF)
  • Fungsi jaringan berbasis cloud (CNF)

Dalam Pengarahan Layanan, objek Layanan mewakili Fungsi Layanan (SF).

Service Function Chain (SFC)

Service Function Chain (SFC) adalah serangkaian Service Function seperti firewall, proxy, atau load balancer yang ditautkan bersama untuk memproses traffic jaringan dalam urutan tertentu. Rantai ini berfungsi seperti pipeline, di mana setiap Fungsi Layanan melakukan tugas tertentu pada traffic sebelum meneruskannya ke fungsi berikutnya.

Service Function Chain (SFC) juga disebut Service Chain (SC).

Dalam Pengarahan Layanan, objek ServiceFunctionChain mewakili Rantai Fungsi Layanan (SFC).

Fungsi Layanan beroperasi secara independen dari Rantai Fungsi Layanan mana pun. Fungsi Layanan biasanya tidak mengetahui Service Function Chain yang menjadi bagiannya.

Pengarahan Layanan

Pengarahan Layanan merutekan paket ke Fungsi Layanan yang dipilih dengan cara yang sepenuhnya transparan bagi sumber dan tujuan. Konsep ini terkadang disebut sebagai "perutean berbasis kebijakan", "pengalihan traffic", atau "pengalihan Fungsi Layanan". Pengarahan Layanan mencapai perutean transparan menggunakan enkapsulasi Geneve + NSH (lihat RFC 8926, RFC 8300, Draf IETF Geneve + NSH).

Beberapa karakteristik penting dari Pengarahan Layanan meliputi:

  • Load balancing di seluruh Pod backend Fungsi Layanan: Fungsi Layanan sering kali berjalan di beberapa Pod untuk skalabilitas dan keandalan. Pengarahan Layanan mendistribusikan traffic jaringan masuk secara merata di seluruh Pod ini untuk mencegah satu Pod menjadi kelebihan beban.
  • Mendukung afinitas aliran 5-tuple (semua hop perantara harus stabil untuk aliran tertentu): Aliran 5-tuple adalah cara untuk mengidentifikasi aliran traffic jaringan tertentu berdasarkan alamat IP sumber, port sumber, alamat IP tujuan, port tujuan, dan protokol. Pengarahan Layanan memastikan bahwa semua paket dalam alur yang sama secara konsisten diarahkan ke serangkaian Fungsi Layanan (hop) yang sama.
  • Mengaktifkan jalur data kembali simetris: Jalur data kembali simetris berarti bahwa traffic respons mengikuti jalur yang sama kembali ke sumber seperti traffic permintaan asli. Pengarahan Layanan memastikan simetri ini, yang penting untuk beberapa protokol dan aplikasi jaringan.

Untuk setiap traffic jaringan tertentu yang diarahkan layanannya, Pod Fungsi Layanan perantara menangani semua paket traffic jaringan tertentu tersebut, sehingga memastikan hop perantara yang konsisten dan rute yang dapat diprediksi. Pod Fungsi Layanan yang sama menerima traffic kembali untuk memastikan alur traffic simetris. Jika traffic asli dikirim ke tujuan dalam cluster yang sama, traffic kembali akan otomatis menemukan cara untuk kembali melalui Rantai Layanan yang sama. Jika traffic asli berada di luar cluster, Fungsi Layanan terakhir dalam rantai akan menarik traffic kembali ke dirinya sendiri menggunakan penafsiran alamat jaringan sumber (SNAT) atau proxy, yang bertindak sebagai perantara.

Kasus penggunaan

Pengarahan Layanan GKE mengintegrasikan perutean berbasis kebijakan ke dalam cluster Anda. Tindakan ini memungkinkan kasus penggunaan utama berikut:

Layanan keamanan yang dikelola sendiri:

Organisasi dapat membangun infrastruktur keamanan mereka sendiri menggunakan fungsi jaringan yang di-container (CNF) seperti firewall virtual (vFW), firewall virtual generasi berikutnya (vNG-FW), dan sistem deteksi intrusi virtual (vIDS). Pengarahan Layanan memastikan bahwa traffic dirutekan melalui CNF ini sebelum mencapai tujuan yang diinginkan, sehingga memberikan lapisan perlindungan dan kontrol.

Penyedia keamanan terkelola (MSP):

MSP dapat memanfaatkan Pengarahan Layanan GKE untuk merutekan traffic Anda melalui Rantai Layanan keamanan berbasis cloud mereka. Hal ini memungkinkan mereka menawarkan solusi keamanan yang komprehensif, termasuk Secure Web Gateway (SWG), SASE (Secure Access Service Edge), dan fungsi SD-WAN (Software-Defined Wide Area Network).

Telekomunikasi dan Jaringan 5G:

Pengarahan Layanan mengelola alur traffic untuk berbagai fungsi jaringan dalam infrastruktur telekomunikasi dan 5G. Anda dapat mengatur router virtual (vRouter), pengontrol batas sesi virtual (vSBC), dan fungsi jaringan inti 5G untuk memastikan pengelolaan traffic yang efisien, load balancing, dan penerapan kebijakan keamanan atau kualitas Layanan tertentu.

Cara kerja Pengarahan Layanan

Bagian ini menjelaskan cara kerja berbagai komponen Pengarahan Layanan.

Fungsi Layanan

  1. Mengidentifikasi aliran traffic jaringan: Pengarahan Layanan GKE mengidentifikasi setiap koneksi jaringan menggunakan ID aliran unik, hash 5 tuple dari alamat IP sumber, port sumber, alamat IP tujuan, port tujuan, dan protokol paket.

  2. Memastikan afinitas alur: Pengarahan Layanan memastikan afinitas alur dengan mengarahkan semua paket dengan ID alur yang sama melalui jalur yang sama dari Fungsi Layanan (SF).

  3. Mengubah paket untuk membuat alur baru: Jika Fungsi Layanan mengubah salah satu kolom 5-tuple dalam paket. Misalnya, NAT mengubah alamat IP sumber, sehingga membuat alur baru.

  4. Memilih traffic untuk alur baru: Proses pemilihan traffic mengevaluasi alur baru untuk menentukan jalurnya melalui Service Functions yang tersisa, yang berpotensi mengambil rute yang berbeda dari alur asli.

  5. Menangani proxy dan NAT sebagai dua alur: Traffic melalui proxy atau NAT dianggap sebagai dua alur terpisah: sumber ke proxy/NAT dan proxy/NAT ke tujuan. Pengarahan Layanan tidak menjamin jalur yang sama untuk kedua alur ini.

  6. Memvalidasi alamat sumber: SF selalu tunduk pada validasi alamat sumber, bahkan untuk traffic yang tidak diarahkan oleh Pengarahan Layanan. Jika Fungsi Layanan memulai alur baru dengan alamat IP sumber yang tidak cocok, paket tersebut akan dihapus kecuali jika diizinkan secara eksplisit.

  7. Mempertahankan transparansi enkapsulasi: Pengarahan Layanan menggunakan enkapsulasi Geneve untuk traffic antar-SF, tetapi Pod Fungsi Layanan itu sendiri tidak menyadarinya. Paket didekapsulasi sebelum memasuki Pod, sehingga menyederhanakan pengembangan Fungsi Layanan.

Koneksi yang ada

Saat Anda membuat TrafficSelector, Pengarahan Layanan akan otomatis menerapkannya ke koneksi yang ada yang cocok dengan kriteria pemilih. Proxy mengalihkan paket dari koneksi ini ke fungsi layanan yang sesuai. Fungsi Layanan itu sendiri bertanggung jawab untuk mengelola koneksi dalam penerbangan ini. Pendekatan umumnya adalah membuang paket dan mengandalkan klien untuk memulai koneksi baru, yang kemudian terintegrasi dengan lancar ke dalam rantai layanan sejak awal.

Siklus proses resource

Resource TrafficSelector dan ServiceFunctionChain dihapus segera setelah ditandai untuk dihapus. Tidak ada webhook atau finalizer yang mencegah atau menunda penghapusan resource.

Traffic Pod-ke-Layanan

Pengarahan Layanan melakukan pemilihan traffic setelah menyelesaikan alamat IP Virtual Layanan. Traffic yang diarahkan ke Layanan menggunakan ClusterIP-nya dapat dipilih untuk Pengarahan Layanan jika alamat IP Pod tujuan berada dalam CIDR yang ditentukan di kolom .egress.to.ipBlock setelah alamat IP Virtual diselesaikan.

Penerapan NetworkPolicy

Pengarahan Layanan tidak melewati NetworkPolicy. Kebijakan keluar di Pod sumber dan kebijakan masuk di Pod tujuan tetap berlaku untuk traffic yang dipilih untuk Pengarahan Layanan. Namun, hal ini tidak tunduk pada penegakan NetworkPolicy di ingress atau egress Fungsi Layanan. Hal ini karena aturan masuk atau keluar NetworkPolicy ditentukan dengan baik untuk Pod sumber dan tujuan, tetapi tidak untuk penerusan paket.

Manfaat

Penggunaan Pengarahan Layanan GKE, yang dipadukan dengan transisi ke teknologi berbasis cloud, memberikan manfaat berikut:

  • Penawaran Marketplace: Pihak Ketiga dapat menawarkan produk dalam kontainer mereka di Google Cloud Marketplace dan menggunakan API Pengarahan Layanan. Mereka dapat memberikan panduan deployment berdasarkan API bawaan Kubernetes yang disediakan dan dikelola oleh GKE.
  • Perincian Kubernetes: Anda dapat mengontrol traffic dalam cluster Kubernetes. Anda dapat mengklasifikasikan traffic yang ingin Anda arahkan. Anda dapat memilih beban kerja yang ingin Anda terapkan secara selektif untuk Pengarahan Layanan.
  • Bidireksionalitas: Pengarahan Layanan GKE bersifat bidireksional. Artinya, untuk alur tertentu, jalur kembali simetris dengan jalur maju. Hal ini penting saat Fungsi Layanan (SF) di-deploy sebagai grup replika. Pastikan bahwa alur yang sama melewati Replika set yang sama untuk mempertahankan status.
  • Dukungan Multi-Jaringan: Sebagian besar Fungsi Layanan memerlukan beberapa antarmuka Pod untuk memisahkan bidang data dari bidang kontrol dan pengelolaan. Beberapa Fungsi Layanan memiliki beberapa antarmuka sebagai bagian dari arsitekturnya. Pengarahan Layanan GKE mencakup integrasi dengan Multi-Network on Pods. Dengan ini, pengguna dapat membuat Pengarahan Layanan di Pod-Network tertentu.
  • Pengiriman Paket Mentah ke Aplikasi: Pengarahan Layanan GKE mengenkapsulasi paket asli dan mengirimkannya langsung ke Pod. Dengan begitu, Anda tidak perlu melakukan dekapsulasi dan aplikasi Anda dapat langsung memproses paket asli.

Langkah berikutnya