وقتی یک شرکت، دفتر، فروشگاه یا شبکه سازمانی دو سرویس اینترنت مستقل دارد، معمولاً دو انتظار از Router وجود دارد:

  • هر دو اینترنت هم‌زمان مورد استفاده قرار بگیرند.
  • اگر یکی از خطوط قطع شد، اینترنت دیگر ادامه سرویس را بر عهده بگیرد.

MikroTik می‌تواند هر دو نیاز را پیاده‌سازی کند؛ اما قبل از Configuration باید تفاوت Load Balancing، Failover و تجمیع واقعی پهنای باند را بدانیم.

در این آموزش، Load Balance دو اینترنت در MikroTik را با روش PCC در RouterOS 7 پیاده‌سازی می‌کنیم و سپس Weighted Load Balancing، Failover، NAT، Routing Table، FastTrack و مشکلات رایج Multi-WAN را بررسی خواهیم کرد.

مهم‌ترین نکته مقاله: PCC سرعت دو اینترنت را برای یک Connection واحد با یکدیگر جمع نمی‌کند. PCC Connectionهای مختلف را میان WANها توزیع می‌کند تا مجموع ظرفیت شبکه بهتر استفاده شود.

Load Balance چیست؟

Load Balancing یعنی توزیع Traffic میان دو یا چند مسیر اینترنت.

فرض کنید شبکه دارای این دو سرویس است:

ISP 1 → 100 Mbps

ISP 2 → 50 Mbps

بدون Load Balance ممکن است ISP1 مسیر اصلی و ISP2 فقط Backup باشد:

Normal:
Users → ISP1

ISP2 → Idle

Failure:
Users → ISP2

در این حالت تا زمانی که ISP1 سالم است، ظرفیت ISP2 تقریباً بلااستفاده باقی می‌ماند.

در Load Balance:

User Connection 1 → ISP1
User Connection 2 → ISP1
User Connection 3 → ISP2
User Connection 4 → ISP1
User Connection 5 → ISP2

در نتیجه هر دو سرویس هم‌زمان Traffic حمل می‌کنند.

آیا 100Mbps + 50Mbps واقعاً 150Mbps می‌شود؟

اینجا یکی از رایج‌ترین سوءبرداشت‌ها درباره Load Balance وجود دارد.

فرض کنیم:

WAN1 = 100 Mbps
WAN2 = 50 Mbps

در PCC می‌توان گفت ظرفیت کلی شبکه برای تعداد زیادی Connection تقریباً می‌تواند به:

100 + 50 ≈ 150 Mbps

نزدیک شود.

اما این به معنی آن نیست که یک Download TCP واحد الزاماً با 150Mbps انجام شود.

یک Connection

PC
 |
TCP Connection
 |
WAN1
 |
Internet

Maximum ≈ ظرفیت WAN1

این Connection از ابتدا روی WAN1 قرار گرفته و تا پایان همان Connection همان مسیر را حفظ می‌کند.

چند Connection هم‌زمان

Connection A → WAN1
Connection B → WAN1
Connection C → WAN2
Connection D → WAN1
Connection E → WAN2

اینجاست که مجموع ظرفیت دو اینترنت قابل استفاده می‌شود.

به همین دلیل بعضی Speed Testها عددی نزدیک مجموع دو خط نشان می‌دهند. بسیاری از Speed Testها چند TCP Connection هم‌زمان ایجاد می‌کنند و PCC می‌تواند این Connectionها را میان WANها تقسیم کند.

پس تجمیع واقعی پهنای باند چیست؟

اگر هدف این باشد که یک Connection واحد واقعاً از ظرفیت دو اینترنت استفاده کند، معماری متفاوتی لازم است.

معمولاً باید هر دو سمت Traffic تحت کنترل باشند:

WAN1 ─┐
 ├── Aggregation Tunnel ── Aggregation Server ── Internet
WAN2 ─┘

این معماری می‌تواند توسط:

  • SD-WAN
  • Multi-Link Tunnel
  • MPTCP-based Solution
  • ISP Bonding Service
  • Remote Aggregation Server

پیاده‌سازی شود.

بنابراین:

PCC ≠ Single-Flow Bonding

ساختن یک Bond Interface ساده روی دو Ethernet متصل به دو ISP مستقل نیز اینترنت آن‌ها را به‌صورت جادویی تجمیع نمی‌کند. Bonding معمولاً نیازمند Endpoint سازگار در سمت مقابل است.

PCC در MikroTik چیست؟

PCC مخفف:

Per Connection Classifier

است.

PCC مشخصاتی از Connection را Hash می‌کند و براساس نتیجه Hash مشخص می‌کند Connection در کدام گروه قرار گیرد.

سپس ما هر گروه را به یک WAN متصل می‌کنیم.

