SEKILAS TENTANG BORDER GATEWAY PROTOCOL (BGP)

Fiuh, dah lama gak kuliah jadi rada males klo mesti belajar yang berat-berat.. Dah satu tahun niat mau ngambil CCNP, eh ga jadi-jadi lantaran pelajarannya lupa lagi – lupa lagi.. Tapi tahun ini wajib kudu harus deh ngambil salah satu modul ccnp biar masa berlaku sertifikat CCNA nya gak kadaluarsa plus nambah CCNP. Nah biar pelajarannya gak raib dari otak ane, ane tulis aja dah apa yang udah dipelajarin.. mudah-mudahan bisa turut berkontribusi untuk dunia pendidikan (haiiaahh gaya banget gw..). Berikut selengkapnya :

BGP atau Border Gateway Protokol adalah suatu protokol routing yang merupakan backbone dari jaringan internet di seluruh dunia. BGP termasuk dalam kategori Eksterior Gateway Protocol (EGP) yang berarti protokol ini melakukan routing antara multiple Autonomous System (AS) atau domain dan melakukan pertukaran routing dan informasi reachability dengan sistem BGP lainnya.

Karakteristik BGP

  1. Menggunakan TCP port 179 untuk membangun dan menjaga koneksi antar peer.
  2. Merupakan distance vector routing protocol, namun kebanyakan menyebutnya Path vector protocol.
  3. Memiliki metric paling besar dan kompleks bila dibandingkan protokol routing lainnya.
  4. Secara default best path ditentukan oleh jumlah hop, namun hop yang dimaksud disini bukanlah sebuah router melainkan sebuah AS (Autonomous System).

Packet dan Tables pada BGP

Packets :

  1. Open -> Paket ini untuk membuka session alias buka omongan gitu..
  2. Keepalive -> Paket ini untuk ngasih tau klo routingnya masih eksis gitu..
  3. Update -> Paket ini tugasnya melakukan pertukaran informasi jalur yang masih bisa dilewatin.
  4. Notification -> Paket ini tugasnya close session klo something bad was happen

Tables :

  1. Neighbor table -> Berisi list tetangga sekitar yang konek via BGP
  2. BGP Table -> Berisi daftar seluruh BGP router
  3. Routing Table -> Berisi daftar route terbaik

Implementasi dan Tuning

IBGP vs EBGP

IBGP -> Internal BGP digunakan pada sebuah Autonomous System (AS) number yang sama.

EBGP -> External BGP digunakan antara AS number yang berbeda

Membuat BGP Neighbor Relationship

1. Configure AS Number

R1(config)# router bgp 6500
R1(config-router)# exit
Cat : sebuah router BGP cuman bisa dipasangin satu buah AS number

2. Configure Neighbor

R1(config-router)# neighbor 10.65.12.1 remote-as 5500
Cat : IP dan remote AS yang diatas merupakan ip dan remote AS tetangga yah..

3. Ngeliat routing BGP nya udah naik atau belum

R1#sh ip bgp summary
BGP router identifier , local AS number 6500
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.65.12.1      4  5500       0       0        0    0    0 00:01:34 Idle
Cat :
Beberapa kondisi state pada bgp :
 1. IDLE : verifying route to neighbor
 2. ACTIVE : attempting connectivity to neighbor
 3. OPEN SENT : open message (HELLO) sent to neighbor
 4. OPEN CONFIRM : neighbor replied with open message
 4a.ACTIVE : neighbor failed to reply or mismatched parameters
 5. ESTABLISHED

Memahami Update Source

Klo router kita punya multiple interface untuk redundancy  jaringan, biasanya ip yang dipake untuk membuat neighbor relationship dalam IBGP adalah loopback address (bukan ip wan nya). Nah, untuk penggunaan loopback address ini kita perlu menambahkan command source address untuk melakukan routing updates. Adapun contohnya adalah sebagai berikut:

R1(config)# int loopback 4
R1(config-if)# ip address 4.4.4.4 255.255.255.255
R1(config)# router bgp 5500
R1(config-router)# neighbor 1.1.1.1 remote-as 5500
R1(config-router)# neighbor 1.1.1.1 update-source loopback 4

Memahami EBGP-Multihop

Pada EBGP, router harus directly connected. Kemudian, bila ingin menggunakan loopback address maka harus menggunakan tambahan argument ebgp-multihop.

R1(config-router)# neighbor 5.5.5.5 ebgp-multihop 2
cat : kebanyakan tidak bisa menggunakan lebih dari 5 hop

Advertising network dalam BGP

Ada dua cara untuk mengadvertise network pada BGP :

1. Network command

Pada BGP, network command hanya memberitahukan network yang di advertise. Adapun command nya adalah sebagai berikut :

 R1(config)# router bgp 5500
 R1(config-router)# network 50.0.0.0 atau
 R1(config-router)# network 50.1.1.0 mask 255.255.255.0

2. Redistribution

Cara ini bisa dilakukan dengan membuat access-list, kemudian route-map untuk memfilter redistribution

access-list 1 permit 170.10.0.0 0.0.255.255

route-map FILTER permit 10 
match ip-address 1 
set metric 2  

R1(config-router)# redistribute connected route-map FILTER

Memahami BGP Peer Groups

