Schakelen tussen PPPoe accounts na X GB upload

Pagina: 1
Acties:

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

Topicstarter
Hallo,

Ik ben bezig met een (nieuw) servertje configgen om als file/printserver en gateway te dienen voor mijn verdieping in een studentenflat.

We hebben nu een linuxserver in gebruik die bovenstaande voor ons doet, maar omdat de huisgenoot die daar verstand van heeft binnenkort weggaat ben ik bezig met iets totaal nieuws doen met Windows.


File/print server is niet zo moelijk, maar de reden waarom de huidige server ook de gateway is wel: wij krijgen van de universiteit de beschikking over een 100mbit PPPoe account, per persoon. Echter deze accounts zijn gelimiteerd op 50GB upload per account per maand. In het huidige systeem schakelen de accounts automatisch om nadat er 45GB geupload is.

Dat gebeurt door een scriptje dat 1x per minuut draait om de logs van een DU meter te parsen, en vervolgens berekent hoeveel er is gebruikt op een bepaalde account in die specifieke maand. Als het over 45GB is wordt de verbinding verbroken en wordt er een nieuwe verbinding opgestart met een andere account.
Als alle verbindingen 'op' zijn wordt internet afgekoppeld (een ranzige manier om de oude admin te bereiken, die dan ook snel gebeld of geroepen wordt). De oude admin stelt het progje in op 4GB upload per maand en zegt ons goed op te letten op het gebruik :+

Nu is het dus zo dat ik het bovenstaande wil implementeren in een Windows omgeving (Windows Server 2003) op een ietwat snellere en nieuwe computer.

Ons eerste idee was het vinden van een DU meter die na elke 45GB en maandelijks reset en een batchfile draait.

De batchfile is geschreven en werkt, met behulp van de rasdial command en een weggeschreven teller variabele kunnen we zo schakelen tussen de PPPoe accounts.

Het tweede is *iets* lastiger. Er is gewoon geen geschikte DU meter die én een waarschuwing per X GB verbruik én een maandelijkse reset doet. De meeste doen 1 maandelijkse reset...
'Bandwith Meter Pro' komt het dichtst in de buurt, want die kan als de limiet (over alléén de PPPoe inbelverbinding) bereikt is automatisch een programma (of batch file) draaien én een notification geven. Dus in het uiterste geval zet ik beide aan en pas ik elke keer de informatie in de batchfile aan, maar dat is natuurlijk niet de bedoeling.

Ik ben dus op zoek naar een Volume/DU meter die aan bovenstaande eisen voldoet óf een betere oplossing voor het eigenlijke probleem.

Enkele DU meters die ik al heb geprobeerd:
-Freemeter (sourceforge, dus misschien aanpasbaar na enig inlezen :/ )
-DU meter
-Bandwith Meter Pro

daarnaast heb ik veel gezocht naar andere programma's, maar die voldeden al bij voorbaat niet.

  • Noork
  • Registratie: Juni 2001
  • Niet online
Kun je niet de boel niet resetten, maar b.v. het verschil tussen oud en nieuwe uitrekenen?

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

Topicstarter
Noork schreef op vrijdag 07 november 2008 @ 01:10:
Kun je niet de boel niet resetten, maar b.v. het verschil tussen oud en nieuwe uitrekenen?
Zou ik best willen, maar weet zo gauw niet hoe. In welke taal zou ik dat kunnen? En is er een DU meter die volumes in een fijn ('makkelijk' parsebaar) bestandje gooit?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Geen idee, het is wel een beetje jouw probleem om dit uit te zoeken natuurlijk. Ik ken verder nog Bitmeter (gebruik ik zelf) maar deze kan niet automatisch naar een logfile schrijven. Heeft wel een ingebouwde webserver waar je ook e.e.a. kan uitlezen.

Je kan verder nog kijken naar:
BWMeter
BBMonitor
Netmeter, zie: Network traffic indicator in systray (schijnt continue te loggen)

[ Voor 21% gewijzigd door Noork op 07-11-2008 14:05 ]


  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

Topicstarter
Noork schreef op vrijdag 07 november 2008 @ 14:04:
Geen idee, het is wel een beetje jouw probleem om dit uit te zoeken natuurlijk. Ik ken verder nog Bitmeter (gebruik ik zelf) maar deze kan niet automatisch naar een logfile schrijven. Heeft wel een ingebouwde webserver waar je ook e.e.a. kan uitlezen.

Je kan verder nog kijken naar:
BWMeter
BBMonitor
Netmeter, zie: Network traffic indicator in systray (schijnt continue te loggen)
Ik heb een optie gevonden in bandwithmeter pro waarin hij een file wegschrijft in de volgende vorm:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
File:      Traffic Rates Log
Adapter:   Intel(R) PRO/100 VE Network Connection - Network Load Balancing Filter Device [172.20.72.232]
Date:      11/07/2008 14:47:51
Interval:  6 Sec
Unit:      Byte

Date         Time             Download         Upload           Both
-----------------------------------------------------------------------
11/07/2008   14:47:57            13962          66350          80312
11/07/2008   14:48:03            25065          91778         116843
11/07/2008   14:48:09            19759          60213          79972
11/07/2008   14:48:15            18490          58131          76621
11/07/2008   14:48:21             8963          43248          52211