برای مثال در دو اینترنت برابر:

PCC Group 0 → WAN1
PCC Group 1 → WAN2

در نتیجه به‌صورت آماری تقریباً نیمی از Connectionها روی هر مسیر قرار می‌گیرند.

both-addresses یا both-addresses-and-ports؟

PCC چند روش مختلف برای ایجاد Hash در اختیار ما قرار می‌دهد.

دو گزینه رایج عبارت‌اند از:

both-addresses

Source IP
+
Destination IP

در این حالت Traffic بین یک Client و یک Server مشخص معمولاً همیشه از یک WAN عبور می‌کند.

مثلاً:

192.168.88.100
 ↓
Bank Server
 ↓
WAN1

Connection بعدی همان Client به همان Destination نیز احتمالاً WAN1 را استفاده می‌کند.

مزیت:

  • Session Stability بهتر
  • مناسب‌تر برای سایت‌های حساس به Public IP

عیب:

  • ممکن است توزیع Load به اندازه کافی یکنواخت نباشد.

both-addresses-and-ports

در Hash موارد بیشتری وارد می‌شوند:

Source IP
Destination IP
Source Port
Destination Port

در نتیجه Connectionها معمولاً پراکندگی بیشتری میان WANها دارند.

مزیت:

  • توزیع بهتر Connectionها
  • استفاده مؤثرتر از ظرفیت دو WAN در شبکه پرترافیک

اما چند Connection یک Client به یک سرویس ممکن است از Public IP متفاوت خارج شوند.

برای شبکه سازمانی: اگر Session Stability اولویت اصلی است، both-addresses انتخاب محافظه‌کارانه‌تری است. اگر توزیع Load اهمیت بیشتری دارد، both-addresses-and-ports همراه با Exception برای سرویس‌های حساس گزینه مناسبی است.

سناریوی عملی این آموزش

فرض می‌کنیم Router سه Interface دارد:

ether1 → WAN1
ether2 → WAN2
ether3 → LAN

شبکه:

بخشمقدار نمونه
WAN1 Gateway192.168.10.1
WAN2 Gateway192.168.20.1
LAN192.168.88.0/24
WAN1 Speed100 Mbps
WAN2 Speed50 Mbps

IPها و Gatewayهای این آموزش نمونه هستند. قبل از Copy/Paste باید Interface Name، Gateway و Subnet را مطابق شبکه واقعی خود تغییر دهید.

قبل از شروع Configuration

قبل از اعمال PCC:

  1. هر اینترنت را به‌تنهایی تست کنید.
  2. Gateway هر WAN را مشخص کنید.
  3. DNS Resolution را تست کنید.
  4. Default Routeها را بررسی کنید.
  5. NAT هر WAN را جداگانه تست کنید.
  6. از Configuration Backup بگیرید.

Backup:

/system backup save name=before-dual-wan

/export file=before-dual-wan

استفاده از Interface List

برای خواناترشدن Configuration می‌توانیم Interface List ایجاد کنیم:

/interface list
add name=WAN
add name=LAN

/interface list member
add list=WAN interface=ether1
add list=WAN interface=ether2
add list=LAN interface=ether3

در یک شبکه واقعی بهتر است Interfaceها نیز نام‌گذاری شوند:

/interface ethernet
set ether1 name=WAN1
set ether2 name=WAN2
set ether3 name=LAN

مرحله اول: ساخت Routing Table در RouterOS 7

در RouterOS 7 باید Routing Tableها قبل از Routing Mark ساخته شوند.

/routing table
add fib name=to_WAN1
add fib name=to_WAN2

در پایان خواهیم داشت:

main
to_WAN1
to_WAN2

مرحله دوم: Routeهای هر Table

برای Table مربوط به WAN1:

/ip route
add dst-address=0.0.0.0/0 \
 gateway=192.168.10.1@main \
 routing-table=to_WAN1 \
 distance=1 \
 check-gateway=ping

add dst-address=0.0.0.0/0 \
 gateway=192.168.20.1@main \
 routing-table=to_WAN1 \
 distance=2 \
 check-gateway=ping

و برای WAN2:

/ip route
add dst-address=0.0.0.0/0 \
 gateway=192.168.20.1@main \
 routing-table=to_WAN2 \
 distance=1 \
 check-gateway=ping

add dst-address=0.0.0.0/0 \
 gateway=192.168.10.1@main \
 routing-table=to_WAN2 \
 distance=2 \
 check-gateway=ping

در Main Table نیز می‌توانیم:

/ip route
add dst-address=0.0.0.0/0 \
 gateway=192.168.10.1 \
 distance=1 \
 check-gateway=ping

add dst-address=0.0.0.0/0 \
 gateway=192.168.20.1 \
 distance=2 \
 check-gateway=ping

