Netwerkverkeer monitoren: maak je eigen capture device

Noud van Kruysbergen
0

Inhoudsopgave

Bij het opsporen van problemen binnen je netwerk moet je eerst in het dataverkeer gaan kijken waar de bron zich bevindt. Je kunt hierbij je eigen capture device maken voor het netwerkverkeer monitoren. We laten drie sniffing-technieken zien die weinig kosten.

Als je niet voor een professioneel netwerk hoeft te zorgen, heb je ook geen professioneel budget, maar soms toch wel een professioneel probleem: het dataverkeer van een bepaald apparaat in het netwerk moet worden geïsoleerd en gemonitord. Als het alleen gaat om data van en naar internet, dan volstaat een opname- of registratiefunctie in de router. Die zijn bijvoorbeeld beschikbaar in de populaire Fritz­boxen of in de opensource-­router Turris Omnia. Maar dat is slechts beperkt bruikbaar, want ten eerste vang je daar geen puur intern verkeer mee af zoals het dataverkeer tussen je tv-toestel als streamingclient en de netwerkopslag (NAS) met de videocollectie. En ten tweede wordt een router bij snel dataverkeer ook snel overbelast in termen van rekenkracht en geheugen, waardoor hij pakketten verliest en de opname onvolledig is.

Het is daarom beter om een pc of laptop als opnameapparaat aan te sluiten tussen het apparaat en het netwerk. Dat kan voor een bescheiden kostenpost van maximaal 50 euro op drie manieren: met een soft-bridge, met een eenvoudige, passieve ethernet-TAP of met een configureerbare switch met mirror-functie. Hieronder beschrijven we hoe je die kunt gebruiken en wat je daarbij kunt verwachten. Beheerders binnen bedrijven hebben meer mogelijkheden, die we vanaf pagina 118 beschrijven. Daar staan ook wat basisprincipes en tips om je te helpen bij het kiezen van de meest geschikte methode voor jouw situatie.

netwerkverkeer monitoren TAP switch hardware

Hardware-oplossingen: een passieve TAP als doe-het-zelf printplaatje of als kant-en-klaar apparaat (links), een configureerbare Gigabit-switch (midden) en een professionele analyzer (rechts).

Als je netwerkverkeer monitoren wilt van een apparaat dat alleen een wifi-interface heeft en geen netwerkpoort, dan is een omweg noodzakelijk: je moet het apparaat dan verbinden met een daarvoor gereserveerd accesspoint en de LAN-poort van dat accesspoint monitoren, die verbonden is met de rest van het netwerk. Het accesspoint is in wezen een transparante omvormer tussen het wifinetwerk en het LAN (bridge). Maar omdat een accesspoint meestal zelf ook actief is binnen het netwerk, moet een capture-filter de pakketten daarvan tijdens het opnemen eruit filteren aan de hand van het MAC-adres. Het data verkeer van het accesspoint zelf is meestal namelijk niet interessant. Het MAC-adres (Media Access Control) is een tekenreeks in de vorm van 40:3F:8C:11:B5:6D en is meestal te vinden in de clientlijst van je router. Soms moet de kolom met die informatie eerst worden aangevinkt.

Voor wat licht snuffelwerk is een switch met mirror-functie momenteel de meest aantrekkelijke variant. Die kan het volledige dataverkeer van een Fast-Ethernet-­verbinding (100 Mbit/s full duplex, oftewel 200 Mbit/s voor beide richtingen samen) zonder verlies doorlussen naar een enkele Gigabit-Ethernet-poort (1000 Mbit/s), waar de diagnostische pc dat kan opnemen. Zelfs bij de Gigabit-ethernetverbindingen krijg je meestal volledige opnames, maar niet ­altijd: een server of NAS kan grote bestanden vaak versturen met de volle 1000 MBit/s. Bij TCP wordt een stroom van bevestigingen (ACKnowledges) toegevoegd, wat ook weer enkele MBit/s toevoegt. Daardoor komt de hele datastroom boven de 1 Gbit/s uit en dus in een bereik waar individuele pakketten niet meer worden geregistreerd, al is het maar voor een fractie van een seconde.

Verliesvrije Gigabit-opnames via de mirror-functie moeten de komende jaren betaalbaar worden wanneer kleine, configureerbare switches voor sneller ­NBase-T (ethernet over koperkabel met 2,5 en 5 Gbit/s) minder duur worden. Daardoor kan al het dataverkeer op een Gigabit-­verbinding volledig over een 2,5Gbit/s-­verbinding gerouteerd worden. Tot die tijd moet je op de mirror-switch de gemonitorde poort afremmen – of er rekening mee houden dat je opname cruciale pakketten kan missen.

