Ini adalah modul gratis, ayo berkontribusi!

105
1

Transcript of Ini adalah modul gratis, ayo berkontribusi!

Page 1: Ini adalah modul gratis, ayo berkontribusi!

1

Page 2: Ini adalah modul gratis, ayo berkontribusi!

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.

● 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 Fundamental2. Konsep dan Cara Kerja Dynamic Routing Protocol.3. Routing FIlter.

Last Update: 10/04/2021

Page 3: Ini adalah modul gratis, ayo berkontribusi!

Contributor

3

Nama Kontak

Rizqi Aldi Prayugo [email protected] 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.

Page 4: Ini adalah modul gratis, ayo berkontribusi!

Lab Setup

4

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/

Page 5: Ini adalah modul gratis, ayo berkontribusi!

MikroTik Certification (2021)

5

Page 6: Ini adalah modul gratis, ayo berkontribusi!

Apa yang akan dipelajari?

6

1. Module 1: BGP Overviewa. Apa itu BGPb. Kapan menggunakan BGPc. Topologi BGPd. iBGP dan iBGP

2. Module 2: Cara Kerja BGPa. BGP Messageb. BGP Neighbor State

3. Module 3: Implementasi Dasar BGPa. BGP Operationsb. Advertise and Redistributec. Route Filteringd. Bogon IP

4. Module 4: BGP Attributes

5. Module 5: Implementasi BGP Lanjutana. BFDb. Stub-AS (Non-Transit)c. Dual homed Load Balancing ECMP

Page 7: Ini adalah modul gratis, ayo berkontribusi!

[Module 1]

BGP Overview

7

Page 8: Ini adalah modul gratis, ayo berkontribusi!

Centralized vs Distributed

8

Centralized Distributed

Page 9: Ini adalah modul gratis, ayo berkontribusi!

Internet is Distributed Network

9

Page 10: Ini adalah modul gratis, ayo berkontribusi!

Apa itu BGP?

10

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.

Page 11: Ini adalah modul gratis, ayo berkontribusi!

Autonomous System (AS)

11

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.5354-bytes AS number range: 65.536 - 4.294.967.295

Page 12: Ini adalah modul gratis, ayo berkontribusi!

ASN Reservation

12

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 - 65534Range Private AS 4 bytes: 4200000000 – 4294967294

AS 0, AS 65535, AS 4294967295 reserved.

https://www.iana.org/assignments/as-numbers/as-numbers.xhtml

Page 13: Ini adalah modul gratis, ayo berkontribusi!

Penulisan 4-bytes ASN

13

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 / 65536remainder (low order bit value) = asplain - (integer * 65536)Asdot value = integer.remainder

Contoh: AS 61555 AS 84333244integer = 61555 / 65536 = 0 84333244 / 65536 = 1286remainder = 61555 - (0 * 65356) = 61555 84333244 - (1286*65536) = 53948Asdot = 61555 Asdot = 1286.53948Asdot+ = 1.199 Asdot = 1286.53948

4.

Page 14: Ini adalah modul gratis, ayo berkontribusi!

Path-Vector Routing Protocol (1)

14

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.

Page 15: Ini adalah modul gratis, ayo berkontribusi!

Path-Vector Routing Protocol (2)

15

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.

Page 16: Ini adalah modul gratis, ayo berkontribusi!

Peering dan Transit

16

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

Page 17: Ini adalah modul gratis, ayo berkontribusi!

Kapan Kita Perlu Menggunakan BGP?

17

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

Page 18: Ini adalah modul gratis, ayo berkontribusi!

Apa itu Manipulasi Traffic?

18

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.

Page 19: Ini adalah modul gratis, ayo berkontribusi!

BGP Advertisements

19

1. Default RouteMeng-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 UpdatesMeng-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 TableMeng-advertise prefix.Contoh: ISP meng-advertise semua prefix yang dimiliki ke Enterprise.Sehingga Enterprise bisa tahu path yang dilalui untuk menuju prefix tertentu.

Page 20: Ini adalah modul gratis, ayo berkontribusi!

BGP Topology: Single Home

20

● Customer menggunakan 1 ISP (Home)● Customer menggunakan 1 Link (Single)

Page 21: Ini adalah modul gratis, ayo berkontribusi!

BGP Topology: Dual Homed

21

● Customer menggunakan 1 ISP (Homed)● Customer menggunakan 2 Link per ISP (Dual)

Page 22: Ini adalah modul gratis, ayo berkontribusi!

BGP Topology: Single Multihomed

22

● Customer menggunakan lebih dari 1 ISP (Multihomed)● Customer menggunakan 1 Link (Single)

Page 23: Ini adalah modul gratis, ayo berkontribusi!

BGP Topology: Dual Multihomed

23

● Customer menggunakan lebih dari 1 ISP (Multihomed)● Customer menggunakan beberapa Link per ISP (Dual)