داشته باشیم.

در این ساختار، Connection علامت‌گذاری‌شده برای WAN1 در حالت عادی WAN1 را استفاده می‌کند، اما اگر Gateway آن Down شود Route دوم داخل همان Table می‌تواند مسیر WAN2 را در اختیار آن قرار دهد.

محدودیت check-gateway=ping

این تنظیم معمولاً Gateway را Ping می‌کند.

اما تصور کنید:

MikroTik
 |
Modem = Reachable
 |
ISP Network = Failed
 |
Internet = Down

Router هنوز Gateway مودم را Ping می‌کند و ممکن است تصور کند WAN سالم است.

برای شبکه Production بهتر است Health Check واقعی‌تر طراحی شود؛ برای مثال بررسی Reachability یک یا چند مقصد اینترنتی با Recursive Routing یا Monitoring مناسب.

مرحله سوم: ساخت PCC با Mangle

ابتدا باید Traffic شبکه‌های مستقیم WAN از PCC مستثنا شود:

/ip firewall mangle

add chain=prerouting \
 in-interface=LAN \
 dst-address=192.168.10.0/24 \
 action=accept

add chain=prerouting \
 in-interface=LAN \
 dst-address=192.168.20.0/24 \
 action=accept

این کار اجازه می‌دهد مثلاً Management Interface مودم‌ها همچنان از LAN قابل دسترس باشد.

Connectionهای ورودی را علامت‌گذاری کنید

اگر Connection از WAN1 وارد Router شد، پاسخ نیز باید از WAN1 خارج شود.

add chain=prerouting \
 in-interface=WAN1 \
 connection-state=new \
 connection-mark=no-mark \
 action=mark-connection \
 new-connection-mark=wan1_conn

add chain=prerouting \
 in-interface=WAN2 \
 connection-state=new \
 connection-mark=no-mark \
 action=mark-connection \
 new-connection-mark=wan2_conn

این موضوع برای:

  • Port Forward
  • VPN Server
  • Remote Management
  • WireGuard

اهمیت زیادی دارد.

مرحله چهارم: Weighted PCC برای اینترنت 100 و 50Mbps

از آنجا که WAN1 دو برابر WAN2 ظرفیت دارد، تقسیم 50/50 منطقی نیست.

نسبت:

100 : 50
=
2 : 1

است.

بنابراین سه Bucket ایجاد می‌کنیم:

Bucket 0 → WAN1
Bucket 1 → WAN1
Bucket 2 → WAN2

Ruleها:

add chain=prerouting \
 in-interface=LAN \
 connection-state=new \
 connection-mark=no-mark \
 dst-address-type=!local \
 per-connection-classifier=both-addresses-and-ports:3/0 \
 action=mark-connection \
 new-connection-mark=wan1_conn

add chain=prerouting \
 in-interface=LAN \
 connection-state=new \
 connection-mark=no-mark \
 dst-address-type=!local \
 per-connection-classifier=both-addresses-and-ports:3/1 \
 action=mark-connection \
 new-connection-mark=wan1_conn

add chain=prerouting \
 in-interface=LAN \
 connection-state=new \
 connection-mark=no-mark \
 dst-address-type=!local \
 per-connection-classifier=both-addresses-and-ports:3/2 \
 action=mark-connection \
 new-connection-mark=wan2_conn

به‌صورت آماری تقریباً:

66.7% Connections → WAN1
33.3% Connections → WAN2

خواهد بود.

PCC براساس Connection Count توزیع می‌کند، نه بر اساس حجم دقیق Mbps. یک Connection ممکن است 1Mbps و Connection دیگر 80Mbps مصرف کند؛ بنابراین Weighted PCC تضمین نمی‌کند مصرف لحظه‌ای دقیقاً نسبت 2:1 باشد.

اگر سرعت دو اینترنت برابر باشد چه کنیم؟

برای مثال:

WAN1 = 100 Mbps
WAN2 = 100 Mbps

دو Bucket کافی است:

both-addresses-and-ports:2/0 → WAN1
both-addresses-and-ports:2/1 → WAN2

مرحله پنجم: تبدیل Connection Mark به Routing Mark

Connectionهایی که به WAN1 تعلق دارند باید از Routing Table مربوط به WAN1 استفاده کنند:

add chain=prerouting \
 in-interface=LAN \
 connection-mark=wan1_conn \
 action=mark-routing \
 new-routing-mark=to_WAN1 \
 passthrough=no

add chain=prerouting \
 in-interface=LAN \
 connection-mark=wan2_conn \
 action=mark-routing \
 new-routing-mark=to_WAN2 \
 passthrough=no

بنابراین:

wan1_conn → to_WAN1
wan2_conn → to_WAN2

Traffic خود Router چه می‌شود؟

