Filtering Traffic pada routing protocol BGP 

Pada Lan kali ini kita akan mengkonfigurasi yang sangat penting, yaitu Filtering di BGP. kenapa hal ini sangat penting, karena beberapa ISP atau Instansi yang menjalankan Routing Protocol BGP ini pernah membuat Server Google Down karena salah Advertise IP. sehingga seluruh Traffic masuk ke dalam Instansi tersebut.

Dapat kita ketahui bahwasanya BGP ini adalah Protokol Routing yang menyatukan seluruh jaringan yang ada di Dunia sehingga kita harus berhati hati dalam melakukan konfigurasi dan mematikan bahwasanya Router kita tidak menjadi Gateway atau jalur yang akan dilewati. 

Oleh karena itu pada LAB kali ini kita akan mengkonfigurasikan Filtering pada BGP di Device MikroTik RouterOS v7 yang memiliki beberapa perbedaan. 

Konfigurasi eBGP

  1. Gols kita adalah memantau bagaimana BGP tanpa Filter dan sudah ketika kita lakukan Filtering
  2. Melihat Traffic sebelum dan sesudah
  3. Topologi Lab:

Langsung saja kita konfigurasikan di seluruh router, tetapi kita akan fokus pada ISP-IDN atau ISP dengan AS3310

Konfigurasi ISP-1

[admin@ISP-1] > /system identityset name=ISP-1
[admin@ISP-1] > /ip addressadd address=103.111.1.1/24 interface=lo add address=10.13.13.1/24 interface=ether1add address=10.14.14.1/24 interface=ether2 
[admin@ISP-1] > /ip firewall address-listadd address=103.111.1.0/24 list=BGP-Out
[admin@ISP-1] > /routing/bgp/template/set default as=100
[admin@ISP-1] > /routing bgp connectionadd local.address=10.13.13.1 name=peer1 local.role=ebgp  output.network=BGP-Out remote.address=10.13.13.254 remote.as=3310 templates=default
add name=peer2 local.address=10.14.14.1 local.role=ebgp  output.network=BGP-Out     remote.address=10.14.14.4 remote.as=400 templates=default

Kita lanjut konfigurasikan pada ISP-2

[admin@ISP2] > /system identityset name=ISP2
[admin@ISP2] > /ip addressadd address=10.23.23.2/24 interface=ether1add address=10.24.24.2/24 interface=ether2 add address=103.222.1.1/24 interface=lo 
[admin@ISP2] > /ip firewall address-listadd address=103.222.1.0/24 list=BGP-Out
[admin@ISP2] > /routing bgp templateset default as=200
[admin@ISP2] >  /routing bgp connectionadd local.address=10.24.24.2 local.role=ebgp name=peer1 output.network=BGP-Out remote.address=10.24.24.4 remote.as=400 templates=default
add local.address=10.23.23.2 local.role=ebgp name=peer2 output.network=BGP-Out    remote.address=10.23.23.254 remote.as=3310 templates=default

Lanjutkan pada R4 kita ibaratkan sebagai penghubung ke internasional

[admin@ISP4-Global] > /system identityset name=ISP4-Global
[admin@ISP4-Global] > /ip addressadd address=10.14.14.4/24 interface=ether1add address=10.24.24.4/24 interface=ether2add address=8.8.8.8 interface=lo network=8.8.8.8
[admin@ISP4-Global] > /ip firewall address-listadd address=8.8.8.8 list=BGP-Out
[admin@ISP4-Global] > /routing bgp templateset default as=400
[admin@ISP4-Global] > /routing bgp connectionadd local.address=10.14.14.4 local.role=ebgp name=peer1 remote.address=10.14.14.1 remote.as=100 templates=default  output.network=BGP-Out
add local.address=10.24.24.4 local.role=ebgp name=peer2 remote.address=10.24.24.2 remote.as=200 templates=default  output.network=BGP-Out

kita ibaratkan seluruh ISP 1,2 dan 4 merupakan penyedia layanan transit atau peering. tugas kita disini agar dari ISP kita mendapatkan peering dari internasional. Tetapi kita akan mencoba mengkonfigurasikan terlebih dahulu tanpa Filtering nih, apa yang akan terjadi.

Langsung kita konfigurasikan pada ISP kita.

[admin@ISP-IDN] > /system identityset name=ISP-IDN
[admin@ISP-IDN] > /ip addressadd address=10.13.13.254/24 interface=ether1add address=10.23.23.254/24 interface=ether2 add address=103.112.1.1/24 interface=lo
[admin@ISP-IDN] > /routing bgp templateset default as=3310

