1 Punkte von GN⁺ 2023-07-16 | 1 Kommentare | Auf WhatsApp teilen
  • Dass Gerald Combs am 14. Juli 1998 die Ankündigungs-E-Mail für Ethereal 0.2.0 verschickte, führte 25 Jahre später zu Wireshark; aus einem persönlichen Tool wurde ein langlebiges Open-Source-Projekt
  • Damals waren GUI-Protokollanalysatoren meist teure kommerzielle Produkte, und kostenlose Alternativen waren Kommandozeilen-Tools wie tcpdump oder snoop, daher veröffentlichte er seinen selbstgebauten Analysator als Open Source
  • Schon wenige Tage nach der Veröffentlichung gingen Patches ein und es bildete sich eine Entwickler-Community; Wireshark wird heute zur Verbesserung von Leistung, Zuverlässigkeit und Sicherheit von Netzwerken sowie für die Ausbildung eingesetzt
  • Für den langfristigen Betrieb braucht es nicht nur Nutzer, Lehrende und Entwickler, sondern auch Unterstützung bei Recht, Buchhaltung und Infrastruktur; je nach Projektgröße unterscheidet sich der benötigte Umfang
  • Mit Unterstützung von CACE Technology, Riverbed und Sysdig ist Wireshark kürzlich zur Wireshark Foundation gewechselt und hat damit eine Basis für unabhängiges weiteres Wachstum geschaffen

Von der Veröffentlichung von Ethereal bis zum 25-jährigen Jubiläum von Wireshark

  • Gerald Combs verschickte vor 25 Jahren eine E-Mail mit dem Betreff ANNOUNCE: Ethereal 0.2.0
    • Ethereal war ein Netzwerkanalysator, der den Inhalt von Ethernet-Frames erfassen und interaktiv durchsuchen konnte
    • Paketdaten konnten aus Dateien gelesen oder in Echtzeit von einer lokalen Netzwerkschnittstelle eingelesen werden
    • Er stellte den Source-Release und weitere Informationen bereit und schrieb, dass Feedback und Patches willkommen seien
  • Das Projekt hieß anfangs nicht Wireshark, sondern wurde 2006 in Wireshark umbenannt
  • Zum Zeitpunkt der Veröffentlichung waren Protokollanalysatoren nicht weit verbreitet, und GUI-Analysatoren waren oft teure Produkte
    • Wer den Zustand eines Netzwerks prüfen wollte, konnte kostenlose Kommandozeilen-Tools wie tcpdump oder snoop verwenden
    • Wer einen GUI-Analysator brauchte, musste meist ein teures kommerzielles Produkt kaufen
  • Da Gerald Combs keinen für seine Arbeit passenden Analysator hatte, baute er selbst ein einfaches Tool und veröffentlichte es als Open Source

Wachstum durch die Community

  • Wenige Tage nach der Veröffentlichung von Ethereal traf der erste Patch ein, und weitere Beiträge folgten kontinuierlich
  • Was als kleines Tool begann, traf auf eine aktive Entwickler-Community und wuchs weit über die Erwartungen hinaus
  • Wireshark wird heute weltweit genutzt, um Netzwerke schneller, stabiler und sicherer zu machen
  • Lehrende nutzen Wireshark, um der nächsten Generation von Security- und Netzwerkingenieuren die Funktionsweise von Netzwerken auf niedriger Ebene zu vermitteln

Was langlebige Open-Source-Projekte brauchen

  • Damit ein Open-Source-Projekt wachsen und bestehen kann, müssen Anforderungen aus mehreren Bereichen gemeinsam erfüllt werden
  • Unterstützung für Nutzer

    • Die tatsächlichen Nutzer reichen von erfahrenen Alltagsanwendern bis zu Einsteigern
    • Nutzer brauchen mitunter Hilfe, und die benötigte Unterstützung ist sehr unterschiedlich
  • Unterstützung für Lehrende

    • Experten und erfahrene Nutzer können anderen beibringen, wie sie ein Projekt besser nutzen
    • Auch Lehrende brauchen kontinuierliche Unterstützung
  • Unterstützung für Entwickler

    • Je einfacher es ist, Code beizusteuern oder das Projekt zu verbessern, desto gesünder sind Projekt und Community
  • Unterstützung bei Recht und Buchhaltung

    • In Bereichen wie Immaterialgüterrecht, Reisekostenabrechnung sowie regulatorischen, rechtlichen und finanziellen Fragen ist externe Hilfe nötig
    • Solche Themen lassen sich nicht allein mit GitHub oder GitLab lösen
  • Infrastruktur

    • Es braucht Server, Container und Services, die Online-Präsenz und Zusammenarbeit ermöglichen
    • Ob GitHub oder GitLab ausreichen, hängt von den konkreten Anforderungen des Projekts ab

