Praktik Terbaik Keamanan BGP: Mencegah Default Route & Prefix Spesifik

Pendahuluan

Dalam dunia Internet Service Provider (ISP), BGP (Border Gateway Protocol) adalah tulang punggung yang mengatur bagaimana trafik internet dialihkan antar jaringan (Autonomous System). Namun, protokol ini beroperasi secara dinamis berdasarkan kepercayaan antar peer.

Tanpa adanya filter (Route Policy) yang ketat di sisi masuk (inbound), router Anda bisa menerima rute yang tidak diinginkan. Masalah paling umum adalah bocornya default route (0.0.0.0/0) atau prefix yang terlalu spesifik (seperti /25 hingga /32) dari peer yang seharusnya tidak mengirimkannya.

Jika hal ini terjadi, dampaknya bisa sangat fatal:

  • Traffic Leak (Kebocoran Trafik): Trafik pelanggan yang seharusnya menuju ke upstream internasional utama malah berbelok ke jalur peer lokal (seperti IXP) yang kapasitasnya kecil, menyebabkan koneksi terasa sangat lambat (bottleneck).
  • Routing Table Bloat: Menerima prefix IPv4 yang lebih spesifik dari /24 akan membebani memori dan CPU router tanpa memberikan manfaat rute yang signifikan.
  • Potensi Blackhole: Trafik klien Anda diarahkan ke jalan buntu karena peer yang mengiklankan default route sebenarnya tidak memiliki koneksi global ke internet.
  • Gangguan Layanan Massal: Berujung pada komplain pelanggan secara luas karena internet mati total (downtime).

Contoh Penerapan (Skenario)

Filter untuk menolak default route dan prefix spesifik (> /24) merupakan standar industri yang wajib diterapkan pada skenario berikut:

  1. Peering dengan Internet Exchange Point (IXP): Saat terhubung ke layanan IXP (seperti OpenIXP, IIX, atau JKT-IX), Anda hanya bertujuan menukar rute lokal/domestik antar anggota. Anda tidak boleh menerima default route dari sesi BGP IXP, karena IXP bukan penyedia layanan transit internet global.
  2. Peering dengan Customer (Downstream): Jika Anda adalah provider yang memberikan layanan transit ke ISP yang lebih kecil (customer), Anda hanya boleh menerima IP blok resmi milik mereka. Jika router customer salah konfigurasi dan malah melempar default route ke arah Anda, lalu Anda menerimanya, trafik internet Anda sendiri bisa salah arah masuk ke jaringan customer tersebut.

Solusi: Filter Policy-Statement

Aturan tak tertulis pada Global Routing Table IPv4 di internet adalah: prefix terkecil yang diizinkan untuk di-advertise antar AS adalah /24. Berikut adalah cara mengamankan router Anda dengan menolak default route dan blok IP yang lebih dari /24.

1. MikroTik (RouterOS v7)

Pada RouterOS v7, sistem routing filter sudah dirombak total menggunakan sintaks scripting yang lebih fleksibel dan mudah dibaca.

Iklan

Konfigurasi:

/routing/filter/rule
add chain=bgp-in-ixp rule="if (dst == 0.0.0.0/0) { reject }"
add chain=bgp-in-ixp rule="if (dst-len > 24) { reject }"
add chain=bgp-in-ixp rule="accept"

Penjelasan:

  • chain=bgp-in-ixp : Adalah nama chain filter yang nantinya dipasang pada Inbound Filter (in-filter) di konfigurasi BGP Connection ke arah peer.
  • if (dst == 0.0.0.0/0) { reject } : Secara eksplisit membuang dan menolak rute dengan tujuan pasti 0.0.0.0/0 (default route).
  • if (dst-len > 24) { reject } : Menolak semua panjang subnet yang lebih spesifik dari /24 (seperti /25, /29, atau /32). Hal ini mencegah routing table kehabisan RAM akibat rute "sampah".
  • accept : Jika prefix tidak melanggar dua aturan di atas (misalnya jaringan /24 atau /22), maka prefix tersebut akan diizinkan masuk ke tabel routing.

2. Juniper (Junos OS)

Di perangkat Juniper, penyaringan rute dilakukan menggunakan policy-statement yang disusun berdasarkan urutan aturan (term).

Konfigurasi:

# Masuk ke mode konfigurasi
edit policy-options policy-statement REJECT-BOGON-IN

# Term 1: Menolak Default Route
set term REJECT-DEFAULT from route-filter 0.0.0.0/0 exact
set term REJECT-DEFAULT then reject

# Term 2: Menolak Prefix yang terlalu spesifik (lebih dari /24)
set term REJECT-SPECIFIC from route-filter 0.0.0.0/0 prefix-length-range /25-/32
set term REJECT-SPECIFIC then reject

# Term 3: Menerima sisanya
set term ACCEPT-REST then accept

Penjelasan:

  • route-filter 0.0.0.0/0 exact : Memastikan hanya rute yang benar-benar persis 0.0.0.0/0 yang terpengaruh dan dieksekusi dengan tindakan reject.
  • prefix-length-range /25-/32 : Secara cerdas mendeteksi rentang panjang subnet. Semua blok IP dengan subnet antara /25 sampai /32 akan diblokir.
  • then accept : Semua prefix sah yang melewati kedua blokade awal akan diterima oleh router.
  • Penerapan: Jangan lupa pasang nama policy ini pada grup BGP di arah import:
    set protocols bgp group PEER-IX neighbor 10.10.10.1 import REJECT-BOGON-IN

Verifikasi

Setelah menerapkan filter, sangat penting untuk memastikan bahwa kebijakan tersebut langsung memblokir rute bermasalah tanpa memutus rute yang sah.

  1. Cek Tabel Routing: Pastikan default route tidak lagi diterima dari alamat IP peer terkait.
    • MikroTik: /routing/route/print where dst-address=0.0.0.0/0 (Pastikan gateway BGP dari peer tersebut tidak muncul).
    • Juniper: show route receive-protocol bgp <IP-PEER> 0.0.0.0/0 (Seharusnya menghasilkan output kosong).
  2. Lihat Rute Sah yang Diterima (Accepted Routes):
    • Juniper: show route receive-protocol bgp <IP-PEER> (Untuk memastikan prefix seperti /24 tetap masuk).
  3. Monitor Log BGP: Perhatikan log router (System Log) untuk melihat prefix mana saja yang tertolak (rejected) jika Anda mengaktifkan logging pada policy.
WARNING


Tips Keamanan: Selalu pastikan Anda mem-backup konfigurasi sebelum menerapkan filter BGP di skala produksi. Satu kesalahan logika pada posisi accept atau reject dapat menyebabkan blackhole dan memutuskan jaringan ke internet seketika!


Kesimpulan

Filter BGP masuk (inbound policy) adalah kewajiban mutlak pada setiap peering session. Protokol BGP sangat mengandalkan sistem kepercayaan, sehingga tanpa adanya lapisan keamanan melalui filter routing yang tepat, jaringan ISP Anda selalu dalam ancaman kerentanan operasional tinggi seperti Route Leak, Route Hijacking, dan salah alur trafik (Traffic Blackhole).