Dengan BGP peer groups ini kita bisa melakukan konfigurasi dalam group secara global daripada harus mensetting neighbor secara satu persatu (intinya sih ada satu global command yang bisa di copy paste). Adapun langkah membuatnya :

1. Buat sebuah group dengan menggunakan command global :

   R1(config)# router bgp 5500
   R1(config-router)# neighbor IBGP_PEERS peer-group
   R1(config-router)# neighbor IBGP_PEERS remote-as 5500
   R1(config-router)# neighbor IBGP_PEERS next-hop-self
   R1(config-router)# neighbor IBGP_PEERS update-source loopback 1

2. Kemudian terapkan pada seluruh individual neighbor

   R1(config-router)# neighbor 2.2.2.2 peer-group IBGP_PEERS
   R1(config-router)# neighbor 3.3.3.3 peer-group IBGP_PEERS

Tuning Attributes

Attribute merupakan cara untuk menentukan incoming atau outgoing BGP routes.

BGP menggunakan attributes untuk menemukan jalur terbaik (best path) dengan cara sebagai berikut:

1. Memilih jalur dengan nilai WEIGHT tertinggi (harus di set oleh network admin, bila tidak di set, default nya bernilai 0). Contoh command setting WEIGHT :

R1(config)# router bgp 5500
R1(config-router)# neighbor 3.3.3.3 weight 500
R1# clear ip bgp *

2. Memilih jalur dengan nilai LOCAL_PREF tertinggi (harus di set oleh network admin, bila tidak di set default nya bernilai 100).

Pada dasarnya LOCAL_PREF ekuivalen dengan WEIGHT,  tetapi LOCAL_PREF dapat diadvertise ke seluruh router dari Autonomous System (AS)  sedangkan WEIGHT hanya dikonfigur secara lokal pada router dengan nilai yang semakin tinggi semakin baik.

Contoh setting LOCAL_PREF untuk seluruh routes :

R1(config)# router bgp 5500
R1(config-router)# bgp default local-preference 500

Contoh setting LOCAL_PREF untuk route spesifik :

R1(config)# ip access-list standard ROUTES_FOR_R3
R1(config-std-nacl)# permit 150.1.2.0 0.0.0.255
R1(config-std-nacl)# permit 150.1.3.0 0.0.0.255
R1(config)# ip access-list standard ROUTES_FOR_R2
R1(config-std-nacl)# permit 200.0.0 0.255.255.255
R1(config)# route-map LOCAL_PREF permit 10
R1(config-route-map)# match ip address  ROUTES_FOR_R3
R1(config-route-map)# set local-preference 500
R1(config)# route-map LOCAL_PREF permit 20
R1(config-route-map)# match ip address  ROUTES_FOR_R2
R1(config-route-map)# set local-preference 10
R1(config)# route-map LOCAL_PREF permit 30

Baris permit terakhir (tebal) sangat penting, karena tanpa command tersebut 
route-map akan berfungsi sebagai Access-list yang menyebabkan route lainnya 
tidak akan di advertise.

R1(config)# router bgp 5500
R1(config-router)# neighbor 4.4.4.4 route-map LOCAL_PREF in 

3. Memilih jalur yang melalui network yang sama atau BGP subcommand yang sama atau melalui redistribusi dari IGP.

4. Memilih jalur dengan AS_PATH yang paling pendek.

5. Memilih jalur dengan nilai origin type yang paling rendah.

6. Memilih jalur dengan nilai multi-exit discriminator (MED) yang paling rendah.

Dengan attribut ini kita dapat menganjurkan AS tetangga untuk melalui sebuah jalur dibandingkan dengan jalur lainnya.

Contoh konfigurasi global untuk seluruh routes :

R1(config)# router bgp 5500
R1(config-router)# default-metric 200

Contoh konfigurasi dengan spesifik route dengan route-map
...
R1(config)# route-map LOCAL_PREF permit 10
R1(config-route-map)# match ip address  ROUTES_FOR_R3
R1(config-route-map)# set metric 200
...

7. Lebih memilih jalur eBGP daripada iBGP.

8. Lebih memilih jalur dengan nilai metric IGP yang paling rendah bila dibandingkan dengan BGP next-hop.

9. Menentukan apakah diperlukan instalasi multiple path pada routing table untuk BGP multipath.

10. Ketika terdapat dua jalur eksternal, maka akan lebih memilih jalur yang pertama kali diterima.

11. Memilih jalur yang berasal dari BGP router dengan nilai router ID yang paling rendah.

12. Untuk kasus multiple path dengan router ID asal yang sama, maka akan dipilih jalur dengan cluster list length yang paling minimum.

13. Lebih memilih jalur yang berasal dari neighbor address yang paling rendah.

14. Mengabaikan route dengan next hop address yang inaccessible.

WEIGTH, LOCAL_PREF dan AS_PATH dapat dilihat dengan command sh ip bgp

R1#sh ip bgp 
BGP table version is 8, local router ID is 10.1.13.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
* i200.50.2.0/24   10.1.24.2                      100      0 777 911 711 i
*>i                10.1.36.2                 0    100      0 777 711 i

Referensi :

http://en.wikipedia.org/wiki/Border_Gateway_Protocol

http://www.pulsewan.com/data101/pdfs/bgp.pdf

http://www.nemako.net/dc2/?post/BGP

2011001589

One Response to “SEKILAS TENTANG BORDER GATEWAY PROTOCOL (BGP)”


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: