abonneren

Netwerkproblemen oplossen met Wireshark: Deel 1

Netwerkproblemen oplossen
Het is erg frustrerend wanneer je thuisnetwerk plots niet meer functioneert zoals het hoort. In ernstige gevallen is een grondige analyse van het netwerkverkeer nodig, bij voorkeur met een netwerksniffer inclusief protocolanalyzer zoals het gratis Wireshark.

De installatie van Wireshark (hier te downloaden) is behoorlijk rechttoe rechtaan, waarbij je gewoon de standaardopties geselecteerd laat. Houd er wel rekening mee dat je (onder Windows) ook WinPcap mee moet te installeren: dat is een library inclusief driver die het opvangen van live dataverkeer mogelijk maakt. In hoeverre dat ook voor je draadloze netwerkverkeer zal lukken, hangt af van je netwerkadapter. De kans is reëel dat je voor een blik op alle details, inclusief wlan-metadata zoals de signaalsterkte, een zogenoemde AirPcap-adapter moet aanschaffen.

Bij het opstarten van Wireshark krijg je een overzicht van de gedetecteerde netwerkinterfaces. Dubbelklik op een adapter om de bijhorende data op te vangen. Controleer eerst even via Capture / Options dat er een vinkje staat bij Enable promiscuous mode on all interfaces. Deze modus maakt het in principe mogelijk om alle binnenkomende frames te verwerken en niet alleen de frames die specifiek aan die netwerkadapter zijn geadresseerd. Let wel: de kans is groot dat je apparaat via een switch met je netwerk is verbonden en dan krijg je van de andere machines doorgaans alleen het broadcast- en multicast-verkeer te zien.

Baseline aanmaken

Veel gebruikers gaan pas met Wireshark aan de slag zodra ze problemen ondervinden met hun netwerk. Toch is het een goed idee om juist voordat het misgaat een aantal zogenoemde baselines te creëren. Dat zijn traceerbestanden die je, voor cruciale toestellen als servers, vastlegt op het moment dat de netwerkcommunicatie nog probleemloos verliep. Zo’n traceerbestand kun je dan zien als een ijkpunt of graadmeter waaraan je (het traceerbestand van) de probleemsituatie kunt toetsen.

Door beide traceerbestanden met elkaar te vergelijken wordt het al een stuk makkelijker om het ‘normale’ netwerkverkeer weg te filteren, zodat problematisch of verdacht verkeer automatisch op de voorgrond komt.

Je doet er zelfs goed aan verschillende traceerbestanden voor dezelfde machine te creëren, bijvoorbeeld tijdens de opstartfase, gedurende rustpauzes (zodat je weet welke hosts of protocollen op zo’n moment nog worden aangesproken), tijdens het aan- en afmelden bij het besturingssysteem etc. Traceerbestanden combineren kan via File / Merge, waarbij beide bestanden standaard chronologisch worden samengevoegd.

Netwerkproblemen oplossen

Capture-filters

Wanneer je een traceersessie start in Wireshark zul je vaak ondervinden dat er een ontstellende hoeveelheid netwerkdata op je afkomt. Is het je bedoeling die informatie naderhand in een traceerbestand (pcapng) te bewaren en wil je meer behapbare bestanden, open dan eerst Capture / Options, ga naar het tabblad Output, selecteer de optie Create a new file automatically after en vul het gewenste criterium in (bijvoorbeeld 30 seconds). Via Use a ring buffer with x files bepaal je het maximaal aantal bewaarde bestanden.

Je kunt het aantal opgevangen data ook ‘aan de bron’ limiteren, door gebruik te maken van capture-filters (cfilters). Je vindt er een hele reeks via Capture / Options, waarbij je op het groene vakje klikt bij Capture filter for selected interfaces en Manage Capture Filters kiest.

Eén voorbeeld: met port 80 or port 443 licht je er alleen tcp/udp-verkeer op poort 80 of op poort 443 uit. Via het plus-knopje kun je ook eigen filters toevoegen. We willen niet teveel de nadruk leggen op capture-filters: die zorgen er immers voor dat bepaald netwerkverkeer wordt uitgesloten en je weet maar nooit dat ook die datapakketten relevant kunnen zijn.

Capture-filters zijn vooral zinvol wanneer blijkt dat Wireshark het netwerkverkeer niet aan kan. In dit geval zul je vaak meldingen zien opduiken als Previous Segment not Captured of TCP ACKed Lost Segment, en zul je in de statusregel een bepaald percentage ‘dropped packets’ zien verschijnen.

Netwerkproblemen oplossen

Werken met dfilters

Een betere aanpak is het inzetten van weergavefilters (dfilters), waarbij alle pakketten weliswaar worden gelogd, maar niet allemaal worden weergegeven door Wireshark. In de statusbalk lees je telkens af hoeveel (%) pakketten er worden getoond. Deze filters kun je op diverse manieren instellen.

Een snelle methode is het zelf invullen van zo’n filter in het veld boven het venster met de getoonde datapakketten. De eenvoudigste filters zijn gebaseerd op een protocol (zoals arp, ip, ipv6, tcp) of op een applicatie (zoals dns, http, icmp), maar je kunt ook gebruik maken van vergelijkingsoperatoren, zoals:

ip.addr == 192.168.0.0/24, http contains "GET", tcp.srcport != 80, http.response.code == 404

Rechts van het filterveld staat de knop Expression: die helpt je bij het samenstellen van complexere filterregels. Je kunt eigen filters toevoegen door het blauwe knopje uiterst links in te drukken en Manage display filters te selecteren, waarna je via het plusknopje het gewenste filter toevoegt.

Er is nog een handig alternatief: wanneer je namelijk met de rechtermuisknop op een item in een kolom van het venster met de pakketlijst of pakketdetails klikt, kun je op basis van dit item automatisch een weergavefilter maken. Klik je bijvoorbeeld op een ip-adres in de kolom Destination en kies je Apply as filter / Not selected, dan wordt het filter

!(ip.dest == <ip-adres>)

ingevuld en uitgevoerd. Of je kiest Prepare as Filter: in dit geval moet je het filter zelf nog activeren met Apply. Via de operatoren and, or, and not, or not kun je een al bestaand filter verder uitbouwen.

Wil je bepaalde data niet meteen verbergen, maar wel snel kunnen sorteren, klik dan met de rechtermuisknop op het gewenste criterium (bijvoorbeeld Host: www.zdnet.be) in het venster met pakketdetails en klik op de optie Apply as Column: dat voegt een nieuwe kolom (Host) toe waarop je met één muisklik kunt sorteren.

Netwerkproblemen oplossen

Je hebt nu voldoende informatie in handen om op een efficiënte manier met Wireshark om te gaan. In een volgend artikel focussen we ons op hoe je met behulp van Wireshark enkele praktijkproblemen aanpakt.

Geschreven door: Toon van Daele op

Category: Workshop, Netwerk

Tags: netwerk, internet, wireshark