Page 24: Ini adalah modul gratis, ayo berkontribusi!

Internal dan External BGP

24

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.

Page 25: Ini adalah modul gratis, ayo berkontribusi!

BGP General Operation

25

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.

Page 26: Ini adalah modul gratis, ayo berkontribusi!

[Module 2]

How BGP Works?

26

Page 27: Ini adalah modul gratis, ayo berkontribusi!

Cara Kerja BGP

27

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. Open2. Keepalive3. Update4. Notification

Page 28: Ini adalah modul gratis, ayo berkontribusi!

BGP Message Format

28

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. Open2. Keepalive3. Update4. Notification

Page 29: Ini adalah modul gratis, ayo berkontribusi!

BGP Keepalive-time and Hold-time

29

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

Page 30: Ini adalah modul gratis, ayo berkontribusi!

BGP Message Types: Open

30

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

Page 31: Ini adalah modul gratis, ayo berkontribusi!

BGP Message Types: Keepalive

31

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.

Page 32: Ini adalah modul gratis, ayo berkontribusi!

BGP Message Types: Update

32

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

Page 33: Ini adalah modul gratis, ayo berkontribusi!

BGP Message Types: Notification

33

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

Page 34: Ini adalah modul gratis, ayo berkontribusi!

BGP Neighbor State

34

Page 35: Ini adalah modul gratis, ayo berkontribusi!

BGP Neighbor State (1)

35

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.

Page 36: Ini adalah modul gratis, ayo berkontribusi!

BGP Neighbor State (2)

36

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.

Page 37: Ini adalah modul gratis, ayo berkontribusi!

Troubleshoot BGP Peering

37

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 terjalindisebabkan salah konfigurasi BGP peering.Contoh: salah ASN, update source, authentication.

Page 38: Ini adalah modul gratis, ayo berkontribusi!

[Module 3]

Basic BGP Implementation

38

Page 39: Ini adalah modul gratis, ayo berkontribusi!

BGP Router ID

39

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.

Page 40: Ini adalah modul gratis, ayo berkontribusi!

eBGP Neighbor Relationship

40

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 instanceset default as=4000

/routing bgp peeradd name=peer-5000 remote-address=53.206.89.2 remote-as=5000

Page 41: Ini adalah modul gratis, ayo berkontribusi!

eBGP Peering

41

! Router AS 4000/routing bgp instance set 0 as=4000/routing bgp peeradd name=AS5000-v4 remote-address=53.206.89.2 remote-as=5000add 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 peeradd name=AS4000-v4 remote-address=53.206.89.1 remote-as=4000add name=AS4000-v6 remote-address=2001:db8:c3:1 remote-as=4000 address-families=ipv6

Page 42: Ini adalah modul gratis, ayo berkontribusi!

eBGP Routing Loop Prevention Mechanism

42

Router eBGP tidak akan menerima suatu route jika pada atribut AS_PATH route tersebut terdapat ASN-nya sendiri.

Page 43: Ini adalah modul gratis, ayo berkontribusi!

iBGP Neighbor Relationship

43

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 peeradd name=peer-5000 remote-address=11.0.0.2 remote-as=5000

Page 44: Ini adalah modul gratis, ayo berkontribusi!

iBGP Routing Loop Prevention Mechanism

44

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/24Ketika 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

Page 45: Ini adalah modul gratis, ayo berkontribusi!

iBGP Full-Mesh

45

# R1/routing bgp instance set default as=5000/routing bgp peeradd remote-address=11.0.0.2 remote-as=5000add remote-address=11.0.0.3 remote-as=5000add remote-address=11.0.0.4 remote-as=5000

# R2/routing bgp instance set default as=5000/routing bgp peeradd remote-address=11.0.0.1 remote-as=5000add remote-address=11.0.0.3 remote-as=5000add remote-address=11.0.0.4 remote-as=5000

# R3/routing bgp instance set default as=5000/routing bgp peeradd remote-address=11.0.0.1 remote-as=5000add remote-address=11.0.0.2 remote-as=5000add remote-address=11.0.0.4 remote-as=5000

# R4/routing bgp instance set default as=5000/routing bgp peeradd remote-address=11.0.0.1 remote-as=5000add remote-address=11.0.0.2 remote-as=5000add remote-address=11.0.0.3 remote-as=5000

Page 46: Ini adalah modul gratis, ayo berkontribusi!

iBGP Operations

46

● 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

Page 47: Ini adalah modul gratis, ayo berkontribusi!

Sourcing iBGP from Loopback

47

● 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

Page 48: Ini adalah modul gratis, ayo berkontribusi!

Inserting Prefixes into BGP

48

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 routeke prefix tersebut.

synchronize=noprefix selalu di-advertise meskipun tidak ada active route.

