25 Tahun Wireshark: Email yang Memulai Semuanya dan Pelajaran yang Dipetik
(blog.wireshark.org)- Email pengumuman Ethereal 0.2.0 yang dikirim Gerald Combs pada 14 Juli 1998, 25 tahun kemudian berlanjut menjadi Wireshark, dan alat pribadi itu tumbuh menjadi proyek open source berumur panjang
- Saat itu, penganalisis protokol berbasis GUI identik dengan produk komersial mahal, sementara pilihan gratis adalah alat baris perintah seperti tcpdump atau snoop, sehingga ia merilis penganalisis yang dibuatnya sendiri sebagai open source
- Beberapa hari setelah dirilis, patch mulai berdatangan dan komunitas pengembang pun terbentuk; Wireshark kemudian digunakan untuk meningkatkan kinerja, keandalan, dan keamanan jaringan serta untuk pendidikan
- Pengelolaan jangka panjang membutuhkan bukan hanya pengguna, pendidik, dan pengembang, tetapi juga dukungan hukum, akuntansi, dan infrastruktur; cakupan dukungan yang diperlukan berbeda sesuai skala proyek
- Dengan dukungan dari CACE Technology, Riverbed, dan Sysdig, Wireshark baru-baru ini dipindahkan ke Wireshark Foundation untuk menyiapkan landasan agar dapat tumbuh secara mandiri
Dari pengumuman Ethereal hingga 25 tahun Wireshark
- 25 tahun lalu, Gerald Combs mengirim email berjudul
ANNOUNCE: Ethereal 0.2.0- Ethereal adalah penganalisis jaringan yang dapat menangkap isi frame Ethernet dan menelusurinya secara interaktif
- Data paket dapat dibaca dari file atau dibaca secara real-time dari antarmuka jaringan lokal
- Ia menyediakan distribusi source code dan informasi tambahan, serta menyampaikan bahwa masukan dan patch sangat disambut
- Nama proyek itu sejak awal bukan Wireshark, dan pada 2006 namanya diubah menjadi Wireshark
- Pada saat diumumkan, penganalisis protokol masih jarang, dan penganalisis GUI sering kali berupa produk mahal
- Untuk memeriksa kondisi jaringan, orang dapat memakai alat baris perintah gratis seperti tcpdump atau snoop
- Jika membutuhkan penganalisis GUI, harus membeli produk komersial yang mahal
- Karena tidak ada penganalisis yang dibutuhkan untuk pekerjaannya, Gerald Combs membuat sendiri alat sederhana, lalu merilisnya sebagai open source
Pertumbuhan yang dibangun komunitas
- Beberapa hari setelah Ethereal diumumkan, patch pertama tiba, dan sejak itu kontribusi terus berlanjut
- Proyek yang dimulai sebagai alat kecil tumbuh jauh lebih besar dari perkiraan setelah bertemu komunitas pengembang yang aktif
- Saat ini Wireshark digunakan oleh pengguna di seluruh dunia untuk membuat jaringan lebih cepat, lebih andal, dan lebih aman
- Para pendidik menggunakan Wireshark untuk mengajarkan cara kerja jaringan tingkat rendah kepada generasi berikutnya dari insinyur keamanan dan jaringan
Hal-hal yang dibutuhkan proyek open source berumur panjang
- Agar proyek open source dapat tumbuh dan bertahan, berbagai kategori kebutuhan harus dipenuhi secara bersamaan
-
Dukungan untuk pengguna
- Pengguna nyata sangat beragam, dari pengguna harian yang mahir hingga pemula
- Pengguna kadang membutuhkan bantuan, dan bentuk dukungan yang diperlukan pun berbeda-beda
-
Dukungan untuk pendidik
- Pakar dan pengguna berpengalaman dapat mengajari orang lain agar memanfaatkan proyek dengan lebih baik
- Para pendidik juga membutuhkan dukungan yang berkelanjutan
-
Dukungan untuk pengembang
- Semakin mudah berkontribusi kode atau memperbaiki proyek, semakin sehat proyek dan komunitasnya
-
Dukungan hukum dan akuntansi
- Area regulasi, hukum, dan keuangan seperti hukum kekayaan intelektual atau penggantian biaya perjalanan memerlukan bantuan eksternal
- GitHub atau GitLab saja tidak dapat menyelesaikan area-area ini
-
Infrastruktur
- Dibutuhkan server, container, dan layanan yang memungkinkan keberadaan online serta kolaborasi
- Apakah GitHub atau GitLab sudah cukup bergantung pada kebutuhan spesifik proyek
Struktur dukungan yang berubah sesuai skala proyek
- Lima kategori ini tidak persis sama dengan hierarki kebutuhan ala Maslow untuk open source, tetapi memiliki struktur yang mirip
- Batas antara pengguna, pendidik, dan pengembang bisa saja kabur
- Secara umum, pengguna dan pendidik bergantung pada hasil yang dibuat pengembang
- Secara keseluruhan, proyek membutuhkan infrastruktur yang kokoh agar semua pihak dapat berkolaborasi
- Tidak semua proyek memerlukan model dukungan yang sama
- Pustaka pemrosesan gambar kecil dengan tujuan tunggal mungkin hanya membutuhkan infrastruktur dan pengembang
- Dalam kasus ini, komunitas pengguna juga kemungkinan adalah pengembang lain, dan GitHub atau GitLab bisa jadi sudah cukup
- Aplikasi penyunting gambar besar dengan banyak fitur mungkin membutuhkan kebutuhan di kelima kategori beserta model bisnis yang menopangnya
Model operasional Wireshark dan perpindahan ke Foundation
- Wireshark adalah proyek yang lebih mendekati aplikasi besar, sehingga membutuhkan banyak pengelolaan dan dukungan
- Hingga baru-baru ini, sumber daya yang dibutuhkan diperoleh dengan meminta pemberi kerja Gerald Combs untuk menjadi host proyek
- CACE Technology, Riverbed, dan Sysdig memberi Wireshark sumber daya yang melampaui GitHub atau GitLab
- Salah satu contohnya adalah konferensi khusus analisis protokol SharkFest
- Dalam beberapa tahun terakhir, kebutuhan agar proyek dapat berdiri sendiri makin besar, dan dengan bantuan Sysdig, pada awal tahun ini proyek dipindahkan ke Wireshark Foundation
- Perpindahan ke Foundation menjadi landasan bagi Wireshark untuk terus tumbuh dan mendukung komunitasnya
Nasihat yang tersisa setelah 25 tahun
- Saat mengirim email itu 25 tahun lalu, Gerald Combs tidak pernah membayangkan bahwa hari ini ia akan menulis blog tentang proyek ini
- Pengalaman mendukung dan mengelola Wireshark memberinya karier yang luar biasa serta kesempatan bertemu dan bekerja bersama orang-orang hebat
- Ia meninggalkan pesan agar jangan ragu jika ingin memulai proyek open source
- Yang penting adalah memungkinkan wawasan berharga yang dimiliki komunitas untuk dibagikan
- Jika tidak takut memulai sesuatu yang baru, kita tidak pernah tahu akan sampai di mana 25 tahun kemudian
1 komentar
Komentar Hacker News
Wireshark adalah alat seperti palu dalam pepatah yang membuat semua masalah jaringan terlihat seperti paku
Bahkan kalau ada alat yang lebih terspesialisasi, kalau dibongkar dengan Wireshark biasanya penyebabnya tetap bisa ditemukan
Masih mengejutkan betapa banyak orang yang mengaku ahli jaringan tapi belum pernah memakai atau tidak memahami Wireshark, padahal ini mungkin alat terpenting untuk memahami apa yang benar-benar terjadi di jaringan
Baru kemarin saya melacak perilaku aneh pada sistem Asterisk/FreePBX yang sudah di-upgrade lewat packet capture; tanpa itu mungkin saya akan menebak-nebak selama berhari-hari, tapi dengan melihat apa yang terjadi di jaringan saya bisa langsung mempersempit masalahnya
Saya bukan spesialis jaringan, tapi pernah memakainya sesekali saat mengerjakan hal terkait, dan saya bisa merasakan kekuatannya, hanya saja alat ini terasa sangat mengintimidasi saat pertama dipakai kecuali untuk masalah yang sangat kecil dan spesifik
Saya juga penasaran apakah ini tipe alat yang dipelajari seperlunya saat dibutuhkan
Sepertinya akan sangat menarik juga kalau ditulis sebagai posting blog
Sekitar tahun 2013 di Amazon, saya harus membuat proof of concept aplikasi/layanan legacy Spring/Java menjadi Node.js dalam waktu seminggu, dan ada autentikasi antar-layanan serta messaging Tibco yang saling terkait
Saya tidak bisa menemukan implementasi klien Tibco yang terbuka, dan karena prinsip kepemimpinan yang sangat menekankan penghematan, hampir mustahil mendapatkan spesifikasi resminya, padahal saya cuma butuh beberapa detail struktur paket dari sejumlah request
Bisa ditebak alat apa yang akhirnya menyelamatkan saya, dan bahkan Principal Engineer saat itu terkejut bahwa alat seperti ini ada
Pada tahun 1983, saat Ethernet masih memakai kabel koaksial tebal dan vampire tap, saya bekerja di kontraktor pertahanan di Silicon Valley
Kami membuat produk Ethernet bridge yang menghubungkan LAN DECnet di stasiun bumi DSCS (Defense Satellite Communications System) di seluruh dunia melalui jalur terenkripsi 9600bps, dan sebagai bagian dari kodenya saya menulis packet dumper yang menaruh kartu Ethernet dalam promiscuous mode
Memang belum ada analyzer seperti Wireshark, tetapi hanya dengan bisa membuang paket mentah dalam heksadesimal ke terminal saja sudah memberi keuntungan besar untuk debugging jaringan
Saat memasang sistem baru, Wireshark adalah salah satu alat pertama yang saya instal
Saya tidak tahu apakah protokolnya dulu dan sekarang persis sama, atau bahkan apakah istilah protokol memang tepat dipakai di sini
Rasanya saya perlu menggali networking lebih dalam
Saya orang yang membuat Wireshark
Melihat semua kata-kata hangat dan kenangan dari semua orang membuat pagi saya jadi menyenangkan
Analisisnya tampak single-threaded dan sepertinya tidak punya cache; pada link 10Gbps, capture “cuma” beberapa GB yang hanya berisi beberapa detik trafik saja sudah terasa berat
Sejak awal ini adalah alat yang tidak tergantikan dalam pekerjaan saya
tcpdump juga bagus, tetapi kemampuan untuk klik kanan paket lalu menekan follow TCP stream dan melihat seluruh percakapan dalam 1 detik benar-benar mengubah keadaan
“right click->filter out this stream” juga sama hebatnya, dan karena Ethereal/Wireshark bisa membaca file hasil simpanan tcpdump, saya bisa ssh ke server jarak jauh, menjalankan tcpdump, lalu memeriksa stream jaringan dari kedua sisi dengan Wireshark di klien
NAT ISP yang mencurigakan langsung terlihat jelas, dan jaringan MPLS yang salah konfigurasi pun bisa ditunjukkan buktinya sehingga tim routing tidak bisa cuma bilang, “di sisi kami kelihatannya baik-baik saja”
Namun ada satu hal dalam tulisan itu yang ingin saya luruskan. Ethereal bukan analyzer paket jaringan GUI gratis pertama; bahkan pada era Windows NT sudah ada alat seperti netmon milik Microsoft
Ada API yang terdokumentasi, dan meskipun status dukungannya agak abu-abu, alat ini mudah dipasang sehingga sebelum Ethereal saya pernah membuat wrapper tcpdump di atasnya
Saat stack TCP “generasi berikutnya” di Longhorn/Vista muncul, API itu dan netmon menjadi tidak berlaku lagi
Setelah itu muncul Microsoft Message Analyzer, berbasis ETW, yang bisa menganalisis jaringan dan trace ETW lainnya, serta memungkinkan penulisan handler protokol apa pun dengan DSL yang didukung
Anda juga bisa membuatnya mem-parsing file log dan memfilter/menganalisis data, tetapi mungkin karena terlalu kuat dan terlalu berguna bagi developer Windows, pada akhirnya Microsoft mematikannya
Pada akhirnya itu alat yang dibundel dalam sistem operasi yang Anda beli
Wireshark itu seperti multimeter dalam elektronika
Dunia tetap berjalan tanpanya, tapi kalau ada yang rusak dan Anda tidak punya alat itu, habislah sudah
Saat masih bernama Ethereal, alat ini benar-benar sangat berharga dalam pekerjaan saya sebagai Senior Tech Support untuk lini produk WebLogic
Kami bisa menyuruh pelanggan menjalankannya langsung dan memberi jawaban seperti, “semua koneksi dalam pool koneksi JDBC besar diam-diam diputus oleh firewall jaringan yang bahkan tidak diketahui pelanggan, sehingga transaksi pertama di pagi hari tertunda 1 jam. Semua koneksi dalam pool harus timeout lalu di-reset”
Kami juga berhasil menangkap masalah seperti, “Internet Explorer memutus koneksi TCP untuk resource yang sudah di-cache, sehingga terjadi error tingkat jaringan non-standar pada instalasi WebLogic di server IBM”
Pekerjaan itu membuat saya kehilangan separuh rambut saya, dan tanpa Ethereal saya pasti akan kehilangan semuanya, plus kewarasan saya, dalam jumlah yang jauh lebih besar
Saya memakai Wireshark setiap hari selama lebih dari 10 tahun saat mendukung load balancer di jaringan pelanggan
pcap dan core dump adalah data yang paling menarik untuk ditangani, dan setelah mempelajari libpcap lalu akhirnya membuat versi saya sendiri, saya bisa berpindah dari dukungan produk ke pengembangan
Saya masuk sebagai support engineer dan keluar sebagai Principal Software Engineer yang menulis sendiri kode yang dulu saya dukung, dan berkat Wireshark serta gdb saya bisa belajar sendiri sangat banyak hal tanpa kuliah
Alat yang benar-benar hebat dan sepenuhnya gratis
Saya sering memakainya untuk debugging masalah jaringan dan melihat perangkat terhubung ke mana, dan seperti kata seseorang, ini seperti multimeter untuk jaringan
Saya juga memakainya untuk mempelajari cara koneksi ke access point WiFi dibangun, dan Anda bisa melihat paket beacon maupun paket WiFi
Tim kami punya Sniffer PC, tetapi sering kali sedang dipakai orang lain atau penafsiran protokolnya tidak memadai
Perangkat lunak yang benar-benar luar biasa
Dua puluh tahun lalu saya pernah buntu di lokasi pelanggan saat mencari masalah interoperabilitas pada peralatan jaringan kami, lalu saya menghabiskan 2 minggu menulis plugin analyzer protokol, dan ternyata cukup mudah serta sangat membantu
Pada akhirnya itu bug kami sendiri, akibat implementasi yang diubah dari select() ke epoll() tetapi penerapan bitmask untuk select() tidak ikut dihapus
Intinya itu adalah bug korupsi memori 1 bit, dan dampaknya bisa muncul sangat terlambat
Entah kenapa kenangan seperti ini bertahan lama
Di awal karier saya pernah menggali bug jaringan yang menjengkelkan selama seminggu hanya dengan tcpdump di fasilitas aman yang tidak mengizinkan pemasangan wireshark
Ternyata masalahnya adalah kombinasi bug terburuk dalam pustaka standar GNAT berusia 10 tahun (pustaka Ada) dan kesalahan konfigurasi ARP, dan bug pustaka itu sebenarnya sudah diperbaiki 7 tahun sebelumnya
Minggu itu begitu mengerikan sampai sangat memengaruhi keputusan saya untuk pindah ke tempat yang lebih baik, dan untuk menikmati hal seperti ini memang perlu kepribadian khusus
Orang sering membayangkan mengubah dunia, tetapi benar-benar ada orang-orang yang mengubah dunia