Router نیز خودش Connectionهایی مانند:

  • DNS
  • NTP
  • Cloud
  • Update
  • Ping
  • VPN

ایجاد می‌کند.

مهم‌تر اینکه پاسخ Connectionهایی که از WAN وارد خود Router شده‌اند باید از همان WAN برگردد.

بنابراین:

add chain=output \
 connection-mark=wan1_conn \
 action=mark-routing \
 new-routing-mark=to_WAN1 \
 passthrough=no

add chain=output \
 connection-mark=wan2_conn \
 action=mark-routing \
 new-routing-mark=to_WAN2 \
 passthrough=no

در شبکه‌های پیچیده‌تر می‌توان Traffic جدید خود Router را نیز با Policy مستقل توزیع کرد، ولی این کار باید با دقت انجام شود.

مرحله ششم: NAT هر دو WAN

اگر هر دو WAN دارای IP Dynamic یا Private Upstream هستند:

/ip firewall nat

add chain=srcnat \
 out-interface=WAN1 \
 action=masquerade \
 comment="NAT WAN1"

add chain=srcnat \
 out-interface=WAN2 \
 action=masquerade \
 comment="NAT WAN2"

اگر Public IP ثابت دارید، بسته به طراحی می‌توان از src-nat با Address مشخص استفاده کرد.

مرحله هفتم: FastTrack را فراموش نکنید

این یکی از مهم‌ترین قسمت‌های Configuration است.

بسیاری از Routerهای MikroTik در Default Configuration دارای Rule زیر هستند:

action=fasttrack-connection
connection-state=established,related

مشکل این است که FastTrack Traffic را از FastPath عبور می‌دهد و Routing Markهای PCC ممکن است دیگر طبق انتظار اعمال نشوند.

FastTrack فقط Main Routing Table را پشتیبانی می‌کند.

یک Rule عمومی FastTrack در PCC Multi-WAN می‌تواند باعث خروج Packet از WAN اشتباه، Session Reset و رفتار نامنظم شود.

در مرحله Troubleshooting ساده‌ترین روش این است که FastTrack را موقتاً Disable کنید:

/ip firewall filter
disable [find action=fasttrack-connection]

بعد از اطمینان از عملکرد صحیح PCC می‌توان FastTrack را فقط برای Connectionهایی طراحی کرد که Routing Mark غیر Main ندارند.

برای آشنایی با خطاهای مشابه مقاله اشتباهات خطرناک در تنظیمات MikroTik را نیز مطالعه کنید.

Load Balance و Failover یکی نیستند

Load Balance یعنی:

هر دو WAN سالم هستند
↓
Traffic بین هر دو تقسیم شود

Failover یعنی:

WAN1 Failed
↓
Traffic → WAN2

یک Configuration حرفه‌ای باید هر دو را داشته باشد.

اگر WAN1 قطع شود چه اتفاقی برای Connectionهای فعلی می‌افتد؟

فرض کنیم Connection از Public IP مربوط به WAN1 ایجاد شده است.

بعد WAN1 قطع و مسیر به WAN2 منتقل می‌شود.

Public IP تغییر می‌کند.

در نتیجه Connection موجود معمولاً نمی‌تواند بدون وقفه ادامه پیدا کند.

Existing Connection:
WAN1 Public IP
 ↓
WAN1 Failure
 ↓
WAN2 Public IP
 ↓
Session Reset احتمالی

اما Connectionهای جدید از WAN2 برقرار خواهند شد.

بنابراین Failover معمولی MikroTik را نباید با Session-Preserving SD-WAN اشتباه گرفت.

چرا Recursive Failover بهتر است؟

Ping کردن Gateway همیشه کافی نیست.

برای مثال مودم ممکن است روشن باشد ولی ارتباط ISP بعد از مودم قطع شده باشد.

در طراحی پیشرفته می‌توان Reachability یک مقصد اینترنتی را بررسی کرد:

MikroTik
 ↓
ISP Gateway
 ↓
Internet Test Host

اگر Test Host از مسیر WAN قابل دسترس نبود، Route آن WAN غیرفعال شود.

برای Production بهتر است بیش از یک Health Target نیز در نظر گرفته شود تا اختلال یک Server عمومی باعث Failover اشتباه نشود.

سایت‌های بانکی و Sessionهای حساس

بعضی سرویس‌ها انتظار دارند Connectionهای یک Session از Public IP ثابت بیایند.

مثال‌ها می‌توانند شامل:

  • Internet Banking
  • Payment Gateway
  • برخی سامانه‌های سازمانی
  • Remote Access
  • برخی APIها
  • سامانه‌های مبتنی بر IP Whitelist

باشند.

اگر از:

both-addresses-and-ports

