/proc/net/dev meet voor of na firewall?

Pagina: 1
Acties:

  • satcp
  • Registratie: Februari 2000
  • Niet online
Een korte maar krachtige vraag: De gegevens in /proc/net/dev, en met name de ontvangen en verzonden bytes, worden deze verzameld voor de iptables firewall (dus inclusief alle verkeer dat niet bestemd is voor je PC) of erna (dus enkel de bytes die effectief toegelaten zijn)?

De reden van deze vraag is dat ik een aanzienlijke afwijking meet op gegevens die ik uit /proc/net/dev uitlees en de gegevens die m'n ISP beschikbaar stelt.

Indien de gegevens van na de firewall komen, hoe kan ik dan alsnog de volledige hoeveelheid traffiek van voor de firewall bekomen?

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
De gegevens in /proc/net/dev zijn gegevens die over een interface binnenkomen, voordat ze bij iptables komen moeten ze wel langs een interface lijkt mij :)
De redenatie "niet bestemd voor je pc" klopt niet helemaal volgens, je kunt best een hele hoop verkeer blokkeren dat wel voor je pc bestemd is hoor :)
Maargoed, die meter staat helemaal los van iptables, je weet dat die counter in /proc trouwens maar tot ongeveer 4gigabyte gaat en dan weer wrapt naar 0?

  • satcp
  • Registratie: Februari 2000
  • Niet online
Bedankt voor je antwoord. Ik drukte me misschien wat ongelukkig uit wat dat 'niet bestemd voor' betreft, maar je begrijpt de bedoeling.

Ik hou wel degelijk rekening met het feit dat het om 32 bit integers gaat die weer op nul gezet worden. Ook dat de teller op nul gezet wordt na een reboot. Ik denk niet dat er nog iets mis is met de manier waarop ik tel, maar ik blijf een misterieuze afwijking behouden tegenover Telenet's Telemeter. Als het nu om een paar megabytes per dag zou gaan zou ik nog zeggen, soit. Maar het gaat om honderd megabyte op een paar honderd megabyte.

Mijn script leest elke minuut /proc/net/dev uit en vergelijkt met de voorgaande waarde. Indien de huidige waarde groter is dan de oude, dan wordt het verschil bij het totaal per dag geteld. Is het kleiner, dan is de teller gereset. Er wordt dan gekeken of er ondertussen een reboot is geweest (uptime). In het geval van een reboot wordt als vorige waarde 0 genomen. Mogelijk verliezen we op die manier enkele bytes, maar dat zal negeerbaar weinig zijn. Was er geen reboot, dan is de teller gereset omdat hij over de 2^32 is gegaan. Het verschil wordt dan (4GB - VORIGE) + HUIDIGE.

Bij Telenet hebben we een zogenaamd nachttarief. Tussen 00:00 en 10:00 worden alle bytes slechts half gerekend (dit om 's nachts downloaden populairder te maken en zo overdag het netwerk te ontlasten - maar dit terzijde). Mijn script houdt hier rekening mee.

Steekproeven duiden uit dan mijn script zeker juist telt... En toch...

Hieronder een getalvoorbeeld van de up/download van gisteren en eergisteren. De byte gegevens zijn deze die ik uitlees uit /proc/net/dev op de aangeduide uren:

code:
1
2
3
4
5
6
7
8
+-------+--------------+--------------+
| 17/08 |  Downloaded  |   Uploaded   |
+-------+--------------+--------------+
| 00:00 | 2178198204 A | 2340360432 E |
| 09:59 | 2227660307 B | 2385763921 F |
| 10:00 | 2228124399 C | 2385847681 G |
| 23:59 | 2391249697 D | 2454130424 H |
+-------+--------------+--------------+


Uit de log kan ik zien dat de teller nergens gereset is. De download traffiek van eergisteren berekenen doen we dus als volgt:

Gedeelte op nachttarief = X = (B - A) / 2 = 24731052
Gedeelte op normaal dagtarief = Y = D - C = 163125298
Totaal downloaded 17/08 = X + Y = 187856350 = 179 MB
Mijn script 17/08 (down): 179 MB
Telenet Telemeter 17/08 (down): 268 MB !!!!

Zoals je kunt zien: een aanzienlijk verschil... Nu de upload traffiek

Totaal uploaded 17/08 = X + Y = 90984488 = 87 MB
Mijn script 17/08 (up): 87 MB
Telenet Telemeter 17/08 (up): 87 MB

Identiek...

Nu hetzelfde voor gisteren:

code:
1
2
3
4
5
6
7
8
+-------+--------------+--------------+
| 18/08 |  Downloaded  |   Uploaded   |
+-------+--------------+--------------+
| 00:00 | 2391259872 A | 2454201898 E |
| 09:59 | 2650342928 B | 2509425218 F |
| 10:00 | 2650352335 C | 2509498055 G |
| 23:59 | 2835696917 D | 2584949345 H |
+-------+--------------+--------------+


Totaal downloaded 18/08 = X + Y = 314886110 = 300 MB
Mijn script 18/08 (down): 300 MB
Telenet Telemeter 18/08 (down): 403 MB !!!!

Weer een aanzienlijk verschil...

Totaal uploaded 18/08 = X + Y = 103062950 = 98 MB
Mijn script 18/08 (up): 98 MB
Telenet Telemeter 18/08 (up): 98 MB

Zoals je uit de testresultaten kunt zien is de upload altijd 'spot-on' correct. Maar de download aangegeven door Telenet's Telemeter wijkt sterk af van de door mij gemeten waarde. Nu is/was de vraag; is mijn script fout, of licht Telenet ons op, of is er iets mis met /proc/net/dev waardoor niet de juiste gegevens verzameld worden? Mijn script werkt. Dat bewijzen bovenstaande getallenvoorbeelden. Dus blijft enkel Telenet of /proc/net/dev over. Om Telenet het voordeel van de twijfel te geven dacht ik dat /proc/net/dev misschien na de firewall gegevens verzamelde. Dat zou het verschil kunnen verklaren (alhoewel ik ~100 MB aan weggefilterde zooi per dag wel ongeloofwaardig veel vind).

Maar jij zegt dat het op de interface zelf wordt gemeten, dus dat kan ik ook uitsluiten... De interface waarop ik meet is rechtstreeks verbonden met de kabelmodem. Alle verkeer van en naar de kabelmodem gaat dus via die interface.

Blijft dus enkel Telenet over...

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
SatCP schreef op 19 augustus 2004 @ 19:29:
Bedankt voor je antwoord. Ik drukte me misschien wat ongelukkig uit wat dat 'niet bestemd voor' betreft, maar je begrijpt de bedoeling.
Ik hou wel degelijk rekening met het feit dat het om 32 bit integers gaat die weer op nul gezet worden. Ook dat de teller op nul gezet wordt na een reboot.
Graag gedaan :)
Ik begreep inderdaad de bedoeling stiekem wil :)
Ik ging er ook al min of meer van uit dat je rekening hield met de wrapper, maar ik zag het nergens expliciet terugkomen, daarom beter een keer voor de zekerheid vragen dan een hele lange discussie waarna blijkt dat dat het probleem is :)
Voor de rest van het probleem weet ik eigenlijk niet waar het eventueel aan zou kunnen liggen. Gebruikt je isp iets van ppp ofzo, dan zou het eventueel met een stukje protocoloverhead te maken kunnen hebben, hoewel een verschil van 25% dan wel weer wat veel is.

  • AirX
  • Registratie: Juni 2002
  • Laatst online: 16:24

AirX

Tweak Guru

Misschien kun je eens Vnstat gebruiken? Ook een hele goede netwerk verkeer meter. toch blijft het vreemd dat er zo'n groot verschil is. Misschien rekent Telenet ook het cablemodem verkeer? Dus ook verkeer dat niet onder TCP/IP valt?

  • satcp
  • Registratie: Februari 2000
  • Niet online
AirX: vnstat gebruikt voor zover ik weet ook gewoon de gegevens uit /proc/net/dev, en zoals ik hierboven reeds aantoonde kan ik die zelf ook uitlezen ;)

