مدیریت ترافیک دانلود و آپارات و سایت‌ها – میکروتیک

/ 2 ژوئن 16

در سیستم عامل RoS میکروتیک روش‌های مختلفی برای مدیریت و تقسیم پهنای باند وجود دارد که یکی از این روش‌ها تحت عنوان PCC شناخته می‌شود.

در این روش مدیریت ترافیک بر اساس تقسیم اتصالات (Connections) بین لینک‌های مختلف انجام می‌شود و به همین دلیل تحت عنوان Per Connection Classifier شناخته می‌شود.

تئوری عملکرد این سیستم به شرح زیر است:
در این روش PCC بخش‌های از Header IP را از پکت‌ها انتخاب می‌کند و بر اساس یک الگوریتم خاص  فیلد انتخاب شده را به یک مقدار ۳۲ بیتی تبدیل می‌کند و بر اساس همان الگوریتم ترافیک‌ها را علامت‌گذاری کرده تا از هر لینک WAN که دریافت یا ارسال میشوند از طریق همان لینک نیز پاسخ داده شوند. در این روش می‌توان از مقادیر src-address, dst-address, src-port, dst-port استفاده نمود.

 

IP4 Header
Mangle Rule

 

در این مقاله به نحوه راه اندازی این سرویس خواهیم پرداخت:

internet

 

در مرحله اول باید برای هر 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

 

بهداد رحمانی

LiveZilla Live Chat Software