استفاده شود، Connectionهای مختلف ممکن است از WANهای متفاوت خارج شوند.

راهکار اول: both-addresses

Client و Destination مشخص به یک WAN پایدارتر متصل می‌شوند.

راهکار دوم: Address List Exception

مثلاً Destinationهای بانکی را در:

address-list=single-wan-services

قرار دهید و قبل از PCC آن‌ها را به WAN1 هدایت کنید.

راهکار سوم: Source Pinning

برای یک Server یا Client خاص همیشه WAN مشخص تعریف کنید.

مثلاً:

Accounting-PC → WAN1
VoIP-PBX → WAN1
General Users → PCC

آیا VoIP را Load Balance کنیم؟

برای Voice معمولاً ثبات مسیر و Jitter مهم‌تر از توزیع Connection است.

بنابراین بهتر است:

Issabel / SIP
 ↓
Primary WAN
 ↓
Failover WAN

طراحی شود، نه اینکه هر SIP/RTP Connection به شکل تصادفی روی WANهای مختلف قرار بگیرد.

برای طراحی QoS و Voice VLAN می‌توانید مقاله MikroTik برای Issabel و VoIP را مطالعه کنید.

VPN در شبکه Dual-WAN

VPN نیز نیازمند طراحی Symmetric Routing است.

فرض کنید WireGuard Handshake از WAN2 وارد Router شود.

Reply نیز باید از WAN2 خارج شود.

Remote User
 ↓
WAN2 Public IP
 ↓
MikroTik
 ↓
Reply must use WAN2

اگر Reply از WAN1 خارج شود، Tunnel ممکن است برقرار نشود.

به همین دلیل Connection Mark ورودی WANها که در ابتدای Configuration ایجاد کردیم اهمیت زیادی دارد.

برای طراحی VPN می‌توانید مقاله اتصال امن شعب با WireGuard را مطالعه کنید.

Port Forward در Dual-WAN

فرض کنید یک Server داخلی دارید:

Server
192.168.88.10

و Port Forward روی هر دو Public IP تعریف شده است.

اگر Connection از WAN2 وارد شود ولی Reply براساس Default Route از WAN1 خارج شود:

Client → WAN2 → Server

Server → WAN1 → Client

Asymmetric Routing

Connection ممکن است Fail شود.

بنابراین Mark کردن Connectionهای ورودی هر WAN بخشی ضروری از Multi-WAN حرفه‌ای است.

اگر اینترنت PPPoE، DHCP یا LTE باشد چه؟

مثال این مقاله بر Gatewayهای Ethernet ثابت نوشته شده است تا منطق PCC واضح باشد.

اما WAN ممکن است از انواع زیر باشد:

  • Static IP
  • DHCP Client
  • PPPoE Client
  • LTE
  • 5G

در PPPoE معمولاً Interface خود PPPoE نقش Gateway را دارد.

در DHCP نیز Gateway ممکن است Dynamic باشد.

بنابراین Route Configuration باید متناسب با WAN Type نوشته شود.

Configuration یک سناریوی Static Gateway را مستقیماً روی PPPoE یا LTE Copy نکنید. منطق PCC یکسان است، ولی Route Resolution و Gateway متفاوت خواهند بود.

PCC یا ECMP؟

ECMP مخفف:

Equal Cost Multi-Path

است.

اگر دو Route با Cost یکسان وجود داشته باشند Router می‌تواند آن‌ها را به‌عنوان ECMP Route در نظر بگیرد.

ECMP برای بعضی سناریوها ساده‌تر است، اما PCC کنترل دقیق‌تری روی:

  • Connection Classification
  • Weighted Distribution
  • Client Exception
  • Destination Exception
  • Inbound Symmetry

فراهم می‌کند.

Nth چه تفاوتی با PCC دارد؟

Nth می‌تواند Packetها یا Connectionها را براساس شمارش Rule تقسیم کند.

اما PCC به دلیل Hash پایدار روی Address/Port برای Dual-WAN اینترنت بسیار رایج است.

در سناریوی دو ISP مستقل که فقط Router سمت کاربر تحت کنترل است، Per-Connection Routing معمولاً رفتار قابل پیش‌بینی‌تری نسبت به Per-Packet دارد.

PCC و Hotspot

اگر Router شما Hotspot Captive Portal اجرا می‌کند، باید با احتیاط بیشتری عمل کنید.

PCC در معماری Hotspot کلاسیک محدودیت دارد، زیرا بخشی از Hotspot/Web Proxy از Default Routing Table استفاده می‌کند.

بنابراین Configuration PCC عمومی را بدون Lab روی Gateway فعال Hotspot اجرا نکنید.

چگونه Load Balance را صحیح تست کنیم؟

۱. Route Tableها

/ip route print detail

۲. Connection Markها

