Gw lebih suka
nyebutnya BGP “Performance Tuning“ sih sebenernya (buat
improves convergence time-nya BGP)
Teori dan Config basic uda bisa lah ya…
Ada beberapa yang akan gw bahas:
·
BGP Timers (Keepalive and Holdtime)
·
Advertisement Interval
·
Initial Delay for sending updates
·
BGP Scan-Time and NHT
·
Fast-External Fallover
·
BGP Bidirectional Forwarding Detection (BFD)
·
BGP Route Dampening
·
Graceful Restart (NSF)
·
BGP Reflector and Confederations
·
Peer Session/Policy Templates
·
Deterministic med (and Always Compare)
===============================
Okeh the first one…BGP
Keep Alive and Holdtime
Diatas adalah cara
setting bgp timer (timer
bgp [waktu keepalive] [waktu hold]), klo kita setting hold time kurang dari 20 detik nanti ada warning…bisa
peer flapping
Kita harus pake “clear ip bgp” (ga pake soft) alias hard reset untuk
“maksa” timer yang kita setting di-apply langsung (klo pake clear ip bgp * soft ga renegosiasi ulang timer soalnya)
Dan kita bisa liat
keepalive packet-nya dengan debug
ip bgp keepalive
Yang jadi pertanyaan
terakhir adalah…kenapa kita mesti tuning ini timer?!?
Salah satu problem dari BGP apa sih???
Slow convergence kan?!?…IGP protocol udah kita tuning setuning2nya biar fast
convergence…BGP tetep ga konek2…lambaaaat banget
Tapi hati2….kecepetan
tuning-nya…bisa berabe, IGP belum selesai convergence…masak iya BGP attempt
buat convergence, ya ga bisa lah (inget…BGP running on top of another
protocol)
Eh…klo salah setting timer gimana??? Ada
cara ga untuk prevent-nya? ada
Klo neighbor kita
tiba2 jadi “router on-steroid” (wkwkwk…istilah orang2 network untuk
router BGP yang ngirim update-nya terus2an dan dalam waktu cepet…”steroid”
wkwkw) kita bisa bikin kek gini
Tambahin
lagi…contoh: timer
bgp 10 30 10, artinya router gw
hanya accept holddown timer 10 detik…no less
Klo ada yang ngirim 9
detik kurang gimana??? BGP-nya putus…
===============================
Advertisement Interval
By default, BGP kirim updates ke BGP
intra AS (iBGP) tiap 5 detik, klo ke eBGP tiap 30 detik
Kita bisa rubah behavior ini dengan
cara:
===============================
Initial Delay for
Sending Update
Buat apa sih kita “nge-delay” bgp
update? To ensure BGP peer has supplied all the routing information
Jadi BGP protocol ga akan proses
best-path selection klo bgp time-out atau bgp prefixes belum didapet semuanya,
nah ini kita bisa tuning dengan update-delay
Bayangin klo BGP peer ngirim 10 prefix
ke kita, belum abis time-out nya, trus router bgp sebelah uda kirim lagi…trus
mau abis lagi time-out nya, dikirim lagi update-an terbaru
Alhasil ga akan di proses2 itu best path
selection-nya…
Default bgp update-delay adalah 120s
Untuk nge-force supaya
langsung di update?? Clear ip bgp * soft
===============================
BGP Scanner
BGP monitor next-hop dari route2 yang
sudah terinstall untuk memverifikasi dan memvalidasi next-hop reachability dan
best path, klo mati ya di buang dari routing table
Walaupun IGP uda ngasi tau bahwa ada
rute invalid, BGP nge-detect-nya pas lagi scanning, nah default Timer-nya
adalah 60s
Btw…untuk VPNv4,
timer-nya 15 detik (setting config-nya juga di address family
yaks)
yaks)
Setting this feature too low (too fast),
it will be burden the CPU if many large BGP tables, karena akan perform full
table scanning ketika di eksekusi
Setting this too high, yaaa ga akan
perform2 scanner, itu next-hop mati apa engga ya cuek aja
Kita juga bisa bikin scan interval
ngikutin kecepatan convergence IGP (OSPF, ISIS, dll)
Nah, yang lebih bagus
daripada BGP Scanner adalah BGP Next-Hop Tracking (NHT)
Taken from Petr
Lapukhov #16379:
“The idea is to make the BGP process
register the next-hop values with the RIB “watcher” process and require a
“call-back” every time information about the prefix corresponding to the
next-hop changes“
Next-hop tracking ini enabled by default
(mulai dari IOS 12.4T) dan default tracking-nya 5 detik
Jadi klo next-hop nya mati…ada agen
asuransi (wkwkw) dari RIB yang ngasi tau BGP (watcher and callback)
Bahkan klo memang IGP-nya super-fast
dalam hal convergence, tracking-nya kita bisa setting jadi 0
===========================================
Fast-External-Fallover
Biasanya klo Ebgp
session mati, router akan nyari alternative path secara instant, hal ini karena
ada fitur Fast-External Fallover yang di-enabled by default
Yang jadi masalah
adalah kalau interfacenya FLAPPING (nyala-mati terus), bikin
cpu naek gara2 proses bgp terus
Kita bisa matiin ini
command dengan cara no
bgp fast-external-fallover biar klo flapping, ga akan dianggep mati session peering-nya (klo
mati-nya lama ya tetep di-close juga gara2 hold timer-nya abis)
See…ga langsung mati ebgp session-nya
====================================================
Bidirectional
Forwarding Detection
Mirip kek hello packet dari routing2
protocol, Cuma dia di proses bukan di control plane kek routing2 protocol
kebanyakan
Dia bisa nge-detect next-hop failure
(udp-based routing protocol independent) dan bisa di proses di interface
modules
Trus klo ini BFD
nge-detect ada fail gimana? Ya dia ngasi tau si routing protocol, terserah protocol-nya, itu link mau
di alihkan rute-nya ato diputus (jadi menghemat kinerja routing protocol, ga
usa kirim hello packet untuk nge-detect ini link error apa kaga…ada “agen”-nya
haha)
Anggep aja ini BFD kek IP SLA versi “generic”
nya router
Untuk bisa perform BFD, minimal harus
ada peering-nya, alias ga bisa Cuma 1 router aja yang dikonfig, router
sebelahnya harus di konfig juga (biar ngerti “Bahasa” BFD)
Well…IOS gw ga support untuk show bfd
neighbor, untuk lebih lengkapnya lu bisa ke sini:
=====================================================
Route Dampening
Well, ini mirip
kek advertisement interval, Cuma ini kek di-“suppressed”
(dampening) biar ga di advertise ke internal bgp peer yang lain klo ada route
dari external bgp yang suka flapping
Keyword untuk implement route dampening
adalah:
·
Penalty: incremented numeric value setiap sebuah rute flap (jika sebuah
rute flap, maka akan dikasi value, dan akan meningkat terus setiap flap…mirip
kek konsepnya HSRP))
·
Suppress Limit: limit penalty value, klo sebuah route dengan penalty value
yang lebih dari suppress limit value, maka route itu akan di suppress
·
Half life time: video game dari valve yang dimasukin ke Cisco *ngaco*,
waktu yang diperlukan untuk ngurangin penalty value (biar ga kena suppress
limit)
·
Max Suppress Time: untuk ensure supaya itu rute ga di “dampen” indefinitely
First, we must activate the dampening
mechanism first (klo mau global for all peer)
Klo untuk specific neighbor only,
berarti kita harus pake route-map
Ups..ada yang ketinggalan
Diatas adalah default configuration (15
menit untuk half-time, 1000 untuk penalty value, suppress limit-nya pake 2000,
maximum limit-nya: 60 menit)
Initial, no dampened
path (bisa pake show
ip bgp dampened-paths), karena memang ga ada yang flapping
….nyok kita coba rute 2.2.2.2 nya kita
matiin trus idupin lagi, cek di R1
Look at dampinfo….flapped
1 times (tes lagi…harusnya 2x)
Noh…2x…klo uda lewat dari suppress-limit
(biar yakin…coba itu rute 2.2.2.2 nya di shutdown lagi untuk ke-3x nya)
Di routing table?!?!?
=======================================================
Graceful Restart (NSF)
Well, you can take on this link:
intinya adalah router2 yang NSF capable
bisa bikin route2 yang didapat jadi “stale” alias di”tahan” dulu…ga dibuang
dari routing table klo lagi putus koneksi (ga langsung dibuang)
pas nyambung lagi, tinggal “refresh”
alias update aja…
Cuma router2 yang
support NSF (non-stop forwarding aja yang bisa, and therefore commandrouter(config-router)#graceful-restart cannot be showed here)
=======================================================
BGP Reflector and
Confederation
Both of them useful for getting a BGP
mesh capable network without using full-mesh capability
Contoh awal sebuah network
Klo setiap router yang ada “label”
BGP-nya mau konek kesemua yang berlabel sama, tanpa cara khusus berarti kita
harus membuat semua router2 BGP ini konek satu sama lain, yang artinya FULL
MESH
Nah, untuk itulah Confederation dan
Reflector berguna…
Untuk BGP Confederation:
Di AS 65000, di”pecah” lagi jadi sub-AS,
jadi BGP 2 bisa peering dengan BGP 3 melalui internal BGP, untuk ke BGP 1 dan
BGP 4 bisa pake “external” BGP (gw pake tanda kutip, karena memang seakan2
external, padahal bukan…masi 1 AS)
Untuk BGP Route-Reflector:
BGP 4 merefleksikan (kek cermin) rute2
yang di advertise dari BGP 5 ke BGP 6 dan BGP 7, begitu pula sebaliknya
Dalam istilah BGP, router BGP 4 disebut
route reclector server, sedangkan BGP 5,6,7 disebut route reflector client
Most of us…yes, most
of us, see these two guys competing each other
Padahal ini 2 technology bisa saling
komplemen satu sama lain
Kok bisa?!? Gini, klo kita pake sub-AS
(confederation), berarti router2 yang berbeda sub-AS akan “act like external
peer” ke satu sama lain
Ada kalanya kita pengen route2 yang kita
punya tidak di”treat” alias diperlakukan sebagai external ataupun internal,
disinilah gunanya route reflector
Bahkan kita bisa bikin kek gini:
WHY NOT BOTH?!?
Untuk konfigurasi…liat disini aja yah
wkwkwk
==========================================
BGP Peer-Policy/Policy
Templates
Tau BGP
Peer-Group kan?!?! Itu kan digunain untuk shortening syntax alias menghemat ketikan2 yang berulang
Peer-Group kan?!?! Itu kan digunain untuk shortening syntax alias menghemat ketikan2 yang berulang
Nah, Peer-Policy dan Policy Templates
ini extend the usefulness even further
Contoh:
Take a look, disatu sisi…kita punya 2
peer-group, yang 1 ga pake ebgp-multihop, tapi yang satu pake
Nah, masalahnya…itu timer kan sama tuh
ceritanya (itu baru timer yang harus diketik berulang 2x, belum lagi yang
lain2)
Nah, kita bisa
pake Templates, contohnya:
Nah, All-BGP ini bisa kita “inherit” ke
masing2 neighbor peer-group (weeeeew, dah kaya programming aja ada inherit2
segala)
================================
BGP Deterministic Med
(and Always-Compare-Med)
Gw Cuma men-translate apa yang ada di
cisco.com
Biasanya di deploy di sebuah company
yang punya 2 ISP, and those ISP’s are agree on somethin’ (like if you go to X
Route…both ISP will influence the company which path is better, of course they
will have some parameters agreement to each other ISP)
Contoh, gw punya 3 entry di router gw:
entry1: AS(PATH) 500,
med 150, external, rid 172.16.13.1
entry2: AS(PATH) 100,
med 200, external, rid 1.1.1.1
entry3: AS(PATH) 500,
med 100, internal, rid 172.16.8.4
entry3 dateng paling duluan, trus yang
entry2, dan terakhir entry1
Scenario 1: both command disabled
Entry1 dan entry2 akan
dikompare (yang entry3 engga…soalnya dapet dari internal BGP),yang dipilih
adalah entry2 (Router ID paling kecil)
Scenario 2: bgp always-compare-med enabled
Entry1 dan entry2
dikompare, tapi karena adanya command always-compare-med…dia ga liat Router-ID
dulu tetapi liat MED, nah…entry 1 lah yang dipilih (MED value yang
lebih kecil dari entry2)
Scenario 3: bgp deterministic-med enabled
BGP akan ngelompokin
rute-nya berdasarkan AS-nya, baru di compare, jadi keliatan kek gini
entry1: AS(PATH) 100, med 200, external, rid 1.1.1.1
entry2: AS(PATH) 500, med 100, internal, rid 172.16.8.4
entry3: AS(PATH) 500, med 150, external, rid 172.16.13.1
entry1 adalah yang paling bagus (karena
Cuma ini satu2nya rute dari AS 100), entry1 akan dikompare dengan “pemenang”
dari group AS 500 (dimana yang menang adalah entry2 karena dia punya lowest
MED)
nah, selanjutnya
entry1 dan entry2 akan dikompare, karena TIDAK BERASAL DARI AS YANG
SAMA, BGP tidak meng-kompare MED, melaikankan akan compare
External/Internal,yang menang adalah entry1
Scenario 4: both feature enabled
Sama kek scenario 3,
hanya saja…pemenang dari group AS 100 dan pemenang dari group AS 500 tetapkan
akan di-kompare MED-nya, yang menang tentu saja entry2 (lowest
med)
Contoh konfigurasi:
Cisco menyarankan untuk selalu
meng-enable bgp deterministic-med
=============================
References:
Mohammed Mahmoud
– bgp performance tuning
BGP Keepalive and
Holddown Timer @ http://rekrowten.wordpress.com/2013/05/31/bgp-keepalive-and-holddown-timer/
BGP Fast External
Fallover @ http://www.networkers-online.com/blog/2008/07/bgp-fast-external-fallover/
Petr Lapukhov #16379
– http://blog.ine.com/2010/11/22/understanding-bgp-convergence/
BGP Next-Hop tracking
@ http://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/sbbnhop.html
Randy Zhang #5659 and
Micah Bartell #5069 – “BGP Design and Implementation” ebook
Jeff Doyle #1919 and
Jennifer Carroll #1402 – “Routing TCP/IP vol 1 & 2” ebook
Russ White #2635 – “Practical
BGP” ebook
RFC 4271 – A Border gateway Protocol 4
(BGP-4)
Bidirectional
Forwarding Detection @ http://www.cisco.com/c/en/us/td/docs/ios/12_0s/feature/guide/fs_bfd.html#wp1153100
BGP Route Dampening
@ https://supportforums.cisco.com/blog/150516/bgp-route-dampeningconfused
BGP Peer Templates
@ http://packetlife.net/blog/2010/jan/12/bgp-peer-templates/
BGP Deterministic MED
@ http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/16046-bgp-med.html
Linksumber= https://belajarcomputernetwork.wordpress*com/