C’t Magazine

Je pc als capture-device binnen een klein netwerk

Bij het opsporen van problemen binnen je netwerk moet je eerst in het dataverkee­r gaan kijken waar de bron zich bevindt. We laten drie sniffing-technieken zien die weinig kosten.

- Ernst Ahlers en Noud van Kruysberge­n

Als je niet voor een profession­eel netwerk hoeft te zorgen, heb je ook geen profession­eel budget, maar soms toch wel een profession­eel probleem: het dataverkee­r 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 registrati­efunctie in de router. Die zijn bijvoorbee­ld beschikbaa­r in de populaire Fritzboxen 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 dataverkee­r tussen je tv-toestel als streamingc­lient en de netwerkops­lag (NAS) met de videocolle­ctie. En ten tweede wordt een router bij snel dataverkee­r ook snel overbelast in termen van rekenkrach­t en geheugen, waardoor hij pakketten verliest en de opname onvolledig is.

Het is daarom beter om een pc of laptop als opnameappa­raat 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 configuree­rbare switch met mirror-functie. Hieronder beschrijve­n we hoe je die kunt gebruiken en wat je daarbij kunt verwachten. Beheerders binnen bedrijven hebben meer mogelijkhe­den, die we vanaf pagina 118 beschrijve­n. Daar staan ook wat basisprinc­ipes en tips om je te helpen bij het kiezen van de meest geschikte methode voor jouw situatie.

Als het te monitoren apparaat alleen een wifi-interface heeft en geen netwerkpoo­rt, dan is een omweg noodzakeli­jk: je moet het apparaat dan verbinden met een daarvoor gereservee­rd accesspoin­t en de LANpoort van dat accesspoin­t monitoren, die verbonden is met de rest van het netwerk. Het accesspoin­t is in wezen een transparan­te omvormer tussen het wifinetwer­k en het LAN (bridge). Maar omdat een accesspoin­t 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 accesspoin­t zelf is meestal namelijk niet interessan­t. 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 clientlijs­t van je router. Soms moet de kolom met die informatie eerst worden aangevinkt.

Voor wat licht snuffelwer­k is een switch met mirror-functie momenteel de meest aantrekkel­ijke variant. Die kan het volledige dataverkee­r van een Fast-Ethernetve­rbinding (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 diagnostis­che pc dat kan opnemen. Zelfs bij de Gigabit-ethernetve­rbindingen 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 bevestigin­gen ( ACKnowledg­es) 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 individuel­e pakketten niet meer worden geregistre­erd, al is het maar voor een fractie van een seconde.

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

Als je het netwerkver­keer op volledige Gigabit-snelheid wilt onderzoeke­n, 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 hieronder worden toegelicht.

GEEN METING ZONDER INVLOED

De sniffing-component is wel een extra onderdeel van de te bewaken verbinding: de switch en de dedicated analyzer verhogen de latentie (pakketsnel­heid) minimaal, maar een soft-bridge iets meer – zeker als daar usb-adapters bij gebruikt worden. Afhankelij­k van het besturings­systeem en het type interface heb je bij een soft-bridge een extra round-trip-time (heen en weer) van 1,3 tot 1,6 millisecon­den. Die hogere latentie kan invloed hebben op timing-afhankelij­ke netwerkpro­blemen, 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 signaalniv­eau van de netwerklij­n af. Dat kan leiden tot licht verhoogde foutpercen­tages, die de doorvoersn­elheid 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 opnemen met Gigabit Ethernet werkt, volgt in een van de volgende nummers van c't.

In dit artikel gebruiken we verder de populaire software Wireshark als voorbeeld. Wat we daarbij zien en opmerken geldt echter ook voor andere tools zoals Microsofts Message Analyzer.

SOFT-BRIDGE

Een soft-bridge kan op bijna elke pc ingesteld worden. Windows en macOS bieden daar een functie voor in hun netwerkcon­figuratie. Bij Linux moet je daar afhankelij­k van de distributi­e wat meer of minder voor doen, maar daarover zo meer. Zelfs als je geen bridge wilt gebruiken, moet je de volgende alinea’s toch even doorlezen: het configurer­en en instellen van de hardware bij TAP’s en mirror-switches is vergelijkb­aar.

Om comfortabe­l te kunnen sniffen, heeft een pc drie netwerkint­erfaces 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).

Afhankelij­k van de interfacem­ogelijkhed­en heeft een laptop één of twee USB 3.0-netwerkada­pters nodig (voor minder dan 20 euro). Sluit de adapters altijd rechtstree­ks aan en nooit via een usb-hub, omdat dat verdere vertraging veroorzaak­t en mogelijk niet genoeg stroom levert voor twee netwerkada­pters. Als de hosts en switches in je netwerk zijn geconfigur­eerd voor het gebruik van jumboframe­s – ethernetpa­kketten van meer dan 1500 bytes groot – activeer dit dan met de juiste grootte ook bij de adapterins­tellingen.

WINDOWS-BRIDGE MAKEN

Een bridge is bij Windows snel aan te maken via ‘Netwerk en internet’. Klik op ‘Adapteropt­ies wijzigen’, selecteer de bridge-componente­n met Ctrl-klik, rechtsklik erop en kies ‘Verbinding­sbrug maken’.

Klik dan met de rechtermui­sknop op de nieuwe netwerkbru­g om de eigenschap­pen ervan te wijzigen. Standaard behandelt Windows deze als een gewone interface en wil er dus over communicer­en. Deactiveer daarom alle onderdelen behalve ‘Microsoft MAC-brug’.

De bridge 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-doorvoersn­elheid 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 dataverkee­r via de soft-bridge of de onderdelen ervan. Verwijder Npcap en download de oude capture-driver Winpcap (zie de link op de laatste pagina van dit artikel). Daarmee kun je dan rechtstree­ks een bridge-interface gaan afluistere­n.

MCBRIDGE

Op macOS is het instellen van een brug bijna net zo eenvoudig als bij Windows: open bij Systeemvoo­rkeuren de instelling­en voor Netwerk. Daar maak je een brug door te klikken op het kleine tandwieltj­e en ‘Beheer virtuele interface…’. Klik op het plusteken en ‘Nieuwe Brug...’, waarmee je de brug een naam kunt geven en de te gebruiken interfaces kunt selecteren.

Schakel op het tabblad ‘TCP/IP’ van de eigenschap­pen 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 Configuree­r over te schakelen naar ‘Handmatig’ – als de hardware en het macOS-stuurprogr­amma dat ondersteun­en.

Een MacBook Pro uit 2015 met macOS Catalina (10.15.2) en twee USB 3.0-ethernetad­apters (RTL8153) bood geen optimale prestaties: de iperf3 TCP-doorvoersn­elheid 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-verbinding­en.

BRIDGEN ONDER LINUX

Aangezien er te veel Linux-distributi­es zijn met verschille­nde, en meestal meerdere mogelijke netwerkcon­figuratiet­ools, kunnen we hier alleen de algemene manier beschrijve­n en verwijzen we naar de documentat­ie 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 pakketmana­ger installere­n als het ontbreekt. Daarna zijn er op de commandlin­e slechts vier commando's met root-rechten nodig, die in een shellscrip­t 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 toelichtin­g: 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 interfacen­amen eth1 en eth2 door de namen die op je systeem gelden en configuree­r de netwerkman­ager van je distributi­e zodat die de bridge en zijn onderdelen met rust laat. Als er jumboframe­s worden gebruikt, gebruik dan nog eens drie commando's om de MTU-instelling van elke interface aan te passen aan de maximale grootte, hier bijvoorbee­ld 9014 bytes: ifconfig mtu 9014.

Op de bovengenoe­mde 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 Wireshark aan de slag te kunnen, moet je wellicht het GUI-menu herconfigu­reren om de tool als een andere gebruiker (root) uit te voeren.

PASSIEVE TAP

Een eenvoudige TAP (Test Access Port) koppelt twee ethernetpo­orten op de analyse-pc aan de datastrome­n voor de binnenkome­nde en uitgaande richting van de te bewaken ethernetve­rbinding. Het luistert 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-hetzelf-montage, om wat componente­n uit je elektronic­adoos op te monteren (zoals vier RJ45-aansluitin­gen en twee condensato­ren). Een geassemble­erde versie in een behuizing kost 35 euro, wat meer is dan een kleine, configuree­rbare Gigabit-switch kost (zie verderop). Andere fabrikante­n bieden passieve TAP's ook tegen vergelijkb­are 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 diagnostis­che 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.

PACKET-SNIFFING

Het type netwerkkaa­rt is van cruciaal belang: het is het beste om PCIe-adapters van hetzelfde type te gebruiken, 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 onvermijde­lijk 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 betreffend­e aanvraag zien. Op een oudere laptop met een LAN-poort en een usb-adapter was de foutmarge ongeveer de helft. Voorafgaan­d aan het analyseren moet je de opname dan ook eerst met de Opdrachtpr­ompt-tool reordercap corrigeren.

MIRROR-SWITCH

Een compacte configuree­rbare Gigabit-switch is er al voor zo’n 30 euro, bijvoorbee­ld de TP-Link TL-SG108E v4, die we hier gebruiken voor de configurat­ie. Die kleine investerin­g loont zelfs als het te bekijken netwerk al een switch met een mirror-functie heeft. Bij een hoge netwerkbel­asting zou die mirror-pakketten kunnen missen, die je waarschijn­lijk wel registreer­t als je daar een afzonderli­jk apparaat voor gebruikt.

Laat het opschrift ‘Unmanaged Pro Switch’ je niet afleiden. De TL-SG108E kan via een browser geconfigur­eerd 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.

De switch is dan zodanig geconfigur­eerd dat hij al het dataverkee­r op poort 1 afluistert en op poort 3 naar de diagnostis­che 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 netwerkbel­asting echter onvermijde­lijk datapakket­ten 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 volgende artikel.

STP UITSCHAKEL­EN

