voip prioritization

I have found the following link http://www.mikrotiktech.com/node/13
I pretty much copied this configuration and used it on our edge router.
We’ve had alot of complaints about voip service so I’m trying to resolve this by implementing some form of qos.
i used this on our edge because other then a few bridged routers at heavy traffic towers our canopy network is flat.
I know best cure for voip would be to go routed but as comcast and at&t are stealing our customers left and right my boss flat out told me he wont invest in reworking our network to routed.
Im trying to do what i can with what i have available .
ANYWAYS I digress
my question is I’m concerned because I’ve always been under the impression that with queue trees you have to declare interfaces and bandwidth for those interfaces I dont see any of that being applied here.
I did notice with these marks and queues turned on when i do a http speedtest our speedtest comes back much slower then with them off.
Can someone break down how this particular setup is working exactly from the standpoint of a edge router?
I know its in bad taste to just throw a set of queues onto an edge router without knowing how its specifically working and I do apologize for that but I’m really just trying to do what i can to attempt to alleviate our voip woes.

bump … anyone? I can understand no response if I’m constantly asking for help everyday but come on I ask for help maybe once every six months.

You are asking a very complicated question without much detail.

That link’s configuration isn’t going to work well. You are right that you need to specify limits for priority to work:
http://forum.mikrotik.com/t/simple-question-about-priority/36102/28

General link for QoS for bandwidth and priority: http://mum.mikrotik.com/presentations/CZ09/QoS_Megis.pdf

You’re also right that going routed would work best.

With queue trees, your best bet is to identify as much KNOWN traffic as possible and prioritize it. Dont just say.. OK.. I have 10mbit up and down, http will get at most 5mbit of that, https 2mbit, voip, 1mbit, and misc 2mbit (totalling 10), etc, etfc, etc… Set priorities and over-sell the total.

Upload queue 10mbit
http/https 2mbit guarantee, 10mbit max, priority 6
SMTP, 512kbit guarantee, 10mbit max, priority 7
DNS, 256kbit guarantee, 2mbit max, priority 5
VOIP (If serving many users, use PCQ here to guarantee a minimum 80kbit for each source/dest ip pair), 2mbit guarantee, 10mbit max, priority)


Download queue 10mbit
http/https 2mbit guarantee, 10mbit max, priority 6
SMTP, 512kbit guarantee, 10mbit max, priority 7
DNS, 256kbit guarantee, 2mbit max, priority 5
VOIP (If serving many users, use PCQ here to guarantee a minimum 80kbit for each source/dest ip pair), 2mbit guarantee, 10mbit max, priority)


You dont have to have a total that equals everything, just have to prioritize. Set it so certain traffic gets slowed down more than others to make sure the sensitive traffic will always be delivered at the lowest possible latency. The Upload/Download queues 10mbit max is just saying that no matter what, everything underneath this queue cannot exceed 10mbit, so if I am at 10mbit and have a voip connection, steal from everything else to make sure I have 80kbit for that voip connection.

I do it in small scale at my office. I only have 700kbit upstream w/ DFS replication running between 2 DCs, 5 ip phones, regular internet usage shared with a neighboring office and I get no jitter with a tailored queue.. The DFS can be pushing a steady 650kbit over the VPN connection and will just throttle back the second a voip connection comes through or some other LDAP/AD requests/regular downloads/uploads start happening. Itll go right down to 1kbit if Im on the phone while emailing a picture and uploading a new routeros package to a remote router. The second those are freed up, DFS just takes right off again. Its not uncommon at all for it to be peaking that 700kbit for days on end if I put a big file on one server and it is sending to the other, but the user experience is never interrupted because everything of major importance is classified and prioritized.

If this is a wireless environment, you would probably have to do some prioritization at the ethernet layer. The problem may not be at your edge router, but could be part of the 1/2 duplex nature of wireless.

Since atm really all we can do at our edge would be to qos download traffic destined for our customers i tried just setting a max limit on the parent queue of 20 meg figuring this is the size of our smallest pipe internally i figured this is a good number since anything over the size of the smallest pipe would be dropped I assume.
on our edge router we have a ds3 providing the bandwidth for our network, I’ve noticed we hardly go over 30 meg of usage with no queues in place.
We’re not even fully utilizing our incoming circuit, so how would the priority work since were technically not congested, however i think due to our wireless backhauls being 20 meg which is actually closer to 16 meg with overhead these backhauls and ap clusters are ina sense the bottlenecks of our network i believe preventing us from fully utilizing our upstream pipe. I guess what i would want to due is create our download queue on the edge router to match our smallest backhauls capacity?
since my thought is without the queues if 25 meg of traffic hits one of these backhauls otw to the customer the additional 5-7 megs would be dropped anyway.
Keep in mind we’re a canopy shop for whats its worth.
I know I understand the traffic flow etc but I’m a lil overwhelmed to say the least.
Another question I have is once i make the mangle rules for higher priority traffic voip http https dns icmp etc how would i classify the other leftover traffic since the packet mark parameter ! can only accomodate one already used packet mark?
If this is not clear here is what I mean, in the mangle rules my thought is for other traffic you would say packet mark !voip mark !http !https !dns etc would I then have to create a mangle rule for each with the appropriate ! packet mark field for each of the already classified traffics?

Priority only works when packets have to be dropped, as it describes how likely a packet is to be dropped. It does sound like you should install queues on the backbone links, matching the smallest one. I’d do one on the WAN as well just in case you do ever oversubscribe your DS3.

Quick example for marking packets in the “other” traffic class:

/ip firewall mangle
# mark http and https traffic
add chain=whatever protocol=tcp dst-port=80,443 action=mark-packet new-packet-mark=HTTP
# mark smtp traffic
add chain=whatever protocol=tcp dst-port=25,567 action=mark-packet new-packet-mark=SMTP
# mark everything that doesn't have a mark yet
add chain=whatever packet-mark=no-mark action=mark-packet new-packet-mark=THE_REST

sorry its been awhile since ive been back here to check this thread but i would like to thank you both for being helpful.
at this point in time owner is neglecting wisp side of business now, I am putting myslef back on the job market and trying to find employment where network layout is done the right way.
again thanks for your help.