معرفی کاربردهای Mangle در میکروتیک

Mangle در میکروتیک

Mangle در میکروتیک ابزاری قدرتمند برای تغییر یا علامت‌گذاری بسته‌های ترافیکی است و معمولاً برای مدیریت پهنای باند، کیفیت سرویس (QoS) و اعمال سیاست‌های مسیریابی خاص (Policy Routing) استفاده می‌شود. Mangle در فایروال میکروتیک به شما اجازه می‌دهد که بسته‌های ترافیک شبکه را قبل از اینکه در روتر پردازش شوند، علامت‌گذاری کرده و ویژگی‌های آنها را تغییر دهید تا بتوانید قوانین پیچیده‌تری اعمال کنید.

کاربردهای Mangle در میکروتیک

علامت‌گذاری بسته‌ها (Packet Marking) با Mangle در میکروتیک

علامت‌گذاری بسته‌ها برای اعمال قوانین بعدی، یکی از کاربردهای Mangle در میکروتیک است. مثل کنترل پهنای باند یا فیلتر کردن ترافیک. در زیر مثالی آورده ایم که نشان می‌دهد چطور می‌توان بسته‌های مربوط به پروتکل HTTP را علامت‌گذاری کرد.

/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 action=mark-packet new-packet-mark=http_traffic

این قانون تمام ترافیک HTTP را علامت‌گذاری کرده و به آن یک برچسب به نام “http_traffic” می‌دهد. این برچسب می‌تواند در قوانین بعدی برای کنترل پهنای باند یا فیلتر ترافیک استفاده شود.

علامت‌گذاری اتصال‌ها (Connection Marking) با Mangle در میکروتیک

اتصال‌ها را علامت‌گذاری می‌کند و می‌توانید برای مجموعه‌ای از بسته‌ها (که یک اتصال خاص را تشکیل می‌دهند) قوانین خاص اعمال کنید. در این اینجا مثالی هست که با آن اتصال‌های مربوط به FTP علامت‌گذاری می‌شوند تا بعداً بتوانید پهنای باند آن را مدیریت کنید:

/ip firewall mangle add chain=prerouting protocol=tcp dst-port=21 action=mark-connection new-connection-mark=ftp_conn

این قانون تمام اتصال‌های FTP را علامت‌گذاری کرده و به آنها برچسب “ftp_conn” می‌دهد. این برچسب برای مدیریت پهنای باند یا مسیریابی استفاده می‌شود.

تنظیم TTL (Time To Live) با Mangle در میکروتیک

تغییر مقدار TTL بسته‌ها برای کنترل نحوه عبور بسته‌ها از روتر و تعداد روترهایی که یک بسته می‌تواند از آنها عبور کند. در زیر برای تغییر TTL بسته‌ها با استفاده از Mangle در میکروتیک یک مثال مشاهده می‌کنید. مثلاً برای کاهش بار ترافیکی روی شبکه میتوان از دستور زیر استفاده کرد:

/ip firewall mangle add chain=postrouting action=change-ttl new-ttl=set:128

این قانون TTL بسته‌های خروجی از روتر را به 128 تغییر می‌دهد.

Pre-routing و Post-routing

با استفاده از Mangle در میکروتیک می‌توان برای تغییر بسته‌ها در مراحل مختلف پردازش ترافیک استفاده کرد. دو مرحله بسیار مهم در پردازش بسته‌ها، Pre-routing و Post-routing هستند. در مرحله Pre-routing، بسته‌ها قبل از اینکه توسط روتر مسیریابی شوند، پردازش می‌شوند. در مرحله Post-routing، بسته‌ها پس از مسیریابی و قبل از خروج از روتر پردازش می‌شوند.

Pre-routing
این مرحله قبل از اینکه بسته‌ها وارد فرآیند مسیریابی روتر شوند، اعمال می‌شود. اینجا می‌توانید بر اساس مبدا یا مقصد بسته‌ها، تغییرات یا علامت‌گذاری‌هایی روی بسته‌ها انجام دهید.
Post-routing
این مرحله پس از اینکه بسته‌ها مسیریابی شدند، اما قبل از اینکه از روتر خارج شوند، اعمال می‌شود. این مرحله مناسب برای اعمال تغییرات نهایی بر روی بسته‌ها مانند تغییر TTL یا انجام NAT است.

در این قسمت برای آشنایی بیشتر با گزینه های action موجود در Mangle میکروتیک به توضیح آنها پرداخته ایم:
accept: پردازش بسته را متوقف می‌کند و اجازه می‌دهد که به مقصد خود برود.
add dst to address list: آدرس مقصد بسته را به لیست آدرس‌های مشخص شده اضافه می‌کند.
add src to address list: آدرس مبدأ بسته را به لیست آدرس‌های مشخص شده اضافه می‌کند.
change DSCP (TOS): تغییر DSCP (Differentiated Services Code Point) بسته برای اعمال اولویت‌بندی.
change MSS: تغییر Maximum Segment Size برای بسته‌های TCP.
change TTL: تغییر Time To Live برای بسته‌ها.
clear DF: پاک کردن بیت DF (Don’t Fragment) در بسته‌های IP.
fasttrack connection: فعال کردن قابلیت FastTrack برای بسته‌های مشخص‌شده (برای بهینه‌سازی عملکرد).
jump: به زنجیره دیگری بپرید تا پردازش بیشتری انجام شود.
log: ثبت بسته‌ها در لاگ برای بررسی.
mark connection: علامت‌گذاری روی یک اتصال.
mark packet: علامت‌گذاری روی یک بسته.
mark routing: علامت‌گذاری برای مسیریابی بسته‌ها.
passthrough: اجازه می‌دهد پردازش بسته در زنجیره بعدی ادامه پیدا کند.
return: به زنجیره قبلی بازمی‌گردد.
route: مشخص کردن مسیری خاص برای بسته‌ها.
set priority: تنظیم اولویت برای بسته.
sniff PC/TZSP: شروع به ضبط بسته‌ها برای تحلیل.
strip IPv4 options: حذف گزینه‌های خاص در بسته‌های IPv4.

