BGP Basic — Kupas Tuntas Routing Dynamic BGP
IDNIC Training
Korelasi BGP pada Internet
BGP itu jaringan komunikasi berskala global yang tersusun dari banyak Autonomous System.
Autonomous System (AS)
itu satu beberapa network yang berada di bawah satu “Technical Admin”, bisa perusahaan atau provider
Technial Admin
Semua aspek dari pengelolaan network seperti routing, policies, register, dkk
BGP routing
Protocol routing yang menghubungkan antar AS dalam jaringan internet/global
BGP Membentuk Infrastruktur Internet
Infrastruktur internet terbentuk dari kumpulan interkoneksi antar AS. Fungsi AS digunakan sebagai no ID untuk mewakili semua aspek dari pengadaan network. Contoh 133827 (UII), 7713 (TELIN).
Jika ingin punya AS sendiri, maka perlu daftar ke RIR/IDNIC dan berlangganan service IP Transit ke ISP/NAP untuk konfigursi BGP.
Catatan: setiap AS terdaftar di NIR dan RIR
BGP Overview
BGP
salah satu routing protocol EGP terstandarisasi dan didesain untuk pertukaran informasi prefix, routing, dan reachablility antar AS dalam jaringan internet.
BGP sebagai satu-satunya InterAS routing protocol, digunakan untuk saling bertukar informasi routing antar AS, dan memberikan infomrasi mengenai AS path topology.
Why We Need BGP?
- Internet ngga dapat di “build” dengan IGP (RIP, OSPF, EIGRP)
- Router yang terhubung dalam jaringan global tidak dimiliki pihak yang sama
- Besarnya prefix yang harus di handle (>900.000 IPv4 dan > 128.000 IPv6)
Kapan Kita Pakai BGP?
Topologi 1
ada redundansi link dan router
Butuh apa aja sih dalam BGP?
- Backup router yang terhubung ke ISP
- Butuh Traffic balancing/Load balancing
- Butuh Traffic sharing/Load sharing (80/20)
Topologi ini berarti membutuhkan BGP
Topologi 2
ada redundansi ISP (1 dan 2) dan router client side
Masalah:
- IP Publik mana yang akan dipakai?
- Akses internet client jika salah satu ISP down?
- Akses IP publik server jika salah satu ISP down?
Solusi:
- Kita perlu IP public
- Kita perlu AS number
Maka perlu routing BGP
Why we use BGP?
- Saat AS berperan sebagai transit AS (ISP/NAP)
- Kebutuhan IP publik yang terasosiasi dengan institusi kita
- AS terkoneksi ke beberapa AS lain sebagai upstream (multihoming) dan perlu manipulasi traffic inbound dan outbound
Why we not use BGP?
- End client masih menggunakan single-home AS
- Adanya keterbatasan resource pada router (CPU, Memory, Power, dll)
- Ngga ada SDM network yang paham BGP route filtering dan path selection process
BGP Routing feature
BGP bekerja dengan memetakan tabel prefix (IP network) yang menuju ke jaringan yang dapat dicapat dari neighbor AS (dest AS)
- Open Standart Routing Protocol
- Didesain sebagai inter AS domain routing dan huge inter-network seperti internet
- Berjalan menggunakan port TCP 179
- Metric=atribute
- Melakukan update tabel prefix secara incremental dan trigger
- Menggunakan pemilihan path berdasarkan routing polocies/organization’s business requirement
- Support FLSM, VLSM, CIDR concepts
- Path vector routing protocols
AS System
AS adalah kelompok yang berada dalam satu kontrol adminstratif atau domain yang melakukan advertise routing policy ke internet.
AS diperlukan jika network kita ingin terkoneksi ke lebih dari satu network lain yang berbeda technical adm dan berbeda rotuing polocies.
Secara umum anggota AS adalah ISP/provider/instansi yang mempunyai koneksi independen ke multiple network.
Mirip IP public, AS bisa didapat jika register ke NIR (IDNIC)
AS Number
Dulu ada 16 bit, sekarang udah menjadi 32 bit
Ada 2 tipe AS Number:
- Public
- Private
Kalian bisa cek disini
Path Vector Routing Protocol
Algoritma routing yang digunakan untuk terkoneksi dengan network pada AS lain dengan cara mendefinisika jalur routing dari AS yang dilewati mulai dari source AS sampai dest AS
BGP Routing Method Selection
Proses pertukaran informasi prefix antar AS dalam BGP.
Contoh: customer punya AS1 dan memiliki IP publik. Customer terkoneksi dengan dua ISP AS number (2 dan 3). Customer bisa terhubung ke internet dengan dua ISP tersebut.
- Customer menggunakan BGP untuk advertise ip publiknya ke ISP 1 dan 2
- Bagaimana kita menerima prefix yang di advertise?
Default Route
Customer hanya menerima 1 prefix default route (0.0.0.0/0) dan mengadvertise IP publiknya ke masing-masing ISP
Kelebihan: Resource consumption router customer rendah.
Kekurangan: Customer ngga tahu best path dari masing-masing ISP, sehingga mungkin terjadi non-optimal routing.
Partial Routing
Customer menerima prefix default route dan beberapa specific prefix route.
Kelebihan: Customer bisa menentuka jalur routing decision berdasarkan specific routing tersebut, Mengurangi potensi non-optimal routing, Resource consumption terjaga stabil
Kekurangan: Pemilihan jalur best-path terbatas,
Complete/Full Routing
Customer menerima seluruh prefix ISP 1 dan 2. Customer juga mengadvertise IP publik ke masing-masing ISP.
Kelebihan: Customer bisa menentukan jalur routing decisions terbaik yang berdasarkan table routing tersebut.
Kekurangan: Router customer akan menggunakan resource yang sangat tinggi untuk menangani prefix yang di advertise ISP (biasanya router powerfull yang dipakai perusahaan)
BGP Connection Topologies
Single Homed
Keterangan:
- Customer menggunakan 1 ISP (Single)
- Customer menggunakan 1 link (Homed)
Customer terkoneksi dengan satu ISP dan single link
Dual Homed
Keterangan:
- Customer menggunakan 1 ISP
- Customer menggunakan dual link, single router (topo 1)
- Customer menggunakan dual link, single router, ISP dual router (topo 2)
- Customer menggunakan dual link, dual router, ISP dual router (topo 3)
Customer terkoneksi dengan satu ISP dan dua/lebih link
Single Multihomed
Keterangan:
- Customer menggunakan 2 ISP
- Customer menggunakan single router dan single link ke dua ISP (topo 1)
- Customer menggunakan dual router dan single link ke dua ISP (topo 2)
Customer terkoneksi dengan dua/lebih ISP dan single link
Dual Multihomed
Keterangan:
- Customer menggunakan 2 ISP
- Customer menggunakan single router dan dual link pada masing-masing ISP (topo 1)
- Customer menggunakan dual router, dual link pada masing-masing ISP (topo 2)
- Customer menggunakan dual router, dual link pada masing-masing ISP dengan mode cross-link (topo 3)
Customer terkoneksi dengan dua/lebih ISP dan dual/lebih link
Routing BGP
- BGP menggunakan AS untuk menghubungkan antar AS lain
- BGP didesain untuk menyediakan interdomain routing sys
- BGP memberikan garansi loop-free dalam proses pertukana routing info
- BGP secara mendasar memiliki perbedaan mendasar dengan routing IGP (BGP merupakan policy based routing protocol, melakukan pengaturan traffic menggunakan path attribute)
BGP Config
Cisco IOS
- Cek IP Address setiap interface
- Aktifkan BGP
syntax
router bgp [AS number nya]contoh
router bgp 100
- BGP router ID
syntax
bgp router-id [router-id]contoh
bgp router-id 20.20.20.1// router-d bukan ip addr, mirip ospf router-id
// tapi router-id boleh mirip dengan ip addr
- Pembentukan neighbor peer (router tetangga)
syntax
neighbor [ip addr] remote-as [AS number nya si router tetangga]contoh
neighbor 20.20.20.2 remote-as 200
- Mengarahkan source dari loopback (optional)
syntax
neighbor [ip addr] update-source [ip loopback]
- Verifikasi
show run | s bgp
show ip bgp summary
Advertise Network
Masuk terlbeih dahulu ke # router bgp [number]
- Metode network advertise
syntax
network [ip prefix] mask [subnetmask]contoh
network 20.20.20.0 mask 255.255.255.0
- Metode redistribute (kalau sudah punya IGP routing seperti OSPF, RIP, IS-IS, EIGRP)
router ospf 10
network 1.1.1.1redistribute [IGP routing]
redistribute ospf 10
- Verifikasi
syntax
show ip bgp neighbor [ip addr neighbor]contoh
show ip bgp neighbor 20.20.20.2
- Refresh koneksi BGP
syntax
clear ip bgp [ip addr]contoh
clear ip bgp 20.20.20.1
MikroTik
- Cek IP Address setiap interface
- Aktifkan BGP
syntax
routing bgp instance add name=[name] as=[as-number] router-id=[x.x.x.x]contoh
routing bgp instance add name=AS100 as=100 router-id=20.20.20.1
Instance di mikrotik udah default, bisa diedit/ditambah
- Pembentukan neighbor peer
syntax
routing bgp peer add name=[name] remote-as=[as-number] remote-address=x.x.x.x instance=[as-name]contoh
routing bgp peer add name=To-AS200-Remote remote-as=200 remote-address=20.20.20.2 instance=AS100
- Verifikasi
routing bgp peer print status
Advertise Network
- Metode network
syntax
routing bgp network add network=x.x.x.x/x synch=[y/n]contoh
routing bgp network add network=20.20.20.0/24 synch=no
- Metode redistribute
syntax
routing bgp instance add/set number[] redistribute-[IGP routing]contoh
routing bgp instance add/set number[] redistribute-ospf
- Verifikasi
routing bgp advertisements print
Jenis BGP
iBGP (Internal BGP)
Sebuah sesi BGP yang terbentuk antar beberapa router dalam satu AS number yang sama.
- Masing-masing router saling bertukan infomrasi prefix yang disimpan masing-masing router.
- Tidak harus “direct connect”
- Harus full mesh
eBGP (External BGP)
Sebuah sesi BGP yang terbentuk antar dua router atau lebih yang terjadi antar dua AS number yang berbeda
- Bekerja dengan membetuk sesi router yang berbeda
- Masing-masing router saling bertukar infomrasi prefix yang disimpan pada masing-masing router
- Menggunakan komneksi “direct connect” PtP router
eBGP Multihop
Berfungsi untuk mengubah nilai eBGP TTL supaya mendukung multihop
- eBGP secara default menggunakan dua router yang terkoneksi secara langsung
- Router eBGP secara default menggunakan mekanisme TTL of one
syntax
neighbor [ip addr] ebgp-multihop [AS number]contoh
neighbor 192.168.23.3 ebgp-multihop 2
syntax
routing bgp peer add name=[name] remote-as=[as-number] remote-address=x.x.x.x instance=[as-name] add multihop=[y/n]contoh
routing bgp peer add name=To-AS200-Remote remote-as=200 remote-address=20.20.20.2 instance=AS100 add multihop=yes
BGP Neighbor Adjacency
- Idle
Router akan melakukan pengencekan tabel routing untuk mencari jalur neighbornya
- Connect
Router telah terkoneksi dengan neighbor dan melakukan TCP 3WHS
- Active
Router menggunakan TCp untuk peer dengan neighbor, jika gagal conectet, ada Retry reset dan BGP akan kembali connect state
- Open Sent
Router akan mengirimkan pesan yang berisi parameter BGP untuk terkoneksi dengan neighbor
- Open Confirm
Router menerima konfirmasi dari neighbor untuk memulai BGP session
- Established
Siap bertukar prefix
BGP Message
Open
Message awal dari sebuah BGP dan berisikan informasi yang dibutuhkan untuk membangun sesi BGP
- Version
- My AS
- Hold Time
- BGP Identifier
- Optional Paramenters
Update
Berisi update path info. Setiap satu update message berisi satu path info. Jika router melakukan update multiple path, maka router harus mengirim multiple update message (perubahan)
Keepalive
Hanya berisi message header untuk melakukan pengecekan neighbor relationship. Dikirm secara periodik dengan interval 60s
Notification
Message yang akan dikirim jika terjadi error pada sebuah sesi BGP. Berisi field jenis error yang terjadi untuk mempermudah troubleshoot
BGP Attribute & Path Selection
Parameter yang digunakan BGP sebagai metric untuk menentukan jalur terbaik
Pembagian BGP Attributes
- Well-Known Mandatory (AS Path, Next Hop, Origin)
- Well-Known Discretionary (Local Preference, Automic Agregate)
- Optional Transitive (Community, Aggregator)
- Optional Non-Transitve (Multi-exit-discriminator/MED)
Well-Known Attribute
Attribute yang semua router BGP pasti support dan mengenali attributenya
- Harus dikenali oleh semua router BGP yang terkoneksi
- Informasi attrib ute tersebut akan disebarkan ke router yang menjadi neighbor
AS Path Attribute
Attribute yang digunakan untuk menunjukkan informasi router dari source AS sampai dest AS. Termasuk dalam Well-known Mandatory
Penggunaan:
- Sebagai mekanisme loop detection
- Digunakan sebagai path metric untuk rekayasa jalur (AS Path Prepend)
- AS Path Loop Detection
Prefix 180.10.0.0/16 tidak diterima atau di reject oelh AS100 karena AS 100 sudah memiliki prefix tersebut didalam AS-Path nya
- AS Path Prepend
Modifikasi AS-Path Att untuk memanipulasi jalur path BGP
Next Hop Attribute
Alamat IP pada router yang harus digunakan sebagai next hop untuk mencapat tujuan yang terdapat dalam prefix update. Termasuk Well-Known Mandatory
- iBGP Next-Hop Self
Proses “memaksa” router iBGP untuk memodifikasi Next-Hop attribute sebelum di advertise ke router peer iBGP
Origin Attribute
Attribute BGP yang digunakan untuk menampilkan informasi darimana route berasal. Termasuk Well-Known Mandatory
Jenis origin att:
- iBGP att — Berasal dari route yang diadvertise iBGP
- EGP att — Berasal dari route yang diadvertise EGP
- Incomplete — Berasal dari route yang didistribute ke BGP
Local Preference Attribute
Attribute yang digunakan untuk menginformasi semua router BGP dalam satu AS untuk menentukan jalur upstream (OUTBOUND) yang lebih prefer jika terdapat dua jalur outbound atau lebih. Termasuk Well-Known Discretionary Att
.
Optional Path Attribute
Atribut yang tidak semua router BGP support dan mengenali attribute nya
Digunakan dalam implementasi BGP tertentu (private) dan di set untuk tidak dikenali oleh umum
Optional yang yang telah di set akan diinfomasikan ke neighbor untuk di set parameter yang sama
- Optional Transitive Att — Jika neighbor tidak mengenali/support, akan tetap diteruskan ke hop BGP lainnya
- Optional Non Transitive Att — Jika neighbor tidak mengenali/support, akan di drop dan tidak diteruskan ke hop BGP lainnya
Community Attribute
Mekanisme untuk melakukan tagging/pengelompokan pada beberapa jenis route
Beberapa jenis pada community att:
- Internet
- No-Adv
- No-Export
- Local-AS
- BGP Att Path Selection
BGP Filtering
Metode filter dalam BGP yang digunakan untuk mengontrol informasi update BGP baik inbound/outbound berdasarkan informasi routing, path, maupun community
BGP Route Filtering
Metode untuk klasifikasi route yang akan diadvertise/diterima dari neighbor. Route filtering digunakan untuk memanipulasi traffic flows, mengurangi penggunaan resource atau alasan security
BGP AS Path Filtering
Metode filter dengan menggunakan as-path access list untuk menentukan jalur outbound, dengan AS path filter kita dapat menentukan apakah prefix dari AS neighbor diterima atau tidak
Menggunakan REGEXP sebagai parameter AS route filter
BGP Prefix List
Metode filter dengan mengelompokkan IP Address sebagai adv route list yang diproses berdasarkan nilai urutan (sequence) yang lebih kecil menjadi prioritas
BGP Max Prefix
Metode untuk menentukan Berapa banyak prefix network maksimal yang diizinkan setiap neighbor peer BGP yang bisa diterima local router
Tips Konfigurasi BGP
- Pastikan spesifikasi router telah sesuai dengan kebutuhan
- Router yang akan peering telah dikonfigurasi dengan benar dan siap menjalankan BGP (Port dan ACL) karena akan dipublish ke publik
- Pastikan koneksi antar router telah terbentuk dengan baik tanpa ada gangguan pada media koneksinya. Di coba speed test
- Pastikan router tidak melakukan blokir TCP 179 inbound dan outbound
- Pastikan router tidak kehabisan resource dan siap menerima prefix besar ketika BGP establish
- Pastikan BGP filter dan attribute telah di set terlebih dahulu sebelum BGP di establish untuk menghindari adv prefix bogon/sampah
- Setelah semua berjalan dengan baik, sesi BGP peering siap dijalankan
Semoga artikel ini bermanfaat, share artikel ini ya. Big thanks! 😘
Referensi: