SNMP versus syslog versus NetFlow: wat elk vertelt bij monitoring, verzameling, dataformaat en protocollen

Een netwerk beheren betekent de toestand van apparaten en verkeer bewaken, problemen vroeg opmerken en hun oorzaken onderzoeken. SNMP, syslog en NetFlow verzamelen allemaal informatie van apparaten, maar ze vertellen verschillende dingen. Bij SNMP vraagt een beherend systeem (de manager) apparaten (agents) om waarden zoals het verkeer op interfaces en het CPU-gebruik, wat vertelt „hoeveel”. Bij syslog sturen apparaten gebeurtenissen zoals uitgevallen links, aanmeldingen en configuratiewijzigingen als tekstberichten naar een logserver, wat vertelt „wat wanneer gebeurde”. NetFlow (en IPFIX, de daarop gebaseerde norm) vat verkeer samen per groep pakketten met dezelfde bron, bestemming enzovoort (een flow) en exporteert die samenvattingen, wat vertelt „wie met wie communiceerde, en hoeveel”. In de praktijk worden alle drie samen gebruikt.

KenmerkSNMPsyslogNetFlow (IPFIX)
Wat het verteltToestand en hoeveelheden van apparaten: verkeer en aantal fouten op interfaces, CPU- en geheugengebruik, linkstatusGebeurtenissen: uitgevallen links, geslaagde en mislukte aanmeldingen, configuratiewijzigingen, foutenEen uitsplitsing van het verkeer: welke paren van bron en bestemming, met welk protocol en welke poorten, hoeveel hebben verstuurd
Hoe data wordt verzameldDe manager vraagt met een vaste tussenpoos op (polling); apparaten kunnen problemen ook melden met meldingen (traps)Het apparaat stuurt een bericht naar de server wanneer een gebeurtenis plaatsvindtHet apparaat aggregeert flows en exporteert ze naar een verzamelserver (collector) wanneer een flow eindigt of met vaste tussenpozen
DataformaatWaarden gedefinieerd in MIB's (tellers en toestanden), aangesproken met object identifiers (OID's)Ernst (0 tot 7), soort bron (facility), tijdstempel en een tekstberichtRecords per flow: adressen, poortnummers, protocol, aantallen pakketten en bytes, begin- en eindtijden en meer; de velden worden gedefinieerd door templates
TijdsresolutieEen gemiddelde over elk pollinginterval (bijvoorbeeld 5 minuten)Per gebeurtenis, vrijwel direct binnenkomendPer flow; langlopende flows worden in stukken geknipt en met vaste tussenpozen geëxporteerd
Wat het niet kan vertellenVan wie het verkeer isVerkeersvolumeDe inhoud van pakketten (data); evenmin apparaatwaarden zoals CPU-gebruik
Belasting van apparaten en verbindingenKleinKlein, al kunnen berichten bij een storing sterk toenemenGroter; op snelle verbindingen wordt soms sampling gebruikt, waarbij maar een deel van de pakketten wordt bekeken
Normen en poortnummersSNMPv3 is RFC 3411 tot en met 3418; UDP-poort 161 (query's) en 162 (traps)RFC 5424; UDP-poort 514, of 6514 bij gebruik van TLSNetFlow v9 is beschreven in RFC 3954 (een informatieve RFC); het gestandaardiseerde IPFIX is RFC 7011, poort 4739
BeveiligingBij v1 en v2c gaat de community string onversleuteld over het netwerk; v3 voegt authenticatie en versleuteling toeOver UDP is er geen versleuteling en geen afleveringsbevestiging; TLS kan het beschermenNetFlow v9 heeft geen ingebouwde bescherming; IPFIX kan worden beschermd met TLS of DTLS
Belangrijkste toepassingenVerkeersgrafieken, bijhouden van de linkbezetting, detecteren van apparaatstoringenOorzaken van storingen onderzoeken, vastleggen wie wat deed, beveiligingsmonitoring (verzameld in een SIEM)Hosts en applicaties vinden die veel bandbreedte gebruiken, ongewoon verkeer detecteren, uitbreiding van verbindingen plannen

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

SNMP
Wanneer je de bezetting van verbindingen en apparaten doorlopend als grafiek wilt volgen. Combineer het met traps om apparaatstoringen en uitgevallen links direct op te merken.
syslog
Wanneer storingen en beveiligingsgerelateerde gebeurtenissen met tijdstempels moeten worden vastgelegd zodat ze later kunnen worden onderzocht. Houd de klokken van apparaten met NTP gesynchroniseerd om logs van meerdere apparaten met elkaar in verband te brengen.
NetFlow (IPFIX)
Wanneer een verbinding overbelast is en je wilt vinden welke hosts of applicaties de bandbreedte gebruiken, of wanneer je ongewone verkeerspatronen wilt opsporen.

Veelgestelde vragen

Hoe bereken je een verkeerssnelheid uit SNMP-tellers?

Lees met een vaste tussenpoos de teller van ontvangen of verzonden bytes van een interface uit, reken het verschil met de vorige uitlezing om naar bits en deel door het interval in seconden. Als de teller bijvoorbeeld in 5 minuten (300 seconden) met 3.750.000.000 is gestegen, is dat 3,75×10⁹ × 8 ÷ 300 = 1×10⁸ bit/s, gemiddeld 100 Mbps. Een 32-bitsteller springt na ongeveer 4,3 miljard terug naar 0 en loopt op snelle verbindingen snel rond, dus worden 64-bitstellers gebruikt. Het resultaat is een gemiddelde over het interval, dus korte pieken zijn niet zichtbaar.

Wanneer gebruik je SNMP-polling en wanneer traps?

Polling, waarbij de manager waarden met een vaste tussenpoos uitleest, past bij doorlopende registratie van veranderingen, zoals verkeersgrafieken. Traps, die het apparaat verstuurt als er bijvoorbeeld een link uitvalt, laten je het direct opmerken, maar omdat ze via UDP worden verstuurd, kunnen ze verloren gaan. Er zijn ook bevestigde meldingen (informs). Meestal worden beide gecombineerd.

Wat is de ernst (severity) van een syslogbericht?

RFC 5424 drukt de ernst van een bericht uit in acht niveaus, van 0 (Emergency: het systeem is onbruikbaar) tot 7 (Debug: berichten op debugniveau). Lagere getallen zijn belangrijker, en per apparaat kan worden ingesteld dat alleen berichten vanaf een gekozen ernst naar de server worden gestuurd.

Hoe verschilt NetFlow van packet capture?

Packet capture legt de pakketten zelf vast, inclusief hun inhoud, en maakt dus gedetailleerde analyse mogelijk, maar levert een zeer grote hoeveelheid data op. NetFlow legt de inhoud van pakketten niet vast en exporteert alleen samenvattingen zoals aantallen pakketten en bytes per flow, waardoor de hoeveelheid data sterk afneemt en het geschikt is om trends op lange termijn te bekijken. Ook bij versleuteld verkeer zijn de adressen, poortnummers en het volume zichtbaar.

Test uw begrip

Met SNMP wordt elke 5 minuten (300 seconden) een 64-bitsteller van de ontvangen bytes van een interface van een router uitgelezen. De vorige uitlezing was 1.200.000.000 en de huidige is 4.950.000.000. Welke waarde ligt het dichtst bij de gemiddelde ontvangstsnelheid over deze 5 minuten?

  1. A12,5 Mbit/s
  2. B100 Mbit/s
  3. C500 Mbit/s
Antwoord en toelichting tonen

Antwoord: B. 100 Mbit/s

De interface ontving in 5 minuten 4.950.000.000 − 1.200.000.000 = 3.750.000.000 bytes, oftewel 3,75×10⁹ × 8 = 3×10¹⁰ bits. Gedeeld door 300 seconden geeft dat 1×10⁸ bit/s, oftewel 100 Mbit/s. Bij SNMP vraagt de beherende kant (de manager) waarden uit de MIB op bij de agent op het apparaat en berekent zoals hier het verkeer uit de verschillen tussen tellerstanden om grafieken te tekenen. Een teller van 32 bits springt na 2^32 ≈ 4,29×10⁹ bytes terug naar 0, wat bij 100 Mbit/s maar ongeveer 344 seconden duurt, dus voor snelle interfaces worden tellers van 64 bits gebruikt.

Voor het verkeer door een router wil men weten hoeveel bytes elke combinatie van bron en bestemming (adressen, poortnummers en protocol) inneemt, samengevat per verkeersstroom. Welk mechanisme is daarvoor het meest geschikt?

  1. ASNMP
  2. Bsyslog
  3. CNetFlow (IPFIX)
Antwoord en toelichting tonen

Antwoord: C. NetFlow (IPFIX)

NetFlow, en IPFIX, de standaard die erop is gebaseerd, registreren voor elke groep pakketten met dezelfde bron- en doeladressen, poortnummers en hetzelfde protocol (elke flow) het aantal pakketten, het aantal bytes, tijdstippen enzovoort, en sturen die gegevens naar een verzamelserver (collector). Ze worden gebruikt om te zien welke apparaten of applicaties bandbreedte gebruiken en om ongewoon verkeer op te sporen. SNMP is een protocol om waarden zoals het verkeer per interface en het CPU-gebruik van apparatuur op te vragen en om apparatuur problemen te laten melden (traps); het kan niet zien van wie het verkeer is. syslog verstuurt gebeurtenissen zoals links die uitvallen of aanmeldingen als tekstberichten naar een logserver.

Welke uitspraak over UDP is juist?

  1. AHet bouwt geen verbinding op en regelt geen hertransmissie of volgorde, waardoor de header klein is en er vóór het verzenden niet gewacht hoeft te worden
  2. BHet bouwt een verbinding op, verzendt gegevens die niet aankwamen opnieuw en zet ze bij de ontvanger weer in de juiste volgorde
  3. CHet levert gegevens alleen op basis van MAC-adressen bij het doelapparaat af, zonder IP-adressen
Antwoord en toelichting tonen

Antwoord: A. Het bouwt geen verbinding op en regelt geen hertransmissie of volgorde, waardoor de header klein is en er vóór het verzenden niet gewacht hoeft te worden

UDP is een licht protocol dat bovenop IP alleen poortnummers en een eenvoudige foutcontrole (checksum) toevoegt; de header is 8 bytes (die van TCP is zonder opties 20 bytes). Er is geen verbindingsopbouw, geen ontvangstbevestiging en geen hertransmissie, dus het wordt gebruikt voor spraakgesprekken en livevideo, waar een beetje verlies beter is dan vertraging, en voor DNS, dat met één vraag en één antwoord toekomt. Als betrouwbaarheid nodig is, zorgt de applicatie daarvoor; QUIC, dat door HTTP/3 wordt gebruikt, implementeert bijvoorbeeld hertransmissie en versleuteling bovenop UDP. Verbindingsopbouw, hertransmissie en volgorderegeling zijn taken van TCP.

Oefenvragen over Netwerkontwerp en -beheer

Belangrijke termen uitgelegd

SNMP (Simple Network Management Protocol)
Protocol om de toestand van apparatuur zoals routers en switches te bewaken en te beheren. De beherende kant (de manager) vraagt bij de agent op de apparatuur waarden op die in de MIB zijn gedefinieerd, zoals tellers van het verkeer op interfaces en het CPU-gebruik, en de apparatuur meldt problemen met traps. Het verkeer wordt berekend door tellerstanden met vaste tussenpozen uit te lezen en het verschil te nemen. SNMPv3, dat authenticatie en versleuteling ondersteunt, wordt aanbevolen.
UDP (User Datagram Protocol)
Verbindingsloos protocol van de transportlaag. De header is 8 bytes en bevat alleen poortnummers, een lengte en een checksum. Er is geen verbindingsopbouw, geen ontvangstbevestiging of hertransmissie en geen volgorderegeling, dus er komt weinig vertraging bij. Het wordt onder meer gebruikt voor DNS-query's, spraak- en videogesprekken, onlinegames, DHCP en QUIC.
Poortnummer
Getal van 0 tot 65535 waarmee TCP en UDP aangeven voor welke applicatie op een apparaat het verkeer bestemd is. De poorten 0–1023, zoals 80 voor HTTP, 443 voor HTTPS en 53 voor DNS, heten well-known ports.
Pakket (packet)
Eenheid van gegevens voor transmissie: gegevens die zijn opgesplitst in stukken die niet groter zijn dan een vastgestelde grootte, elk met een header met besturingsinformatie zoals de bestemming. Pakketten laten veel verbindingen één lijn delen (pakketschakeling) en maken het mogelijk na een fout alleen het beschadigde deel opnieuw te versturen. Afhankelijk van de laag heten de eenheden vaak pakketten bij IP, segmenten bij TCP en frames bij Ethernet. Ook PCI Express en networks-on-chip versturen gegevens als pakketten.
Router
Apparaat van de netwerklaag (laag 3) dat pakketten tussen verschillende netwerken doorstuurt. Het vergelijkt het bestemmings-IP-adres van elk pakket met zijn routeringstabel, kiest de volgende router (next hop) en de uitgaande interface en stuurt het pakket verder. Thuisrouters combineren daarnaast NAPT, een DHCP-server en een firewall.
SIEM (security information and event management)
Een systeem dat logs van firewalls, servers, EDR, clouddiensten, authenticatie-infrastructuur en meer op één plek verzamelt, hun formaten en tijdstempels gelijktrekt, vermoedelijke aanvallen detecteert met regels die meerdere gebeurtenissen combineren (correlatieanalyse), en die als alerts toont. Het wordt ook gebruikt om bij onderzoeken logs te doorzoeken en om logs zo lang te bewaren als regelgeving vereist. Het is een van de centrale hulpmiddelen die analisten in een security operations center (SOC) voor monitoring gebruiken.
TLS (Transport Layer Security)
Protocol dat communicatie versleutelt, manipulatie detecteert en servers met certificaten authenticeert. HTTPS is HTTP beveiligd met TLS.

Verwante vergelijkingen