/ip firewall connection print

Connection Mark باید شامل:

wan1_conn
wan2_conn

باشد.

۳. Counterهای Mangle

/ip firewall mangle print stats

هر دو گروه PCC باید Counter داشته باشند.

۴. Interface Traffic

در WinBox 4:

Interfaces
→ WAN1
→ Traffic

Interfaces
→ WAN2
→ Traffic

هر دو WAN باید هم‌زمان Traffic داشته باشند.

۵. چند Download هم‌زمان

به‌جای یک Download واحد، چند Session هم‌زمان ایجاد کنید.

۶. Failover Test

کابل WAN1 را قطع کنید.

بررسی کنید:

  • Route WAN1 Inactive شود.
  • Connectionهای جدید از WAN2 برقرار شوند.
  • DNS همچنان کار کند.
  • LAN اینترنت داشته باشد.

سپس WAN1 را وصل کنید و Recovery را بررسی نمایید.

چرا Speedtest نتایج متفاوت نشان می‌دهد؟

یک Speed Test ممکن است چند Connection هم‌زمان ایجاد کند.

در نتیجه:

TCP1 → WAN1
TCP2 → WAN1
TCP3 → WAN2
TCP4 → WAN1
TCP5 → WAN2

و Speedtest مجموع Throughput بیشتری نمایش دهد.

اما یک File Download تک Connection ممکن است فقط ظرفیت یکی از WANها را نشان دهد.

هر دو رفتار صحیح هستند.

نسبت Weighted PCC را چگونه محاسبه کنیم؟

100 + 100 Mbps

1 : 1

2 Buckets

WAN1 → 1
WAN2 → 1

100 + 50 Mbps

2 : 1

3 Buckets

WAN1 → 2
WAN2 → 1

300 + 100 Mbps

3 : 1

4 Buckets

WAN1 → 3
WAN2 → 1

200 + 200 Mbps

1 : 1

این نسبت باید براساس Throughput واقعی پایدار خطوط تعیین شود، نه فقط عدد اسمی سرویس ISP.

مشکلات رایج PCC

فقط یکی از WANها Traffic دارد

بررسی کنید:

  • PCC Rule Counter
  • Connection Mark
  • Routing Mark
  • Routing Table
  • NAT
  • FastTrack

بعضی سایت‌ها باز نمی‌شوند

دلایل محتمل:

  • Session روی دو Public IP
  • MTU/MSS
  • Asymmetric Routing
  • DNS
  • FastTrack

ابتدا از both-addresses استفاده کنید و نتیجه را مقایسه نمایید.

Port Forward فقط روی یک WAN کار می‌کند

احتمالاً Reply Traffic از WAN اشتباه خارج می‌شود.

Connection Mark ورودی و Output Routing Mark را بررسی کنید.

با قطع WAN1 اینترنت قطع می‌شود

Route Backup داخل Routing Table مربوطه وجود ندارد یا Health Check درست عمل نمی‌کند.

بعد از Failover بعضی Sessionها قطع می‌شوند

این رفتار می‌تواند طبیعی باشد؛ Public IP مسیر تغییر کرده است.

CPU Router بعد از PCC بالا رفته است

با حذف FastTrack بار بیشتری روی Firewall/Mangle و CPU قرار می‌گیرد.

در شبکه پرترافیک انتخاب Router مناسب اهمیت دارد.

برای انتخاب سخت‌افزار می‌توانید مقاله با ۵ سؤال روتر مناسب خود را پیدا کنید را مطالعه کنید.

چه Routerی برای Load Balance مناسب است؟

Load Balance بیش از تعداد Port به Processing Capacity وابسته است.

Router باید هم‌زمان:

  • Connection Tracking
  • Mangle
  • NAT
  • Firewall
  • Routing
  • VPN در صورت استفاده

را پردازش کند.

برای دفتر کوچک ممکن است hAP ax² یا خانواده hEX مناسب باشد؛ در شبکه پرترافیک‌تر مدل‌هایی مانند RB5009 یا CCR گزینه‌های مناسب‌تری هستند، ولی انتخاب نهایی باید براساس Throughput، تعداد Connection و Featureهای فعال انجام شود.

