Professional Documents
Culture Documents
Read Me
● Ini adalah modul gratis, kamu boleh membagikan, menggunakan, atau mengambil sebagian materi
dari modul ini, tanpa menghapus credit footer dari webiptek.com.
● Isi bisa saja berubah tanpa pemberitahuan, baik dari segi struktur maupun materi.
● Jika kamu menemukan kesalahan pada teori yang disampaikan, ingin menambahkan materi, atau
memperbaiki pemilihan kata, ayo berkontribusi! Baca slide berikutnya.
● Buka link berikut untuk melihat modul terupdate: https://files.webiptek.com/Mikrotik/MTCINE
2
Contributor
Nama Kontak
Rizqi Aldi Prayugo xdnroot@gmail.com xdnroot
Ingin berkontribusi?
Kamu bisa menambahkan materi dan/atau merevisi materi yang sudah ada.
Hubungi saya (Rizqi) melalui sosial media atau email di atas.
Cukup sampaikan materi yang ingin kamu tambahkan atau revisi dalam bentuk dokumen atau presentasi.
3
Lab Setup
Lab ini menggunakan MikroTik Cloud Hosted Router (CHR) versi 6.47.9 (stable saat ini).
Download CHR:
https://mikrotik.com/download
EVE-NG:
https://www.eve-ng.net/index.php/documentation/howtos/howto-add-mikrotik-cloud-router/
GNS3:
https://www.routecloud.net/blog/cara-mudah-install-mikrotik-pada-gns3/
4
MikroTik Certification (2021)
5
Apa yang akan dipelajari?
1. Module 1: BGP Overview 5. Module 5: Implementasi BGP Lanjutan
a. Apa itu BGP a. BFD
b. Kapan menggunakan BGP b. Stub-AS (Non-Transit)
c. Topologi BGP c. Dual homed Load Balancing ECMP
d. iBGP dan iBGP
6
[Module 1]
BGP Overview
7
Centralized vs Distributed
Centralized Distributed
8
Internet is Distributed Network
9
Apa itu BGP?
1. BGP (Border Gateway Protocol) termasuk dalam routing protocol EGP (Exterior Gateway Protocol).
2. BGP adalah routing protokol yang digunakan untuk bertukar informasi routing (NLRI) antar
autonomous system (AS).
3. BGP menggunakan algoritma path-vector.
4. BGP menggunakan koneksi TCP port 179 untuk bertukar berkomunikasi.
5. BGP adalah open standard protocol yang didefinisikan di RFC 4271.
10
Autonomous System (AS)
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
11
ASN Reservation
Private AS biasanya digunakan ketika kita menggunakan satu service provider dan menginginkan routing
policy antara AS kita dengan AS service provider tidak terlihat dari internet.
https://www.iana.org/assignments/as-numbers/as-numbers.xhtml
12
Penulisan 4-bytes ASN
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
4. 13
Path-Vector Routing Protocol (1)
1. Path-vector merupakan metode routing protokol yang digunakan untuk menghubungkan antar AS.
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)
14
Path-Vector Routing Protocol (2)
Contoh:
[ISP-A] > ip route print detail where bgp
0 ADb dst-address=23.23.23.0/24 gateway=12.12.12.2 gateway-status=12.12.12.2 reachable via ether1 distance=20 scope=40
target-scope=10 bgp-as-path="22560,34590,6522" bgp-origin=incomplete received-from=peer-ISP-B
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.
15
Peering dan Transit
Peering: melewatkan traffic sekaligus bertukar informasi routing.
Transit: hanya (numpang) melewatkan traffic.
Contoh:
16
Kapan Kita Perlu Menggunakan BGP?
1. Saat kita bertindak sebagai ISP/NAP.
2. Ketika kita membutuhkan informasi path untuk menuju prefix yang ada di internet.
3. Ketika AS kita terhubung dengan beberapa AS sebagai upstream dan memerlukan manipulasi
manipulasi traffic inbound dan outbound.
17
Apa itu Manipulasi Traffic?
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.
18
BGP Advertisements
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.
19
BGP Topology: Single Home
● Customer menggunakan 1 ISP (Home)
● Customer menggunakan 1 Link (Single)
20
BGP Topology: Dual Homed
● Customer menggunakan 1 ISP (Homed)
● Customer menggunakan 2 Link per ISP (Dual)
21
BGP Topology: Single Multihomed
● Customer menggunakan lebih dari 1 ISP (Multihomed)
● Customer menggunakan 1 Link (Single)
22
BGP Topology: Dual Multihomed
● Customer menggunakan lebih dari 1 ISP (Multihomed)
● Customer menggunakan beberapa Link per ISP (Dual)
23
Internal dan External BGP
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.
24
BGP General Operation
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).
4. Policy (routing filter) bisa diterapkan untuk memilih best path dan/atau untuk memfilter prefix.
25
[Module 2]
How BGP Works?
26
Cara Kerja BGP
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
4. Notification
27
BGP Message Format
Marker (128 bits): untuk menentukan compatibility (authentication), biasanya di set valuenya ke 1 semua.
Length (16 bits): menunjukan panjang data message BGP (termasuk header message).
Types (8 bits): menunjukan message type BGP.
Message body: berisi BGP message.BGP Messages:
1. Open
2. Keepalive
3. Update
4. Notification
28
BGP Keepalive-time and Hold-time
Keepalive-time: interval pengiriman keepalive message.
Hold-time: batas waktu maksimal router tidak menerima keepalive dari neighbor.
Secara default router akan mendeteksi neighbor mati ketika tidak menerima keepalive selama 3 menit.
Ketika link down, BGP masih established selama 3 menit.
BFD (Bidirectional Forwarding Detection) digunakan untuk mempercepat proses deteksi kegagalan link
menuju neighbor.
Cara kerja dan konfigurasi BFD akan dibahas nanti pada Modul 5 - Advanced BGP Implementation
29
BGP Message Types: Open
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
● Hold-time (3 x keepalive interval).
30
BGP Message Types: Keepalive
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.
Keepalive message tidak membawa data apapun.
31
BGP Message Types: Update
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 (Network Layer Reachability Information) - daftar network yang reachable melalui path ini
<prefix, length>.
32
BGP Message Types: Notification
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
● Data related to error
33
BGP Neighbor State
34
BGP Neighbor State (1)
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.
35
BGP Neighbor State (2)
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, 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.
36
Troubleshoot BGP Peering
37
[Module 3]
Basic BGP Implementation
38
BGP Router ID
Sama seperti OSPF, BGP juga memerlukan router-id yang digunakan sebagai identitas suatu router.
Router ID dipilih berdasarkan:
1. Terkonfigurasi secara eksplisit.
routing bgp instance set 0 router-id=1.1.1.1
2. Dipilih berdasarkan IP interface terendah.
39
eBGP Neighbor Relationship
Ada beberapa syarat agar koneksi eBGP neighbor bisa terjalin, diantaranya:
2. Kedua router biasanya terhubung secara langsung / directly connected (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 untuk mencapai neighbor.
● Mengaktifkan BGP multihop (TTL BGP jika tidak dikonfig = 255, default = 64).
40
eBGP Peering
! Router AS 4000
/routing bgp instance set 0 as=4000
/routing bgp peer
add name=AS5000-v4 remote-address=53.206.89.2 remote-as=5000
add name=AS5000-v6 remote-address=2001:db8:c3:2 remote-as=5000 address-families=ipv6
! Router AS 5000
/routing bgp instance set 0 as=5000
/routing bgp peer
add name=AS4000-v4 remote-address=53.206.89.1 remote-as=4000
add name=AS4000-v6 remote-address=2001:db8:c3:1 remote-as=4000 address-families=ipv6
41
eBGP Routing Loop Prevention Mechanism
Router eBGP tidak akan menerima suatu route jika pada atribut AS_PATH route tersebut terdapat
ASN-nya sendiri.
42
iBGP Neighbor Relationship
Ada beberapa syarat agar koneksi iBGP neighbor bisa terjalin, diantaranya:
3. Tidak ada transit, semua router iBGP harus peering atau menggunakan route reflector.
43
iBGP Routing Loop Prevention Mechanism
Router iBGP tidak akan meng-advertise prefix yang bukan berasal dari dirinya sendiri.
Contoh:
R1 mengadvertise 1.1.1.0/24, R2 mengadvertise 2.2.2.0/24, R3 mengadvertise 3.3.3.0/24
Ketika R1 hanya peering dengan R2. Kemudian R3 hanya peering dengan R2.
Maka pada routing table R3 tidak ada prefix 1.1.1.1/32.
Demikian pula pada R1, tidak ada prefix 3.3.3.0/32
44
iBGP Full-Mesh
# R1 # R4
/routing bgp instance set default as=5000 /routing bgp instance set default as=5000
/routing bgp peer /routing bgp peer
add remote-address=11.0.0.2 remote-as=5000 add remote-address=11.0.0.1 remote-as=5000
add remote-address=11.0.0.3 remote-as=5000 add remote-address=11.0.0.2 remote-as=5000
add remote-address=11.0.0.4 remote-as=5000 add remote-address=11.0.0.3 remote-as=5000
# R2
/routing bgp instance set default as=5000
/routing bgp peer
add remote-address=11.0.0.1 remote-as=5000
add remote-address=11.0.0.3 remote-as=5000
add remote-address=11.0.0.4 remote-as=5000
# R3
/routing bgp instance set default as=5000
/routing bgp peer
add remote-address=11.0.0.1 remote-as=5000
add remote-address=11.0.0.2 remote-as=5000
add remote-address=11.0.0.4 remote-as=5000
45
iBGP Operations
● 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:
a. Confederations b. Route Reflector
46
Sourcing iBGP from Loopback
● Secara default, router menggunakan IP pada exit-interface sebagai source address untuk
berkomunikasi dengan neighbors.
● Jika di router neighbor menggunakan alamat loopback sebagai peer address, kita perlu
mengkonfigurasi update-source menggunakan interface loopback terkait.
# Konfigurasi di R1
/routing bgp peer add name=to-R4 remote-address=11.0.0.4 remote-as=5000 update-source=loopback0
# Konfigurasi di R4
/routing bgp peer add name=to-R1 remote-address=11.0.0.1 remote-as=5000 update-source=loopback0
47
Inserting Prefixes into BGP
R1
/routing bgp network add network=53.0.0.1/32
/routing bgp network add network=2001:db8:c3::/64
synchronize=yes (default)
prefix di-adverise jika ada active route
ke prefix tersebut.
synchronize=no
prefix selalu di-advertise
meskipun tidak ada active route.
48
Redistribute other Routing Protocol into BGP
R1
! Jika menggunakan OSPF
[admin@R1] > routing bgp instance set 0
redistribute-ospf=yes
redistribute-connected
redistribute-other-bgp
redistribute-static
redistribute-ospf
redistribute-rip
49
Redistribute Default Route
/routing bgp peer set <peer-name> default-originate=yes
Contoh:
R1 meng-advertise default route (0.0.0.0/0) ke R2.
maka konfigurasinya:
/routing bgp peer set to-R2 default-originate=yes
50
Aggregation
Agar network bisa di-advertise, harus ada routing ke network tersebut.
51
Routing Filter (1)
Routing filter digunakan untuk:
● mengizinkan/menolak prefix untuk masuk ke routing table (advertise dari neighbor)
atau untuk keluar dari routing table (untuk di-advertise ke neighbor).
● mengubah route attributes.
in-filter out-filter
Routing RIB Routing
Neighbor Neighbor
Protocol Routing Table Protocol
52
Routing Filter (2)
passthrough = setelah routing informasi dimanipulasi sesuai rule, route tersebut diteruskan ke rule
berikutnya dalam chain yang sama.
https://wiki.mikrotik.com/wiki/Manual:Routing/Routing_filters
53
Routing Filter (3)
54
Route Filter BGP
In-filter hanya bisa diterapkan per peer.
/routing bgp peer set <peer-name> in-filter=<filter-name>
55
Refresh BGP Session
BGP speaker tidak meng-advertise kembali prefix (route) yang sudah acknowledged oleh neighbor.
Refresh digunakan untuk meminta neighbor mengirim ulang prefix.
soft refresh = melakukan refresh BGP tanpa memulai ulang BGP session.
hard refresh = melakukan refresh BGP dengan menghapus kemudian memulai ulang BGP session.
soft refresh = refresh (mikrotik)
hard refresh = disable enable peer (mikrotik)
Dalam kondisi tertentu kita perlu hard refresh, misal ketika kita mengubah BGP keepalive dan hold-timer.
56
BGP Refresh: Kapan Kita Perlu Soft Reset?
Ketika router kita mengubah in-filter policy (dari discard to accept).
routing bgp peer refresh <peer>
routing bgp peer refresh-all
57
BGP Resend
Resend digunakan untuk mengadvertise lagi prefix yang sudah acknowledged.
routing bgp peer resend <peer>
routing bgp peer resend-all
58
BGP Hard Reset: Kapan Kita Perlu Hard Reset?
Ketika kita mengubah BGP keepalive dan hold-timer.
Di mikrotik cara melakukan hard reset adalah dengan men-disable lalu meng-enable rulenya.
59
Bogon IP Address
IP Bogon merupakan IP yang tidak seharus berada (routed) di jaringan publik (internet).
Biasanya, kita perlu memfilter IP ini pada in-filter dan out-filter BGP.
Sumber: https://ipinfo.io/bogon
60
[Module 4]
BGP Attributes
BGP Attributes
62
BGP Attributes
➢ 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_DISCRIMINATOR), ORIGINATOR_ID, CLUSTER_LIST,
Multi Protocol Extension (MP_reach_NLRI, MP_unreach_NLRI).
63
Mikrotik BGP Path Selection
1 Route validation NEXT_HOP reachable.
Pada AS_PATH yang diterima tidak ada ASN router tersebut
Tidak rejected oleh routing filter.
5 Originate Mengutamakan route yang berasal dari local router (network command, aggregation, redistribution.
6 Origin Code Mengutamakan nilai origin terendah. [ iBGP (i) < eBGP (e) < Incomplete (?) ]
7 eBGP over iBGP Mengutamakan eBGP paths (distance=20) daripada iBGP paths (distance=200).
10 BGP Router-ID Mengutamakan neighbor dengan ROUTER_ID terendah (jika ada ORIGINATOR_ID, maka
ORIGINATOR_ID yang digunakan, bukan ROUTER_ID)
12 Neighbor Address Mengutamakan neighbor dengan IP address (yang digunakan untu peering) terendah.
64
Weight
● Weight merupakan cisco proprietary attribute (tetapi diadopsi juga oleh mikrotik).
● Weight digunakan untuk menentukan upstream ke neighbor mana yang lebih diutamakan ketika ada
lebih dari satu route entry untuk prefix yang sama.
● Secara default, attribute weight bernilai 0.
● Weight hanya berlaku untuk router itu sendiri, tidak di-advertise.
● Weight yang lebih tinggi diprioritaskan.
● Nilai weight 0-65535.
300 200
preferred
65
Weight: Configuration Example (1)
Objective:
Pada R2, paket menuju 192.168.4.0/24 diprioritaskan melalui R3.
Before:
Pada R2, paket menuju 192.168.4.0/24 dilewatkan ke R1 karena BG router-id R1 lebih rendah..
66
Weight: Configuration Example (2)
Configuration on R2:
/routing filter
add chain=weight-in prefix=192.168.4.0/24 set-bgp-weight=10
67
Weight: Configuration Example (3)
After:
68
AS Path
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.
● Mekanisme AS Path juga bisa mencegah routing loop di eBGP.
● Router iBGP tidak bisa memanipulasi AS Path.
69
AS Path: Prepending
Prepending artinya menambahkan satu atau lebih AS di sebelah kiri AS Path.
Biasanya prepending menggunakan AS Path-nya sendiri untuk ditambahkan.
AS Path Prepending biasanya digunakan untuk mengatur downstream eBGP.
AS Path Prepending bisa mempengaruhi banyak AS.
70
AS Path Prepend: Configuration Example (1)
Objective:
AS 200 memiliki 2 downstream.
Downstream untuk prefix 192.168.2.0/24 ingin dialihkan ke AS 300.
Before:
Pengujian dilakukan dengan melihat routing table R4 (AS 400).
71
AS Path Prepend: Configuration Example (2)
Configuration on R2:
/routing filter
add chain=prepend-out prefix=192.168.2.0/24 set-bgp-prepend=2
/routing bgp peer
add name=to-R1 out-filter=prepend-out remote-address=12.12.12.1 remote-as=100
add name=to-R3 remote-address=23.23.23.3 remote-as=300
72
AS Path Prepend: Configuration Example (3)
After:
73
Next-Hop
● 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.
74
Next-hop: iBGP Next-hop Self
Dengan mengatur atribut next-hop self pada border router. Maka border router akan mengubah parameter
next-hop ketika mengadvertise ke sesama router iBGP.
75
Origin
Termasuk well-known mandatory attribute.
Origin digunakan untuk menginformasikan dari mana suatu route entry berasal.
● i (IGP) → route entry berasal dari protokol BGP (di-advertise menggunakan BGP).
● e (EGP) → route entry berasal dari protokol EGP (deprecated).
● ? (incomplete) → route entry berasal dari hasil redistribute protokol IGP.
76
Local Preference
● 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.
● Default Local Preference: 100
● LocPref hanya di-advertise ke iBGP neighbor.
77
Local Preference: Configuration Example
Configuration on R3:
/routing bgp peer
add in-filter=none name=to-R2 nexthop-choice=force-self out-filter=loc-pref-out
remote-address=23.23.23.2 remote-as=123
/routing filter
add chain=loc-pref-out prefix=192.168.4.0/24 set-bgp-local-pref=150
Verification on R2:
78
Atomic Aggregate (1)
● Termasuk well-known discretionary attribute.
● Atomic aggregate menandakan bahwa prefix yang
memiliki attribute ini adalah
hasil aggregation (summarization).
79
Atomic Aggregate (2)
Hasilnya, di IDN-R4.
80
Aggregator
● Termasuk optional transitive attribute.
● Aggregator menunjukan router mana yang melakukan aggregation (summarization).
● Mikrotik saat belum support.
Berikut contoh di perangkat Cisco, topologi sama seperti topologi atomic agregate.
R4# show ip bgp 103.14.0.0
81
Community
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 policy AS neighbor.
82
Well-known Community and Extended Community
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.
83
Community: internet
Ketika Router Customer (AS10) meng-advertise prefix
10.10.10.10/32 ke ISP1 dengan attribute community = internet.
84
Community: no-advertise
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.
85
Community: no-export
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.
86
Community: local-as
Community local-as hampir sama dengan no-export, tetapi local-as
digunakan dalam kasus BGP confederation.
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.
87
Default Community: Configuration
Konfigurasi R1:
/routing bgp peer add name=to-R2 out-filter=bgp-out remote-address=12.12.12.2 remote-as=230
/routing filter
add chain=bgp-out prefix=1.1.1.1 set-bgp-communities=no-export
add chain=bgp-out prefix=11.11.11.11 set-bgp-communities=no-advertise
add chain=bgp-out prefix=111.111.111.111 set-bgp-communities=local-as
88
Default Community: Verification
Verifikasi sebelum ada BGP Confederation (perhatikan R3):
89
Local-as Community in BGP Confederation
Gunakan BGP confederation pada AS 230.
R2:
/routing bgp instance set 0 as=20 confederation=230 confederation-peers=30
/routing bgp peer set to-R3 remote-as=30
R3:
/routing bgp instance set 0 as=30 confederation=230 confederation-peers=20
/routing bgp peer set to-R2 remote-as=20
90
Local-as Community: Verification
Verifikasi setelah ada confederation (perhatikan R3):
91
Community-ID: Example Case
AS 100 peering dengan AS 200.
AS 200 menerapkan policy:
● Jika suatu prefix hanya ingin diadvertise ke AS300, beri community-id 200:300
● Jika suatu prefix hanya ingin diadvertise ke AS400, beri community-id 200:400
● Jika suatu prefix ingin ditandai local preference 500, beri community-id 200:1500
92
Community-ID: Configuration
Konfigurasi R1:
/routing bgp peer add name=to-R2 out-filter=community-out remote-address=12.12.12.2 remote-as=200
/routing filter add chain=community-out prefix=192.168.1.0 prefix-length=24 set-bgp-communities=200:300
/routing filter add chain=community-out prefix=192.168.10.0 prefix-length=24 set-bgp-communities=200:400
Konfigurasi R2:
/routing filter add action=discard bgp-communities=200:400 chain=to-AS400
/routing filter add action=discard bgp-communities=200:300 chain=to-AS300
/routing bgp peer add name=to-R3 out-filter=to-AS300 remote-address=23.23.23.3 remote-as=300
/routing bgp peer add name=to-R4 out-filter=to-AS400 remote-address=24.24.24.4 remote-as=400
93
Community-ID: Verification
94
Multi Exit Discriminator (MED)
Termasuk optional non-transitive attribute.
Digunakan untuk mempengaruhi AS lain dalam memilih jalur menuju ke AS kita (downstream) ketika
menggunakan topologi multi link (dual homed atau dual mutihomed).
Default nilai MED (metric) adalah 0. Nilai MED terendah diprioritaskan.
Ketika nilai MED disetting oleh iBGP router, maka MED tidak di-advertise ke eBGP neighbor.
Ketika nilai MED disetting oleh border router, maka MED di-advertise ke eBGP neighbor.
95
MED (Metric): Configuration Example
/routing bgp peer
add name=to-R1 out-filter=med-out remote-address=12.12.12.1 remote-as=134
add name=to-R3 remote-address=23.23.23.3 remote-as=134
/routing filter
add action=accept chain=med-out prefix=192.168.2.0/24 set-bgp-med=100
96
Originator
● Termasuk optional non-transitive attribute.
● Attribute ini hanya ada pada iBGP route reflector.
● Originator menunjukan router mana yang pertama kali mengadvertise suatu prefix.
● Saat modul ini dibuat, mikrotik belum mendukung atribute ini
● Untuk mengecek originator suatu prefix, di cisco gunakan command: show ip bgp address
97
Cluster ID
● 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.
● Secara default, cluster-id nilainya sama dengan router-id.
● Prefix tidak akan diadvertise ke router dengan yang memiliki cluster-id yang sama.
98
Mikrotik BGP Path Selection
1 Route validation NEXT_HOP reachable.
Pada AS_PATH yang diterima tidak ada ASN router tersebut
Tidak rejected oleh routing filter.
5 Originate Mengutamakan route yang berasal dari local router (network command, aggregation, redistribution.
6 Origin Code Mengutamakan nilai origin terendah. [ iBGP (i) < eBGP (e) < Incomplete (?) ]
7 eBGP over iBGP Mengutamakan eBGP paths (distance=20) daripada iBGP paths (distance=200).
10 BGP Router-ID Mengutamakan neighbor dengan ROUTER_ID terendah (jika ada ORIGINATOR_ID, maka
ORIGINATOR_ID yang digunakan, bukan ROUTER_ID)
12 Neighbor Address Mengutamakan neighbor dengan IP address (yang digunakan untu peering) terendah.
99
[Module 5]
Advanced BGP
Implementation
Bidirectional Forwarding Detection (BFD)
BFD digunakan untuk mempercepat pendeteksian link yang down. BFD dikonfigurasi di setiap router.
Router mengirimkan control message (UDP/3784) setiap 200 milidetik.
Ketika neighbor tidak mengirim control message selama 1 detik, neighbor akan dianggap mati.
Lalu, router akan mengirimkan BGP notification, sehingga koneksi BGP tidak lagi established.
101
BFD Configuration
R1
/routing bgp peer
add name=to-R2 remote-address=12.12.12.2 remote-as=100 use-bfd=yes
R2
/routing bgp peer
add name=to-R1 remote-address=12.12.12.1 remote-as=100 use-bfd=yes
Coba uji dengan cara mendisable interface di salah satu router. Pastikan BGP langsung idle.
102
Stub AS (Non-Transit)
Ketika AS kita (AS300) tidak bertindak sebagai ISP atau NAP, kita perlu mengkonfigurasi agar AS 300
tidak dijadikan transit oleh AS lain.
Caranya: menerapkan out-filter untuk memastikan hanya alamat IP AS 300 yang di-advertise ke ISP-A dan
IPS-B.
103
Dual homed Load Balancing ECMP
Konfigurasi R1
/ip route add distance=1 dst-address=2.2.2.2/32 gateway=192.168.1.2,192.168.2.2
/routing bgp peer add multihop=yes name=to-R2 remote-address=2.2.2.2 remote-as=200 update-source=loopback1
Konfigurasi R2
/ip route add distance=1 dst-address=1.1.1.1/32 gateway=192.168.1.1,192.168.2.1
/routing bgp peer add multihop=yes name=to-R1 remote-address=1.1.1.1 remote-as=100 update-source=loopback1
104
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.html
● https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/28784-bgp-community.html
● https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/112965-bgpmed-attr-00.html
● https://wiki.mikrotik.com/wiki/Manual:Routing/BGP
105