Je nach Projektgröße unterschiedliche Unterstützungsstrukturen

  • Diese fünf Bereiche entsprechen nicht exakt einer Maslow-artigen Bedürfnishierarchie für Open Source, haben aber eine ähnliche Struktur
  • Die Grenzen zwischen Nutzern, Lehrenden und Entwicklern können fließend sein
    • Im Allgemeinen sind Nutzer und Lehrende auf die Ergebnisse angewiesen, die Entwickler schaffen
    • Für das Gesamtprojekt braucht es eine robuste Infrastruktur, damit alle zusammenarbeiten können
  • Nicht jedes Projekt braucht dasselbe Unterstützungsmodell
    • Eine kleine, zweckgebundene Bibliothek für Bildverarbeitung braucht möglicherweise nur Infrastruktur und Entwickler
    • In diesem Fall besteht die Nutzer-Community wahrscheinlich ebenfalls aus anderen Entwicklern, und GitHub oder GitLab können ausreichen
    • Eine große Bildbearbeitungsanwendung mit vielen Funktionen kann Anforderungen in allen fünf Bereichen sowie ein tragfähiges Geschäftsmodell benötigen

Das Betriebsmodell von Wireshark und der Wechsel zur Foundation

  • Wireshark ist eher ein Projekt in der Größenordnung einer großen Anwendung und braucht deshalb viel Organisation und Unterstützung
  • Bis vor Kurzem wurden die nötigen Ressourcen beschafft, indem Gerald Combs seine Arbeitgeber bat, das Projekt zu hosten
  • CACE Technology, Riverbed und Sysdig stellten Wireshark Ressourcen zur Verfügung, die über GitHub oder GitLab hinausgehen
    • Ein Beispiel dafür ist die auf Protokollanalyse spezialisierte Konferenz SharkFest
  • In den vergangenen Jahren wurde es immer wichtiger, dass das Projekt auf eigenen Beinen steht, und mit Hilfe von Sysdig wechselte es Anfang dieses Jahres zur Wireshark Foundation
  • Der Wechsel zur Foundation schafft die Grundlage dafür, dass Wireshark weiter wachsen und seine Community unterstützen kann

Der Rat, der nach 25 Jahren bleibt

  • Als Gerald Combs vor 25 Jahren diese E-Mail verschickte, hätte er nie gedacht, dass er heute über dieses Projekt bloggen würde
  • Die Erfahrung, Wireshark zu unterstützen und zu betreuen, bescherte ihm eine großartige Karriere und die Möglichkeit, außergewöhnliche Menschen kennenzulernen und mit ihnen zu arbeiten
  • Seine Botschaft lautet: Wenn man ein Open-Source-Projekt starten möchte, sollte man nicht zögern
  • Wichtig ist, Menschen zu ermöglichen, die wertvollen Einsichten ihrer Community zu teilen
  • Wenn man keine Angst davor hat, etwas Neues zu beginnen, weiß man nie, wo man in 25 Jahren ankommen wird

