I am trying to set up QoS to make sure Voice packets have priority in my network for a specific application. I am not sure I am doing everything in the right order but this is what I came up with. What is your opinion regarding this matter? Is there something too much or missing?
Basically I have a list of 6 IP address added in a list (here I just put one as example. I then create the mangle rules: one with TCP protocol (only used for signaling the calls by the app) and one with UDP protocol (used while calling). I then create the queue tree. Let's say I have 22Mb/s up and down, I take off 10% for security and dedicate 25% of my bandwidth to these packets. I'll then have 5Mb/s for this app (divided into 4 for the udp and 1 for the tcp protocols, even though I could probably take less for the TCP) and 15Mb/s for the rest. It is connected through ether0 port.
This is what I am doing:
Code: Select all
/ip firewall address-list
Add address=xx.xxx.xxx.xxx/xx list=List_IP
/ip firewall mangle
add chain=forward dst-address-list=List_IP protocol=tcp port=5060,5061,5063,5080 action=mark-connection new-connection-mark=Voice-c
add chain=forward src-address-list=List_IP protocol=tcp port=5060,5061,5063,5080 action=mark-connection new-connection-mark=Voice-c
add chain=forward dst-address-list=List_IP protocol=udp port=10000-20000 action=mark-connection new-connection-mark=Voice
add chain=forward src-address-list=List_IP protocol=udp port=10000-20000 action=mark-connection new-connection-mark=Voice
add chain=forward connection-mark=Voice-SIP action=mark-packet new-packet-mark=Voice_c
add chain=forward connection-mark=Voice action=mark-packet new-packet-mark=Voice_P
/queue tree
add limit-at=20Mb max-limit=20Mb name=Up parent=ether0 queue=default
add limit-at=4Mb max-limit=4Mb name=Voice_Up packet-mark=Voice_P parent=Up priority=1 queue=default
add limit-at=1Mb max-limit=1Mb name=Voice_Up packet-mark=Voice_c parent=Up priority=1 queue=default
add name=Rest_Up parent=Up priority=8 queue=default
add limit-at=20Mb max-limit=20Mb name=Down parent=ether0 queue=default
add limit-at=4Mb max-limit=4Mb name=Aircall_Down packet-mark=Voice_P parent=Down priority=1 queue=default
add limit-at=1Mb max-limit=1Mb name=Aircall_Down packet-mark=Voice_c parent=Down priority=1 queue=default
add name=Rest_Down parent=Down priority=8 queue=default
On a side note, I know that all the packets coming in and out of that application are automatically marked with DSCP tag 46. Could I have done something simpler relying on this ?
Thanks you very much for your help guys!
Cheers