Als je het netwerkverkeer op volledige Gigabit-snelheid wilt onderzoeken, moet je eerst een soft-bridge op een pc instellen of investeren in een speciale analyzer. Dat laatste is erg duur, maar heeft voordelen die verderop worden toegelicht.

Meten beïnvloedt meting

De sniffing-component is wel een extra onderdeel van de te bewaken verbinding: de switch en de dedicated analyzer verhogen de latentie (pakketsnelheid) bij netwerkverkeer monitoren minimaal, maar een soft-bridge iets meer – zeker als daar usb-adapters bij gebruikt worden. Afhankelijk van het besturingssysteem en het type interface heb je bij een soft-bridge een extra round-trip-time (heen en weer) van 1,3 tot 1,6 milliseconden. Die hogere latentie kan invloed hebben op timing-afhankelijke netwerkproblemen, die erger kunnen worden of juist verdwijnen.

Het goedkope en passieve afvangen met een TAP (Test Access Port) heeft geen invloed op de snelheid, maar haalt wel een beetje van het signaalniveau van de netwerklijn af. Dat kan leiden tot licht verhoogde fout­percentages bij netwerkverkeer monitoren, die de doorvoersnelheid kunnen drukken. Maar omdat dergelijke goedkope TAP’s de verbinding sowieso al vertragen tot Fast Ethernet (100 Mbit/s), is dat niet van belang. Hoe het passief op­nemen met Gigabit Ethernet werkt, bespreken we in een volgend artikel in c’t magazine.

In dit artikel gebruiken we verder de popu­laire software Wireshark als voorbeeld. Wat we daarbij zien en opmerken geldt echter ook voor andere tools zoals Micro­softs Message Analyzer.

De live analysetool ntopng komt uitgebreid aan bod in c't mei/2020

Soft-bridge

Een soft-bridge kan op bijna elke pc ingesteld worden. Windows en macOS bieden daar een functie voor in hun netwerkconfiguratie. Bij Linux moet je daar afhankelijk van de distributie wat meer of minder voor doen, maar daarover zo meer. Zelfs als je geen bridge wilt gebruiken voor netwerkverkeer monitoren, moet je de volgende alinea’s toch even doorlezen: het configureren en instellen van de hardware bij TAP’s en mirror-switches is vergelijkbaar.

Om comfortabel te kunnen sniffen, heeft een pc drie netwerkinterfaces nodig: één voor de bediening op afstand en twee om binnen de te bewaken verbinding ingevoegd te kunnen worden. Een PCI-Express-kaart met twee Gigabit-poorten is al te koop voor rond de 30 euro, zoals de LogiLink PC0075. Als je zonder remote bediening kunt, kan de bridge gemaakt worden met de onboard LAN-interface van de pc en een 1-poorts PCIe-kaart (kost minder dan 10 euro).

Afhankelijk van de interfacemogelijkheden heeft een laptop één of twee USB 3.0-netwerkadapters nodig (voor minder dan 20 euro). Sluit de adapters altijd rechtstreeks aan en nooit via een usb-hub, omdat dat verdere vertraging veroorzaakt en mogelijk niet genoeg stroom levert voor twee netwerkadapters. Als de hosts en switches in je netwerk zijn geconfigureerd voor het gebruik van jumboframes – ethernet­pakketten van meer dan 1500 bytes groot – activeer dit dan met de juiste grootte ook bij de adapterinstellingen.

Windows-bridge maken

Een bridge is bij Windows snel aan te maken via ‘Netwerk en internet’. Klik op ‘Adapteropties wijzigen’, selecteer de bridge-componenten met Ctrl-klik, rechtsklik erop en kies ‘Verbindingsbrug maken’.

Klik dan met de rechtermuisknop op de nieuwe netwerkbrug om de eigenschappen ervan te wijzigen. Standaard behandelt Windows deze als een gewone interface en wil er dus over communiceren. Deactiveer daarom voor netwerkverkeer monitoren alle onderdelen behalve ‘Microsoft MAC-brug’.

Windows verbindingsbrug maken netwerk monitoren

Bij de netwerkinstellingen van Windows combineer je twee interfaces tot een soft-bridge via de rechter muisknop. Schakel bij de eigenschappen van de nieuwe interface alles uit wat zou kunnen interfereren.

