全部产品
Search
文档中心

Server Load Balancer:Aktifkan NLB untuk melestarikan alamat IP klien dan meneruskannya ke server backend

更新时间:Jul 02, 2025

Listener Lapisan 4 dari Network Load Balancer (NLB) dapat bekerja sama dengan server backend untuk melestarikan alamat IP klien. Dalam banyak kasus, jika pelestarian alamat IP klien diaktifkan untuk server backend, server backend dapat memperoleh alamat IP klien. Namun, jika klien IPv6 mengakses layanan IPv4, instance NLB dikonfigurasi dengan listener yang menggunakan SSL melalui TCP, dan server backend ditentukan oleh alamat IP, server backend tidak dapat memperoleh alamat IP klien kecuali Protokol Proxy diaktifkan.

Bagaimana NLB melestarikan alamat IP klien

Mendapatkan IP Klien Asli

Aktifkan fitur pelestarian alamat IP klien

Jika Anda mengaktifkan Client IP Preservation saat membuat grup server untuk instance NLB, server backend dapat memperoleh alamat IP sumber, yaitu alamat IP klien.

Dalam beberapa skenario, fitur ini tidak berlaku. Anda perlu mengaktifkan Protokol Proxy agar server backend dapat memperoleh alamat IP klien. Untuk informasi lebih lanjut, lihat Aktifkan Protokol Proxy.

Aktifkan Protokol Proxy

Protokol Proxy adalah protokol internet yang meneruskan informasi koneksi asli antara server proxy dan server backend.

Dalam banyak kasus, header permintaan yang membawa alamat IP klien sumber ditimpa setelah permintaan diteruskan dari server proxy ke server backend. Alamat IP klien sumber dan port diganti dengan alamat IP dan port dari server proxy. Akibatnya, server backend tidak dapat memperoleh informasi koneksi asli.

Protokol Proxy memungkinkan server proxy untuk mengenkapsulasi informasi koneksi asli dalam header permintaan, yang kemudian diteruskan ke server backend. Server backend dapat memperoleh informasi koneksi asli dengan menguraikan header permintaan yang dienkapsulasi oleh Protokol Proxy. Informasi tersebut mencakup alamat IP sumber, port sumber, dan protokol transmisi.

Protokol Proxy melestarikan informasi koneksi asli untuk mendukung pencatatan log tingkat lanjut, kontrol akses, dan pemantauan lalu lintas.

Penting
  • Protokol Proxy hanya berfungsi jika diaktifkan pada server proxy dan server backend. Jika server backend tidak dapat mengurai header Protokol Proxy tetapi Protokol Proxy diaktifkan, kesalahan penguraian mungkin terjadi pada server backend dan mengganggu ketersediaan layanan.

  • NLB memungkinkan listener menggunakan Protokol Proxy untuk melestarikan informasi koneksi asli, termasuk alamat IP sumber, alamat IP tujuan, port sumber, dan tujuan, serta menyisipkan informasi koneksi ke header TCP atau UDP tanpa menimpa data asli.

  • NLB hanya mendukung Protokol Proxy v2. Protokol Proxy v2 mendukung berbagai protokol transmisi, seperti TCP dan UDP. Untuk informasi lebih lanjut, lihat The PROXY protocol.

Skema berikut memerlukan NLB dan server backend untuk mengaktifkan Protokol Proxy agar alamat IP klien dapat dilestarikan:

  • Klien IPv6 mengakses layanan IPv4 yang ditempatkan di server backend.

  • Instance NLB dikonfigurasi dengan listener yang menggunakan SSL melalui TCP. Listener yang menggunakan SSL melalui TCP tidak dapat dikaitkan dengan grup server yang memiliki pelestarian alamat IP klien diaktifkan.

  • Server backend dari instance NLB ditentukan oleh alamat IP. Jenis server backend ini tidak mendukung pelestarian alamat IP klien.

Prosedur

Aktifkan fitur pelestarian alamat IP klien

Prasyarat

  • Grup server NLB telah dibuat, dan server backend telah ditambahkan ke grup server. Dalam contoh ini, grup server tipe server dibuat. Protokol backend adalah TCP, Instance Elastic Compute Service (ECS) digunakan sebagai server backend, dan port 80 digunakan oleh aplikasi backend. Untuk informasi lebih lanjut, lihat Buat dan Kelola Grup Server.

Langkah 1: Periksa apakah grup server memiliki pelestarian alamat IP klien diaktifkan

  1. Masuk ke Konsol NLB.

  2. Di bilah navigasi atas, pilih wilayah tempat instance NLB ditempatkan.

  3. Di halaman Server Groups, klik ID grup server yang ingin Anda kelola.

  4. Di halaman detail grup server, periksa apakah status Client IP Preservation adalah Enabled. Jika statusnya adalah Disabled, klik Modify Basic Information untuk mengaktifkan fitur tersebut.

Langkah 2: Periksa apakah server backend dapat melestarikan alamat IP klien

Jika aplikasi NGINX ditempatkan di server backend, Anda dapat memeriksa log NGINX untuk menentukan apakah server backend dapat melestarikan alamat IP klien.