1 Kommentare

 
GN⁺ 2023-07-16
Hacker-News-Kommentare
  • Wireshark ist so ein Werkzeug wie der sprichwörtliche Hammer, durch den jedes Networking-Problem wie ein Nagel aussieht.
    Selbst wenn es spezialisiertere Tools gibt, kann man mit Wireshark meistens doch die Ursache herausfinden.
    Es überrascht mich immer noch, wie viele Leute sich Netzwerkexperten nennen, ohne Wireshark je benutzt oder verstanden zu haben; dabei ist es möglicherweise das wichtigste Werkzeug, um zu verstehen, was in einem realen Netzwerk tatsächlich passiert.
    Erst gestern habe ich das merkwürdige Verhalten eines aktualisierten Asterisk/FreePBX-Systems per Packet Capture nachverfolgt; ohne das hätte ich wohl tagelang nur geraten, während ich so durch Sicht auf das Geschehen im Netzwerk das Problem sofort eingrenzen konnte.

    • Es ist so etwas wie ein Debugger für Netzwerke, und überraschend viele Programmierer können nicht einmal mit einem Debugger umgehen.
    • Ich frage mich, ob es gutes Material gibt, um Wireshark wirklich zu verstehen.
      Ich bin kein Netzwerkexperte, habe es aber gelegentlich bei verwandten Aufgaben benutzt, und man spürt seine Stärke; ohne ein sehr kleines, konkretes Problem wirkt es beim ersten Zugang allerdings überwältigend.
      Ich frage mich auch, ob es eher so ein Tool ist, das man immer dann lernt, wenn man es gerade braucht.
    • Wenn du Zeit hast, wäre es großartig, wenn du teilen könntest, was das Problem mit Asterisk/FreePBX war und wie du es mit einem Packet Capture gelöst hast.
      Das wäre wahrscheinlich auch ein sehr interessanter Blogpost.
    • Wireshark hat mir auch außerhalb so konkreter und hardcore Bereiche wie Networking sehr geholfen.
      Um 2013 musste ich bei Amazon innerhalb einer Woche eine Legacy-Spring/Java-App bzw. einen Service als Node.js-Proof-of-Concept nachbauen, wobei Service-zu-Service-Authentifizierung und Tibco-Messaging miteinander verflochten waren.
      Ich konnte keine öffentliche Tibco-Client-Implementierung finden, und wegen des Führungsprinzips der Sparsamkeit war es fast unmöglich, an die offizielle Spezifikation zu kommen; ich brauchte aber nur einige Details der Paketstruktur einiger Requests.
      Welches Tool mich am Ende gerettet hat, kannst du dir denken, und selbst der damalige Principal Engineer war überrascht, dass es so ein Werkzeug überhaupt gibt.
  • 1983 arbeitete ich bei einem Rüstungsunternehmen im Silicon Valley, als Ethernet noch dickes Koaxialkabel und Vampire Taps nutzte.
    Wir bauten ein Ethernet-Bridge-Produkt, das DECnet-LANs von DSCS-Bodenstationen (Defense Satellite Communications System) weltweit über verschlüsselte 9600-bps-Leitungen verband, und ich schrieb als Teil des Codes einen Packet Dumper, der die Ethernet-Karte in den Promiscuous Mode versetzte.
    Es gab keinen Interpreter wie Wireshark, aber allein rohe Pakete hexadezimal auf ein Terminal dumpen zu können, war ein enormer Vorteil beim Netzwerk-Debugging.
    Wenn ich heute ein neues System installiere, gehört Wireshark zu den ersten Tools, die ich installiere.

    • Ich frage mich, wie Ethernet von dicken Kabeln und Vampire Taps zu RJ45 übergegangen ist.
      Ich weiß auch nicht, ob es damals und heute exakt dasselbe Protokoll ist oder ob „Protokoll“ dafür überhaupt der richtige Ausdruck ist.
      Das gibt mir das Gefühl, dass ich tiefer in Networking einsteigen sollte.
  • Ich bin die Person, die Wireshark gemacht hat.
    Die vielen warmen Worte und Erinnerungen von allen haben mir gleich am Morgen gute Laune gemacht.

    • Ich habe mit Wireshark über Jahre viele Probleme gelöst, benutze es heute aber kaum noch, weil es bei den Datentransferraten, die man inzwischen auf Servern oft sieht, nicht mehr mithalten zu können scheint.
      Die Analyse wirkt Single-Threaded und ohne Caching, und selbst ein Capture von nur ein paar GB – also nur einige Sekunden auf einem 10-Gbps-Link – bringt es schon an seine Grenzen.
  • Es war von Anfang an ein unverzichtbares Werkzeug in meiner Arbeit.
    tcpdump war auch gut, aber dass man einfach rechts auf ein Paket klicken und follow TCP stream auswählen konnte, um in einer Sekunde die gesamte Unterhaltung zu sehen, war ein echter Gamechanger.
    „right click->filter out this stream“ genauso, und weil Ethereal/Wireshark tcpdump-Speicherdateien lesen konnte, konnte man sich per ssh auf einen entfernten Server einloggen, dort tcpdump laufen lassen und dann auf dem Client mit Wireshark beide Netzwerkströme prüfen.
    Verdächtiges ISP-NAT war sofort sichtbar, und auch falsch konfigurierte MPLS-Netze konnte man mit Belegen nachweisen, sodass das Routing-Team nicht einfach nur sagen konnte: „Bei uns sieht alles gut aus.“
    Eine Sache im Artikel würde ich aber korrigieren: Ethereal war nicht der erste kostenlose GUI-Netzwerk-Paketanalysator; schon zu Windows-NT-Zeiten gab es Tools wie Microsofts netmon.

    • Das Tool hieß Network Monitor, kurz netmon, und intern auch Bloodhound.
      Es gab sogar eine dokumentierte API, und obwohl der Support-Status unklar war, ließ sie sich leicht anbinden, sodass ich vor Ethereal einmal einen tcpdump-Wrapper darauf aufgebaut habe.
      Mit dem „Next-Generation“-TCP-Stack von Longhorn/Vista wurden diese API und netmon obsolet.
      Danach kam Microsoft Message Analyzer, der auf ETW basierte, sowohl Netzwerkdaten als auch andere ETW-Traces analysieren konnte und mit einer unterstützten DSL beliebige Protokoll-Handler definieren ließ.
      Man konnte ihn sogar Logs parsen und Daten filtern bzw. analysieren lassen; vielleicht war er zu leistungsfähig und zu nützlich für Windows-Entwickler, denn Microsoft hat ihn am Ende eingestellt.
    • Wenn es nur unter Windows lief, ist fraglich, ob es wirklich kostenlos war.
      Letztlich war es ein Tool, das in einem Betriebssystem enthalten war, für das man bezahlt hatte.
  • Wireshark ist in der Elektronik wie ein Multimeter.
    Die Welt funktioniert auch ohne, aber wenn etwas kaputtgeht und man keines hat, ist man verloren.

    • Mit Wireshark und tcpdump habe ich im Campus-Netzwerk wirklich viele merkwürdige Probleme gefunden.
  • Das Tool, das damals noch Ethereal hieß, war in meinem Job als Senior Tech Support für die WebLogic-Produktlinie unglaublich wertvoll.
    Ich konnte es direkt beim Kunden ausführen lassen und dann Antworten geben wie: „Alle Verbindungen in einem großen JDBC-Connection-Pool wurden stillschweigend von einer dem Kunden unbekannten Netzwerk-Firewall getrennt; deshalb verzögert sich die erste Transaktion am Morgen um eine Stunde. Alle Verbindungen im Pool mussten erst timeouten und zurückgesetzt werden.“
    Es half auch dabei, Probleme zu finden wie: „Internet Explorer bricht die TCP-Verbindung für bereits gecachte Ressourcen ab und verursacht dadurch einen nicht standardkonformen Fehler auf Netzwerkebene in einer WebLogic-Installation auf einem IBM-Server.“
    Dieser Job hat mich die Hälfte meiner Haare gekostet; ohne Ethereal hätte ich vermutlich alle und dazu sehr viel mehr von meinem Verstand verloren.

  • Ich habe über mehr als zehn Jahre täglich Wireshark benutzt, während ich Load Balancer in Kundennetzwerken unterstützt habe.
    pcap und Core Dumps waren die interessantesten Daten, mit denen man arbeiten konnte, und ich habe libpcap gelernt und schließlich sogar meine eigene Version gebaut, wodurch ich vom Produktsupport in die Entwicklung wechseln konnte.
    Ich kam als Support Engineer hinein und ging als Principal Software Engineer wieder heraus, der den Code selbst schrieb, den er vorher unterstützt hatte; dank Wireshark und gdb konnte ich mir ohne Studium wirklich sehr viel selbst beibringen.

    • Ich nenne das gern das Problem „Ich weiß nicht, was schiefläuft, also muss es bestimmt das Netzwerk sein“.
  • Ein wirklich großartiges Tool und vollständig kostenlos.
    Ich benutze es oft, um Netzwerkprobleme zu debuggen und zu sehen, womit Geräte verbunden sind, und wie schon jemand sagte: Es ist wie ein Multimeter für Netzwerke.
    Ich habe es auch benutzt, um zu lernen, wie die Verbindungsherstellung mit WiFi-Zugangspunkten funktioniert; man kann sowohl Beacon-Pakete als auch WiFi-Pakete sehen.

    • Ich habe Ethereal sehr früh übernommen und benutzt.
      Unser Team hatte einen Sniffer-PC, aber oft war er von jemand anderem belegt oder die Protokoll-Interpretation war nicht ausreichend.
  • Wirklich herausragende Software.
    Vor 20 Jahren steckte ich beim Kunden vor Ort fest, während wir ein Interoperabilitätsproblem mit unserem Netzwerkgerät suchten, und ich erinnere mich, dass es ziemlich einfach war, in zwei Wochen ein Protokoll-Analyzer-Plugin zu schreiben, das uns half.
    Am Ende war es unser Bug, verursacht dadurch, dass wir bei der Umstellung der Implementierung von select() auf epoll() die Anwendung der Bitmaske für select() nicht entfernt hatten.
    Im Kern war es ein 1-Bit-Speicherkorruptionsfehler, und die Folgen konnten sich erst sehr spät zeigen.
    Seltsamerweise bleiben solche Erinnerungen lange haften.

    • Ich beneide die Fähigkeit, an so etwas Freude zu finden.
      Früh in meiner Karriere durfte ich in einer gesicherten Einrichtung Wireshark nicht installieren und musste mich eine Woche lang nur mit tcpdump durch einen nervigen Netzwerk-Bug kämpfen.
      Am Ende war es eine Kombination aus dem schlimmsten Bug der Standardbibliothek eines zehn Jahre alten GNAT-Systems (Ada-Bibliothek) und einer fehlerhaften ARP-Konfiguration; dieser Bibliotheksbug war in Wahrheit schon sieben Jahre zuvor behoben worden.
      Diese eine Woche war so furchtbar, dass sie stark dazu beigetragen hat, dass ich an einen besseren Ort gewechselt bin; um so etwas zu genießen, braucht man einen besonderen Charakter.
  • Menschen stellen sich oft vor, die Welt zu verändern, aber es gibt auch Leute, die die Welt tatsächlich verändern.