De bridge voor netwerkverkeer monitoren is daarmee compleet. Op een laptop met een Core i5-8265U-processor (Asus Vivobook 14, model F412FA) en twee USB 3.0-adapters met Realtek-chips (RTL8153) leverde dat de volledige Gigabit-doorvoersnelheid op (ongeveer 950 Mbit/s met de standaard MTU) in één richting bij een lage cpu-belasting (12 tot 15 procent, maximaal 80 procent op één core). Het systeem heeft op zich dus genoeg reserves voor gefilterde capturing.

Sinds versie 3.0 heeft Wireshark voor Windows de nieuwe capture-tool Npcap. Helaas ziet die geen dataverkeer via de soft-bridge of de onderdelen ervan. Verwijder Npcap en download de oude capture-­driver Winpcap. Daarmee kun je dan rechtstreeks een bridge-interface gaan afluisteren.

Bridge op macOS

Op macOS is het instellen van een bridge bijna net zo eenvoudig als bij Windows: open bij Systeemvoorkeuren de instellingen voor Netwerk. Daar maak je een bridge door te klikken op het kleine tandwieltje en ‘Beheer virtuele interface…’. Klik op het plus­teken en ‘Nieuwe Brug…’, waarmee je de bridge een naam kunt geven en de te gebruiken interfaces kunt selecteren.

Schakel op het tabblad ‘TCP/IP’ van de eigenschappen van de bridge IPv4 uit en zet IPv6 op ‘Alleen link-local’, zodat de Mac de interface zelf niet gebruikt. Op het tabblad Hardware” kun je de MTU voor ­Jumbo Frames wijzigen door bij Configureer over te schakelen naar ‘Handmatig’ – als de hardware en het macOS-stuurprogramma dat ondersteunen.

Een MacBook Pro uit 2015 met macOS Catalina (10.15.2) en twee USB 3.0-ethernetadapters (RTL8153) bood geen optimale prestaties: de iperf3 TCP-doorvoersnelheid die we daarbij maten bleef met een maximum van 343 Mbit/s ver onder de Gigabit-­limiet, bij een cpu-belasting van ongeveer 40 procent. Dat is op zich wel ruim voldoende voor het analyseren van Fast-Ethernet-­verbindingen.

MacBook Pro 2015 Bridge maken macOS

Een MacBook Pro 2015 met twee usb-adapters had 40 procent cpu-belasting bij netwerkverkeer monitoren van Gigabit-ethernet.

Bridge onder Linux

Aangezien er te veel Linux-distributies zijn met verschillende, en meestal meerdere mogelijke netwerkconfiguratietools, kunnen we hier alleen de algemene manier beschrijven en verwijzen we naar de documentatie van het door jou gewenste systeem.

De tool brctl, die nodig is voor het opzetten van een soft-bridge onder Linux, is opgenomen in het pakket bridge-utils. Dat kun je met de pakketmanager installeren als het ontbreekt. Daarna zijn er op de commandline slechts vier commando’s met root-rechten nodig, die in een shell-script te zetten zijn:

brctl addbr br0
sysctl -w net.ipv6.conf.br0.accept_ra=0
brctl addif br0 eth1 eth2
ifconfig br0 promisc up

Korte toelichting: maak de bridge, accepteer geen globaal IPv6-adres van de router, voeg sniffer-interfaces toe en activeer de bridge.

Vervang in het addif-commando de interfacenamen eth1 en eth2 door de namen die op je systeem gelden en configureer de netwerkmanager van je distributie zodat die de bridge en zijn onderdelen met rust laat. Als er jumboframes worden gebruikt, gebruik dan nog eens drie commando’s om de MTU-instelling van elke interface aan te passen aan de maximale grootte, hier bijvoorbeeld 9014 bytes: ifconfig <interface naam> mtu 9014.

Op de bovengenoemde Windows-­laptop leverde de Linux-bridge onder Kubuntu 19.10 ook de volledige Gigabit-doorvoer (in één richting), met zelfs een iets lagere cpu-belasting dan onder Windows.

Om als gewone gebruiker met Wire­shark aan de slag te kunnen, moet je wellicht het GUI-menu herconfigureren om de tool als een andere gebruiker (root) uit te voeren.

Passieve TAP

Een eenvoudige TAP (Test Access Port) koppelt twee ethernetpoorten op de analyse-­pc aan de datastromen voor de binnenkomende en uitgaande richting van de te bewaken ethernetverbinding. Het luistert voor netwerkverkeer monitoren dus puur passief mee.

