Tahukah Anda, bahwa ketika Anda membuka perambah web dan mengakses suatu halaman di Internet permintaan Anda tersebut akan melewati beberapa jaringan (network) yang dimiliki dan dikelola oleh beberapa pihak terpisah?

Misalkan Anda mengakses halaman blog ini. Di dalam terminologi TCP/IP, protokol yang digunakan di Internet, pesan-pesan komunikasi diwujudkan dalam bentuk paket-paket data. Kemungkinan pertama-tama paket Anda akan dikirimkan oleh perangkat telepon genggam atau mungkin laptop Anda ke router di rumah. Selanjutnya router rumah Anda meneruskan ke router penyedia jasa Internet (Internet Service Provider, ISP) Anda. Setelah masuk di jaringan ISP, kemungkinan ISP Anda masih akan melewatkan paket Anda ke beberapa router miliknya sebelum meneruskan ke jaringan pihak lain. Jaringan tersebut bisa merupakan sebuah Internet Exchange ataupun jaringan milik NAP (Network Access Provider) yang merupakan upstream dari ISP Anda. Entah berapa node lagi yang harus dilalui paket Anda sebelum mencapai IP server yang melayani blog ini.

Anda dapat melihat router-router mana saja yang dilalui paket Anda menuju suatu server dengan menggunakan tool seperti “traceroute” atau “tracepath” pada Linux atau “tracert” pada Windows.

$ traceroute detik.com
traceroute to detik.com (103.49.221.211), 30 hops max, 60 byte packets
 1  _gateway (192.168.1.1)  0.512 ms  0.735 ms  0.844 ms
 2  10.152.192.1 (10.152.192.1)  4.052 ms  4.139 ms  4.213 ms
 3  180.252.1.222 (180.252.1.222)  4.279 ms  4.354 ms  4.426 ms
 4  180.252.1.221 (180.252.1.221)  5.113 ms  5.168 ms  5.225 ms
 5  telkomnet.openixp.net (218.100.36.59)  6.018 ms  5.929 ms  6.610 ms
 6  * * tengiga-0-1.openixp.net (218.100.36.2)  4.883 ms
 7  detik.openixp.net (218.100.36.9)  6.858 ms  7.030 ms  6.925 ms
 8  s211-cast-211-221-49-103.detik.com (103.49.221.211)  6.497 ms  6.345 ms  6.247 ms

Anda mungkin terbiasa mengkonfigurasi router Anda, harus melewati IP manakah jika ingin mengirimkan paket ke suatu IP. Hal ini biasa disebut dengan “static routing”. Tapi sekarang Anda bayangkan, berapa banyak pengelola jaringan di Internet ini? Berapa banyak ISP? Berapa banyak penyedia web-hosting? Berapa banyak penyedia server cloud? Apakah masing-masing pengelola jaringan harus mengatur secara manual satu-per-satu, ke router di IP berapakah untuk mengirimkan paket ke sebuah IP?

Di sinilah BGP (Border Gateway Protocol) bekerja. Sebuah protokol pahlawan di Internet yang mungkin tidak banyak diketahui keberadaannya oleh sebagian besar pengguna Internet. BGP memungkinkan pertukaran tabel routing dari suatu network ke network lain secara dinamis.

Di BGP, setiap pengelola jaringan memiliki sebuah identitas yang disebut Autonomous System Number (ASN). Pengetahuan tabel routing di sebuah ASN, dapat disebarkan ke ASN lain.

Misal ASN A mengelola jaringan dengan alamat 192.168.1.0/24 dan 192.168.2.0/24. ASN B mengelola jaringan dengan alamat 192.168.3.0/24. ASN C mengelola jaringan beralamat 192.168.4.0/24. ASN D mengelola jaringan 192.168.5.0/24 ANS E mengelola jaringan 192.168.6.0/24

Keterhubungan jaringan tersebut secara sederhana digambarkan dengan ilustrasi sebagai berikut:

A <--> B <--> C
       ^      ^
       |      |
       v      v
       D      E
  • A hanya terhubung secara jaringan ke B dan melakukan pertukaran BGP.
  • B terhubung ke A, C, dan D dan melakukan pertukaran BGP.
  • C terhubung ke B dan E dan melakukan pertukaran BGP.
  • D terhubung ke B dan melakukan pertukaran BGP.
  • E terhubung ke C dan melakukan pertukaran BGP.

Secara langsung B mengetahui bahwa dia bisa secara langsung ke jaringan A (192.168.1.0/24 dan 192.168.2.0/24). Hal ini akan diteruskan ke C dan D, sehingga C dan D mengetahui bahwa untuk ke A, mereka harus melewati B. C juga akan meneruskan ke E, sehingga E mengetahui, jika ingin mengirimkan paket ke A, dia harus melalui C yang akan meneruskan ke B kemudian baru ke A. Begitu juga sebaliknya.

Contoh tadi hanyalah penyederhanaan untuk menjelaskan secara garis besar bagaimana BGP bekerja. Akan tetapi metoda seperti itulah yang membuat Internet dengan puluhan ribu penyelenggara jaringan, dapat berkomunikasi secara efisien. Dengan menggunakan BGP, para penyelenggara jaringan termasuk semua ISP maupun penyedia server dapat bertukar informasi tabel routing. Diperkirakan ukuran tabel routing global di BGP saat ini mencapai lebih dari satu juta routing.

Internet dapat berjalan tanpa protokol HTTP, karena tidak semua trafik di Internet adalah HTTP. HTTP hanyalah salah satu protokol di Layer 7. Ada SMTP untuk email, ada SSH, ada SNMP, dan banyak protokol lagi. Belum lagi protokol-protokol non-standar yang digunakan untuk hal tertentu.

Internet juga dapat berjalan tanpa DNS, walau mungkin jadi merepotkan karena kita harus menghafal angka-angka alamat IP, bukan penamaan yang mudah diingat oleh manusia.

Akan tetapi tanpa BGP Internet sudah jelas akan lumpuh dan tidak dapat berjalan. Oleh sebab itu saya sebut bahwa BGP adalah protokol paling penting di Internet (tentu saja setelah TCP/IP). Dan karena sebagian besar pemakai Internet mungkin tidak pernah mendengar BGP, saya sebut juga dia sebagai “The Unsung Hero in Internet”.

Penggunaan BGP bukan hanya ditujukan untuk penyelenggara Internet global. BGP juga dapat digunakan di internal jaringan. Kami mengelola beberapa jaringan privat yang terpisah secara lokasi. Jaringan-jaringan tersebut memiliki blok IP privat masing-masing. Keterhubungan jaringan menggunakan tunnel, sebagian besar menggunakan “wireguard”. Agar semua jaringan tersebut dapat berkomunikasi satu sama lain walau tidak memiliki tunnel secara penuh antar setiap jaringan, Kami menggunakan BGP untuk pertukaran informasi tabel routing.