Hello,
We've deployed m0n0wall to a number of our VOIP clients. We have setup traffic shaping so that all traffic to and from the VOIP server goes over it's own pipe. So we have an inbound and an outbound pipe with X amount of bandwidth allocated. Recently we've started using DDWRT, but it does not have near the functionality that m0n0wall does. What it DOES have, however, is the ability to put in a MAC address and say "all traffic to and from this MAC address is given top priority". In the event that there is no traffic going to those MAC addresses, the entire amount of the bandwidth is available (minus about 8% that we reserve so that the internet connection does not reach total saturation). The reason this has become important is that we are trying to move away from the G729 codec to G711, which requires more bandwidth. Under our current method of doing things with m0n0wall, I would have to reserve 800k (both up and down) of their connection to guarantee quality on 8 simultaneous calls. If you figure a "good" connection provides 1000k of upload bandwidth, that only leaves 200 left for general purposes.
What I want to do is set the total available bandwidth to 92% of the worst case scenario up and down. I would then like to prioritize all traffic to and from our VOIP devices, while leaving the bandwidth still accessible in the event that the VOIP devices are not being utilized.
Here is an example:
Total Bandwidth: 10000k down, 1000k up Total Available Bandwidth through m0n0wall: 9200k down, 920k up
User 1 is downloading a file and nobody else is doing anything: User 1 gets the full 9200k
User 2 connects to a terminal services session that requires 100k of up/down bandwidth: User 1 gets 9100k of download speed and User 2 gets 100k of up/down bandwidth.
User 3 picks up his VOIP phone and makes a call: User 1 now has 9000k of download speed and User 2 gets 100k of up/down bandwidth. User 3's packets are prioritized for latency.
User 4 picks up his VOIP phone and makes a call: User 1 now has 8900k of download speed and User 3's and User 4's packets are prioritized for latency.
User 3 and 4 disconnect their calls, now User 1 is back up to 9100k of download speed.
Is there a way to do this with m0n0wall? My understanding is that if you use queues that it introduces latency (delay) which is inherently bad for real time VOIP conversations.
|