Read Me
2
● Ini adalah modul gratis, kamu boleh membagikan, menggunakan, atau mengambil sebagian materi
dari modul ini, tanpa menghapus credit footer dari webiptek.com.
● Jika kamu menemukan kesalahan pada teori yang disampaikan, mohon sampaikan koreksi tersebut ke pembuat (kontak tercantum di bawah).
● Isi bisa saja berubah tanpa pemberitahuan, baik dari segi struktur maupun materi. ● Buka link berikut untuk melihat modul terupdate: https://files.webiptek.com/BGP
Pembahasan dalam bentuk video: (belum tersedia)
Syarat mempelajari modul ini, kamu harus sudah paham:
1. Konsep dan cara kerja dynamic routing protocol.
Oleh Rizqi Aldi Prayugo ([email protected])
Apa yang akan dipelajari?
3 1. Module 1: BGP Overview a. Apa itu BGP b. Kapan menggunakan BGP c. Topologi BGPd. iBGP dan iBGP
2. Module 2: Cara Kerja BGP a. BGP Message
b. BGP Neighbor State
3. Module 3: Implementasi Dasar BGP 4. Module 4: BGP Attributes
[Module 1]
BGP Overview
Apa itu BGP?
5
1. BGP (Border Gateway Protocol) termasuk dalam routing protocol EGP (Exterior Gateway Protocol).
2. BGP adalah routing protokol yang digunakan untuk bertukar informasi routing antar autonomous system (AS).
3. BGP menggunakan algoritma path-vector.
4. BGP menggunakan koneksi TCP port 179 untuk bertukar berkomunikasi.
Autonomous System (AS)
6 1. Autonomous System (AS) adalah sekumpulan router yang berada di dalam satu administrasi teknis
yang sama dan memiliki routing policy yang sama.
Biasanya sekumpulan router tersebut dimiliki oleh perusahaan/organisasi yang sama (misal: service provider, kampus, perusahaan, dll).
2. Router di dalam satu AS saling terhubung menggunakan protokol IGP seperti OSPF, IS-IS, dll. 3. Untuk membedakan satu AS dengan AS lain, maka setiap AS diidentifikasi oleh AS Number.
2-bytes AS number range: 0 - 65.535
4-bytes AS number range: 65.536 - 4.294.967.295 4. Terdapat Private dan Public AS
Private AS bisa digunakan ketika kita menggunakan satu service provider dan menginginkan routing policy
antara AS kita dengan AS service provider tidak terlihat dari internet.
Range Private AS 2 bytes: 64512 - 65534
Range Private AS 4 bytes: 4200000000 – 4294967294
Penulisan 4-bytes ASN
7 1. Asplain → Menggunakan notasi bilangan desimal secara penuh (65536 - 4294967295)
Contoh: 65555, 100123, 84333244, dll.
2. Asdot → Jika AS < 65536, maka ditulis secara asplain. Jika >= 65536 maka nilai 16 bit pertama (high
order bit value) dan 16 bit terakhir (low order bit value) dipisahkan menggunakan titik.
3. Asdot+ → AS 0 - 4294967295 ditulis dengan memisahkan nilai 16 bit pertama (high order bit value)
dan 16 bit terakhir (low order bit value) menggunakan titik. Rumus:
integer (high order bit value) = asplain / 65536
remainder (low order bit value) = asplain - (integer * 65536) Asdot value = integer.remainder
Contoh: AS 61555 AS 84333244 integer = 61555 / 65536 = 0 84333244 / 65536 = 1286 remainder = 61555 - (0 * 65356) = 61555 84333244 - (1286*65536) = 53948 Asdot = 61555 Asdot = 1286.53948 Asdot+ = 1.199 Asdot = 1286.53948 4.
Path-Vector Routing Protocol (1)
8
1. Path-vector merupakan metode routing protokol yang digunakan untuk menghubungkan antar AS. 2. Path-vector mendefinisikan jalur routing sebagai AS Path.
3. Jalur routing terbaik (best path) bisa diatur berdasarkan policies / kebijakan pemilik AS.
4. AS path yaitu kumpulan AS yang dilewati untuk menuju ke network tertentu (dihitung dari source AS hingga destination AS).
Contoh: { 22560, 34590, 6522, i }
i artinya setelah masuk ke AS terakhir (6522), rute berikutnya ditentukan oleh IGP.
(kita akan bahas indikator i, e, dan ? di materi ORIGIN) 5. AS Path bisa mencegah routing loop.
Path-Vector Routing Protocol (2)
9
Contoh:
ISP-1#sh ip bgp
Network Next Hop Metric LocPrf Weight Path *> 8.8.8.0/24 0.0.0.0 0 32768 i
*> 11.0.0.0/26 102.102.102.2 0 0 22560 34590 6522 i
Artinya untuk menuju network 11.0.0.0/24, kita harus melewatkan paket ke AS 22560, 34590, 6522, rute selanjutnya akan ditentukan oleh protokol iBGP di dalam AS 6522.
Peering dan Transit
10 Peering: melewatkan traffic sekaligus bertukar informasi routing.
Transit: hanya (numpang) melewatkan traffic.
Contoh:
ISP-A bisa peering dengan ISP-B dan ISP-C. Agar ISP-A bisa berkomunikasi dengan ISP-D, ISP-A bisa transit ke ISP-B atau ISP-C untuk berkomunikasi dari/ke ISP-D
Kapan Kita
Perlu
Menggunakan BGP?
11
1. Saat kita bertindak sebagai ISP/NAP.
2. Ketika kita membutuhkan informasi path menuju prefix yang ada di internet.
3. Ketika AS kita terhubung dengan beberapa AS sebagai upstream dan memerlukan manipulasi manipulasi traffic inbound dan outbound.
Kapan kita
Tidak Perlu
Menggunakan BGP?
1. End client masih menggunakan single upstream atau beberapa upstream tetapi tidak memerlukan manipulasi traffic.
Apa itu Manipulasi Traffic?
12
1. Kita menggunakan lebih dari satu upstream (ISP), tetapi di sisi lain kita punya prefix IP public yang ingin bisa diakses dari internet lewat melalui ISP manapun.
2. Kita ingin traffic upload menggunakan ISP A dan traffic download menggunakan ISP B.
BGP Advertisements
13 1. Default Route
Meng-advertise default route.
Contoh: ISP hanya meng-advertise default route ke Enterprise.
Sehingga Enterprise hanya tahu default route menuju internet, tanpa mengetahui path yang dilewati.
2. Partial Routing Updates
Meng-advertise default route dan beberapa prefix.
Contoh: ISP meng-advertise default route dan beberapa prefix ke Enterprise.
Sehingga Enterprise bisa menghemat resource dengan hanya mengetahui path untuk menuju ke beberapa prefix tertentu saja.
3. Full Internet Routing Table
Meng-advertise prefix.
Contoh: ISP meng-advertise semua prefix yang dimiliki ke Enterprise.
Sehingga Enterprise bisa tahu path yang dilalui untuk menuju prefix tertentu.
BGP Topology:
Single Home
14
● Customer menggunakan 1 ISP (Home) ● Customer menggunakan 1 Link (Single)
BGP Topology:
Dual Homed
15
● Customer menggunakan 1 ISP (Homed)
BGP Topology:
Single Multihomed
16
● Customer menggunakan lebih dari 1 ISP (Multihomed) ● Customer menggunakan 1 Link (Single)
BGP Topology:
Dual Multihomed
17
● Customer menggunakan lebih dari 1 ISP (Multihomed) ● Customer menggunakan beberapa Link per ISP (Dual)
Internal dan External BGP
18 eBGP (external BGP) digunakan untuk bertukar informasi routing antar AS dan mengimplementasikan
routing policy.
iBGP (internal BGP) digunakan untuk bertukar informasi routing di dalam satu AS.
1. iBGP diperlukan sebagai backbone untuk menghubungkan border routers agar bisa saling bertukar informasi routing BGP.
2. Mengadvertise prefix network yang tidak terhubung langsung ke external BGP speakers. 3. Mengadvertise prefix dari internet (external) ke internal BGP speakers.
BGP General Operation
19
1. Mendapatkan informasi routing berupa path dari internal dan eksternal BGP speakers. 2. Memilih jalur routing terbaik (best path) lalu menambahkannya ke routing table (RIB). 3. Jalur terbaik juga dikirim ke external BGP neighbors.
[Module 2]
How BGP Works?
Cara Kerja BGP
21
BGP bekerja dengan mempertimbangkan atribut dan beberapa parameter lain yang dimiliki oleh suatu prefix. Atribut adalah nilai yang bisa diubah sesuai dengan policy.
BGP Messages: 1. Open
2. Keepalive 3. Update
BGP Message Types:
Open
22
Open message dikirim setelah koneksi TCP antara dua router BGP.
Setelah menerima balasan berupa Keepalive message, kedua router akan menjadi peers/neighbors. Isi open message:
● ASN pengirim ● BGP version ● BGP router-id
BGP Message Types:
Keepalive
23
Keepalive message pertama digunakan untuk meng-acknowledge Open Message yang diterima.
Keepalive berikutnya dikirim secara berkala (60 detik) untuk menjaga BGP session agar hold-timer (180 detik) tidak expires.
BGP Message Types:
Update
24
Update message digunakan untuk bertukar informasi prefix. Isi update message:
● Withdrawn routes: route yang sudah tidak digunakan.
● Path Attributes: attribute untuk path ini untuk menjangkau network yang didefinisikan di NLRI. ● NLRI - daftar network yang reachable melalui path ini <prefix, length>.
BGP Message Types:
Notification
25
Notification message dikirim ketika ada error.
Ketika menerima/mengirim pesan ini, BGP session yang terkait error akan dihapus. Isi notification message:
● Error code
● Error sub-code
BGP Neighbor State
BGP Neighbor State (1)
27
1. Idle
❏ Router masih mencari rute menuju neighbor.
2. Connect
❏ Router BGP berubah dari status idle ke connect jika dia menemukan rute ke neighbor yang dituju dan telah memulai TCP handshake.
❏ Jika TCP session established, router akan mengirim Open message dan status berubah menjadi
OpenSent.
❏ Jika TCP session gagal, status berubah ke Active
3. Active
❏ Status active mengindikasikan upaya TCP handshake gagal. ❏ Router akan memulai ulang TCP handshake.
❏ Jika established, router mengirim Open message dan status menjadi OpenSent. ❏ Jika gagal, kembali ke Idle.
BGP Neighbor State (2)
28 4. OpenSent
❏ Mengindikasikan Open message telah dikirim ke neighbor dan sedang menunggu Open message dari neighbor.
❏ Jika menerima Open message dan tidak ada kesalahan (version, source address same as TCP address, ASN, router-ID, TTL, md5), router kemudian mengirim KeepAlive message dan status berubah menjadi OpenConfirm.
❏ Jika open message error (ada kesalahan), router kemudian mengirim Notification message dan status berubah menjadi Idle.
5. OpenConfirm
❏ Router sedang menunggu KeepAlive pertama dari neighbor. ❏ Jika menerima, status berubah ke Established.
❏ Jika hold-timer kedaluarsa atau notification message diterima, status berubah menjadi Idle.
6. Established
❏ Hubungan BGP neighbor established dan sudah bisa saling bertukar informasi routing. ❏ Jika hold-timer kedaluarsa/error, status berubah menjadi Idle.
[Module 3]
Basic BGP Implementation
eBGP Neighbor Relationship
30
Ada beberapa syarat agar koneksi eBGP neighbor bisa terjalin, diantaranya: 1. eBGP session established jika router berada di AS yang berbeda.
2. Kedua router biasanya terhubung secara langsung (satu network).
● Session established dan peering menggunakan alamat IP interface yang saling terhubung. ● Alamat IP yang digunakan untuk peering harus sama dengan alamat IP pada TCP session. 3. Untuk menghubungkan router eBGP yang tidak terhubung secara langsung (directly connected):
Perlu membuat routing statis untuk mencapai neighbor dan mengubah value eBGP TTL (default 1)
router bgp 4000 neighbor 53.206.89.2 remote-as 5000 ! to enable multiprotocol: no bgp default ipv4-unicast address-family ipv4 neighbor 53.206.89.2 activate
eBGP Peering
31 ! Router AS 4000 router bgp 4000 neighbor 53.206.89.2 remote-as 5000 neighbor 2001:db8:c3:2 remote-as 5000 ! to enable multiprotocol: no bgp default ipv4-unicast address-family ipv4 neighbor 53.206.89.2 activate address-family ipv6 neighbor 2001:db8:c3:2 activate ! Router AS 5000 router bgp 5000 neighbor 53.206.89.1 remote-as 4000 neighbor 2001:db8:c3:1 remote-as 4000 ! to enable multiprotocol: no bgp default ipv4-unicast address-family ipv4 neighbor 53.206.89.1 activate address-family ipv6 neighbor 2001:db8:c3:1 activateiBGP Neighbor Relationship
32
Ada beberapa syarat agar koneksi iBGP neighbor bisa terjalin, diantaranya: 1. iBGP session established jika router berada di AS yang sama
2. Tidak harus terhubung secara langsung (directly connected).
● Jadi, bisa menggunakan IGP sebagai underlay, agar router yang tidak terhubung secara langsung bisa saling terkoneksi.
● Umumnya, TCP session dan alamat peering iBGP menggunakan loopback address. 3. Tidak ada transit, semua router iBGP harus peering atau menggunakan route reflector.
router bgp 5000 neighbor 11.0.0.2 remote-as 5000 ! to enable multiprotocol: no bgp default ipv4-unicast address-family ipv4 neighbor 11.0.0.2 activate
iBGP Full-Mesh
33 R1 router bgp 5000 neighbor 11.0.0.2 remote-as 5000 neighbor 11.0.0.3 remote-as 5000 neighbor 11.0.0.4 remote-as 5000 R2 router bgp 5000 neighbor 11.0.0.1 remote-as 5000 neighbor 11.0.0.3 remote-as 5000 neighbor 11.0.0.4 remote-as 5000 R3 router bgp 5000 neighbor 11.0.0.1 remote-as 5000 neighbor 11.0.0.2 remote-as 5000 neighbor 11.0.0.4 remote-as 5000 R4 router bgp 5000 neighbor 11.0.0.1 remote-as 5000 neighbor 11.0.0.2 remote-as 5000 neighbor 11.0.0.3 remote-as 5000iBGP Operations
34
● Router iBGP akan mengadvertise prefix dari router eBGP ke semua router iBGP neighbors.
● Untuk mencegah looping, router iBGP hanya mengadvertise prefix yang berasal dari router itu sendiri. ● Untuk mengurangi jumlah peering dalam satu kelompok iBGP, kita bisa menggunakan:
Sourcing iBGP from Loopback
35
● Secara default, router menggunakan IP pada exit-interface sebagai source address untuk berkomunikasi dengan iBGP neighbors.
● Jika di router neighbor menggunakan alamat loopback sebagai peer address, kita perlu mengkonfigurasi update-source menggunakan interface loopback terkait.
# Konfigurasi di R1
router bgp 5000
neighbor 11.0.0.4 remote-as 5000
neighbor 11.0.0.4 update-source Loopback0
# Konfigurasi di R4
router bgp 5000
neighbor 11.0.0.1 remote-as 5000
Inserting Prefixes into BGP
36
R1
! Jika hanya menjalankan IPv4
router bgp 5000
network 53.0.0.1 mask 255.255.255.255
! Jika menjalankan multiprotocol
ipv6 unicast-routing router bgp 5000 no bgp default ipv4-unicast address-family ipv4 network 53.0.0.1 mask 255.255.255.255 address-family ipv6 network 2001:db8:c3::/64
Redistribute other Routing Protocol into BGP
37
R1
! Jika menggunakan OSPF router bgp 5000
redistribute ospf
R1(config-router)#redistribute ? application Application
bgp Border Gateway Protocol (BGP) connected Connected
eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)
isis ISO IS-IS
iso-igrp IGRP for OSI networks
lisp Locator ID Separation Protocol (LISP) mobile Mobile routes
odr On Demand stub Routes
ospf Open Shortest Path First (OSPF) ospfv3 OSPFv3
rip Routing Information Protocol (RIP) static Static routes
vrf Specify a source VRF
! Jika menjalankan multiprotocol ipv6 unicast-routing router bgp 5000 no bgp default ipv4-unicast address-family ipv4 redistribute ospf address-family ipv6 redistribute ospf
Configuring Aggregation
38
Agar network bisa di-advertise, harus ada routing ke network tersebut. router bgp 5000
network 103.40.0.0 mask 255.255.252.0 summary-only ip route 103.40.0.0 255.255.252.0 null0
Refresh BGP Session
39
BGP speaker tidak bisa meng-advertise kembali prefix (route) yang sudah acknowledged oleh neighbor. soft refresh: melakukan refresh BGP tanpa memulai ulang BGP session.
hard refresh: melakukan refresh BGP dengan menghapus kemudian memulai ulang BGP session. Kapan kita perlu merefresh BGP session?
● Ketika kita mengubah BGP router-ID.
● Jika kita ingin mengadvertise ulang prefix.
Router# clear ip bgp { neighbor_IP_address | neighbor_AS_number } [soft]
Dalam kondisi tertentu kita tidak bisa menggunakan soft refresh, misal ketika kita mengubah BGP keepalive dan hold-timer.
[Module 4]
BGP Attributes
BGP Attributes
BGP Path Selection
42 1 Weight Mengutamakan nilai weight tertinggi.
2 Local Preference Mengutamakan nilai local preference tertinggi.
3 Originate Mengutamakan route yang berasal dari local router (network command, aggregation, redistribution) 4 AS Path Length Mengutamakan AS Path terpendek.
5 Origin Code Mengutamakan nilai origin terendah. [ iBGP (i) < eBGP (e) < Incomplete (?) ] 6 MED (metric) Mengutamakan nilai MED (metric) terendah.
7 eBGP vs iBGP Mengutamakan eBGP paths daripada iBGP paths.
8 Nearest Next-Hop Mengutamakan path (dalam satu AS) yang memiliki metric IGP terendah. 9 Oldest Path Mengutamakan path yang diterima terlebih dahulu.
10 BGP Router-ID Mengutamakan neighbor dengan router-id terendah.
BGP Attributes
43
➢ Well-known : didukung oleh semua perangkat BGP (semua perangkat BGP wajib mendukung). ○ Mandatory: selalu ada dalam setiap route entry tanpa perlu kita konfigurasi.
Contoh: ORIGIN, AS_PATH, NEXT_HOP.
○ Discretionary: tidak harus ada dalam setiap route entry.
Contoh: ATOMIC_AGGREGATE, LOCAL_PREF.
➢ Optional: bisa saja tidak didukung oleh perangkat BGP tertentu (tidak wajib didukung).
○ Transitive: Ketika neighbor menerima advertise prefix yang memiliki attribute transitive tetapi
router neighbor tidak mendukung attribute tersebut, attribute tersebut tetap diteruskan ke router neighbor lain.
Contoh: AGGREGATOR, COMMUNITY, EXT_COMMUNITY.
○ Non-transitive: Ketika menerima advertise prefix yang memiliki attribute non-transitive tetapi
router neighbor tidak mendukung attribute tersebut, attribute tidak diteruskan ke router neighbor lain.
Contoh: MED (MULTI_EXIT_DISC), ORIGINATOR_ID, CLUSTER_LIST, Multi Protocol Extension (MP_reach_NLRI, MP_unreach_NLRI).
Weight
44
● Weight merupakan cisco proprietary attribute (tetapi mungkin sudah diadopsi juga oleh vendor lain). ● Weight digunakan untuk menentukan neighbor mana yang lebih diutamakan ketika ada lebih dari satu
route entry untuk prefix yang sama.
● Secara default, attribute weight bernilai 32768 ketika prefix berasal dari router lokal (router itu sendiri) dan bernilai 0 ketika prefix berasal dari router neighbor.
● Weight hanya berlaku untuk router itu sendiri, tidak diadvertise. ● Weight yang lebih tinggi diprioritaskan.
● Nilai weight 0-65535
300 200
Weight:
Configuration Example (1)
45 Objective:
Paket menuju 54.4.4.0/24 diprioritaskan melalui R2.
Before:
Weight:
Configuration Example (2)
46 Configuration on R1:
access-list 1 permit 54.4.4.0 0.0.0.255 route-map R2weight permit 10
match ip address 1 set weight 200
route-map R2weight permit 9999 router bgp 10
neighbor 12.12.12.2 route-map R2weight in
! clear bgp session softly clear ip bgp * soft
Weight:
Configuration Example (3)
47 After:
AS Path
48
Termasuk well-known mandatory attribute.
AS Path menunjukan AS mana saja yang dilewati untuk mencapai network tertentu (mulai dari source AS hingga destination AS).
● AS Path terpendek akan dipilih jika ada prefix yang memiliki lebih dari 1 AS Path. ● Mekanisme AS Path juga bisa mencegah routing loop di eBGP.
● iBGP tidak memerlukan mekanisme routing loop detection, karena iBG tidak mengadvertise prefix yang berasal dari neighbor.
AS Path:
Prepending
49
Prepending artinya menambahkan satu atau lebih AS di sebelah kiri AS Path. Biasanya prepending menggunakan AS Path-nya sendiri untuk ditambahkan. Contoh:
AS 40 memilih AS Path 20,10 untuk menuju 10.0.0.0/24.
Network Next Hop Metric LocPrf Weight Path
*> 100.0.0.0/24 24.24.24.2 0 0 20 10
* 23.23.23.3 0 0 30 10
Ketika router AS 10 ingin agar traffic diutamakan lewat AS30,
router AS 10 biasa menambahkan AS Path prepending untuk AS 20. Sehingga seolah-olah AS path yang melalui AS 20 lebih panjang. Hal tersebut membuat AS40 mengubah AS path-nya untuk menuju 100.0.0.0/24 melalui 30,10
Network Next Hop Metric LocPrf Weight Path
* 100.0.0.0/24 24.24.24.2 0 0 20 10 10
*> 23.23.23.3 0 0 30 10
AS Path Prepend:
Configuration Example (1)
50 Objective:
Konfigurasi AS Path prepend di R1 sehingga traffic yang masuk ke R1 (menuju 54.1.1.0/24) diutamakan melalui R3 ketimbang melalui R2.
Before:
R4# sh ip bgp
AS Path Prepend:
Configuration Example (2)
51 Configuration:
access-list 20 permit 54.1.1.0 0.0.0.255 !
route-map ASprepend permit 10 match ip address 20
set as-path prepend 10 10 10 route-map ASprepend permit 9999 !
router bgp 10
neighbor 12.12.12.2 route-map ASprepend out
! clear bgp session softly R1# clear ip bgp * soft
AS Path Prepend:
Configuration Example (3)
52 After:
R4# sh ip bgp
Next-Hop
53
● Termasuk well-known mandatory attribute.
● Next-hop menunjukan alamat IP router gateway untuk menuju prefix tertentu.
● Ketika prefix di-advertise oleh router eBGP, next-hop selalu diubah menjadi alamat IP router tersebut. ● Tetapi router iBGP tidak mengubah nilai next-hop.
Next-hop:
iBGP Next-hop Self
54
Dengan mengatur atribut next-hop self pada border router. Maka border router akan mengubah parameter next-hop ketika mengadvertise ke sesama router iBGP.
router bgp ASN
neighbor Neighbor_Address remote-as neighbor_ASN neighbor Neighbor_Address next-hop-self
router bgp 40
neighbor 40.0.0.2 remote-as 40 neighbor 40.0.0.2 next-hop-self
Origin
55
Termasuk well-known mandatory attribute.
Origin digunakan untuk menginformasikan dari mana suatu route entry berasal.
● i (IGP) → route entry berasal dari protokol BGP (diadvertise menggunakan BGP). ● e (EGP) → route entry berasal dari protokol EGP (deprecated).
● ? (incomplete) → route entry berasal dari hasil redistribute protokol IGP.
AS10# sh ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 100.0.0.0/24 12.12.12.2 0 0 20 30 i
Local Preference
56
● Termasuk well-known discretionary attribute.
● Local Preference digunakan untuk menginformasikan router iBGP dalam satu AS untuk menunjukan upstream yang lebih baik (preferred), jika terdapat 2 upstream atau lebih.
● Rute dengan nilai Local Preference tertinggi akan dipilih.
Local Preference:
Configuration Example
57
Konfigurasi locpref secara global. router bgp 30
bgp default local-preference 700 Atau, konfigurasi locpref untuk prefix tertentu.
access-list 1 permit 8.8.8.0 0.0.0.255 !
route-map out-to-R4 permit 10 match ip address 1
set local-preference 500
route-map out-to-R4 permit 9999 !
router bgp 30
neighbor 34.34.34.4 route-map out-to-R4 out
R4# sh ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 8.8.8.0/24 24.24.24.2 0 500 0 40 i
Atomic Aggregate (1)
58
● Termasuk well-known discretionary attribute.
● Atomic aggregate menandakan bahwa prefix yang memiliki attribute ini adalah hasil aggregation (summarization).
Contoh
Router A mengadvertise prefix 160.20.0.0/16 ke router C. Router B mengadvertise prefix 160.10.0.0/16 ke router C. Router C melakukan aggregation kedua prefix tersebut menjadi 160.0.0.0/8 untuk di-advertise ke Router D.
Konfigurasi di Router C: router bgp 300
...
Atomic Aggregate (2)
59
Hasilnya, show ip bgp: di Router C
Network Next Hop Metric LocPrf Weight Path *> 160.0.0.0/8 0.0.0.0 32768 i
s> 160.10.0.0 3.3.3.3 0 0 200 i s> 160.20.0.0 2.2.2.2 0 0 100 i
di Router D (tanpa as-set):
Network Next Hop Metric LocPrf Weight Path *> 160.0.0.0/8 4.4.4.1 0 300 i
di Router D (dengan as-set):
Network Next Hop Metric LocPrf Weight Path
Aggregator
60
● Termasuk optional transitive attribute.
● Aggregator menunjukan router mana yang melakukan aggregation (summarization). RouterC# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 9
Paths: (1 available, best #1, advertised to EBGP peer) {200,100}, (aggregated by 300 4.4.4.1)
0.0.0.0 from 0.0.0.0 (4.4.4.1)
Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best, ref 2
Community
61
Termasuk optional transitive attribute.
Community attribute digunakan untuk melakukan tagging/penandaan pada suatu prefix.
Tujuannya agar mempermudah identifikasi prefix ketika sampai ke router neighbor. Sehingga router neighbor bisa menerapkan policy yang sesuai dengan keinginan router yang pertama kali mengadvertise prefix (originate).
Value community berukuran 4-bytes
2-bytes pertama mengindikasikan AS Number (biasanya ASN pemilik policy). 2-bytes terakhir mengindikasikan community identifier.
Contoh → 20:1000
Artinya prefix tersebut ditandai dengan community_id = 1000 untuk router dengan ASN 20.
Well-known Community and Extended Community
62
Ada 4 well-known community:
● internet: advertise ke semua BGP neighbors.
● no-advertise: jangan advertise ke semua BGP neighbors. ● no-export: jangan advertise ke eBGP neighbors.
● local-as: digunakan pada skenario BGP confederation, prefix di-advertise ke iBGP neighbors dengan sub-AS yang sama.
Ada juga EXTENDED COMMUNITY, memiliki fungsi dan cara kerjanya yang sama, bedanya hanya ukurannya yakni 64 bytes.
Extended community digunakan untuk AS berukuran 4 bytes.
Community:
internet
63
Ketika Router Customer (AS10) meng-advertise prefix 10.10.10.10/32 ke ISP1 dengan attribute community = internet.
Maka, router ISP1 akan meng-advertise ke semua neighbornya, baik internal maupun eksternal BGP neighbor.
Community:
no-advertise
64
Ketika R1 meng-advertise prefix 1.1.1.1/32 ke R2 dengan attribute community = no-advertise.
Maka, R2 tidak akan meng-advertise prefix 1.1.1.1/32 ke iBGP neighbors maupun ke eBGP neighbors.
Community:
no-export
65
Ketika R1 meng-advertise prefix 1.1.1.1/32 ke R2 dengan attribute community = no-export.
Maka, R2 hanya akan meng-advertise prefix 1.1.1.1/32 ke iBGP neighbors yang memiliki AS yang sama, tetapi tidak akan meng-advertise ke eBGP neighbors.
Community:
local-as
66
Community local-as hampir sama dengan no-export, tetapi local-as digunakan dalam kasus BGP confederation.
Ketika R1 meng-advertise prefix 1.1.1.1/32 ke R2 dengan attribute
community = no-export.
Maka:
R2 hanya akan meng-advertise prefix 1.1.1.1/32 ke iBGP neighbors yang
memiliki AS yang sama.
Tetapi tidak akan meng-advertise ke eBGP neighbors dan router iBGP dengan confederation-ID yang sama.
Community-ID:
Configuration Examples (1)
67
route-map Peer-R2 permit 10 match ip address 1
set community 100:222 !
route-map Peer-R2 permit 20 match ip address 2
set community no-advertise ! Konfigurasi R3 router bgp 30 network 6.6.6.0 mask 255.255.255.0 network 7.7.7.0 mask 255.255.255.0 ! neighbor 10.10.13.1 remote-as 100 neighbor 10.10.13.1 send-community
neighbor 10.10.13.1 route-map Peer-R1 out !
neighbor 10.10.23.2 remote-as 100 neighbor 10.10.23.2 send-community
neighbor 10.10.23.2 route-map Peer-R2 out !
access-list 1 permit 6.6.6.0 0.0.0.255 access-list 2 permit 7.7.7.0 0.0.0.255 !
ip bgp-community new-format route-map Peer-R1 permit 10 match ip address 1
set community 100:111
route-map Peer-R1 permit 20 match ip address 2
Community-ID:
Configuration Examples (2)
68 ! Konfigurasi di R2 ! ip community-list 1 permit 100:222 ! ip bgp-community new-format !route-map Peer-R3 permit 10 match community 1
set local-preference 222
route-map Peer-R3 permit 9999 !
router bgp 100
neighbor 10.10.12.1 remote-as 100 neighbor 10.10.12.1 next-hop-self neighbor 10.10.23.3 remote-as 30
neighbor 10.10.23.3 route-map Peer-R3 in ! Konfigurasi di R1 ! ip bgp-community new-format ! ip community-list 1 permit 100:111 !
route-map Peer-R3 permit 10 match community 1
set local-preference 111
route-map Peer-R3 permit 9999 !
router bgp 100
neighbor 10.10.12.2 remote-as 100 neighbor 10.10.12.2 next-hop-self neighbor 10.10.13.3 remote-as 30
Multi Exit Discriminator (MED)
69
Termasuk optional non-transitive attribute.
MED digunakan untuk mempengaruhi AS lain dalam mencapai AS tersebut ketika ada beberapa link. Default nilai MED (metric) adalah 0. Nilai MED terendah diprioritaskan.
Ketika nilai MED disetting oleh iBGP peer, maka MED tidak diteruskan ke eBGP neighbor.
Ketika nilai MED disetting menggunakan network command oleh border router atau hasil redistribute dari protokol IGP, maka MED diavertise juga ke eBGP neighbor.
MED (Metric):
Configuration Example (1)
70
Pada skenario pertama R1 mengadvertise
prefix 10.10.10.10/32 dengan MED 100 ke R2. Konfigurasi pada R1:
access-list 1 permit 10.10.10.10 route-map ATTACH_MED permit 10 match ip address 1
set metric 100 !
router bgp 100
network 10.10.10.10 mask 255.255.255.255 route-map ATTACH_MED neighbor 192.1.12.2 remote-as 100
MED (Metric):
Configuration Example (2)
71
Kita lihat nilai MED diadvertise ke R2, karena R1 dan R2 dalam satu AS.
MED (Metric):
Configuration Example (3)
72
Pada skenario berikutnya, prefix 10.0.0.0/8 diadvertise oleh R1 menggunakan RIP.
Kemudian diredistribute ke BGP oleh R2. router bgp 100
neighbor 192.1.23.3 remote-as 101 redistribute rip metric 1
Atau, sekenario lain, R2 yang mengadvertise prefix 10.0.0.0/8 ke R3. access-list 1 permit 10.10.10.10
route-map ATTACH_MED permit 10 match ip address 1
set metric 1 !
router bgp 100
network 10.0.0.0 mask 255.0.0.0 route-map ATTACH_MED neighbor 192.1.23.3 remote-as 101
MED (Metric):
Configuration Example (4)
73
Originator
74
● Termasuk optional non-transitive attribute.
● Attribute ini hanya ada pada iBGP route reflector.
● Originator menunjukan router mana yang pertama kali mengadvertise suatu prefix. ● Untuk mengecek originator suatu prefix, gunakan command: show ip bgp address
Cluster ID
75
● Termasuk optional non-transitive attribute.
● Attribute ini hanya ada pada iBGP dengan redundant route reflector.
● Jika suatu AS memiliki lebih dari satu route reflector (biasanya untuk alasan redundansi), maka semua route reflector harus dikonfigurasi dengan cluster-id yang sama untuk menghindari looping.
BGP Path Selection
76 1 Weight Mengutamakan nilai weight tertinggi.
2 Local Preference Mengutamakan nilai local preference tertinggi.
3 Originate Mengutamakan route yang berasal dari local router (network command, aggregation, redistribution) 4 AS Path Length Mengutamakan AS Path terpendek.
5 Origin Code Mengutamakan nilai origin terendah. [ iBGP (i) < EGP (e) < Incomplete (?) ] 6 MED (metric) Mengutamakan nilai MED (metric) terendah.
7 eBGP vs iBGP Mengutamakan eBGP paths daripada iBGP paths.
8 Nearest Next-Hop Mengutamakan path (dalam satu AS) yang memiliki metric IGP terendah. 9 Oldest Path Mengutamakan path yang diterima terlebih dahulu.
10 BGP Router-ID Mengutamakan neighbor dengan router-id terendah.
References
● https://academy.apnic.net/en/webinar-courses/bgp-basics
● Musajid, Akrom. Teori dan Konsep BGP. Jakarta: ID-Networkers
● https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/5441-aggregation.ht ml ● https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/28784-bgp-communit y.html ● https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/112965-bgpmed-attr-00.html 77