Technology

Realitas Software-Defined Networks (SDN)

Artikel ini diterjemahkan dan disadur secara bebas dari artikel Cloudy-Eyed: Complexity and Reality with Software-Defined Networks yang ditulis oleh Russ White & Shawn Zandi, LinkedIn untuk Internet Protocol Journal (IPJ) Volume 19, No. 3, hal 31-41, November 2016.

Selama ini, yang saya ketahui: yang bertanggung jawab untuk merutekan paket dalam jaringan adalah router. Jika ada paket masuk ke suatu router, alamat tujuan yang berada di header paket tersebut akan diperiksa, lalu router akan mengecek tabel routing untuk menentukan ke mana paket tersebut akan dikirimkan. Ada komponen administrative distance dan metric pada tabel routing yang memengaruhi pengambilan keputusan arah pengiriman paket.

Ternyata hal tersebut hanyalah salah satu metode routing dalam jaringan dengan karakteristik distributed control. Yang mengontrol jalur pengiriman paket adalah berbagai router yang tersebar dalam jaringan. Setiap router bertanggung jawab dalam pengontrolan rute paket, sesuai dengan protokol routing yang diaplikasikan, misalnya: IS-IS atau BGP. Router memutuskan sendiri rute paket berdasarkan tabel routing tanpa intervensi dari pihak lain. Bantuan pihak eksternal hanyalah informasi-informasi yang didapatkan dari router-router tetangganya untuk membangun isi tabel routing. Maka, dapat dikatakan bahwa kontrol rute paket terdistribusi dalam jaringan.

Terdapat metode routing lain dengan karakteristik centralized control, yaitu Software-Defined Networks (SDN). SDN bukanlah suatu produk. SDN merupakan suatu metodologi atau peralatan yang dipromosikan untuk mengeliminasi kompleksitas distributed control planes, meningkatkan kualitas respons jaringan terhadap aplikasi dan kebutuhan bisnis tertentu, serta menurunkan biaya peralatan dan operasional jaringan. Tentu ini adalah situasi yang terlalu indah untuk menjadi kenyataan (too good to be true). Realitasnya, harus ada yang dikompromikan. Hanya ada dua hal yang bisa dipilih antara: murah, cepat, dan kualitas tinggi.

Pilih dua saja ya

SDN awalnya dikembangkan dengan tiga elemen penting. Pertama, SDN diharapkan dapat menyingkirkan kecerdasan pada distributed control planes, menggantinya dengan kalkulasi jalur terpusat yang dilakukan oleh suatu pengontrol. Kondisi jaringan secara lebih menyeluruh dapat dipantau oleh pengontrol terpusat sehingga traffic dapat dikelola secara lebih efisien dan optimal. Router berspesifikasi tinggi dalam jaringan bisa diganti dengan perangkat ringan-kecil-murah yang hanya mampu mem-forward paket yang terhubung ke pusat komando (pengontrol) untuk meneruskan paket.

Kedua, SDN diharapkan dapat menyediakan tingkatan kontrol traffic paket yang lebih terperinci. Contoh: dengan SDN, kualitas traffic layanan dapat dikendalikan per-aplikasi ataupun per-pengguna. Contoh lainnya: elephant flow dapat ditemukan dan diarahkan agar tidak mengganggu traffic lainnya. Ketiga, SDN membuat jaringan menjadi dapat diprogram sehingga biaya operasional menurun, jaringan dapat dipantau dengan baik, dan membuat aplikasi dapat berinteraksi dengan jaringan secara langsung untuk mendapatkan bandwidth sesuai dengan performa yang diinginkan oleh aplikasi tersebut.

SDN jaman now merujuk kepada berbagai hal mulai dari kemampuan aplikasi untuk menjadwalkan bandwidth sampai dengan perolehan data telemetri yang lebih baik. Terdapat beberapa tantangan dalam mengembangkan SDN yang sesuai dengan keinginan awal para pencetus SDN. Tantangan-tantangan tersebut dapat dibagi menjadi tiga bagian, yaitu yang berkaitan dengan kalkulasi rute jaringan terpusat, flow-based forwarding, dan kemampuan program jaringan.