Met dit programma kan ik ook de netwerkadapter kiezen, alsook de interval van loggen. Het enige wat ik nu hoef te doen is een scriptje (?) schrijven om 1 keer per 2 minuten de bovenstaande file te lezen, als het totaal over een bepaalde waarde is de file leeg te gooien (getest, hij maakt een nieuwe lege aan) en maandelijks de file leeg te gooien.

Mijn vraag wordt nu: in welke taal kan ik een scriptje schrijven (voor windows server 2003) dat ofwel elke 2 minuten wordt aangeroepen ofwel altijd aan is en elke 2 minuten zelf checked, bovenstaande file kan parsen, optellen en vervolgens het batchbestand aanroepen/zelf de rasdial command gebruiken. Ik heb wel behoorlijke ervaring met dingen als JS en php, maar beide zijn een beetje lastig te schedulen en niet echt bedoeld voor dit soort werk...

edit2:
Bovenstaande is achteraf gezien wel vrij log, omdat je met een 100Mbps verbinding al in ~8 minuten 5GB kan ge-upload hebben, dus zal je een vrij korte interval moeten hebben. Dan moet je dus 1x per minuut het hele log parsen. Leeggooien kan niet want dan krijg je fouten als je hem leeggooit als er een nieuwe regel bijkomt.

Gelukkig heeft-ie blijkbaar ook een summary report, waarbij ik gewoon de monthly upload kan zien. Dan moet ik wel nog op één of andere manier bijhouden bij hoeveel data ik hem wissel en vervolgens dat bedrag van het totaal uit de summary aftrekken, om zo bij de hoeveelheid data sinds de laatste reset te komen.

Wat ik wel gek vindt: heeft Windows niet gewoon standaard een manier om aan de hoeveelheid uploaded data te komen?

[ Voor 14% gewijzigd door Technicality op 07-11-2008 16:05 ]


  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik denk dat je met vbscript een aardig eind gaat komen. Werkt standaard onder Windows, zie b.v. http://www.microsoft.com/...as_scr_eqco.mspx?mfr=true

Maar als je b.v. ervaring hebt met PHP, kan je daarmee ook werken op de commandline. Javascript kan volgens mij ook lokaal worden uitgevoerd om o.a. bestanden in te lezen.

[ Voor 33% gewijzigd door Noork op 07-11-2008 15:44 ]


  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

Topicstarter
Noork schreef op vrijdag 07 november 2008 @ 15:42:
Ik denk dat je met vbscript een aardig eind gaat komen. Werkt standaard onder Windows, zie b.v. http://www.microsoft.com/...as_scr_eqco.mspx?mfr=true

Maar als je b.v. ervaring hebt met PHP, kan je daarmee ook werken op de commandline. Javascript kan volgens mij ook lokaal worden uitgevoerd om o.a. bestanden in te lezen.
Dat VBscript lijkt wel ergens op :)

ik krijg het nu zo opgeslagen:

HTML:
1
2
3
4
5
6
7
8
9
10
<!--veeeel code voor today, this week etc-->

<td width="30" height="30"></td>
<td align="left" width="130" height="30"><b>This Month:</b></td>
<td height="30" width="140">4.45 MB</td>
<td height="30" width="140">5.36 MB</td>
<td height="30" width="140">9.81 MB</td>
<td width="30" height="30"></td></tr>

<!--veel code voor total etc-->


of een CVS, met een verhaal erin.

Gevoelsmatig is het netter om de CVS uit te lezen, maar is dat makkelijk met VBscript? Anders doe ik het met de regel
HTML:
1
<td height="30" width="140">5.36 MB</td>
en bekijk ik het als string vanaf het Xde char (waar nu de 5 staat) en haal ik er " MB</td>" vanaf...

edit: oja de vraag:

wat is een nette manier om dat scriptje aan te roepen? bij het opstarten (zijn genoeg hits over 'vbscript run as service' of elke minuut opnieuw door een sheduled task ofzo?

[ Voor 7% gewijzigd door Technicality op 07-11-2008 16:34 ]


  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik zou de CVS uitlezen. Zijn voldoende handleidingen te vinden op internet hoe dat moet.

Scriptje zou ik idd aanroepen als een scheduled task. Als een service kan natuurlijk ook. Je b.v. in het script een loopje maken dat om de x minuten runt. En dan het script als een service laten draaien met b.v. Firedeamon. Maar goed, dat betekend weer extra software en meer gedoe.

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

Topicstarter
Even voor de goede orde: ik heb het werkend gekregen. Ik roep mijn .vbs op bij het opstarten, die looped elke 2 minuten en leest de waarde uit de CSV summary zoals die geschreven wordt door bandwith monitor pro. Als een bepaalde limiet is overschreven zal hij wisselen van account, de accounts staan (nog) in een aparte CSV, met een waarde die beschrijft of een account al is geweest die maand. Elke maand laat ik een paar variabelen resetten, zodat het script 'weet' dat de waarde die hij uitleest uit de summary een nieuwe waarde is. De variabele geeft anders aan hoeveel er van dat getal door andere accounts is gebruikt.

Bovenstaande heb ik allemaal vrij modulair geschreven, en zowel wisselen van accounts als errors worden weggeschreven naar een logfile.

Zit ik nu alleen nog maar met het probleem dat alle usernames en passes in een plaintext bestandje staan... Iemand een (in VBscript implementeerbare) oplossing? Het werkt nu wel, maar als opeens een verkeerd type die gegevens in handen krijgt is er een probleem, want die user/pass combinaties werken voor alles van de universiteit, inclusief af/aanmelden voor vakken en tentames en e-mail.
Pagina: 1