Onder de naam Throwing Star LAN Tap Kit vind je bij Great Scott Gadgets voor nog geen 20 euro een leeg board voor doe-het-zelf-montage, om wat componenten uit je elektronicadoos op te monteren (zoals vier RJ45-aansluitingen en twee condensa­toren). Een geassembleerde versie in een behuizing kost 35 euro, wat meer is dan een kleine, configureerbare Gigabit-switch kost (zie verderop). Andere fabrikanten bieden passieve TAP’s ook tegen vergelijkbare prijzen aan.

De set-up is simpel: de TAP komt in de lijn te zitten die bewaakt moet worden. Sluit de twee sniffer-poorten van de dia­gnostische pc daar op aan. Zodra de poorten actief zijn, wat af en toe even duurt, kun je bij Windows en Linux met Wireshark de beide poorten tegelijk opnemen door ze te selecteren met een Ctrl+klik.

TAP netwerkverkeer LAN zelfbouw kit

Een zelfbouw TAP heb je al voor circa 20 euro.

Netwerk monitoren praktijk

Het type netwerkkaart is van cruciaal belang: het is het beste om PCIe-adapters van hetzelfde type te gebruiken voor netwerkverkeer monitoren, zodat de op te nemen frames zo kort mogelijk in het pc-­geheugen verblijven en zo gelijk mogelijk lopen. Toch zal er wel verwarring ontstaan, want bij pc-interne, interrupt-gestuurde verwerking is het ene pad onvermijdelijk en ongepland soms sneller dan een ander pad.

We hebben dat effect bij ICMP-pakketten kunnen waarnemen: Wireshark liet op de Windows-laptop met 2 usb-adapters bij ongeveer een derde van 100 pings het antwoord vóór de betreffende aanvraag zien. Op een oudere laptop met een LAN-poort en een usb-adapter was de foutmarge ongeveer de helft. Voorafgaand aan het analyseren moet je de opname dan ook eerst met de Opdrachtprompt-tool reordercap corrigeren.

Mirror-switch

Een compacte configureerbare Gigabit-­switch is er al voor zo’n 30 euro, bijvoorbeeld de TP-Link TL-SG108E v4, die we hier gebruiken voor de configuratie. Die kleine investering loont zelfs als het te bekijken netwerk al een switch met een mirror-­functie heeft waarmee je het netwerkverkeer monitoren kunt. Bij een hoge netwerkbelasting zou die mirror-pakketten kunnen missen, die je waarschijnlijk wel registreert als je daar een afzonderlijk apparaat voor gebruikt.

Laat het opschrift ‘Unmanaged Pro Switch’ je niet afleiden. De TL-SG108E kan via een browser geconfigureerd worden, in het kort als volgt: vind het ip-adres van de switch in het overzicht van de router, update de firmware naar de laatste versie, schakel DHCP uit, stel het ip-adres in op 192.0.2.101, de standaard gateway op 0.0.0.0, en poort 1 en 2 tot 100 MBit/s Full Duplex. Zet de mirror-functie aan, zet de mirroring-poort op 3 en de mirrored-poort op 1 met Ingress en Egress actief.

mirror functie switch tlsg 108e poort Ingress Egress

Om al het dataverkeer op poort 1 door te sluizen, moet de mirror-functie op de switch worden geactiveerd voor Ingress (binnenkomend) en Egress (uitgaand). Data van de tweede poort van de geobserveerde verbinding (hier poort 2) zijn niet nodig.

De switch is dan zodanig geconfigureerd dat hij al het dataverkeer op poort 1 afluistert en op poort 3 naar de diagnos­tische pc doorsluist, met 100 Mbit/s voor elke richting. Als je een Gigabit-verbinding moet debuggen, zet je de poorten 1 en 2 op 1000 Mbit/s Full Duplex. Dan zullen er bij een hoge netwerkbelasting echter onvermijdelijk datapakketten verloren gaan.
Waar je bij zakelijk switches, opnames in VLAN’s en capturing via mirror-poorten (SPAN) op moet letten, behandelen we in meer detail in het mei-nummer.

Meer over netwerkdiagnose en mirror-poorten lees je in c't mei/2020

STP uitschakelen

Als je een andere switch gebruikt en die het Spanning Tree Protocol ondersteunt, schakel dan STP, RSTP en MSTP uit. Bij bedrijfsnetwerken reageren switches vaak met het deactiveren van poorten voor reguliere hosts (edge-ports), als ze daar STP-pakketten op ontvangen (BPDU Guard). Ook ­managementfuncties als LLDP, CDP, RMON en SNMP kunnen het geobserveerde netwerk verstoren en moeten uitgeschakeld worden.

