- Gerald Combs ने 14 जुलाई 1998 को Ethereal 0.2.0 की घोषणा वाला ईमेल भेजा, जो 25 साल बाद Wireshark तक पहुंचा, और एक निजी टूल लंबे समय तक चलने वाले open source प्रोजेक्ट में बदल गया
- उस समय GUI protocol analyzer आमतौर पर महंगे commercial products होते थे, और मुफ्त विकल्प tcpdump या snoop जैसे command-line tools थे, इसलिए उन्होंने अपना analyzer बनाकर उसे open source के रूप में जारी किया
- जारी होने के कुछ ही दिनों बाद patches आने लगे और एक developer community बननी शुरू हुई; Wireshark बाद में नेटवर्क की performance, reliability, और security सुधारने तथा शिक्षा में उपयोग होने लगा
- लंबे समय तक संचालन के लिए सिर्फ users, educators, और developers ही नहीं, बल्कि legal, accounting, और infrastructure support भी चाहिए होता है; प्रोजेक्ट के आकार के अनुसार आवश्यक सहायता का दायरा बदलता है
- CACE Technology, Riverbed, और Sysdig के समर्थन के साथ आगे बढ़ने के बाद, Wireshark हाल में Wireshark Foundation में स्थानांतरित हुआ ताकि वह स्वतंत्र रूप से बढ़ने की नींव बना सके
Ethereal की घोषणा से Wireshark के 25 साल तक
- Gerald Combs ने 25 साल पहले
ANNOUNCE: Ethereal 0.2.0शीर्षक वाला ईमेल भेजा था- Ethereal एक network analyzer था जो Ethernet frames की सामग्री को capture करके उन्हें interactive तरीके से explore कर सकता था
- packet data को file से पढ़ा जा सकता था या local network interface से real time में लिया जा सकता था
- उन्होंने source distribution और अतिरिक्त जानकारी दी, और feedback व patches का स्वागत किया
- प्रोजेक्ट का नाम शुरू से Wireshark नहीं था; 2006 में इसे Wireshark नाम दिया गया
- जब इसे जारी किया गया, तब protocol analyzers आम नहीं थे, और GUI analyzers अक्सर महंगे products होते थे
- नेटवर्क की स्थिति देखने के लिए tcpdump, snoop जैसे मुफ्त command-line tools इस्तेमाल किए जा सकते थे
- लेकिन GUI analyzer चाहिए होता तो महंगा commercial product खरीदना पड़ता था
- अपने काम के लिए जरूरी analyzer न मिलने पर Gerald Combs ने एक साधारण टूल खुद बनाया और उसे open source के रूप में जारी किया
community ने कैसे बढ़ाया प्रोजेक्ट
- Ethereal जारी होने के कुछ दिनों बाद पहला patch आया, और उसके बाद contributions लगातार मिलते रहे
- एक छोटे टूल के रूप में शुरू हुआ यह प्रोजेक्ट सक्रिय developer community की बदौलत उम्मीद से कहीं बड़ा हो गया
- आज Wireshark का उपयोग दुनिया भर के users नेटवर्क को और तेज, स्थिर, और सुरक्षित बनाने के लिए करते हैं
- educators, Wireshark की मदद से अगली पीढ़ी के security और network engineers को नेटवर्क के low-level behavior के बारे में सिखाते हैं
लंबे समय तक चलने वाले open source प्रोजेक्ट के लिए क्या चाहिए
- किसी open source प्रोजेक्ट के बढ़ने और टिके रहने के लिए कई तरह की जरूरतों को साथ-साथ पूरा करना पड़ता है
-
users के लिए support
- वास्तविक users में रोज इस्तेमाल करने वाले अनुभवी users से लेकर beginners तक शामिल होते हैं
- users को समय-समय पर मदद चाहिए होती है, और हर user की जरूरत अलग हो सकती है
-
educators के लिए support
- experts और अनुभवी users दूसरों को सिखा सकते हैं कि प्रोजेक्ट का बेहतर उपयोग कैसे करें
- educators को भी लगातार support की जरूरत होती है
-
developers के लिए support
- जितना आसान code contribute करना और प्रोजेक्ट को बेहतर बनाना होगा, उतना ही प्रोजेक्ट और community स्वस्थ रहेंगे
-
legal और accounting support
- intellectual property law, यात्रा खर्च के हिसाब-किताब जैसी regulatory, legal, और financial जरूरतों के लिए बाहरी मदद चाहिए होती है
- सिर्फ GitHub या GitLab से ये जरूरतें पूरी नहीं होतीं
-
infrastructure
- online presence और collaboration को संभव बनाने के लिए servers, containers, और services की जरूरत होती है
- GitHub या GitLab पर्याप्त हैं या नहीं, यह प्रोजेक्ट की खास जरूरतों पर निर्भर करता है
प्रोजेक्ट के आकार के अनुसार बदलती support structure
- ये पांच category open source की Maslow-जैसी जरूरतों की hierarchy से पूरी तरह एक जैसी नहीं हैं, लेकिन संरचना कुछ हद तक मिलती-जुलती है
- users, educators, और developers के बीच की सीमाएं धुंधली हो सकती हैं
- आम तौर पर users और educators, developers द्वारा बनाए गए नतीजों पर निर्भर होते हैं
- पूरे प्रोजेक्ट को ऐसा मजबूत infrastructure चाहिए जिसमें सब मिलकर काम कर सकें
- हर प्रोजेक्ट को एक जैसा support model नहीं चाहिए होता
- किसी छोटे, single-purpose image processing library को शायद सिर्फ infrastructure और developers की जरूरत हो
- ऐसे मामले में user community भी दूसरे developers ही हो सकते हैं, और GitHub या GitLab पर्याप्त हो सकते हैं
- लेकिन कई features वाले बड़े image editing application को इन पांचों category में जरूरतें और उन्हें सहारा देने वाला business model चाहिए हो सकता है
Wireshark का operating model और Foundation में स्थानांतरण
- Wireshark एक बड़े application जैसा प्रोजेक्ट है, इसलिए इसे काफी management और support की जरूरत होती है
- हाल तक जरूरी resources इस तरह जुटाए जाते थे कि Gerald Combs अपने employer से प्रोजेक्ट को host करने का अनुरोध करते थे
- CACE Technology, Riverbed, और Sysdig ने Wireshark को GitHub या GitLab से आगे बढ़कर resources दिए
- उदाहरण के तौर पर protocol analysis के लिए समर्पित conference SharkFest है
- पिछले कुछ वर्षों में प्रोजेक्ट के अपने पैरों पर खड़े होने की जरूरत बढ़ी, और Sysdig की मदद से इस साल की शुरुआत में इसे Wireshark Foundation में स्थानांतरित किया गया
- Foundation में स्थानांतरण Wireshark के लगातार बढ़ने और community को support देने की नींव बना
25 साल बाद बची सलाह
- Gerald Combs कहते हैं कि 25 साल पहले ईमेल भेजते समय उन्होंने नहीं सोचा था कि एक दिन वह इस प्रोजेक्ट पर ब्लॉग लिखेंगे
- Wireshark को support और manage करने के अनुभव ने उन्हें शानदार career और बेहतरीन लोगों के साथ काम करने का मौका दिया
- अगर आप open source प्रोजेक्ट शुरू करना चाहते हैं, तो हिचकिचाइए मत
- यह महत्वपूर्ण है कि community के पास मौजूद कीमती insights साझा करने का रास्ता हो
- अगर आप कुछ नया शुरू करने से नहीं डरते, तो 25 साल बाद आप कहां पहुंचेंगे, यह कोई नहीं जानता
1 टिप्पणियां
Hacker News की टिप्पणियाँ
Wireshark एक कहावत वाले हथौड़े जैसा टूल है, जो हर networking समस्या को कील जैसा दिखाने लगता है
भले ही और ज़्यादा specialized tools मौजूद हों, Wireshark से देखने पर आम तौर पर वजह मिल ही जाती है
आज भी यह देखकर हैरानी होती है कि खुद को network expert कहने वाले इतने लोग हैं जिन्होंने Wireshark कभी इस्तेमाल नहीं किया या उसे समझते नहीं हैं, जबकि असली नेटवर्क में क्या हो रहा है यह समझने के लिए यह शायद सबसे महत्वपूर्ण टूल है
अभी कल ही upgraded Asterisk/FreePBX system के अजीब behavior को packet capture से trace किया; इसके बिना जिस चीज़ पर कई दिन अटकलें लगतीं, उसे नेटवर्क में क्या हो रहा है देखकर तुरंत सीमित कर पाया
मैं network specialist नहीं हूँ, लेकिन संबंधित काम करते हुए इसे कभी-कभी इस्तेमाल किया है; इसकी ताकत महसूस होती है, मगर बहुत छोटा और specific issue न हो तो पहली बार में यह tool भारी पड़ता है
यह भी जानना चाहता हूँ कि क्या यह ऐसा tool है जिसे ज़रूरत पड़ने पर थोड़ा-थोड़ा सीखते हैं
इस पर blog post भी काफ़ी दिलचस्प होगी
लगभग 2013 में Amazon में legacy Spring/Java app/service का Node.js proof of concept एक हफ़्ते के भीतर बनाना था, और उसमें services के बीच authentication और Tibco messaging उलझी हुई थी
कोई public Tibco client implementation नहीं मिली, और मितव्ययिता पर ज़ोर देने वाले leadership principles की वजह से official spec पाना भी लगभग असंभव था, जबकि ज़रूरत सिर्फ़ कुछ requests के packet structure की details की थी
आख़िर किस tool ने बचाया, यह आप अंदाज़ा लगा ही सकते हैं, और उस समय Principal Engineer भी यह देखकर हैरान थे कि ऐसा tool मौजूद है
1983 में, जब Ethernet अभी मोटे coaxial cable और vampire tap इस्तेमाल करता था, मैं Silicon Valley की एक defense company में काम करता था
हम ऐसा Ethernet bridge product बना रहे थे जो दुनिया भर के DSCS(Defense Satellite Communications System) ground stations के DECnet LAN को 9600bps encrypted lines से जोड़ता था, और कोड के हिस्से के रूप में मैंने Ethernet card को promiscuous mode में डालने वाला packet dumper लिखा था
Wireshark जैसा decoder तो नहीं था, लेकिन raw packets को terminal पर hexadecimal में dump कर पाना ही network debugging के लिए बहुत बड़ा फ़ायदा था
जब भी नया system install करता हूँ, Wireshark उन पहले tools में से एक होता है जिन्हें मैं install करता हूँ
पता नहीं यह तब और अब बिल्कुल वही protocol है या नहीं, और protocol कहना भी सही शब्द है या नहीं
लगता है networking को और गहराई से समझना चाहिए
मैं Wireshark का निर्माता हूँ
आप सबकी गर्मजोशी भरी बातें और यादें देखकर सुबह से ही अच्छा लग रहा है
analysis शायद single-threaded है और caching भी नहीं दिखती; 10Gbps link पर कुछ ही seconds के “सिर्फ़” कुछ GB capture से भी जूझता है
शुरू से ही यह मेरे काम का अपरिहार्य tool रहा है
tcpdump भी ठीक था, लेकिन packet पर right-click करके follow TCP stream दबाते ही पूरी बातचीत 1 second में देख पाना game changer था
“right click->filter out this stream” भी उतना ही उपयोगी था, और क्योंकि Ethereal/Wireshark tcpdump save files पढ़ सकता था, मैं remote server पर ssh से जाकर tcpdump चलाता और client पर Wireshark से दोनों तरफ़ के network streams देख लेता था
संदिग्ध ISP NAT तुरंत नज़र आ जाता था, और गलत configured MPLS network के सबूत भी दिखाए जा सकते थे, इसलिए routing team सिर्फ़ “हमारी तरफ़ सब ठीक लग रहा है” कहकर नहीं बच सकती थी
हालांकि, लेख की एक बात मैं ठीक करना चाहूँगा। Ethereal पहला free GUI network packet analyzer नहीं था; Windows NT के दौर में भी Microsoft का netmon जैसा tool था
उसका documented API भी था, और support status भले अस्पष्ट था, लेकिन attach करना आसान था, इसलिए Ethereal से पहले मैंने उसके ऊपर tcpdump wrapper बनाया था
Longhorn/Vista के “next-generation” TCP stack के साथ वह API और netmon बेकार हो गए
बाद में Microsoft Message Analyzer आया, जो ETW आधारित था और network के साथ अन्य ETW traces भी analyze कर सकता था, और जिसकी support DSL से किसी भी protocol handler को लिखा जा सकता था
आप log files parse करवा सकते थे और data को filter/analyze भी कर सकते थे, लेकिन शायद वह बहुत शक्तिशाली और Windows developers के लिए बहुत उपयोगी था, इसलिए Microsoft ने आख़िरकार उसे बंद कर दिया
आख़िर वह एक paid operating system में शामिल tool ही था
Wireshark electronics के multimeter जैसा है
इसके बिना भी दुनिया चलती रहती है, लेकिन कुछ टूट जाए तो इसके बिना बुरा हाल हो जाता है
यह tool, जो उस समय Ethereal था, WebLogic product line में Senior Tech Support के काम में बेहद कीमती था
ग्राहक से इसे खुद चलवाकर हम ऐसे जवाब दे पाते थे जैसे, “बड़े JDBC connection pool की सारी connections ग्राहक को पता भी न रहे ऐसे network firewall ने चुपचाप काट दीं, इसलिए सुबह का पहला transaction 1 घंटे delay होता है। Pool की सारी connections timeout होकर reset होनी पड़ती थीं”
“Internet Explorer cached resources के TCP connections तोड़ देता है, जिससे IBM server पर WebLogic install में non-standard network-level error आता है” जैसी समस्याएँ भी इसी से पकड़ी गईं
उस काम में मेरे आधे बाल झड़ गए, और Ethereal न होता तो शायद सारे और साथ में दिमाग़ी संतुलन भी ज़्यादा खो देता
ग्राहक network के load balancer को support करते हुए मैंने 10 साल से ज़्यादा Wireshark रोज़ इस्तेमाल किया
pcap और core dump सबसे दिलचस्प data थे, और libpcap सीखते-सीखते मैंने आख़िर अपना version भी बना लिया, जिससे product tech support से development में जा सका
support engineer के रूप में आया था और Principal Software Engineer बनकर निकला, जहाँ पहले जिस code को support करता था वही खुद लिखने लगा; Wireshark और gdb की बदौलत बिना college जाए बहुत कुछ खुद सीख पाया
यह सचमुच शानदार tool है और पूरी तरह free है
network problems debug करने और यह देखने के लिए कि devices कहाँ connect हो रहे हैं, मैं इसे अक्सर इस्तेमाल करता हूँ, और जैसा किसी ने कहा, यह networking का multimeter है
WiFi access point के साथ connection setup सीखने के लिए भी इसका इस्तेमाल किया, और इसमें beacon packets और WiFi packets दोनों देखे जा सकते हैं
टीम के पास Sniffer PC था, लेकिन वह अक्सर किसी और के इस्तेमाल में होता था या उसमें protocol decoding पर्याप्त नहीं होती थी
वाकई शानदार software है
20 साल पहले एक ग्राहक साइट पर हमारे network equipment की interoperability problem ढूँढते-ढूँढते अटक गए थे, तब 2 हफ़्तों में protocol decoder plugin लिखकर काफ़ी आसानी से मदद मिली थी
आख़िरकार bug हमारा ही निकला; implementation को select() से epoll() में बदलते समय select() के लिए bitmask handling हटाई नहीं गई थी
मूल रूप से यह 1-bit memory corruption bug था, और उसका असर बहुत देर से सामने आ सकता था
अजीब है कि ऐसी यादें लंबे समय तक रहती हैं
career की शुरुआत में एक secure facility में wireshark install करने की अनुमति नहीं थी, इसलिए सिर्फ़ tcpdump से एक परेशान करने वाले network bug को एक हफ़्ते तक खोदना पड़ा
आख़िर यह 10 साल पुराने GNAT(Ada library) standard library के बेहद बुरे bug और ARP configuration error का मिला-जुला नतीजा निकला, और वह library bug दरअसल 7 साल पहले ही fix हो चुका था
वह एक हफ़्ता इतना भयानक था कि बेहतर जगह जाने के फ़ैसले पर उसका बड़ा असर पड़ा, और ऐसी चीज़ों का आनंद लेने के लिए शायद एक अलग तरह का व्यक्तित्व चाहिए
लोग अक्सर दुनिया बदलने की कल्पना करते हैं, लेकिन कुछ लोग सच में दुनिया बदलते भी हैं