Kalkulasi Rute Jaringan Terpusat

Contoh dari distributed control planes adalah Intermediate System-to-Intermediate System (IS-IS) dan Border Gateway Protocol (BGP). Untuk dapat mendukung pemrosesan dan penanganan data yang kompleks pada distributed control planes, dibutuhkan perangkat jaringan yang besar dan mahal dengan prosesor yang cepat dan memory pools yang besar. Ketika kebutuhan seleksi jalur berbasis policy (memilih jalur yang kurang optimal pada aspek jarak sesuai perspektif metrics, tetapi lebih optimal pada aspek penggunaan jaringan dan kualitas layanan) meningkat, processing power dan kebutuhan memori setiap router menjadi naik. Diperlukan banyak konfigurasi untuk pengelolaan jaringan pada banyak router.

Jika distributed control planes dapat dihapuskan dan diganti dengan pengontrol (atau suatu set pengontrol) terpusat, kompleksitas tiap forwarding device dapat diturunkan drastis karena tugas untuk menemukan topologi jaringan dan kalkulasi jalur terbaik per destinasi dialihkan dari tiap router ke pengontrol pusat.

SDN berbeda dengan IS-IS/BGP yang bersifat proaktif terhadap kondisi topologi jaringan. Pada IS-IS, sebelum paket pertama ditransmisikan melalui jaringan, protokol routing harus menemukan jalur bebas-loop untuk mencapai tiap destinasi pada jaringan. Sementara itu, pada SDN, control plane cenderung bersifat reaktif. Forwarding devices menemukan informasi untuk menjangkau destinasi setelah paket pertama dari suatu aliran transmisi diterimanya. Terdapat lag antara paket pertama dalam aliran transmisi dan jalur yang sebenarnya tersedia.

Tantangan SDN lainnya berkaitan dengan skalabilitas jaringan. Semakin besar jaringan, tugas pengontrol terpusat menjadi semakin berat. Realitasnya, pada jaringan berskala besar, minimal perlu ada dua pengontrol yang terletak pada dua lokasi yang beragam secara topologi untuk menyediakan redundancy yang mendukung ketahanan sistem. Penambahan jumlah pengontrol berarti perlu menyediakan beberapa cara untuk mendistribusi informasi reachability dan policy antarpengontrol. Akhirnya, diperlukan distributed control plane untuk komunikasi antar pengontrol. Artinya, masalah pada distributed control plane tidak dihapuskan, tetapi hanya dipindahkan ke tempat lain dalam jaringan.

Flow-based Forwarding

Pada umumnya, router meneruskan paket hanya berdasarkan informasi alamat tujuan pada header paket. Pada SDN, ada keinginan agar traffic forwarding dapat dilakukan tidak hanya berdasarkan alamatnya saja sehingga setiap aplikasi dapat dirutekan melalui jaringan secara independen.

Pada contoh gambar di atas, Komputer A sedang mengirim berkas berukuran besar ke Server F, sedangkan pada waktu yang sama HP B sedang digunakan untuk berpartisipasi dalam konferensi video melalui Server G. Perutean yang hanya berbasis alamat tidak dapat membedakan antara transfer berkas berukuran besar dan konferensi video sehingga bisa jadi kedua traffic ini menempuh jalur yang sama, membuat transmisi tidak optimal. Administrator jaringan dapat mengatur agar alamat sumber A dan B serta informasi protokol sumber dan tujuan dapat digunakan untuk membedakan aliran trafik. Pada contoh di atas, traffic transfer berkas dapat diarahkan melalui C-D-E, sedangkan traffic konferensi video diarahkan melalui C-E langsung.

