Dalam operasi jaringan sehari-hari, ada kalanya kita perlu melakukan Traffic Engineering yang sangat spesifik. Misalnya, dari alokasi besar /20 yang kita miliki, ternyata ada satu blok /24 (katakanlah IP server atau segmen game online) yang sedang terkena serangan DDoS, atau butuh dialihkan ke upstream lain yang latensinya lebih bagus.
Bagaimana cara melakukan reroute hanya untuk satu blok /24 tersebut ke Upstream B, sementara sisa blok /24 lainnya tetap mengarah ke Upstream A?
Di RouterOS v7, karena eksekusi routing filter bekerja dari atas ke bawah (top-down), kita hanya perlu meletakkan rule untuk prefix spesifik tersebut di atas rule deaggregation utamanya. Kita akan memanfaatkan AS-Path Prepend agar jalur utamanya berpindah, tapi tetap memiliki backup jika upstream tujuan mati.
Skenario Topologi
- Alokasi IP Kita:
103.10.16.0/20(Akan dipecah menjadi /24) - Target Reroute:
103.10.16.0/24(Hanya blok ini yang akan dialihkan) - Upstream A: Jalur utama untuk seluruh trafik.
- Upstream B: Jalur khusus untuk reroute
103.10.16.0/24(dan sebagai backup untuk yang lain).
Konfigurasi Routing Filter (RouterOS v7)
1. Filter OUT ke Upstream A (Jalur Utama Umum)
Di sini, kita memberitahu Upstream A: "Jadilah backup untuk 103.10.16.0/24, tapi jadilah jalur utama untuk sisa pecahan /24 lainnya."
# 1. MATCHING SPESIFIK: Jadikan Upstream A sebagai backup untuk prefix ini (Prepend 3x)
if (dst == 103.10.16.0/24) { set bgp-path-prepend 3; accept; }
# 2. MATCHING UMUM: Sisa pecahan /24 dari blok /20 diterima tanpa prepend (Primary)
if (dst in 103.10.16.0/20 && dst.len == 24) { accept; }
# 3. DROP: Buang sisa rute yang tidak relevan
reject;
2. Filter OUT ke Upstream B (Jalur Khusus Reroute)
Di sini, kita memberitahu Upstream B: "Jadilah jalur utama untuk 103.10.16.0/24, tapi jadilah backup untuk sisa pecahan /24 lainnya."
# 1. MATCHING SPESIFIK: Jadikan Upstream B sebagai jalur utama prefix ini (Tanpa Prepend)
if (dst == 103.10.16.0/24) { accept; }
# 2. MATCHING UMUM: Jadikan Upstream B sebagai backup untuk sisa pecahan /24 lainnya (Prepend 3x)
if (dst in 103.10.16.0/20 && dst.len == 24) { set bgp-path-prepend 3; accept; }
# 3. DROP: Buang sisa rute yang tidak relevan
reject;
Memahami Cara Kerjanya
Kunci dari trik ini ada pada urutan baris (top-down processing).
Ketika router memproses prefix 103.10.16.0/24, rute tersebut akan langsung match atau cocok pada baris pertama dan langsung dieksekusi (accept atau prepend). Baris kedua tidak akan dieksekusi untuk prefix tersebut.
Namun, ketika router memproses prefix selanjutnya, misalnya 103.10.17.0/24, ia tidak akan cocok dengan baris pertama. Ia akan turun ke baris kedua, di mana router mengecek apakah prefix tersebut bagian dari /20 dan panjangnya persis /24. Karena cocok, baris kedua pun dieksekusi.
Teknik ini sangat fleksibel. Jika sewaktu-waktu Anda perlu me-reroute prefix /24 lainnya, Anda cukup menambahkan satu baris rule spesifik lagi di bagian paling atas