You are on page 1of 105

1

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

Pembahasan dalam bentuk video: (belum tersedia)

Syarat mempelajari modul ini, kamu harus sudah paham MTCRE:


1. Mikrotik Fundamental
2. Konsep dan Cara Kerja Dynamic Routing Protocol.
3. Routing FIlter.

Last Update: 10/04/2021

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

2. Module 2: Cara Kerja BGP


a. BGP Message
b. BGP Neighbor State

3. Module 3: Implementasi Dasar BGP


a. BGP Operations
b. Advertise and Redistribute
c. Route Filtering
d. Bogon IP

4. Module 4: BGP Attributes

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.

Range Private AS 2 bytes: 64512 - 65534


Range Private AS 4 bytes: 4200000000 – 4294967294

AS 0, AS 65535, AS 4294967295 reserved.

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

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. 13
Path-Vector Routing Protocol (1)
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.

6. AS Path juga digunakan untuk menentukan jalur routing terbaik.

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:

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

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.

Kapan kita Tidak Perlu Menggunakan BGP?


1. End client masih menggunakan single upstream atau beberapa upstream tetapi tidak memerlukan
manipulasi traffic.
2. Adanya keterbatasan sumber daya (baik dari sisi perangkat dan SDM).

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.

2. Kita ingin traffic upload menggunakan ISP A dan traffic download


menggunakan ISP B.

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.

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.

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).

3. Jalur terbaik juga dikirim ke external BGP neighbors.

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.

Default keepalive-time = 1 menit.


Default hold-time = 3 menit.

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

idle = routing ke neighbor belum ada.

active = TCP session gagal


disebabkan router pasangan monolak koneksi TCP.
Contoh: belum dikonfigurasi BGP, salah IP peering, salah TTL, firewall.

opensent = BGP session belum terjalin


disebabkan salah konfigurasi BGP peering.
Contoh: salah ASN, update source, authentication.

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:

1. eBGP session established jika router berada di AS yang berbeda.

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).

/routing bgp instance


set default as=4000

/routing bgp peer


add name=peer-5000 remote-address=53.206.89.2 remote-as=5000

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:

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.

/routing bgp instance set default as=5000


/routing bgp peer
add name=peer-5000 remote-address=11.0.0.2 remote-as=5000

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.

/routing bgp aggregate add instance=default prefix=103.40.0.0/22

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: memfilter route sebelum masuk ke RIB


out-filter: memfilter route yang keluar dari RIB

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.

accept = route information diterima.

discard = informasi routing ditolak dan dibuang.


Pada incoming filters: informasi routing akan hilang atau dihapus.
Pada outgoing filters: informasi routing tidak di-advertise ke neighbor.

reject = informasi routing ditolak tetapi disimpan di memori.


Pada incoming filters: informasi routing tetap tersimpan di routing table tetapi tidak aktif.
Pada outgoing filters: informasi routing tidak di-advertise ke neighbor.

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>

Out-filter bisa diterapkan per peer dan per instance.


/routing bgp instance set <instance-name> out-filter=<filter-name>
/routing bgp peer set <peer-name> out-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.

Mikrotik otomatis me-re-advertise prefix ketika out-filter berubah.


bgp resend: untuk mengirim ulang prefix secara manual.

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.

routing bgp peer disable to-R1


routing bgp peer enable to-R1

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.

a. Private Address: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16


b. Loopback: 127.0.0.0/8
c. Link-local: 169.254.0.0/16
d. Multicast: 224.0.0.0/4
e. Experimental: 240.0.0.0/4
f. IETF Assignment: 192.0.0.0/24
g. TEST-NET: 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24

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.

2 Weight Mengutamakan nilai weight tertinggi. (default=0)

3 Local Preference Mengutamakan nilai local preference tertinggi. (default=100)

4 AS Path Length Mengutamakan AS Path terpendek.

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 (?) ]

6 MED (metric) Mengutamakan nilai MED (metric) terendah. (default=0)

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)

11 Cluster List Mengutamakan route reflection cluster list terpendek.(default=0)

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

/routing bgp peer


add in-filter=weight-in name=to-R3 remote-address=23.23.23.3 remote-as=300

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.

/routing bgp peer


add name=to-R2 nexthop-choice=force-self remote-address=40.0.0.2 remote-as=40

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.

0 ADb dst-address=8.8.8.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="20,30" bgp-origin=incomplete received-from=to-R2
1 ADb dst-address=100.0.0.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="20,30" bgp-origin=igp received-from=to-R2

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).

Konfigurasi di Router R2:


/routing bgp aggregate add instance=default prefix=103.14.0.0/23

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

BGP routing table entry for 103.14.0.0/23, version 9


Paths: (1 available, best #1, advertised to EBGP peer)
{200,100}, (aggregated by 300 24.24.24.2)
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

24.24.24.2 adalah IP R2.

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.

Value community berukuran 4-bytes


2-bytes pertama mengindikasikan AS Number yang memberikan policy.
2-bytes terakhir mengindikasikan community identifier.
Contoh → 20:1000
Artinya prefix tersebut ditandai dengan community_id = 1000 untuk AS number = 20.

community_id 65535:0 - 65535:65535 reserved

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.

Extended community digunakan untuk AS berukuran 4 bytes.


Selain itu, EXTENDED COMMUNITY biasanya ditemukan di MPLS VPN.

83
Community: internet
Ketika Router Customer (AS10) meng-advertise prefix
10.10.10.10/32 ke ISP1 dengan attribute community = internet.

Maka, router ISP1 (AS1) akan meng-advertise ke semua


neighbornya, baik internal maupun eksternal BGP neighbor.

Image source: https://networklessons.com/bgp/bgp-communities-explained

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.

Image source: https://networklessons.com/bgp/bgp-community-no-advertise

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.

Image source: https://networklessons.com/bgp/bgp-community-no-export

86
Community: local-as
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.

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.

2 Weight Mengutamakan nilai weight tertinggi. (default=0)

3 Local Preference Mengutamakan nilai local preference tertinggi. (default=100)

4 AS Path Length Mengutamakan AS Path terpendek.

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 (?) ]

6 MED (metric) Mengutamakan nilai MED (metric) terendah. (default=0)

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)

11 Cluster List Mengutamakan route reflection cluster list terpendek.(default=0)

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.

/routing bgp instance


set default as=300 out-filter=bgp-out
/routing filter
add action=accept chain=bgp-out prefix=103.14.2.0/24 prefix-length=24
add action=discard chain=bgp-out

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

You might also like