BGP atau yang kepanjangannya Border Gateway Protokol merupakan salah satu jenis routing protokol yang digunakan untuk koneksi antar Autonomous System (AS), dan salah satu jenis routing protokol yang banyak digunakan di ISP besar (Telkomsel) ataupun perbankan. BGP termasuk dalam kategori routing protokol jenis Exterior Gateway Protokol (EGP).
Dengan adanya EGP, router dapat melakukan pertukaran rute dari dan ke luar jaringan lokal Auotonomous System (AS). BGP mempunyai skalabilitas yang tinggi karena dapat melayani pertukaran routing pada beberapa organisasi besar. Oleh karena itu BGP dikenal dengan routing protokol yang sangat rumit dan kompleks.
Karakteristik BGP
1. Menggunakan algoritma routing distance vektor.Algoritma routing distance vector secara periodik menyalin table routing dari router ke router. Perubahan table routing di update antar router yang saling berhubungan pada saat terjadi perubahan topologi.
2. Digunakan antara ISP dengan ISP dan client-client.
3. Digunakan untuk merutekan trafik internet antar autonomous system.
4. BGP adalah Path Vector routing protocol.Dalam proses menentukan rute-rute terbaiknya selalu mengacu kepada path yang terbaik dan terpilih yang didapatnya dari router BGP yang lainnya.
5. Router BGP membangun dan menjaga koneksi antar-peer menggunakan port nomor 179.
6. Koneksi antar-peer dijaga dengan menggunakan sinyal keepalive secara periodik.
7. Metrik (atribut) untuk menentukan rute terbaik sangat kompleks dan dapat dimodifikasi dengan fleksibel.
8. BGP memiliki routing table sendiri yang biasanya memuat prefiks-prefiks routing yang diterimanya dari router BGP lain
Cara Kerja BGP
Routing protokol BGP baru dapat dikatakan bekerja pada sebuah router jika sudah terbentuk sesi komunikasi dengan router tetangganya yang juga menjalankan BGP. Sesi komunikasi ini adalah berupa komunikasi dengan protokol TCP dengan nomor port 179. Setelah terjalin komunikasi ini, maka kedua buah router BGP dapat saling bertukar informasi rute.
Untuk berhasil menjalin komunikasi dengan router tetangganya sampai dapat saling bertukar informasi routing, ada beberapa hal yang perlu diperhatikan:
1. Kedua buah router telah dikonfigurasi dengan benar dan siap menjalankan routing protokol BGP.
2. Koneksi antarkedua buah router telah terbentuk dengan baik tanpa adanya gangguan pada media koneksinya.
3. Pastikan paket-paket pesan BGP yang bertugas membentuk sesi BGP dengan router tetangganya dapat samp dengan baik ke tujuannya.
4. Pastikan kedua buah router BGP tidak melakukan pemblokiran port komunikasi TCP 179.
5. Pastikan kedua buah router tidak kehabisan resource saat sesi BGP sudah terbentuk dan berjalan.
Setelah semuanya berjalan dengan baik, maka sebuah sesi BGP dapat bekerja dengan baik pada router Anda.
Untuk membentuk dan mempertahankan sebuah sesi BGP dengan router tetangganya, BGP mempunyai mekanismenya sendiri yang unik. Pembentukan sesi BGP ini mengandalkan paket-paket pesan yang terdiri dari empat macam. Paket-paket tersebut adalah sebagai berikut:
1. Open Message
Sesuai dengan namanya, paket pesan jenis ini merupakan paket pembuka sebuah sesi BGP. Paket inilah yang pertama dikirimkan ke router tetangga untuk membangun sebuah sesi komunikasi. Paket ini berisikan informasi mengenai BGP version number, AS number, hold time, dan router ID.
2. Keepalive Message
Paket Keepalive message bertugas untuk menjaga hubungan yang telah terbentuk antarkedua router BGP. Paket jenis ini dikirimkan secara periodik oleh kedua buah router yang bertetangga. Paket ini berukuran 19 byte dan tidak berisikan data sama sekali.
3. Notification Message
Paket pesan ini adalah paket yang bertugas menginformasikan error yang terjadi terhadap sebuah sesi BGP. Paket ini berisikan field-field yang berisi jenis error apa yang telah terjadi, sehingga sangat memudahkan penggunanya untuk melakukan troubleshooting.
4. Update Message
Paket update merupakan paket pesan utama yang akan membawa informasi rute-rute yang ada. Paket ini berisikan semua informasi rute BGP yang ada dalam jaringan tersebut. Ada tiga komponen utama dalam paket pesan ini, yaitu Network-Layer Reachability Information (NLRI), path attribut, dan withdrawn routes.
Apa Saja Atribut-atribut BGP?
Salah satu ciri khas dan juga merupakan kekuatan dari routing protokol BGP ada pada atribut-atribut pendukungnya. Atribut-atribut ini yang nantinya digunakan sebagai parameter untuk menentukan jalur terbaik untuk menuju ke suatu situs. Atribut ini juga dapat mengatur keluar masuknya routing update dari router-router BGP tetangga. Dengan mengatur atribut ini, Anda dapat dengan bebas mengatur bagaimana karakteristik dan sifat dari sesi BGP tersebut.
Untuk melayani Anda mengatur dengan sebebas-bebasnya, tersedia 10 macam atribut BGP yang umum ditambah satu atribut BGP yang hanya ada pada produk-produk Cisco. Masing-masing memiliki ciri khas dan tugasnya tersendiri untuk memungkinkan Anda memanajemen routing update dan traffic yang keluar masuk. Berikut ini adalah ke-11 atribut-atribut BGP:
1. Origin
Atribut BGP yang satu ini merupakan atribut yang termasuk dalam jenis Well known mandatory. Jika sumbernya berasal router BGP dalam jaringan lokal atau menggunakan asnumber yag sama dengan yang sudah ada, maka indicator atribut ini adalah huruf “i” untuk interior. Apabila sumber rute berasal dari luar jaringan lokal, maka tandanya adalah huruf “e” untuk exterior. Sedangkan apabila rute didapat dari hasil redistribusi dari routing protokol lain, maka tandanya adalah “?” yang artinya adalah incomplete.
2. AS_Path
Atribut ini harus ada pada setiap rute yang dipertukarkan menggunakan BGP. Atribut ini menunjukkan perjalanan paket dari awal hingga berakhir di tempat Anda. Perjalanan paket ini ditunjukkan secara berurut dan ditunjukkan dengan menggunakan nomor-nomor AS. Dengan demikian, akan tampak melalui mana saja sebuah paket data berjalan ke tempat Anda.
3. Next Hop
Next hop sesuai dengan namanya, merupakan atribut yang menjelaskan ke mana selanjutnya sebuah paket data akan dilemparkan untuk menuju ke suatu lokasi. Dalam EBGP-4, yang menjadi next hop dari sebuah rute adalah alamat asal (source address) dari sebuah router yang mengirimkan prefix tersebut dari luar AS. Dalam IBGP-4, alamat yang menjadi parameter next hop adalah alamat dari router yang terakhir mengirimkan rute dari prefix tersebut. Atribut ini juga bersifat Wellknown Mandatory.
4. Multiple Exit Discriminator (MED)
Atribut ini berfungsi untuk menginformasikan router yang berada di luar AS untuk mengambil jalan tertentu untuk mencapat si pengirimnya. Atribut ini dikenal sebagai metrik eksternal dari sebuah rute. Meskipun dikirimkan ke AS lain, atribut ini tidak dikirimkan lagi ke AS ketiga oleh AS lain tersebut. Atribut ini bersifat Optional Nontransitive.
5. Local Preference
Atribut ini bersifat Wellknown Discretionary, di mana sering digunakan untuk memberitahukan router-router BGP lain dalam satu AS ke mana jalan keluar yang di-prefer jika ada dua atau lebih jalan keluar dalam router tersebut. Atribut ini merupakan kebalikan dari MED, di mana hanya didistribusikan antar-router-router dalam satu AS saja atau router IBGP lain.
6. Atomic Aggregate
Atribut ini bertugas untuk memberitahukan bahwa sebuah rute telah diaggregate (disingkat menjadi pecahan yang lebih besar) dan ini menyebabkan sebagian informasi ada yang hilang. Atribut ini bersifat Wellknown Discretionary.
7. Aggregator
Atribut yang satu ini berfungsi untuk memberikan informasi mengenai Router ID dan nomor Autonomous System dari sebuah router yang melakukan aggregate terhadap satu atau lebih rute. Parameter ini bersifat Optional Transitive.
8. Community
Community merupakan fasilitas yang ada dalam routing protokol BGP-4 yang memiliki kemampuan memberikan tag pada rute-rute tertentu yang memiliki satu atau lebih persamaan. Dengan diselipkannya sebuah atribut community, maka akan terbentuk sebuah persatuan rute dengan tag tertentu yang akan dikenali oleh router yang akan menerimanya nanti. Setelah router penerima membaca atribut ini, maka dengan sendirinya router tersebut mengetahui apa maksud dari tag tersebut dan melakukan proses sesuai dengan yang diperintahkan. Atribut ini bersifat Optional Transitive.
9. Originator ID
Atribut ini akan banyak berguna untuk mencegah terjadinya routing loop dalam sebuah jaringan. Atribut ini membawa informasi mengenai router ID dari sebuah router yang telah melakukan pengiriman routing. Jadi dengan adanya informasi ini, routing yang telah dikirim oleh router tersebut tidak dikirim kembali ke router itu. Biasanya atribut ini digunakan dalam implementasi route reflector. Atribut ini bersifat Optional Nontransitive.
10. Cluster list
Cluster list merupakan atribut yang berguna untuk mengidentifikasi router-router mana saja yang tergabung dalam proses route reflector. Cluster list akan menunjukkan path-path atau jalur mana yang telah direfleksikan, sehingga masalah routing loop dapat dicegah. Atribut ini bersifat Optional Nontransitive.
11. Weight
Atribut yang satu ini adalah merupakan atribut yang diciptakan khusus untuk penggunaan di router keluaran vendor Cisco. Atribut ini merupakan atribut dengan priority tertinggi dan sering digunakan dalam proses path selection. Atribut ini bersifat lokal hanya untuk
digunakan pada router tersebut dan tidak diteruskan ke router lain karena belum tentu router lain yang bukan bermerk Cisco dapat mengenalinya. Fungsi dari atribut ini adalah untuk memilih salah satu jalan yang diprioritaskan dalam sebuah router.
Ketika ada dua buah jalan keluar, maka dengan memodifikasi atribut Weight ini, router dapat memilih salah satu jalan untuk diprioritaskan sebagai jalan keluar. Jadi Anda dapat mengatur dengan leluasa jalan mana yang akan digunakan. Weight tidak digunakan pada router lain selain Cisco.
Bagaimana Proses Path Selection (Pemilihan Jalur Terbaik) dalam BGP?
Setelah Anda mengenal semua jenis atribut dan kegunaannya, kini saatnya untuk mengetahui bagaimana atribut-atribut tersebut digunakan untuk proses pemilihan jalan terbaik menuju suatu lokasi. Mengapa perlu dilakukan pemilihan rute terbaik? Kapan proses pemilihan rute terbaik dilakukan oleh BGP?
Router Anda perlu melakukan pemilihan rute terbaik ketika mendapatkan dua atau lebih rute untuk menuju ke suatu lokasi di luar. Biasanya sebuah router BGP mungkin saja mendapatkan sebuah rute lebih dari dua, tergantung pada banyaknya sesi BGP yang dibentuk dengan tetangga-tetangganya. Semakin banyak sesi BGP dengan router tetangga, maka router tetangga tersebut akan mengirimkan banyak rute yang diketahuinya, sehingga mungkin saja ada yang sama.
Ketika dihadapkan pada dua jalan dengan tujuan yang sama, maka tugas router BGP adalah harus memilih salah satu jalan untuk digunakan meneruskan informasi yang dibawanya. Jalan yang dipilih haruslah jalan yang terbaik yang ada saat itu untuk dapat meneruskan informasi sebaik mungkin. Untuk memilih salah satu jalan tersebut, router BGP akan langsung menjalankan prosedur pemilihan rute terbaik atau yang sering disebut dengan istilah path selection.
Dalam proses pemilihan jalur terbaik atau path selection, atribut-atribut yang telah dijelaskan di ataslah yang sangat berperan penting. Semua atribut tersebut memiliki tingkat prioritasnya sendiri dalam proses penentuan jalur terbaik. Maksudnya ketika ada dua rute menuju ke lokasi www.yahoo.com masing-masing memiliki atribut B dan C, maka router BGP akan membandingkan nilai B dengan C.
Jika ternyata nilai B yang lebih baik, maka rute menuju ke www.yahoo.com adalah rute yang beratribut B. Rute tersebut akan dijadikan sebagai jalur terbaik dan semua traffic menuju www.yahoo.com akan dilarikan melalui jalur B. Sedangkan rute yang memiliki atribut C dijadikan sebagai back-up. Back-up ini akan digunakan suatu saat ketika rute yang beratribut B tadi sedang bermasalah. Jadi rute yang tidak terpilih bukan berarti diabaikan begitu saja. Mekanisme inilah yang merupakan salah satu kehebatan dari BGP.
Proses path selection ke sebuah lokasi yang terjadi dalam sebuah sesi BGP hingga menemukan sebuah jalur terbaik adalah sebagai berikut:
1. Jika hanya ada sebuah rute menuju ke lokasi A, maka rute tersebutlah yang pasti dijadikan rute terbaik dan akan langsung digunakan.
2. Jika ada dua buah rute menuju ke lokasi A, maka router BGP akan menggunakan atribut WEIGH untuk memilih rute mana yang paling baik. Rute dengan nilai WEIGH yang paling tinggi akan dipilih sebagai jalur terbaik.
3. Jika nilai weight keduanya sama, maka router akan menggunakan atribut LOCAL PREFERENCE sebagai bahan pembanding. Rute dengan nilai LOCAL PREFERENCE yang paling tinggi adalah rute yang terpilih sebagai rute terbaik.
4. Jika nilai local preference sama, maka sebagai bahan pembanding router BGP akan memeriksa rute mana yang berasal dari dirinya sendiri. Jika rute tersebut berasal dari dirinya sendiri maka rute tersebut yang akan dijadikan rute terbaik.
5. Jika rute menuju A bukan berasal dari dirinya, maka router akan menggunakan atribut AS_PATH untuk mencari rute terbaik. Rute dengan atribut AS_PATH terpendek akan dipilih sebagai rute terbaik.
6. Apabila atribut AS_PATH nya sama, maka atribut selanjutnya yang digunakan untuk memilih jalan terbaik adalah ORIGIN. Atribut ORIGIN terdiri parameter IGP, EGP dan Incomplete. Parameter dengan nilai referensi terendah yang akan dipilih menjadi rute terbaik. IGP memiliki nilai referensi paling rendah, disusul EGP dan akhirnya Incomplete. Rute dengan atribut ORIGIN IGP akan lebih dipilih daripada EGP atau Incomplete, begitu seterusnya hingga rute dengan atribut Incomplete menjadi rute yang berada di urutan paling belakang.
7. Jika atribut Origin pada rute-rute tersebut sama, maka atribut selanjutnya yang digunakan adalah MED (Multi Exit Discriminator). MED merupakan atribut untuk memungkinkan Anda memilih jalan mana yang paling baik untuk menuju sebuah situs. Jenisnya kurang lebih sama seperti Local Preference, namun bedanya atribut MED ini hanya disebarkan dalam satu AS yang sama saja. Atribut ini tidak dikirimkan ke luar AS dari router BGP tersebut. Biasanya atribut ini banyak digunakan jika sebuah router memiliki dua atau lebih jalan yang sama namun menuju ke satu ISP. Rute dengan nilai MED yang paling rendah adalah yang terpilih sebagai rute terbaik.
8. Jika nilai MED pada kedua rute tersebut sama, maka router BGP akan melakukan pemilihan berdasarkan jenis sesi BGP dari rute-rute tersebut. Seperti telah dijelaskan diatas, jenis BGP ada dua macam yaitu IBGP dan EBGP. Kedua parameter ini juga digunakan dalam pemilihan jalan terbaik. Sebuah rute yang berasal dari sebuah sesi EBGP memiliki prioritas yang lebih tinggi daripada rute dari sesi IBGP. Jadi rute yang berasal dari sesi EBGP dengan router BGP lain tentu akan dijadikan sebagai rute terbaik.
9. Jika setelah melalui ketentuan diatas, kedua rute tersebut juga masih identik, maka proses path selection selanjutnya adalah menggunakan parameter jalur terdekat dalam jaringan internal untuk menuju ke Next Hop. Maksudnya adalah, router BGP akan membaca atribut Next hop dari kedua jalur tersebut. Setelah diketahui, router tersebut akan memeriksa jalur mana yang memilik Next hop yang terdekat dari router tersebut. Jalur yang diperiksa ini merupakan jalur yang berasal dari routing protokol internal seperti OSPF, EIGRP, atau bahkan statik. Setelah didapatkan rute mana yang memiliki Next hop yang paling dekat dan mudah diakses, maka rute tesebut langsung dipilih menjadi yang terbaik.
10. Jika prosedur ini masih tidak membuahkan sebuah rute terbaik juga, maka jalan terakhir untuk menemukannya adalah dengan membandingkan BGP ROUTER ID dari masingmasing rute. Sebuah rute pasti akan membawa informasi BGP ROUTER ID dari router asalnya. Parameter inilah yang menjadi pembanding terakhir untuk proses path selection ini. Karena BGP ROUTER ID tidak mungkin sama, maka sebuah jalan terbaik pastilah dapat terpilih. BGP ROUTER ID biasanya adalah alamat IP tertinggi dari sebuah router atau dapat juga berupa IP interface loopback.
Router BGP akan memilih rute dengan nilai BGP ROUTER ID yang terendah.
Kekuatan BGP yang lainnya adalah Anda dapat memodifikasi dan mengubah atribut-atribut yang ada pada sebuah rute, sehingga proses pemilihan jalur terbaik ini juga dapat Anda atur. Dengan mengatur proses ini, maka Anda dapat mengatur lalu-lintas data yang keluarmasuk jaringan Anda.
Pelajari Lebih Lanjut
Ilmu BGP tidak hanya berhenti sampai sini karena ini hanyalah dasar-dasarnya saja. Masih banyak trik yang ada di dalamnya yang tidak akan habis dibahas dua atau tiga bulan karena routing protokol BGP memang sangat rumit. Namun jika Anda sudah mengetahui dasarnya ini dengan baik, tentu akan lebih mudah untuk mempelajarinya lebih lanjut.
Pengaplikasian BGP tidak dapat dengan mudah Anda temukan. Penggunaan BGP biasanya hanya akan Anda temukan di ISP atau di perusahaan yang sangat besar yang memiliki banyak cabang dan sangat mengandalkan teknologi informasi seperti misalnya
bank.