Hi, I have a slightly peculiar requirement to track very accurate *per
user* traffic for a small remote bunch of users.  The internet
connections these users have available will be some kind of satellite
telephone with non trivial bandwidth costs and we want to attribute very
exact costs back on a per user basis. (these kinds of devices have
running costs circa $10-100/MB)

To do this I'm using a small custom built embedded router, and we will
use some form of 802.11x or captive portal style user authentication but
I have one area I need advice on solving:

- Tracking bandwidth *through* "proxies" such dnsmasq.

Basically there isn't an exact match between the flows between dnsmasq
and the client and dnsmasq and the upstream dns resolver...

I think at least on linux a good solution would be to copy the iptables
"mark" from an incoming connection and apply it to any outgoing
connections (across the expensive link).  I could then track bandwidth
by simply tracking on the connection mark and this would watch both
direct traffic and via the "proxy"?

Squid recently added exactly this to their codebase:
        http://bazaar.launchpad.net/~squid/squid/3-trunk/revision/10925

Does someone have an idea on how much effort this would be to implement
in dnsmasq?  Simon, would you consider a feature request to add such a
thing?

(Note this could be slightly useful for uses other than my scenario, for
example more general captive portals tend to be vulnerable to dns
tunnelling hacks - such a feature would allow dnsmasq to resolve local
and cached responses, but the firewall can make decisions based on the
connection mark to allow outbound queries)

Thanks for any thoughts

Ed W

Reply via email to