چک‌لیست نهایی Dual-WAN PCC

  1. هر دو WAN به‌صورت مستقل تست شده‌اند.
  2. Gateway هر WAN مشخص است.
  3. Routing Tableهای RouterOS 7 ساخته شده‌اند.
  4. Routeهای اصلی و Backup ایجاد شده‌اند.
  5. شبکه‌های Connected از PCC مستثنا شده‌اند.
  6. Traffic محلی Router علامت‌گذاری نمی‌شود.
  7. Connectionهای ورودی WAN1 Mark می‌شوند.
  8. Connectionهای ورودی WAN2 Mark می‌شوند.
  9. PCC Rule ایجاد شده است.
  10. نسبت PCC مطابق ظرفیت WANها است.
  11. Routing Mark برای هر Connection Mark تنظیم شده است.
  12. Output Routing برای Replyهای خود Router تنظیم شده است.
  13. NAT روی WAN1 وجود دارد.
  14. NAT روی WAN2 وجود دارد.
  15. FastTrack بررسی شده است.
  16. سرویس‌های حساس از PCC عمومی مستثنا شده‌اند.
  17. VoIP در صورت نیاز روی WAN مشخص Pin شده است.
  18. VPN Symmetric Routing دارد.
  19. Port Forward دو WAN تست شده است.
  20. Failover تست شده است.
  21. Recovery بعد از بازگشت WAN تست شده است.
  22. Counterهای Mangle بررسی شده‌اند.
  23. CPU Load بررسی شده است.
  24. Backup نهایی Configuration تهیه شده است.

طراحی Multi-WAN MikroTik برای شبکه سازمانی

در شبکه واقعی، Dual-WAN فقط چند PCC Rule نیست.

قبل از طراحی باید موارد زیر مشخص شوند:

  • سرعت واقعی هر ISP
  • Static IP یا Dynamic IP
  • PPPoE، DHCP یا LTE
  • تعداد کاربران
  • VoIP
  • VPN
  • Public Server
  • Port Forward
  • Policy Routing
  • Failover Requirement
  • Session Persistence
  • Monitoring

برای مثال شبکه‌ای که Issabel، WireGuard و Web Server دارد با یک دفتر کوچک دارای فقط Web Browsing به Configuration متفاوتی نیاز دارد.

گروه فناوری ارتباطات پندار بیستون در حوزه تجهیزات MikroTik و طراحی زیرساخت شبکه فعالیت می‌کند.

اگر برای Dual-WAN، Failover یا Load Balance به Router مناسب نیاز دارید، می‌توانید محصولات بخش تجهیزات MikroTik بیستون را بررسی و برای انتخاب مدل متناسب با Throughput و تعداد کاربران از مشاوره فنی بیستون استفاده کنید.

CTA اصلی خرید: استعلام قیمت و موجودی

سؤالات متداول درباره Load Balance دو اینترنت در MikroTik

آیا MikroTik می‌تواند دو اینترنت را با هم ترکیب کند؟

بله، MikroTik می‌تواند Connectionهای شبکه را بین دو اینترنت Load Balance کند؛ اما این موضوع با Bonding یک Connection واحد متفاوت است.

آیا اینترنت 100 و 50 مگابیت تبدیل به 150 مگابیت می‌شود؟

برای چند Connection هم‌زمان می‌توان تقریباً از مجموع ظرفیت دو خط استفاده کرد، اما یک TCP Connection معمولاً فقط از ظرفیت WAN انتخاب‌شده خود استفاده می‌کند.

PCC چیست؟

PCC یا Per Connection Classifier روشی در RouterOS برای دسته‌بندی Connectionها براساس Hash اطلاعاتی مانند Source/Destination Address و Port است.

برای دو اینترنت برابر PCC چه تنظیمی دارد؟

در حالت ساده می‌توان دو گروه با denominator برابر 2 ساخت؛ یک گروه برای WAN1 و گروه دیگر برای WAN2.

اگر سرعت دو اینترنت متفاوت باشد چه کنیم؟

از Weighted PCC استفاده می‌شود. مثلاً برای 100 و 50Mbps می‌توان نسبت 2:1 ایجاد کرد.

Weighted PCC سرعت را دقیقاً براساس Mbps تقسیم می‌کند؟

خیر. PCC Connectionها را توزیع می‌کند، نه مقدار دقیق Byte یا Mbps را. نسبت Traffic واقعی می‌تواند متفاوت باشد.

both-addresses بهتر است یا both-addresses-and-ports؟

both-addresses Session Stability بیشتری ایجاد می‌کند؛ both-addresses-and-ports معمولاً Connectionها را یکنواخت‌تر توزیع می‌کند.

چرا بعضی سایت‌های بانکی با Load Balance مشکل دارند؟

ممکن است چند Connection مربوط به یک Session از Public IPهای متفاوت خارج شوند. این سرویس‌ها را می‌توان روی یک WAN ثابت Pin کرد.

آیا Speedtest مجموع دو اینترنت را نشان می‌دهد؟

ممکن است، زیرا بسیاری از Speed Testها از چند Connection موازی استفاده می‌کنند.

چرا یک Download سرعت مجموع دو خط را نمی‌گیرد؟

اگر Download از یک Connection استفاده کند، PCC آن Connection را فقط روی یک WAN قرار می‌دهد.

برای تجمیع واقعی یک Connection چه لازم است؟