Salah satu tantangannya adalah jika dalam suatu jaringan berukuran besar terdapat ribuan perangkat yang akan berkomunikasi, pengontrol harus menentukan status control-plane untuk setiap traffic flow tersebut. Dibutuhkan perangkat keras dengan biaya tinggi untuk dapat mengelola traffic flow dalam jumlah besar. Selain itu, setiap forwarding device dalam jaringan yang dilewati paket harus mengecek header secara utuh (tidak hanya alamat tujuannya saja, tetapi bisa sampai protokol aplikasinya).

Meskipun begitu, SDN dapat beroperasi dengan kondisi sebagian besar traffic diteruskan hanya berdasarkan alamat tujuan paket saja dan sebagian kecil traffic yang memerlukan jalur khusus ditangani dengan memeriksa header paket secara utuh. Solusi ini adalah hasil kompromi dengan realitas yang ada, belum sesuai dengan tujuan ideal SDN.

Kemampuan Memprogram Jaringan

Pemograman jaringan pada SDN melibatkan dua hal, yaitu dynamic provisioning dan interaksi dinamis antara aplikasi dan jaringan.

Dynamic Provisioning

Jaringan berskala besar cenderung sulit untuk dimonitor dan dikelola. Network engineer akan sangat terbantu jika ada antarmuka terpadu yang menjadi penghubung ke setiap platform vendor dan adanya implementasi control plane yang disebarkan dalam jaringan untuk memfasilitasi provisioning otomatis dan manajemen jaringan. Antarmuka tunggal ini pada kenyataannya sulit untuk direalisasikan karena setiap vendor memiliki keunikan perangkat masing-masing yang menjadi nilai jualnya.

Di sisi lain, provisioning otomatis dapat mengambil alih tugas operator jaringan sehingga konfigurasi, provisioning, dan isolasi kesalahan dapat diselesaikan dengan lebih cepat dan lebih akurat. Otomasi ini dapat menurunkan Mean Time Between Failures (MTBF). Meskipun begitu, proses otomasi juga dapat menimbulkan celah masalah yang tidak diinginkan dalam siklus operasional. Misalnya, suatu celah keamanan pada pengontrol dapat diserang oleh penyerang jahat yang akibatnya dapat menimbulkan masalah ke seluruh jaringan. Robust, yet fragile.

A system is robust yet fragile when it is able to react resiliently to an expected set of circumstances, but an unexpected set of circumstances will cause it to fail.” – Russ White & Jeff Tantsura

Menggantikan pekerjaan yang berulang-ulang dengan proses otomatis merupakan hal yang baik, tetapi peran manusia tidak bisa ditinggalkan begitu saja. Beberapa keputusan pengelolaan jaringan harus tetap melalui persetujuan manusia.

Interaksi Aplikasi dan Jaringan

Kombinasi antara dynamic provisioning dan dynamic policy menghasilkan hal yang disebut Application Programming Interface (API) untuk jaringan tersebut. Aplikasi dapat berinteraksi secara langsung kepada jaringan sebagai suatu sistem. Ide umumnya:

  • Aplikasi membutuhkan sejumlah bandwidth dengan parameter kualitas layanan khusus pada waktu tertentu
  • Aplikasi menggunakan antarmuka untuk memesan bandwidth kepada pengontrol dan memberi informasi terkait tujuan komunikasi
  • Pengontrol mengunakan beberapa cara untuk membangun kondisi jaringan yang mengakomodasi kebutuhan aplikasi

—————————————————-

Pilihan antara kontrol terpusat dan kontrol terdesentralisasi bukanlah pilihan antara yang lebih baik dan yang lebih buruk. Ini hanyalah perbedaan keputusan dalam menentukan sifat kontrol jaringan, dengan set-set kompromi yang berbeda. Setiap pilihan memiliki kompleksitas dan masalah tersendiri untuk diatasi.

——————————————————

Manusia adalah makhluk yang tidak lepas dari kesalahan. Saya tidak bisa menjanjikan bahwa isi artikel ini 100% benar. Silakan dikritisi dan cari ilmu dari pihak lain untuk memperdalam pengetahuan Anda. Jika ada suatu kesalahan dalam artikel ini, mohon saya dikoreksi. CMIIW. Terima kasih 🙂

Ada komentar?

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.