Helaas is de configuratie-interface van de TL-SG108E niet naar een eigen VLAN te verbannen: hij is via IPv4 ook actief binnen het bewaakte netwerk. Als tussenoplossing kun je hem op het hierboven voorgestelde IPv4-adres instellen. Dat behoort tot een voor documentatiedoeleinden gereserveerd bereik en vermijdt zo botsingen met de voor lokale LAN’s bestemde IPv4-adressen (zoals 192.168.0.0/16, 172.16.0.0/12 en 10.0.0.0/8) en het automatische ip-bereik (169.254.0.0/16).

Schakel bij de interface-eigenschappen van de sniffing-poort op de diagnose-pc alle protocollen uit behalve die van de capture-­driver. Schakel bij de uitgebreide eigenschappen ook alle offloading-functies uit, bijvoorbeeld voor ARP-behandeling, checksum-berekening en TCP-recombinatie (Large Receive Offload). Alleen dan ziet Wireshark de pakketten zoals ze via het netwerk lopen.

Windows netwerk interface instellingen Npcap Wireshark

Schakel alle protocollen uit behalve de Npcap-drivers. Op die manier komt er geen dataverkeer van Windows zelf in de Wireshark-opname terecht.

De extra latentie door de TLSG108E was duidelijk minder dan een milliseconde. Preciezer is dat met de standaardmiddelen van Linux niet te meten. Omdat de switch met drie bezette poorten maar 1,1 watt aan energie verbruikt, veroorzaakt een langer gebruik ook geen overmatige stroom­kosten.

Professionele middelen

Bij professioneel netwerkbeheer is het gebruik aantrekkelijk van een dedicated analyzer zoals de Allegro Packets Network Multimeter 200. Die werkt autonoom, is met een browser comfortabel via het netwerk te bedienen en kan via twee Gigabit-poorten met de volledige datasnelheid opnemen. Alle mogelijkheden opnoemen zou hier teveel ruimte kosten. Talrijke statistieken voor verschillende netwerklagen (laag 2, 3, 4, 7) zijn met een browser direct te bekijken, voor een nadere analyse van het dataverkeer met Wireshark kun je de opname downloaden.

De gemeten extra latentie van deze netwerkmultimeter viel ruim onder een milliseconde. Het energieverbruik met remote beheer met een optionele USB-LAN-poort en een extra aangesloten usb-ssd voor langere opnamesessies zat met ongeveer 8 watt op het niveau van een zuinige mini-pc.

Allegro Packets Network Multimeter 200

Een professioneel monitoring device kan duizenden euro’s kosten (plus abonnement).

Het nadeel: een dergelijk apparaat kost zelfs in de eenvoudigste versie meerdere duizenden euro’s, met daarbij nog een abonnement voor het onderhoud van de software. Maar beheerders die data over een langere periode moeten vastleggen, hebben dan geen pc nodig die met de hierboven beschreven technieken de opname moet verzorgen.

Ten slotte

Bij packet-sniffers kom je er niet onderuit om een compromis te vinden tussen goedkoop en nauwkeurig. Onze ping-ervaring met een eenvoudige passieve TAP kan dienen als waarschuwing en herinnering: controleer vóór een opname en analyse van interessante live-data of de door jou gekozen opstelling überhaupt wel plausibele resultaten genereert.

(Ernst Ahlers en Noud van Kruysbergen, c’t magazine)

 


Blijf op de hoogte van de nieuwste informatie en tips!
Schrijf je in voor de nieuwsbrief:

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

 

Lees uitgebreide achtergrondinfo op je gemak in c't 04/2024

Meer over

Netwerken

Deel dit artikel

Noud van Kruysbergen
Noud van KruysbergenNoud heeft de 'American Dream' doorlopen van jongste bediende tot hoofdredacteur van c't, waar hij zo veel mogelijk de diepgang, betrouwbaarheid en diversiteit wil bewaken.

Lees ook

Dit is hoe je maandelijks gemakkelijk flink kunt besparen op internet en tv

In dit artikel tonen we je hoe je kunt besparen op internet en tv. Dit kan variëren van het vergelijken van aanbieders tot het aanpassen van je huidig...

Chat GPT gebruiken: dit kun je allemaal doen met de chatbot van OpenAI

OpenAI heeft de ChatGPT-bot ontwikkeld als een taalmodel dat is getraind op een enorme hoeveelheid tekst op het internet. Je kunt ChatGPT gebruiken om...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er