On a linux server with dhcpd that acts as the internet gateway for all clients of the LAN: how can I monitor the internet usage based on IP/MAC address, and deny internet access if a certain bandwidth consumption has been exceeded?
Monitor and limit internet bandwidth per network client
linux;networking;monitoring;bandwidth
On Linux, you could get this done with some scripting:Create firewall rules with iptables so that all bandwidth for each client passes through a separate rule. The firewall subsystem in the kernel will count network packets and bytes that a particular rule matched. You can see the counters if you run iptables -vL. You might want to use the -n option too, for performance: iptables -vnLWrite a script that runs from cron and which checks how much data has been used by every client. Then if it's over a particular amount, have the script modify the firewall so that the client can not access the Internet anymoreNote that iptables' counters get reset when the firewall is cleared (i.e., after reboot, or when you do iptables -F. As such, you might want to have the script state its conclusions to some database or something.