معمولاً باید یک Endpoint تجمیع در سمت دیگر مانند SD-WAN Gateway، Aggregation Server یا سرویس ISP Bonding نیز وجود داشته باشد.

آیا می‌توان دو ISP را داخل Bonding Interface MikroTik قرار داد؟

Bonding معمولی جای PCC برای دو اینترنت مستقل نیست و به Endpoint سازگار در سمت مقابل نیاز دارد.

Load Balance با Failover چه فرقی دارد؟

Load Balance هنگام سالم بودن چند WAN Traffic را توزیع می‌کند؛ Failover هنگام خرابی یک مسیر، Traffic را به مسیر سالم منتقل می‌کند.

آیا Connection هنگام Failover قطع نمی‌شود؟

Connectionهای موجود ممکن است به دلیل تغییر Public IP قطع شوند. Connectionهای جدید از WAN جایگزین برقرار خواهند شد.

check-gateway=ping کافی است؟

برای سناریوی ساده مفید است، ولی ممکن است فقط Gateway محلی را بررسی کند. در Production بهتر است Reachability واقعی اینترنت نیز Monitor شود.

آیا FastTrack با PCC مشکل دارد؟

بله، Rule عمومی FastTrack می‌تواند Traffic دارای Policy Routing را دور بزند. FastTrack فقط Main Routing Table را پشتیبانی می‌کند و باید برای Multi-WAN دقیق طراحی شود.

چرا بعد از فعال‌کردن PCC Router کندتر شد؟

اگر FastTrack حذف شود، Connectionها از Firewall و Mangle معمولی عبور می‌کنند و CPU Load افزایش می‌یابد. Hardware مناسب اهمیت دارد.

آیا VoIP را با PCC تقسیم کنیم؟

برای VoIP معمولاً مسیر ثابت با Failover کنترل‌شده بهتر است، زیرا Jitter، Public IP و Session Stability اهمیت بیشتری دارند.

WireGuard روی Dual-WAN کار می‌کند؟

بله، ولی Reply باید از همان WANی خارج شود که Handshake وارد شده است. Connection Mark و Policy Routing باید درست طراحی شوند.

Port Forward روی هر دو WAN امکان‌پذیر است؟

بله، به شرط اینکه Connectionهای ورودی هر WAN Mark شوند و Return Traffic از همان WAN خارج شود.

PCC روی PPPoE کار می‌کند؟

بله، اما Configuration Gateway و Route با مثال Ethernet دارای Gateway ثابت متفاوت است.

PCC روی LTE یا 5G کار می‌کند؟

بله، LTE/5G نیز می‌تواند یکی از WANها باشد، ولی Routing و Health Check باید متناسب با LTE Interface طراحی شود.

آیا PCC برای Hotspot مناسب است؟

Hotspot کلاسیک RouterOS با PCC محدودیت‌هایی دارد و قبل از اجرا باید معماری دقیق Lab و بررسی شود.

ECMP بهتر است یا PCC؟

ECMP ساده‌تر است، ولی PCC برای Weighted Distribution، Exceptionها و کنترل Connectionها انعطاف بیشتری دارد.

برای یک شرکت 50 نفره PCC مناسب است؟

بله، اگر Router از نظر CPU و Throughput مناسب باشد و سرویس‌های حساس مانند VoIP، VPN و Serverها نیز به‌درستی Policy Routing شوند.

جمع‌بندی؛ Load Balance را با Bonding اشتباه نگیرید

یک Dual-WAN حرفه‌ای در MikroTik از چند بخش تشکیل می‌شود:

PCC
+
Connection Mark
+
Routing Mark
+
Routing Tables
+
NAT
+
Failover
+
Session Exceptions
+
Monitoring

PCC کمک می‌کند Connectionهای مختلف شبکه میان ISPها توزیع شوند و مجموع ظرفیت چند اینترنت بهتر مورد استفاده قرار گیرد.

اما:

100 Mbps + 50 Mbps

برای چند Connection:
≈ 150 Mbps Aggregate Capacity

برای یک Connection:
معمولاً حداکثر ظرفیت WAN انتخاب‌شده

این تفاوت باید قبل از طراحی برای کارفرما یا کاربر توضیح داده شود.

در شبکه‌های واقعی نیز صرفاً اضافه‌کردن چند Rule PCC کافی نیست. FastTrack، VPN، VoIP، Port Forward، Public IP، Health Check و نوع WAN باید همگی در طراحی لحاظ شوند.

بهترین Multi-WAN آن Configurationی نیست که فقط هر دو Interface Traffic داشته باشند؛ باید هنگام قطع هر ISP نیز رفتار قابل پیش‌بینی داشته باشد و سرویس‌های حساس از مسیر درست خارج شوند.