Page 49: Ini adalah modul gratis, ayo berkontribusi!

Redistribute other Routing Protocol into BGP

49

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

Page 50: Ini adalah modul gratis, ayo berkontribusi!

Redistribute Default Route

50

/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

Page 51: Ini adalah modul gratis, ayo berkontribusi!

Aggregation

51

Agar network bisa di-advertise, harus ada routing ke network tersebut. /routing bgp aggregate add instance=default prefix=103.40.0.0/22

Page 52: Ini adalah modul gratis, ayo berkontribusi!

Routing Filter (1)

52

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 RIBout-filter: memfilter route yang keluar dari RIB

RIB Routing Table

Routing Protocol

Routing Protocol NeighborNeighbor

out-filterin-filter

Page 53: Ini adalah modul gratis, ayo berkontribusi!

Routing Filter (2)

53

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

Page 54: Ini adalah modul gratis, ayo berkontribusi!

Routing Filter (3)

54

Page 55: Ini adalah modul gratis, ayo berkontribusi!

Route Filter BGP

55

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>

Page 56: Ini adalah modul gratis, ayo berkontribusi!

Refresh BGP Session

56

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.

Page 57: Ini adalah modul gratis, ayo berkontribusi!

BGP Refresh: Kapan Kita Perlu Soft Reset?

57

Ketika router kita mengubah in-filter policy (dari discard to accept).routing bgp peer refresh <peer>routing bgp peer refresh-all

Page 58: Ini adalah modul gratis, ayo berkontribusi!

BGP Resend

58

Resend digunakan untuk mengadvertise lagi prefix yang sudah acknowledged.routing bgp peer resend <peer>routing bgp peer resend-all

Page 59: Ini adalah modul gratis, ayo berkontribusi!

BGP Hard Reset: Kapan Kita Perlu Hard Reset?

59

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-R1routing bgp peer enable to-R1

Page 60: Ini adalah modul gratis, ayo berkontribusi!

Bogon IP Address

60

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

Sumber: https://ipinfo.io/bogon

Page 61: Ini adalah modul gratis, ayo berkontribusi!

[Module 4]

BGP Attributes

Page 62: Ini adalah modul gratis, ayo berkontribusi!

BGP Attributes

62

Page 63: Ini adalah modul gratis, ayo berkontribusi!

BGP Attributes

63

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

Page 64: Ini adalah modul gratis, ayo berkontribusi!

Mikrotik BGP Path Selection

64

1 Route validation NEXT_HOP reachable.Pada AS_PATH yang diterima tidak ada ASN router tersebutTidak 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.

Page 65: Ini adalah modul gratis, ayo berkontribusi!

Weight

65

● 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 200preferred

Page 66: Ini adalah modul gratis, ayo berkontribusi!

Weight: Configuration Example (1)

66

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

Page 67: Ini adalah modul gratis, ayo berkontribusi!

Weight: Configuration Example (2)

67

Configuration on R2:/routing filteradd 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

Page 68: Ini adalah modul gratis, ayo berkontribusi!

Weight: Configuration Example (3)

68

After:

Page 69: Ini adalah modul gratis, ayo berkontribusi!

AS Path

69

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.

Page 70: Ini adalah modul gratis, ayo berkontribusi!

AS Path: Prepending

70

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.

Page 71: Ini adalah modul gratis, ayo berkontribusi!

AS Path Prepend: Configuration Example (1)

71

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

Page 72: Ini adalah modul gratis, ayo berkontribusi!

AS Path Prepend: Configuration Example (2)

72

Configuration on R2:

/routing filteradd chain=prepend-out prefix=192.168.2.0/24 set-bgp-prepend=2/routing bgp peeradd name=to-R1 out-filter=prepend-out remote-address=12.12.12.1 remote-as=100add name=to-R3 remote-address=23.23.23.3 remote-as=300

Page 73: Ini adalah modul gratis, ayo berkontribusi!

AS Path Prepend: Configuration Example (3)

73

After:

Page 74: Ini adalah modul gratis, ayo berkontribusi!

Next-Hop

74

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

Page 75: Ini adalah modul gratis, ayo berkontribusi!

Next-hop: iBGP Next-hop Self

75

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 peeradd name=to-R2 nexthop-choice=force-self remote-address=40.0.0.2 remote-as=40

Page 76: Ini adalah modul gratis, ayo berkontribusi!

Origin

76

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

Page 77: Ini adalah modul gratis, ayo berkontribusi!

Local Preference

77

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

Page 78: Ini adalah modul gratis, ayo berkontribusi!

Local Preference: Configuration Example

78

Configuration on R3:/routing bgp peeradd 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 filteradd chain=loc-pref-out prefix=192.168.4.0/24 set-bgp-local-pref=150

Verification on R2:

Page 79: Ini adalah modul gratis, ayo berkontribusi!

