وقتی یک شرکت، دفتر، فروشگاه یا شبکه سازمانی دو سرویس اینترنت مستقل دارد، معمولاً دو انتظار از 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 دقیقاً چیست؟
- آیا سرعت دو اینترنت با هم جمع میشود؟
- PCC چیست؟
- both-addresses یا both-addresses-and-ports؟
- سناریوی این آموزش
- پیشنیازهای Configuration
- ساخت Routing Table در RouterOS 7
- تنظیم PCC و Mangle
- Routing Mark
- تنظیم NAT دو اینترنت
- Weighted PCC چیست؟
- اضافهکردن Failover
- مشکل FastTrack در PCC
- سایتهای بانکی و Sessionهای حساس
- VPN و Multi-WAN
- Port Forward در Dual-WAN
- چگونه Load Balance را تست کنیم؟
- مشکلات رایج
- چکلیست نهایی
- سؤالات متداول
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
↓
WAN1Connection بعدی همان 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 Gateway | 192.168.10.1 |
| WAN2 Gateway | 192.168.20.1 |
| LAN | 192.168.88.0/24 |
| WAN1 Speed | 100 Mbps |
| WAN2 Speed | 50 Mbps |
IPها و Gatewayهای این آموزش نمونه هستند. قبل از Copy/Paste باید Interface Name، Gateway و Subnet را مطابق شبکه واقعی خود تغییر دهید.
قبل از شروع Configuration
قبل از اعمال PCC:
- هر اینترنت را بهتنهایی تست کنید.
- Gateway هر WAN را مشخص کنید.
- DNS Resolution را تست کنید.
- Default Routeها را بررسی کنید.
- NAT هر WAN را جداگانه تست کنید.
- از 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 = DownRouter هنوز 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 → WAN2Ruleها:
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_WAN2Traffic خود 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 RoutingConnection ممکن است 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 printConnection 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 → 1100 + 50 Mbps
2 : 1
3 Buckets
WAN1 → 2
WAN2 → 1300 + 100 Mbps
3 : 1
4 Buckets
WAN1 → 3
WAN2 → 1200 + 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
- هر دو WAN بهصورت مستقل تست شدهاند.
- Gateway هر WAN مشخص است.
- Routing Tableهای RouterOS 7 ساخته شدهاند.
- Routeهای اصلی و Backup ایجاد شدهاند.
- شبکههای Connected از PCC مستثنا شدهاند.
- Traffic محلی Router علامتگذاری نمیشود.
- Connectionهای ورودی WAN1 Mark میشوند.
- Connectionهای ورودی WAN2 Mark میشوند.
- PCC Rule ایجاد شده است.
- نسبت PCC مطابق ظرفیت WANها است.
- Routing Mark برای هر Connection Mark تنظیم شده است.
- Output Routing برای Replyهای خود Router تنظیم شده است.
- NAT روی WAN1 وجود دارد.
- NAT روی WAN2 وجود دارد.
- FastTrack بررسی شده است.
- سرویسهای حساس از PCC عمومی مستثنا شدهاند.
- VoIP در صورت نیاز روی WAN مشخص Pin شده است.
- VPN Symmetric Routing دارد.
- Port Forward دو WAN تست شده است.
- Failover تست شده است.
- Recovery بعد از بازگشت WAN تست شده است.
- Counterهای Mangle بررسی شدهاند.
- CPU Load بررسی شده است.
- 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
+
MonitoringPCC کمک میکند 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 نیز رفتار قابل پیشبینی داشته باشد و سرویسهای حساس از مسیر درست خارج شوند.
دیدگاه خود را بنویسید