Community discussions

MikroTik App
 
cicserver
Member
Member
Topic Author
Posts: 303
Joined: Sun Jul 24, 2011 12:04 pm

efficiently marking of packets

Wed Apr 10, 2019 7:36 pm

Scenario:
I am running pppoe server with about 2000 active pppoe subscriber. All users gets public IP & there is no NAT rule in place. Connection Tracking is set to AUTO, and in ip/firewall/Raw , I added rules for NO track for src/dst of my public ip users to avoid CPU hiking on ppp sessions disconnection. each user gets Dynamic as per its package defined in radius . So far its working ok.

Requirement:
We want to assign separate bandwidth for some MEDIA servers, and each package user will get different bandwidth for these MEDIA servers. for this we removed dynamic queue setting and configured PCQ for each package , as someone suggested that its better to control bw with PCQ rather than each user separate queue plus with PCQ I can use TIEM feature for many other things. . and PCQ is more efficient and takes little cpu as compared to 2000 dynamic queues.
now for the media part,
example: 1mb user can access internet at the speed of 1mb, but he can get addition 1mb for the MEDIA server.
example: 2mb user can access internet at the speed of 2mb, but he can get addition 2mb for the MEDIA server.
Note: I have 20 different bandwidth packages for internet and same for media servers.

my code is below
/ip firewall mangle
add action=mark-packet chain=forward dst-address-list=media_srv_list new-packet-mark=1mb_users_media_pkt passthrough=no src-address-list=1mb
add action=mark-packet chain=forward dst-address-list=1mb new-packet-mark=1mb_users_media_pkt passthrough=no src-address-list=media_srv_list
add action=mark-packet chain=forward dst-address-list=media_srv_list new-packet-mark=2mb_users_media_pkt passthrough=no src-address-list=2mb
add action=mark-packet chain=forward dst-address-list=2mb new-packet-mark=2mb_users_media_pkt passthrough=no src-address-list=media_srv_list

add action=mark-packet chain=forward comment="1mb users DOWNLOAD" dst-address-list=1mb new-packet-mark=1mb_users_down passthrough=no
add action=mark-packet chain=forward comment="1mb users UPLOAD" new-packet-mark=1mb_users_up passthrough=no src-address-list=1mb
add action=mark-packet chain=forward comment="2mb users DOWNLOAD" dst-address-list=2mb new-packet-mark=2mb_users_down passthrough=no
add action=mark-packet chain=forward comment="2mb users UPLOAD" new-packet-mark=2mb_users_up passthrough=no src-address-list=2mb

/queue type
#for normal internet
add kind=pcq name=1mb-download pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=1024k pcq-src-address6-mask=64
add kind=pcq name=1mb-upload pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=1024k pcq-src-address6-mask=64
add kind=pcq name=2mb-download pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=2048k pcq-src-address6-mask=64
add kind=pcq name=2mb-upload pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=2048k pcq-src-address6-mask=64
#for media servers
add kind=pcq name="media - 1mb download" pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=1M pcq-src-address6-mask=64
add kind=pcq name="media - 2mb download" pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=2M pcq-src-address6-mask=64
add kind=pcq name="media - 1mb upload" pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=1M pcq-src-address6-mask=64
add kind=pcq name="media - 2mb upload" pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=2M pcq-src-address6-mask=64

/queue simple
#for normal internet
add name="1mb per user DOWN - PCQ" packet-marks=1mb_users_down queue=1mb-upload/1mb-download target=""
add name="1mb per user UP - PCQ" packet-marks=1mb_users_up queue=1mb-upload/1mb-download target=""
add name="2mb per user DOWN - PCQ" packet-marks=2mb_users_down queue=2mb-upload/2mb-download
add name="2mb per user UP - PCQ" packet-marks=2mb_users_up queue=2mb-upload/2mb-download
#bw control for media servers
add name="media - 1mb media package for 1mb users" packet-marks=1mb_users_media_pkt priority=1/1 queue="media - 1mb upload/media - 1mb download" target=""
add name="media - 2mb media package for 2mb users" packet-marks=2mb_users_media_pkt priority=1/1 queue="media - 2mb upload/media - 2mb download" target=""
(I posted just 2 packages rules, there are more then 20 packages)
Is this the proper way or are there efficient way to do this?

Who is online

Users browsing this forum: Google [Bot], Majestic-12 [Bot] and 28 guests