مثال عملی برای استفاده از Mangle در میکروتیک

مدیریت و مسیریابی ترافیک شبکه داخلی با استفاده از Pre-routing و Post-routing

فرض کنید دو لینک اینترنت دارید (ISP1 و ISP2) و می‌خواهید ترافیک شبکه داخلی (192.168.1.0/24) را از طریق ISP1 ارسال کنید و ترافیک یک سرویس خاص (مثل FTP) را از طریق ISP2 مسیریابی کنید. برای این کار از Pre-routing و Post-routing استفاده می‌کنیم.

مرحله اول: علامت‌گذاری بسته‌ها در Pre-routing
در این مرحله، ما بسته‌های شبکه داخلی (192.168.1.0/24) و بسته‌های مربوط به سرویس FTP (پورت 21) را علامت‌گذاری می‌کنیم تا بعداً بتوانیم آنها را به مسیرهای مختلف هدایت کنیم.

/ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 action=mark-routing new-routing-mark=to_ISP1
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=21 action=mark-routing new-routing-mark=to_ISP2

توضیح دستور بالا
در قانون اول تمام بسته‌هایی که از شبکه داخلی 192.168.1.0/24 می‌آیند، با برچسب to_ISP1 علامت‌گذاری می‌شوند. این به معنای این است که ما می‌خواهیم این ترافیک از طریق ISP1 ارسال شود.
در قانون دوم بسته‌هایی که از پروتکل FTP استفاده می‌کنند (پورت 21) با برچسب to_ISP2 علامت‌گذاری می‌شوند و قرار است از ISP2 مسیریابی شوند.
مرحله دوم: اعمال مسیریابی بر اساس برچسب‌ها
حال که بسته‌ها را علامت‌گذاری کرده‌ایم، می‌توانیم از Routing Table استفاده کنیم تا ترافیک را از مسیرهای مختلف هدایت کنیم.

/ip route add gateway=ISP1_Gateway routing-mark=to_ISP1
/ip route add gateway=ISP2_Gateway routing-mark=to_ISP2

توضیح دستورات بالا
در قانون اول بسته‌هایی که با to_ISP1 علامت‌گذاری شده‌اند، از طریق درگاه ISP1 مسیریابی می‌شوند.
در قانون دوم بسته‌هایی که با to_ISP2 علامت‌گذاری شده‌اند (ترافیک FTP)، از طریق درگاه ISP2 مسیریابی می‌شوند.
مرحله سوم: تغییر بسته‌ها در Post-routing
در این مرحله، بسته‌ها قبل از خروج از روتر، پردازش نهایی می‌شوند. به عنوان مثال، می‌خواهیم مقدار TTL بسته‌های خروجی از ISP1 را تغییر دهیم.

/ip firewall mangle add chain=postrouting routing-mark=to_ISP1 action=change-ttl new-ttl=set:64

توضیح دستور بالا
این قانون مقدار TTL بسته‌های خروجی که از طریق ISP1 (علامت‌گذاری شده با to_ISP1) عبور می‌کنند را به 64 تنظیم می‌کند. تغییر TTL می‌تواند برای جلوگیری از حملات یا کاهش بار روی شبکه استفاده شود.

کنترل پهنای باند و مدیریت ترافیک با استفاده از Mangle در میکروتیک

با علامت‌گذاری بسته‌ها می‌توانید اقدام به کنترل پهنای باند و ترافیک کاربران کنید. این بخش در کنار Queue Trees استفاده می‌شود.
در این مثال، ترافیک مربوط به HTTP علامت‌گذاری شده و سپس پهنای باند آن توسط Queue Treesمحدود می‌شود. این کار را باید در دو مرحله انجام دهید:

مرحله اول: علامت‌گذاری ترافیک HTTP

/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 action=mark-packet new-packet-mark=http_traffic

مرحله دوم: ایجاد Queue برای مدیریت پهنای باند:

/queue tree add name=”http_traffic_queue” parent=global packet-mark=http_traffic limit-at=1M max-limit=2M

در اینجا ابتدا ترافیک HTTP علامت‌گذاری شده و سپس در مرحله دوم یک Queue تعریف شده که پهنای باند ترافیک HTTP را به 1 مگابیت در ثانیه محدود می‌کند و در صورت نیاز می‌تواند تا 2 مگابیت برود.

از Mangle در میکروتیک برای تنظیم مسیریابی بر اساس قوانین مشخص استفاده می‌شود. مثلاً می‌توانید ترافیک مشخصی را از یک رابط (interface) خاص عبور دهید. فرض کنید می‌خواهید ترافیک شبکه داخلی (192.168.1.0/24) را از طریق یک لینک اینترنت خاص هدایت کنید برای این کار میتوانید از روش زیر استفاده کنید:

/ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 action=mark-routing new-routing-mark=link1

این قانون ترافیک شبکه داخلی را علامت‌گذاری می‌کند تا بعداً از طریق مسیر خاصی مسیریابی شود.

سربرگ Mangle در میکروتیک ابزاری بسیار کاربردی برای مدیریت و کنترل پیشرفته ترافیک است. از طریق آن می‌توانید بسته‌های ترافیکی را علامت‌گذاری کنید، تغییر دهید و سیاست‌های خاص مسیریابی و پهنای باند را اعمال کنید.