[admin@ISP-IDN] > /routing bgp connectionadd local.address=10.13.13.254 local.role=ebgp name=peer1-ISP-1  output.network=BGP-Out remote.address=10.13.13.1 remote.as=100 templates=default
add local.address=10.23.23.254 local.role=ebgp name=peer2-ISP-2 output.network=BGP-Out remote.address=10.23.23.2 remote.as=200 templates=default 

Disini kita sudah melakukan peering ke 2 ISP nih temen temen, yang mana berarti kita menggunakan BGP Multihoming, yang mana menggunakan atau peering ke dalam 2 ISP yang berbeda.

Sumber: https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming 

Pengecekan Tabel Routing:

[admin@ISP-IDN] > ip route/print where distance=20Flags: D – DYNAMIC; A – ACTIVE; b – BGP    DST-ADDRESS     GATEWAY     DISTANCED b 8.8.8.8/32             10.23.23.2        20DAb 8.8.8.8/32            10.13.13.1        20D b 103.111.1.0/24      10.23.23.2        20DAb 103.111.1.0/24     10.13.13.1        20DAb 103.222.1.0/24    10.23.23.2        20D b 103.222.1.0/24      10.13.13.1        20

Kita sudah mendapatkan Advertise dari ISP yang melakukan Advertise Prefix, disini kita tidak akan melakukan perubahan atau filtering. Tujuan kita melihat bagaimana kalau kita mengkonfigurasikan BGP ini tanpa filtering atau SOP. Bagaimana sih bahaya nya

Semisal salah satu upstem dari ISP Transit kita mengalami masalah atau sedang Down yang terjadi adalah BGP akan mencari Rute yang lain. nah hal ini lah yang bisa membuat perusahaan atau ISP mengalami kerugian karena kadang tanpa adanya Filtering Router ISP kita akan dijadikan Gateway, sehingga Traffic yang seharusnya bukan melalui kita mala lewat kita semua.

Sebagai contohnya disini kita akan mendisable salah satu interface yang ada pada ISP 2, yang mengarah ke ISP4 

Disable Interface R-ISP2 Ether2

[admin@ISP2] > ip address/print# ADDRESS         NETWORK      INTERFACE0 10.23.23.2/24     10.23.23.0       ether11 10.24.24.2/24     10.24.24.0       ether22 103.222.1.1/24   103.222.1.0     lo
[admin@ISP2] > ip address/disable numbers=1

Oke, kita coba cek tabel routing R2 sekarang

[admin@ISP2] > ip route/print where distance=20Flags: D – DYNAMIC; I – INACTIVE, A – ACTIVE; b – BGP; H – HW-OFFLOADEDColumns: DST-ADDRESS, GATEWAY, DISTANCE
     DST-ADDRESS     GATEWAY       DISTANCEDAb  8.8.8.8/32          10.23.23.254        20DIbH 8.8.8.8/32          10.24.24.4          20DAb  103.111.1.0/24   10.23.23.254        20DIbH 103.111.1.0/24   10.24.24.4          20DIbH 103.112.1.0/24   10.24.24.4          20DAb  103.112.1.0/24   10.23.23.254        20

Jika kita perhatikan karena Link ke R4 atau ISP4 dalam keadan Down maka ISP2 akan melewati router kita. nah hal itulah kemungkinan yang akan terjadi.

[admin@ISP2] > tool/traceroute 8.8.8.8 src-address=103.222.1.1#  ADDRESS       LOSS  SENT  LAST    AVG   BEST  WORST  STD-DEV1  10.23.23.254  0%       3  3ms     6.2   3     8.4    2.32  10.13.13.1      0%       3  5ms     7.7   5     11.3   2.63  8.8.8.8            0%       3  14.7ms  15.4  9.9   21.5   4.8

Jika kita melakukan Traceroute maka dia akan melewati ISP kita. nah semisal Bandwidth yang kita miliki hanya 1G nih. pastinya akan habis dong karena dibuat jalur oleh ISP 2 dan seterusnya.

Langsung saja kita konfigurasikan Filtering biar Trafik yang ada tidak melalui Router kita lagi

Balik lagi ke ISP-IDN

[admin@ISP-IDN] > /routing filter ruleadd chain=TO-ISP-1-in rule=”if (dst in 0.0.0.0/0 && dst-len in 8-24) { accept;}”add chain=TO-ISP-1-out rule=”if (dst in  103.112.1.0/24) {accept;}”add chain=TO-ISP-1-out rule=”if (dst in  0.0.0.0/0 && dst-len in 8-24) {reject;}”
add chain=TO-ISP-2-in rule=”if (dst in 0.0.0.0/0 && dst-len in 8-24) { accept;}”add chain=TO-ISP-2-out rule=”if (dst in  103.112.1.0/24) {accept;}”add chain=TO-ISP-2-out rule=”if (dst in  0.0.0.0/0 && dst-len in 8-24) {reject;}”
[admin@ISP-IDN] > /routing/bgp/connection/set peer1-ISP-1 input.filter=TO-ISP-1-in output.filter-chain=TO-ISP-1-outset peer2-ISP-2 input.filter=TO-ISP-2-in output.filter-chain=TO-ISP-2-out