blaataaps & AirX: Ik heb ook al liggen denken aan eventuele overhead door het kabelmodemprotecol, maar in dat geval zouden we een identieke situatie bij de upload moeten zien... en de upload is tot op de megabyte correct.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Reken het maar eens uit zonder dag/nacht tarief. Dan kom je op eens een stuk beter in de buurt van de tele meter dinges.

  • satcp
  • Registratie: Februari 2000
  • Niet online
Maar de Telemeter is zelf ook met nachttarief (*). De overeenkomende upload bevestigt dat. Trouwens, wanneer ik de download zonder nachtarief bereken, dan kom ik nog steeds niet op de juiste waarden.

17/08:
Zonder nachttarief (down): 203 MB
Telemeter (down): 268 MB

Dat is nog steeds een afwijking om 'U' tegen te zeggen...

*: Of zou dat toch moeten zijn... Het zou niet de eerste keer zijn dat Telenet plots 'vergeet' dat ze een nachttarief hebben.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Voor de 18e kom je op 423 zonder nachttarief waar telenet op 403 zit..... Lijkt redelijk op elkaar..

  • satcp
  • Registratie: Februari 2000
  • Niet online
Daat lijkt me eerder toeval want voor gisteren (19/08) zit de Telemeter zelfs 200 MB naast de waarde zonder nachttarief.

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Telenet vernieuwt de waarden pas iedere 24u en is dus niet accuraat met je script per minuut/uur behalve als je weet wanneer precies Telenet jouw meter ververst (hun scripts eindigen ook niet alle dagen op dezelfde tijd) Ook rekent de Telenet meter de laatste 30 dagen en niet vanaf het begin van de maand. Ook kun jij (of telenet) verkeerd zitten met je verrekening van 1MB = 1000 kbyte of 1024 kbyte. Ook heeft je kabelmodem sommige verkeer reeds gedropped voordat het binnenkomt op je interface.

[ Voor 32% gewijzigd door Guru Evi op 20-08-2004 13:11 ]

Pandora FMS - Open Source Monitoring - pandorafms.org


  • satcp
  • Registratie: Februari 2000
  • Niet online
Telenet update de Telemeter pagina slechts eenmaal per dag. Dat klopt. Om exact klokslag 00:00 wordt het gedetailleerd Telemeter dagoverzicht aangepast. Net zoals in mijn getallenvoorbeeld en zoals mij script ook toepast.

Wat die 30 dagen glijdende meter betreft, dat is hier niet van toepassing. Die glijdende meter betekent enkel dat het 30-dagen totaal berekend wordt over de laatste 30 dagen. Telkens om 00:00 valt dus de 30-ste laatste dag weg van het totaal. Maar ik praat hier over de dagtotalen - niet het 30-dagen glijdende totaal.

Telenet werkt zoals aangegeven op hun pagina's met 1024 als vermenigvuldigingsfactor.

Verkeer gedropt door de kabelmodem? 100 MB op een reële 300 MB gedownload per dag aan gedropt verkeer? Dat is wel onrealistisch veel...

[ Voor 11% gewijzigd door satcp op 20-08-2004 13:16 ]


  • satcp
  • Registratie: Februari 2000
  • Niet online
Update: Het probleem is gevonden... Het lag dus aan mij die enkele lettertjes niet goed gelezen had. De Telemeter toont zijn gedetailleerde statistieken in een 2 kolomsoverzicht. Blind ging ik er van uit dat de linkse de download was en de rechtse de upload. Maar... Nu blijkt er bovenaan de linkse kolom in kleine lettertjes 'totaal' te staan. De linkse kolom bevat dus niet de download, maar de download + de upload. Een beetje een idiote voorstellingswijze, maar soit.

Wanneer ik nu de totalen bereken kom ik op enkele megabytes na op dezelfde getallen als Telenet.

Dus conclusie? De Telemeter werkt correct, mijn script werkt correct, maar SatCP werkt niet correct :P
Pagina: 1