by logan » Feb 12 09 6:33 pm
Sounds like a pretty interesting scenario. As long as you're not trying to enforce a quota limit, easy as well. Here's my general suggestions.
1. Use Wireless Routers that can do NAT on the client side. This will let the client have as many IP's on their local subnet as they want, but your WinGate server will only have to deal with the one IP address of the router itself. Also, a Wireless Router that can do NAT would be expected to have some sort of firewall to protect the networks of your clients, without preventing them from talking to each other if they want to open ports. Or you could simply enable Layer 2 isolation on the main access point to prevent all joined devices from talking to each other. L2 isolation is typically employed in wireless hotspots.
Routers can obtain a DHCP IP address from WinGate automatically. You can use DHCP reservations to set which IP addresses each router gets assigned and make sure nobody else gets assigned that IP address.
The client computers behind the wireless routers then get their DHCP from the wireless router instead of WinGate. There can be as many computers on the client network as they wish, but WinGate will only have to deal with the one IP address assigned to the Wireless router.
2. Since each Wireless router has a single IP address, you can create a user for each of the joining networks, and use IP assumptions to assume each IP as a the appropriate user in WinGate. WinGate will then be able to accumulate quota data for each of the users.
3. Disable the guest account so that unassumed conenctions are not allowed. If a user manually sets their IP to one which they haven't been assigned to try and work around their quota, WinGate will not let them.
4. In regards to actually collecting and using the data for charging purposes, that's easy. Each user has a tab in their properties called accounting. This tab displays the users traffic in 5 dimensions; "Traffic sent to the internet on behalf of the client (bytes)", "Traffic received from the internet on behalf of the client (bytes)", "Traffic sent to client (bytes)", "Traffic received from client (bytes)", and "Time online (seconds)".
There are also extra fields that let you assign charge rates for each of the traffic dimensions, and show a calculated priced. Saves you doing all the calculations yourself :). It also handles prepaying.
At the end of each month, you want to export this data to a file, and then 0 off all the user accounts for the new month. This can be done from from the scheduler. The actions you want to schedule are "export user accounts" and " reset all user accounts".
You will now have a file which lists all the users, and how much traffic they have used.
This is only a quick overview of what you can do. If you want to talk about anything in more detail, or would like assistance setting up this scenario, add me on skype. My skype name is in my signature.