Routing Filter diatas diurutkan berdasarkan Sequence Number, berarti dari atas ke bawah berdasarkan nomor yang dibawah #

[admin@ISP-IDN] > routing/filter/rule/print where .id Flags: X – disabled, I – inactive  0   chain=TO-ISP-2-in      rule=”if (dst in 0.0.0.0/0 && dst-len in 8-24) { accept;}” 
 1   chain=TO-ISP-1-in      rule=”if (dst in 0.0.0.0/0 && dst-len in 8-24) { accept;}” 
 2   chain=TO-ISP-2-out rule=”if (dst in  103.112.1.0/24) {accept;}” 
 3   chain=TO-ISP-1-out rule=”if (dst in  103.112.1.0/24) {accept;}” 
 4   chain=TO-ISP-2-out      rule=”if (dst in  0.0.0.0/0 && dst-len in 8-24) {reject;}” 
 5   chain=TO-ISP-1-out      rule=”if (dst in  0.0.0.0/0 && dst-len in 8-24) {reject;}” 

Penjelasan:

  • Untuk Sq Number 0,1, itu kita fungsikan agar prefix yang masuk ke kita diizinkan, atau network yang di advertise oleh ISP dan Internasional dapat masuk ke Routing tabel kita
  • Untuk Sq Number 2,3, itu kita fungsikan agar prefix yang kita advertise dapat ter advertise atau keluar, dan diterima oleh Router lain
  • Untuk Sq Number 4,5, itu kita fungsikan agar traffic yang masuk ke kita tidak melewati Router kita. nah Filtering inilah yang sangat terpakai dan sangat penting. seperti pengujian sebelumnya.

Jika kita sudah menambahkan Filtering seperti di atas,selanjutnya kita bisa melakukan pengetesan kembali nih. kita coba tes lagi di R2 atau ISP2 apakah traffic tetap melalui Router kita atau tidak.

Pengujian 2: 

[admin@ISP2] > ip route/printFlags: D – DYNAMIC; A – ACTIVE; c – CONNECT, b – BGPColumns: DST-ADDRESS, GATEWAY, DISTANCE    DST-ADDRESS     GATEWAY       DISTANCEDAc 10.23.23.0/24   ether1                    0DAb 103.112.1.0/24  10.23.23.254        20DAc 103.222.1.0/24  lo                           0

Jika kita perhatikan pada R2 tau ISP2 sudah tidak mendapatkan advertise dari Internasional. karena filtering yang kita lakukan. Untuk pembuktian kita bisa melakukan Traceroute apakah masih sama atau berbeda

[admin@ISP2] > tool/traceroute 8.8.8.8 src-address=103.222.1.1Columns: LOSS, SENT, LAST#  LOSS  SENT  LAST1  100%     1  timeout2  100%     1  timeout3  100%     1  timeout

Jozzz.. dapat kita lihat bahwa ISP2 sudah tidak melewati Router kita lagi, aman dehh!!

Kita aktifkan lagi interfacenya

[admin@ISP2] > ip address/printColumns: ADDRESS, NETWORK, INTERFACE#   ADDRESS         NETWORK      INTERFACE0   10.23.23.2/24   10.23.23.0   ether11 X 10.24.24.2/24   10.24.24.0   ether22   103.222.1.1/24  103.222.1.0  lo
[admin@ISP2] > ip address/enable numbers=1
[admin@ISP2] > tool/traceroute 8.8.8.8 src-address=103.222.1.1Columns: ADDRESS, LOSS, SENT, LAST, AVG, BEST, WORST, STD-DEV#  ADDRESS  LOSS  SENT  LAST  AVG  BEST  WORST  STD-DEV1  8.8.8.8  0%       7  2ms     6     2  11.8   3.5

Tabel routing R-ISP-IDN

[admin@ISP-IDN] > ip route/print where distance=20    DST-ADDRESS     GATEWAY     DISTANCEDIb 8.8.8.8/32             10.23.23.2        20DIb 8.8.8.8/32             10.13.13.1        20D b 103.111.1.0/24      10.23.23.2        20DAb 103.111.1.0/24     10.13.13.1        20D b 103.222.1.0/24      10.13.13.1        20DAb 103.222.1.0/24     10.23.23.2        20
[admin@ISP-IDN] > ping 8.8.8.8    0 8.8.8.8                                    56  55 39ms424us    1 8.8.8.8                                    56  55 21ms881us    2 8.8.8.8                                    56  55 18ms460us

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Agung Prasetio