مديريت ترافيک دانلود و آپارات و سايت ها – ميکروتيک
در سیستم عامل RoS میکروتیک روشهای مختلفی برای مدیریت و تقسیم پهنای باند وجود دارد که یکی از این روشها تحت عنوان PCC شناخته میشود.
در این روش مدیریت ترافیک براساس تقسیم اتصالات (Connections) بین لینکهای مختلف انجام میشود و به همین دلیل تحت عنوان Per Connection Classifier شناخته میشود.
تئوری عملکرد این سیستم به شرح زیر است:
در این روش PCC بخشهای از Header IP را از پکتها انتخاب میکند و براساس یک الگوریتم خاص فیلد انتخاب شده را به یک مقدار ۳۲ بیتی تبدیل میکند و براساس همان الگوریتم ترافیکها را علامتگذاری کرده تا از هر لینک WAN که دریافت یا ارسال میشوند از طریق همان لینک نیز پاسخ داده شوند. در این روش میتوان از مقادیر src-address, dst-address, src-port, dst-port استفاده نمود.
در این مقاله به نحوه راهاندازی این سرویس خواهیم پرداخت:
در مرحله اول باید برای هر Interface متصل به WAN و LAN یک IP تنظیم کنیم:
/ ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=LAN
add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ISP1
add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=ISP2
برای جلوگیری از Routing loop در شبکه و همچنین تصحیح عملکرد روتر برای مسیریابی پکتهایی که به سمت Gatewayهای مختلف منتقل میشود از دستورات زیر استفاده میکنیم:
/ ip firewall mangle
add chain=prerouting dst-address=10.111.0.0/24 action=accept in-interface=LAN
add chain=prerouting dst-address=10.112.0.0/24 action=accept in-interface=LAN
برای مدیریت ترافیکهای ورودی که از Gatewayهای مختلف وارد میشوند از ابزار Mark-Connection استفاده میکنیم به دلیل اینکه روتر بتواند بر اساس تنظیماتی که انجام میدهیم اطلاعات ورودی از هر لینک WAN را از همان لینک خارج کند.
add chain=prerouting in-interface=ISP1 connection-mark=no-mark action=mark-connection new-connection-mark=ISP1_conn
add chain=prerouting in-interface=ISP2 connection-mark=no-mark action=mark-connection new-connection-mark=ISP2_conn
برای تقسیم پهنای باند بین گروههای مختلف براساس نیاز ما از دستورات زیر استفاده میکنیم. با توجه به اینکه در میکروتیک chain: prerouting تمام ترافیکهای ورودی را مورد بررسی قرار میدهد بههمین دلیل برای جلوگیری از در نظر گرفتن ترافیکهای local در دستورات زیر از dst-address-type=!local استفاده شده است.
add chain=prerouting in-interface=LAN connection-mark=no-mark dst-address-type=!local \
per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=ISP1_conn
add chain=prerouting in-interface=LAN connection-mark=no-mark dst-address-type=!local \
per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=ISP2_conn
هماکنون لازم است تمام ترافیکهایی که از قبل نشانهگذاری کردیم و از شبکه دریافت میکتیم برای انجام عملیات مسیریابی مجدداً علامتگذاری کنیم.
add chain=prerouting connection-mark=ISP1_conn in-interface=LAN action=mark-routing new-routing-mark=to_ISP1
add chain=prerouting connection-mark=ISP2_conn in-interface=LAN action=mark-routing new-routing-mark=to_ISP2
add chain=output connection-mark=ISP1_conn action=mark-routing new-routing-mark=to_ISP1
add chain=output connection-mark=ISP2_conn action=mark-routing new-routing-mark=to_ISP2
سپس برای هر Routing-Mark یک قانون مسیریابی ایجاد میکنیم:
/ ip route
add dst-address=0.0.0.0/0 gateway=10.111.0.1 routing-mark=to_ISP1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 routing-mark=to_ISP2 check-gateway=ping
برای حصول اطمینان از بالا بودن ضریب دسترسی شبکه دستورات زیر را وارد میکنیم:
add dst-address=0.0.0.0/0 gateway=10.111.0.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 distance=2 check-gateway=ping
در نهایت برای استفاده کاربران از اینترنت باید عملیات NAT برای هر لینک خروجی WAN و همچنین ترافیکهای علامتگذاری شده انجام شود برای این منظور از دستورات زیر استفاده میکنیم:
/ ip firewall nat
add chain=srcnat out-interface=ISP1 action=masquerade
add chain=srcnat out-interface=ISP2 action=masquerade