در دفتری که ۲۰ نفر یک اینترنت ۵۰ مگابیتی دارند، یک نفر که فایل بزرگ دانلود میکند میتواند تماس تصویری بقیه را قطع کند. صفها (Queue) در میکروتیک برای همیناند: سقف سرعت، تقسیم عادلانه و اولویت.
اول: مشکل FastTrack
در فایروال پایه یک rule به اسم fasttrack داشتیم که اتصالهای established را از مسیر کوتاهتری عبور میدهد و مصرف CPU را خیلی کم میکند. ولی بستههای FastTrack شده از Simple Queue و Queue Tree رد نمیشوند. یعنی صف میسازید و هیچ اثری نمیبینید. دو راه دارید:
- اگر روتر قوی است و صف لازم دارید، rule fasttrack را غیرفعال کنید.
- یا FastTrack را فقط برای ترافیکی بگذارید که صف لازم ندارد (مثلاً ترافیک بین شبکههای داخلی) با شرط
src-addressیاdst-address.
/ip/firewall/filter/disable [find action=fasttrack-connection]Simple Queue: سقف سرعت برای یک IP یا یک شبکه
سادهترین نوع صف. max-limit بهترتیب آپلود/دانلود از دید دستگاه داخلی است:
/queue/simple/add name=guest-wifi target=192.168.20.0/24 max-limit=5M/10M
/queue/simple/add name=boss target=192.168.10.5/32 max-limit=20M/40MSimple Queueها هم از بالا به پایین خوانده میشوند و اولین صفی که با IP جور شود اعمال میشود؛ پس صفهای خاص (یک IP) را بالای صفهای کلی (کل شبکه) بگذارید.
Burst: سرعت بالا برای چند ثانیهٔ اول
با burst، کاربر برای باز کردن صفحهها و دانلودهای کوچک سرعت بیشتری میگیرد، ولی دانلود طولانی به سقف عادی برمیگردد:
/queue/simple/add name=staff target=192.168.10.0/24 max-limit=10M/20M \
burst-limit=20M/40M burst-threshold=8M/15M burst-time=10s/10sPCQ: تقسیم عادلانه بین همه
به جای ساختن یک صف برای هر نفر، PCQ خودش پهنای باند را بین همهٔ IPهای فعال تقسیم میکند. اگر ۵ نفر آنلاین باشند هر کدام یکپنجم میگیرند و اگر ۲ نفر، هر کدام نصف:
/queue/type/add name=pcq-down kind=pcq pcq-classifier=dst-address pcq-rate=0
/queue/type/add name=pcq-up kind=pcq pcq-classifier=src-address pcq-rate=0
/queue/simple/add name=fair-lan target=192.168.10.0/24 max-limit=45M/45M \
queue=pcq-up/pcq-downpcq-rate=0 یعنی سقف هر نفر ثابت نیست و فقط تقسیم عادلانه انجام میشود. اگر سقف هر نفر را هم میخواهید، مثلاً pcq-rate=5M بگذارید.
Queue Tree: اولویتبندی ترافیک
وقتی میخواهید تماس تصویری و VoIP قبل از دانلود رد شوند، باید ترافیک را اول علامتگذاری (mangle) و بعد در Queue Tree با اولویت متفاوت صف کنید. مثال ساده با دو کلاس: تماس (UDP پورتهای رایج تماس) و بقیه:
/ip/firewall/mangle
add chain=forward protocol=udp port=3478-3481,5060-5061,10000-20000 \
action=mark-packet new-packet-mark=voice passthrough=no
add chain=forward action=mark-packet new-packet-mark=other passthrough=no
/queue/tree
add name=down parent=bridge-lan max-limit=45M
add name=down-voice parent=down packet-mark=voice priority=1 limit-at=5M max-limit=45M
add name=down-other parent=down packet-mark=other priority=8 max-limit=45M queue=pcq-downعدد کمتر در priority یعنی اولویت بالاتر (۱ بالاترین، ۸ پایینترین). limit-at پهنای باندی است که آن کلاس در هر حال تضمینی میگیرد. پورتهای تماس به نرمافزار بستگی دارد؛ با Torch ببینید ترافیک واقعی روی چه پورتهایی است.
دیدن نتیجه
/queue/simple/print stats: نرخ لحظهای هر صف./tool/torch interface=bridge-lan: چه کسی الان چقدر مصرف میکند.- اگر صفها ستون
rateصفر دارند ولی ترافیک هست، به احتمال زیاد FastTrack روشن است.
منابع
- MikroTik Manual — Queues help.mikrotik.com/docs/display/ROS/Queues