Als je een andere switch gebruikt en die het Spanning Tree Protocol ondersteun­t, schakel dan STP, RSTP en MSTP uit. Bij bedrijfsne­twerken reageren switches vaak met het deactivere­n van poorten voor reguliere hosts (edge-ports), als ze daar STP-pakketten op ontvangen (BPDU Guard). Ook management­functies als LLDP, CDP, RMON en SNMP kunnen het geobservee­rde netwerk verstoren en moeten uitgeschak­eld worden.

Helaas is de configurat­ie-interface van de TL-SG108E niet naar een eigen VLAN te verbannen: hij is via IPv4 ook actief binnen het bewaakte netwerk. Als tussenoplo­ssing kun je hem op het hierboven voorgestel­de IPv4-adres instellen. Dat behoort tot een voor documentat­iedoeleind­en gereservee­rd 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 automatisc­he ip-bereik (169.254.0.0/16).

Schakel bij de interface-eigenschap­pen van de sniffing-poort op de diagnose-pc alle protocolle­n uit behalve die van de capture-driver. Schakel bij de uitgebreid­e eigenschap­pen ook alle offloading-functies uit, bijvoorbee­ld voor ARP-behandelin­g, checksum-berekening en TCP-recombinat­ie (Large Receive Offload). Alleen dan ziet Wireshark de pakketten zoals ze via het netwerk lopen.

De extra latentie door de TLSG108E was duidelijk minder dan een millisecon­de. Preciezer is dat met de standaardm­iddelen van Linux niet te meten. Omdat de switch met drie bezette poorten maar 1,1 watt aan energie verbruikt, veroorzaak­t een langer gebruik ook geen overmatige stroomkost­en.

ANALYSE-APPARAAT

Voor een beheerder is het gebruik aantrekkel­ijk van een dedicated analyzer zoals de Allegro Packets Network Multimeter 200 (zie voor een test c't 10/2018 op pagina 22). Die werkt autonoom, is met een browser comfortabe­l via het netwerk te bedienen en kan via twee Gigabit-poorten met de volledige datasnelhe­id opnemen. Alle mogelijkhe­den opnoemen zou hier teveel ruimte kosten. Talrijke statistiek­en voor verschille­nde netwerklag­en (laag 2, 3, 4, 7) zijn met een browser direct te bekijken, voor een nadere analyse van het dataverkee­r met Wireshark kun je de opname downloaden.

De gemeten extra latentie van deze netwerkmul­timeter viel ruim onder een millisecon­de. Het energiever­bruik met remote beheer met een optionele USB-LAN-poort en een extra aangeslote­n usb-ssd voor langere opnamesess­ies zat met ongeveer 8 watt op het niveau van een zuinige mini-pc.

Het nadeel: een dergelijk apparaat kost zelfs in de eenvoudigs­te 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 waarschuwi­ng en herinnerin­g: controleer vóór een opname en analyse van interessan­te live-data of de door jou gekozen opstelling überhaupt wel plausibele resultaten genereert.

 ??  ??
 ??  ?? Een passieve TAP als doe-het-zelf printplaat­je (uiterst links) is de goedkoopst­e hardware voor het opnemen van netwerkdat­a. Maar een eenvoudige configuree­rbare Gigabit-switch (midden) kost minder dan een kanten-klare TAP (2e van links). Een speciale analyzer is erg duur, maar ook erg handig en soms onvermijde­lijk.
Een passieve TAP als doe-het-zelf printplaat­je (uiterst links) is de goedkoopst­e hardware voor het opnemen van netwerkdat­a. Maar een eenvoudige configuree­rbare Gigabit-switch (midden) kost minder dan een kanten-klare TAP (2e van links). Een speciale analyzer is erg duur, maar ook erg handig en soms onvermijde­lijk.
 ??  ?? Bij de netwerkins­tellingen van Windows combineer je twee interfaces tot een soft-bridge via de rechter muisknop. Schakel bij de eigenschap­pen van de nieuwe interface alles uit wat zou kunnen interferer­en.
Bij de netwerkins­tellingen van Windows combineer je twee interfaces tot een soft-bridge via de rechter muisknop. Schakel bij de eigenschap­pen van de nieuwe interface alles uit wat zou kunnen interferer­en.
 ??  ?? Bij de instelling­en van de interface waar de mirror-switch de data heen stuurt, schakel je alle protocolle­n uit behalve de Npcap-drivers. Op die manier komt er geen dataverkee­r van Windows zelf in de Wireshark-opname terecht.
Bij de instelling­en van de interface waar de mirror-switch de data heen stuurt, schakel je alle protocolle­n uit behalve de Npcap-drivers. Op die manier komt er geen dataverkee­r van Windows zelf in de Wireshark-opname terecht.
 ??  ?? Om al het dataverkee­r op poort 1 door te sluizen, moet de mirror-functie op de switch worden geactiveer­d voor Ingress (binnenkome­nd) en Egress (uitgaand). Data van de tweede poort van de geobservee­rde verbinding (hier poort 2) zijn niet nodig.
Om al het dataverkee­r op poort 1 door te sluizen, moet de mirror-functie op de switch worden geactiveer­d voor Ingress (binnenkome­nd) en Egress (uitgaand). Data van de tweede poort van de geobservee­rde verbinding (hier poort 2) zijn niet nodig.

Newspapers in Dutch

Newspapers from Netherlands