All Products
Search
Document Center

:Mengatasi kehilangan paket yang disebabkan oleh pengaturan rp_filter

Last Updated:Apr 28, 2026

Diagnosis dan perbaiki kehilangan paket atau kegagalan akses layanan di lingkungan perutean asimetris dengan menyesuaikan parameter kernel rp_filter.

Gejala

Di lingkungan dengan multiple NIC atau perutean asimetris, seperti load balancing LVS atau jaringan overlay, gejala berikut dapat terjadi:

  • Masalah akses layanan: Pemeriksaan kesehatan SLB gagal atau akses layanan diblokir, tetapi port layanan dapat diakses saat Anda login langsung ke server backend.

  • Timeout koneksi jaringan: Pada Instance ECS dengan multiple NIC atau Perutean berbasis kebijakan, koneksi dalam beberapa arah mengalami timeout atau gagal secara intermiten.

  • Kehilangan paket sistem: Tangkapan paket menggunakan alat seperti tcpdump menunjukkan datagram masuk ke NIC, tetapi Lapisan aplikasi tidak menerimanya.

Penyebab

Masalah ini biasanya terjadi ketika rp_filter diatur ke mode ketat (nilai 1) dalam lingkungan perutean asimetris, di mana jalur inbound dan outbound berbeda. Dalam mode ketat, rp_filter mengaktifkan validasi jalur balik untuk setiap paket yang diterima oleh kernel. Jika NIC ingress bukan antarmuka egress optimal menurut tabel rute sistem, kernel akan membuang paket tersebut.

  • Multiple NIC atau Perutean berbasis kebijakan: Paket masuk melalui eth0, tetapi kebijakan perutean mengirim respons melalui eth1. Mode ketat rp_filter menganggap jalur ini tidak valid dan membuang paket tersebut.

  • Load balancing (mode LVS-DR): Dengan Pendengar CLB Lapisan 4 (TCP/UDP), server backend secara default menggunakan Direct Routing (DR). Paket permintaan mencapai Instance ECS melalui LVS, tetapi respons dikirim langsung ke klien tanpa melewati LVS. Jika mode ketat rp_filter diaktifkan, instans akan membuang paket permintaan dari LVS.

Solusi

Atur ke mode longgar (disarankan)

Atur rp_filter ke mode longgar (nilai 2). Kernel hanya memeriksa apakah IP sumber dapat dijangkau di tabel rute mana pun, tanpa mewajibkan NIC ingress sesuai dengan antarmuka egress optimal. Pengaturan ini mendukung semua skenario perutean asimetris.

  1. Sementara atur parameter kernel.

    # Atur mode rp_filter untuk semua NIC ke mode longgar
    echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 2 > /proc/sys/net/ipv4/conf/default/rp_filter
  2. Verifikasi apakah layanan telah pulih. Jika masalah teratasi, lanjutkan untuk membuat perubahan permanen.

  3. Edit /etc/sysctl.conf agar perubahan tetap berlaku setelah restart.

    # Edit file konfigurasi
    vi /etc/sysctl.conf
    
    # Tambahkan atau modifikasi dua baris berikut
    net.ipv4.conf.all.rp_filter = 2
    net.ipv4.conf.default.rp_filter = 2
  4. Jalankan sysctl -p untuk menerapkan konfigurasi.

    sudo sysctl -p

Nonaktifkan validasi untuk NIC tertentu

Jika hanya NIC tertentu seperti eth0 yang menerima traffic LVS, nonaktifkan validasi jalur balik hanya untuk NIC tersebut.

  1. Sementara nonaktifkan rp_filter untuk eth0.

    echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
  2. Verifikasi apakah layanan telah pulih. Jika masalah teratasi, lanjutkan untuk membuat perubahan permanen.

  3. Edit /etc/sysctl.conf agar perubahan tetap berlaku.

    # Edit file konfigurasi
    vi /etc/sysctl.conf
    
    # Tambahkan atau modifikasi baris berikut
    net.ipv4.conf.eth0.rp_filter = 0
  4. Jalankan sysctl -p untuk menerapkan konfigurasi.

    sudo sysctl -p

Nonaktifkan validasi secara global

Metode ini sepenuhnya menonaktifkan validasi jalur balik, sehingga membuka sistem terhadap serangan IP spoofing.

  1. Sementara atur parameter kernel.

    # Peringatan: Operasi ini mengurangi keamanan sistem. Gunakan dengan hati-hati.
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
  2. Verifikasi apakah layanan telah pulih. Jika masalah teratasi, lanjutkan untuk membuat perubahan permanen.

  3. Edit /etc/sysctl.conf agar perubahan tetap berlaku.

    # Edit file konfigurasi
    vi /etc/sysctl.conf
    
    # Peringatan: Konfigurasi berikut membuka server terhadap risiko serangan IP spoofing.
    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.rp_filter = 0
  4. Jalankan sysctl -p untuk menerapkan konfigurasi.

    sudo sysctl -p

Praktik terbaik

Ikuti prinsip Hak istimewa minimal: Saat menyesuaikan rp_filter, utamakan cakupan sekecil mungkin. Mode longgar (rp_filter=2) lebih aman daripada menonaktifkan validasi sepenuhnya (rp_filter=0), dan perubahan per-NIC lebih baik daripada perubahan global.