Tag

, ,

Overview

Border Gateway Protocol (BGP) adalah protokol yang digunakan untuk routing di jaringan internet. BGP merupakah protokol routing antar Autonomous System (AS). Jika OSPF, EIGRP, atau RIP merupakan protokol routing internal, maka BGP adalah protokol routing eksternal.

BGP pertama dibuat oleh Internet Engineering Task Force (IETF) sebagai RFC 1771 dan digunakan oleh Service Provider sebagai standar untuk routing antar pelanggan mereka, atau antar Service Provider.

Keuntungan utama BGP adalah BGP menggunakan path attributes untuk menentukan jalurnya. Artinya Path yang digunakan BGP diberikan atribut – atribut tertentu untuk menentukan jalur dari sebuah paket. Dengan kata lain BGP memiliki beberapa parameter yang menentukan jalur mana yang dipilih.

BGP dapat berjalan diatas protokol routing lainnya. Mengapa demikian? Saya akan membahasnya di bagian BGP Peering.

BGP Database

Seperti protokol routing dinamis lainnya, BGP juga memiliki database. Database ini dibagi menjadi dua, yaitu Neighbor Database yang menyimpan informasi mengenai peer dan BGP Database yang berisi semua network yang dikenal oleh BGP lengkap beserta atributnya.

Neighbor Database
 
 
BGP Database
 

Internal dan Eksternal

Dalam BGP dikenal Autonomous System (AS) karena memang BGP adalah protokol routing antar AS. BGP dapat digunakan untuk routing didalam AS (internal BGP) dan antar AS (external BGP).

Saya contohkan dengan topologi dibawah. Hubungan antara R1 dan R2 menggunakan external BGP dan hubungan antara R2 dan R3 menggunakan internal BGP.

How to Enable BGP

Cara mengaktifkan BGP berbeda – beda untuk setiap perangkat. Kali ini saya akan mencontohkan dengan menggunakan router Cisco.

Perintahnya adalah router bgp <Autonomous-System Number>

Router#configure terminal
Router(config)#router bgp 100
Router(config-router)#

How to do BGP Peering

Tidak seperti Interior Gateway Protocol (IGP), BGP tidak harus peering dengan router yang directly connected. Maksudnya BGP dapat bertetangga dengan router lain walaupun tidak langsung terhubung. Misalkan pada gambar topologi dibawah. R1 dapat langsung peering dengan R3. Asalkan R1 punya konektivitas ke R3, maka peering dimungkinkan

Bagaimana caranya? Di bagian Overview saya sempat membahas bahwa BGP dapat berjalan diatas protokol routing lain. Misalkan terdapat protokol routing OSPF untuk routing dinamis antara R1, R2, dan R3. R1 dapat mengirim paket ke R3 berdasarkan informasi dari OSPF. Protokol routing dinamis atau statis dapat digunakan. Asalkan konektivitas antara R1 dan R3 sudah terbentuk, maka BGP peering dapat dilakukan.

BGP peering juga harus dilakukan secara manual. Artinya secara default, BGP tidak akan berusaha mencari peernya dengan menanyakan ke router yang langsung terhubung. Ini sangat bermanfaat dalam jaringan internet. Misalkan dalam kasus seperti ini. Service Provider di Indonesia bebas melakukan peering dengan negara manapun. Misalkan Service Provider A diklaim memiliki BGP peer dengan Tier 1 Service Provider di Amerika. Hal tersebut dimungkinkan dengan BGP karena BGP peering dilakukan secara manual dan tidak harus dengan router yang langsung terhubung (directly connected)

Di Router Cisco perintahnya adalah demikian neighbor <ip address> remote-as <Remote AS Number>

Router#configure terminal
Router(config)#router bgp 100
Router(config-router)#neighbor xx.xx.xx.xx remote-as 100

BGP Source Address

Seperti gambar topologi dibawah, R1 dapat melakukan peering dengan R2. Peering dapat dilakukan ke interface fisik (10.1.1.2) atau ke interface loopback (192.168.2.2)

Peering dengan interface fisik memiliki kelemahan. Jika interface tersebut mati, maka routing update tidak dapat diterima oleh peer. Salah satu keuntungan peering dengan interface Loopback adalah jika interface fisik mati atau mengalami gangguan, maka interface lain dapat digunakan. Misalkan apabila interface 10.1.1.2 mati, maka R1 akan mengirim routing update melalui R3, kemudian diteruskan ke interface Loopback R2. Konektivitas akan terus berlanjut tanpa terpengaruh interface fisik yang mati.

Kebanyakan implementasi BGP menggunakan teknik ini. Sama seperti yang saya implementasi, peering ke interface Loopback memiliki keuntungan. Syaratnya interface Loopback harus diadvertise oleh routing protokol dibawah BGP, misalkan oleh OSPF atau static route. Singkatnya interface Loopback tersebut harus dikenal oleh router yang bersangkutan. Misalnya interface Loopback R1 harus mengenal interface Loopback R2.

Berikut perintah untuk mengubah BGP source address di router Cisco neighbor <ip address> update-source <interface Loopback>

Router#configure terminal
Router(config)#router bgp 100
Router(config-router)#neighbor xx.xx.xx.xx update-source loopback0
 

Advertising the Network

Network statement pada BGP sedikit berbeda dengan network statement pada EIGRP atau OSPF. Network statement pada EIGRP atau OSPF menunjukkan interface mana yang akan di-advertise oleh protokol tersebut. BGP menggunakan network statement untuk menentukan network mana dari local router yang akan di-advertise oleh BGP. Masing-masing network ini tidak harus berasal dari interface di local router bersangkutan. Asalkan network tersebut ada di routing table, maka network tersebut dapat di-advertise ke peer.

Contoh perintah untuk router Cisco adalah sebagai berikut : network <ip address> mask <subnet mask>

Router#configure terminal
Router(config)#router bgp 100
Router(config-router)#network xx.xx.xx.xx mask yy.yy.yy.yy

Network advertisement pada BGP perlu dilakukan secara manual. BGP tidak akan advertise network yang di-advertise oleh IGP seperti OSPF dan EIGRP. Misalkan pada router terdapat network yang berasal dari advertisement OSPF. Maka network tersebut tidak akan di-advertise kembali oleh BGP secara otomatis.