Atomic Aggregate (1)

79

● Termasuk well-known discretionary attribute.● Atomic aggregate menandakan bahwa prefix yang

memiliki attribute ini adalahhasil aggregation (summarization).

Konfigurasi di Router R2:/routing bgp aggregate add instance=default prefix=103.14.0.0/23

Page 80: Ini adalah modul gratis, ayo berkontribusi!

Atomic Aggregate (2)

80

Hasilnya, di IDN-R4.

Page 81: Ini adalah modul gratis, ayo berkontribusi!

Aggregator

81

● 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 9Paths: (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.

Page 82: Ini adalah modul gratis, ayo berkontribusi!

Community

82

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-bytes2-bytes pertama mengindikasikan AS Number yang memberikan policy.2-bytes terakhir mengindikasikan community identifier.Contoh → 20:1000Artinya prefix tersebut ditandai dengan community_id = 1000 untuk AS number = 20.

community_id 65535:0 - 65535:65535 reserved

Page 83: Ini adalah modul gratis, ayo berkontribusi!

Well-known Community and Extended Community

83

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.

Page 84: Ini adalah modul gratis, ayo berkontribusi!

Community: internet

84

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

Page 85: Ini adalah modul gratis, ayo berkontribusi!

Community: no-advertise

85

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

Page 86: Ini adalah modul gratis, ayo berkontribusi!

Community: no-export

86

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

Page 87: Ini adalah modul gratis, ayo berkontribusi!

Community: local-as

87

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.

Image source: https://networklessons.com/bgp/bgp-community-local-as

Page 88: Ini adalah modul gratis, ayo berkontribusi!

Default Community: Configuration

88

Konfigurasi R1:/routing bgp peer add name=to-R2 out-filter=bgp-out remote-address=12.12.12.2 remote-as=230/routing filteradd chain=bgp-out prefix=1.1.1.1 set-bgp-communities=no-exportadd chain=bgp-out prefix=11.11.11.11 set-bgp-communities=no-advertiseadd chain=bgp-out prefix=111.111.111.111 set-bgp-communities=local-as

Page 89: Ini adalah modul gratis, ayo berkontribusi!

Default Community: Verification

89

Verifikasi sebelum ada BGP Confederation (perhatikan R3):

Page 90: Ini adalah modul gratis, ayo berkontribusi!

Local-as Community in BGP Confederation

90

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

Page 91: Ini adalah modul gratis, ayo berkontribusi!

Local-as Community: Verification

91

Verifikasi setelah ada confederation (perhatikan R3):

Page 92: Ini adalah modul gratis, ayo berkontribusi!

Community-ID: Example Case

92

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

Page 93: Ini adalah modul gratis, ayo berkontribusi!

Community-ID: Configuration

93

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

Page 94: Ini adalah modul gratis, ayo berkontribusi!

Community-ID: Verification

94

Page 95: Ini adalah modul gratis, ayo berkontribusi!

Multi Exit Discriminator (MED)

95

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.

Page 96: Ini adalah modul gratis, ayo berkontribusi!

MED (Metric): Configuration Example

96

/routing bgp peeradd name=to-R1 out-filter=med-out remote-address=12.12.12.1 remote-as=134add name=to-R3 remote-address=23.23.23.3 remote-as=134/routing filteradd action=accept chain=med-out prefix=192.168.2.0/24 set-bgp-med=100

Page 97: Ini adalah modul gratis, ayo berkontribusi!

Originator

97

● 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

Page 98: Ini adalah modul gratis, ayo berkontribusi!

Cluster ID

98

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

Page 99: Ini adalah modul gratis, ayo berkontribusi!

Mikrotik BGP Path Selection

99

1 Route validation NEXT_HOP reachable.Pada AS_PATH yang diterima tidak ada ASN router tersebutTidak 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.

Page 100: Ini adalah modul gratis, ayo berkontribusi!

[Module 5]

Advanced BGP Implementation

Page 101: Ini adalah modul gratis, ayo berkontribusi!

Bidirectional Forwarding Detection (BFD)

101

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.

Page 102: Ini adalah modul gratis, ayo berkontribusi!

BFD Configuration

102

R1/routing bgp peeradd name=to-R2 remote-address=12.12.12.2 remote-as=100 use-bfd=yes

R2/routing bgp peeradd 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.

Page 103: Ini adalah modul gratis, ayo berkontribusi!

Stub AS (Non-Transit)

103

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 instanceset default as=300 out-filter=bgp-out/routing filteradd action=accept chain=bgp-out prefix=103.14.2.0/24 prefix-length=24add action=discard chain=bgp-out

Page 104: Ini adalah modul gratis, ayo berkontribusi!

Dual homed Load Balancing ECMP

104

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

Page 105: Ini adalah modul gratis, ayo berkontribusi!

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