If you only have a limited amount of bandwidth (such as a xDSL or Fixed Wireless Connection) and you have a number of users that all need equal access to the bandwidth, MikroTik has a nice solution called PCQ.



Step 1: You need to work out how much bandwidth you have available, or how much you want to have shared between the clients. You can use popular speedtest websites such as nperf.com or speedtest.net. You'll want to find the total download and upload speed


Step 2: Open up your MikroTik router that you wish to configure this for in Winbox (if you don't have Winbox already, you can get it from https://mikrotik.com/download) or Webfig

Go to the Queues button on the left hand side, and go over to Queue types and click on the blue add button

Step 3: Create 2 new queue types, one for upload and one for download, and under the rate box, put the total upload and download speed, followed by a M. In my example, i have a total download of 17M or 17 Mbps, and a upload of 2M or 2 Mbps

/queue type
add kind=pcq name=pcq-download pcq-classifier=dst-address pcq-rate=17M
add kind=pcq name=pcq-upload pcq-classifier=src-address pcq-rate=2M



Step 4:

Go to IP > Firewall > Mange and create 2 new rules, again it's one for download and one for upload. 


In the example below, I've set my interfaces from the interface lists i have set up. For more information on interface list, please see the following MikroTik wiki: https://wiki.mikrotik.com/wiki/Manual:Interface/List


Alternatively, you can see interfaces instead, such as 'bridge' for the LAN side, and pppoe-out1 for the WAN


/ip firewall mangle
add action=mark-packet chain=prerouting in-interface-list=LAN new-packet-mark=client_upload passthrough=yes
add action=mark-packet chain=prerouting in-interface-list=WAN new-packet-mark=client_download passthrough=yes








Step 6: Go back to the Queue menu and go to the Queue Tree tab and create two new queue trees


/queue tree
add name=pcq_download packet-mark=client_download parent=global queue=pcq-download
add name=pcq_upload packet-mark=client_upload parent=global queue=pcq-upload


And that's it! If the instructions were followed correctly, you should see packets incrementing both on the Firewall Mangle rules you created, and the Queue Tree rules, such as the picture below




For more information on PCQ Queues, check out the following MikroTik wiki pages

https://wiki.mikrotik.com/wiki/Manual:Queues_-_PCQ

https://wiki.mikrotik.com/wiki/Manual:Queues_-_PCQ_Examples