Blok kode berikut menunjukkan konfigurasi default bidang dalam log NGINX.

http {
  # Konfigurasi default
  log_format  main  '$remote_addr- $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	#...
}

Path default log NGINX adalah /var/log/nginx/access.log.

Alamat IP pertama dalam setiap entri log adalah alamat IP klien.

image.png

Aktifkan Protokol Proxy

Prasyarat

  • Sebuah grup server NLB telah dibuat, dan server backend telah ditambahkan ke grup server tersebut. Dalam contoh ini, sebuah grup server dengan tipe server dibuat. Protokol backend adalah TCP, Instance ECS digunakan sebagai server backend, dan port 80 digunakan oleh aplikasi backend. Untuk informasi lebih lanjut, lihat Buat dan Kelola Grup Server.

  • Sebuah instance NLB telah dibuat, dan sebuah listener telah dibuat untuk instance NLB tersebut. Sebuah Listener TCP yang menggunakan port 80 digunakan dalam contoh ini. Untuk informasi lebih lanjut, lihat Buat dan Kelola Instance NLB.

    Catatan
    • Sebelum mengaktifkan Protokol Proxy, pastikan server backend Anda mendukung Protokol Proxy v2.

    • Jika beberapa listener dikaitkan dengan grup server backend yang sama, Protokol Proxy harus diaktifkan di semua listener.

    • NGINX Plus R16 dan versi lebih baru serta open source NGINX 1.13.11 dan versi lebih baru mendukung Protokol Proxy v2.

Langkah 1: Aktifkan Protokol Proxy untuk listener

  1. Masuk ke Konsol NLB.

  2. Di bilah navigasi atas, pilih wilayah tempat instance NLB ditempatkan.

  3. Di halaman Instances, klik ID instance yang ingin Anda kelola.

  4. Di halaman detail instance, klik tab Listener, dan klik ID listener yang ingin Anda kelola.

  5. Di halaman detail listener, periksa apakah status Enable Proxy Protocol adalah Enabled. Jika Protokol Proxy dinonaktifkan, klik Modify Listener untuk mengaktifkan Protokol Proxy.

Langkah 2: Aktifkan Protokol Proxy untuk server backend

Dalam contoh ini, sistem operasi CentOS 7.9 dan NGINX 1.20.1 digunakan. Sesuaikan konfigurasi berdasarkan lingkungan yang Anda gunakan.

  1. Masuk ke server backend dan jalankan perintah nginx -t untuk menanyakan path file konfigurasi. Path default adalah /etc/nginx/nginx.conf, yang mungkin bervariasi berdasarkan lingkungan yang Anda gunakan.

  2. Ubah konfigurasi Protokol Proxy dan simpan modifikasi. Blok kode berikut menunjukkan sebuah contoh.

    http {
      # Tetapkan variabel $proxy_protocol_addr, yang digunakan untuk mencatat alamat IP klien.
      log_format  main  '$proxy_protocol_addr - $remote_addr- $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
      # Tentukan bahwa listener menggunakan port 80, dan tambahkan proxy_protocol.
      server {
        listen 80   proxy_protocol;
        #...
      }
    }
    
  3. Jalankan perintah sudo nginx -s reload untuk memuat ulang file konfigurasi NGINX.

Langkah 3: Uji apakah server backend dapat melestarikan alamat IP klien

Jika aplikasi NGINX ditempatkan di server backend, Anda dapat memeriksa log NGINX untuk menentukan apakah server backend dapat melestarikan alamat IP klien.

Path default log NGINX adalah /var/log/nginx/access.log.

Dalam setiap entri log, alamat IP dalam variabel $proxy_protocol_addr adalah alamat IP klien.

image.png

Paket sampel yang ditransmisikan melalui Protokol Proxy v2

Server backend yang Anda gunakan berbeda dari yang ada di contoh sebelumnya, Anda dapat merujuk manual penyedia server Anda dan The PROXY protocol untuk menyesuaikan konfigurasi penguraian berdasarkan struktur paket yang didefinisikan oleh Protokol Proxy v2.

  • Contoh berikut menunjukkan bagaimana alamat IP klien IPv4 dilestarikan di header Protokol Proxy v2 dalam format biner.IPv4

  • Contoh berikut menunjukkan bagaimana alamat IP klien IPv6 dilestarikan di header Protokol Proxy v2 dalam format biner.IPv6

FAQ

Bagaimana CLB melestarikan alamat IP klien ketika ditempatkan di kluster Container Service for Kubernetes (ACK)?

CLB dapat melestarikan alamat IP klien saat digunakan dalam kluster ACK. Pelestarian alamat IP klien dapat dilakukan melalui berbagai metode. Untuk detail lebih lanjut, lihat Bagaimana cara mengonfigurasi pod untuk memperoleh alamat IP asli klien?

Referensi

Application Load Balancer (ALB), Classic Load Balancer (CLB), dan NLB menggunakan metode berbeda untuk melestarikan alamat IP klien.