تقسیم ترافیک دو اینترنت در میکروتیک با PCC
PCC میتواند ارتباطهای کاربران را بین دو اینترنت تقسیم کند. برای نتیجه درست، دستهبندی اتصال باید با جدول مسیر، NAT و استثنای شبکههای داخلی هماهنگ باشد؛ ساخت دو قاعده PCC بهتنهایی کافی نیست.
این راهنما براساس مستندات رسمی تهیه شده و توسط نتمسترز بهصورت عملی آزمایش نشده است.
آخرین بازبینی متن:
در این صفحه
نمونه دو خط و ترافیک خروجی کاربران
مبنای این آموزش مستندات RouterOS با برچسب 7.26 در ۱۵ اکتبر ۲۰۲۶ است؛ این عدد نسخه آزمایششده نتمسترز یا توصیه نصب یک انتشار مشخص نیست. نسخه نصبشده، نام رابطها و گزینههای دستگاه خود را پیش از اجرا تطبیق دهید.
نمونه برای کارشناس مجاز روی روتر آزمایشی با فایروال و NAT سالم است. ether1 با 192.168.10.2/24 به دروازه ثابت 192.168.10.1 و ether2 با 192.168.20.2/24 به دروازه ثابت 192.168.20.1 متصل است. bridge-lan با 192.168.50.1/24 دروازه کاربران است. این سه شبکه همپوشانی ندارند و هر اینترنت باید پیش از تغییر، جداگانه از یک کلاینت LAN بررسی شود. IPها صرفاً سناریوی آموزشیاند.
این تمرین مستقل از آموزش Failover است. دو خط با ظرفیت نزدیک، ترافیک IPv4 عبوری از CPU و فقط ارتباطهای شروعشده از LAN را در نظر میگیریم. شبکه آزمایشی نباید Hotspot، Port Forward، VPN، مسیریابی L3 سختافزاری یا سیاست Mangle دیگری داشته باشد. ترافیک تولیدشده توسط خود روتر از main میرود و در این نمونه تقسیم نمیشود. پاسخ سرویسهای ورودی از WAN و ترکیب WireGuard با چند اینترنت به طراحی دیگری نیاز دارند.
جدول main از قبل باید مسیرهای connected این سه شبکه و دو پیشفرض معتبر داشته باشد: خط اول distance=1 و خط دوم distance=2. نوع پایش آنها را ثبت کنید. این صفحه مسیر main را بازنویسی نمیکند؛ اگر دروازهها از DHCP یا PPPoE تغییر میکنند، این فرمانهای ثابت را بدون طرح بهروزرسانی دروازه به کار نبرید.
Mangle، FastTrack و NAT را آماده کنید
با بکاپ و Export و مدیریت محلی شروع کنید؛ در Terminal با Ctrl+X وارد Safe Mode شوید. نامهای nm-pcc1 و nm-pcc2 باید تازه باشند. Mangle و Routing Rules موجود را بررسی کنید؛ این نمونه فرض میکند سیاست دیگری برای ترافیک هدف ندارید. قواعد فایروال محافظ و NAT سالم هر دو خروجی را حفظ کنید.
/ip/firewall/mangle/print detail
/routing/rule/print detail
/routing/table/print detail
/ip/route/print detail
/ip/firewall/nat/print detail
/ip/firewall/filter/print detail where action=fasttrack-connectionFastTrack فقط با main سازگار است و میتواند بستههای دارای routing mark را از مسیر لازم خارج کند. در همین روتر آزمایشی، وضعیت قواعد FastTrack را ثبت و فقط همان قواعد را Disable کنید؛ accept و drop باقی بمانند. در شبکه عملیاتی، استثناکردن ترافیک هدف و ظرفیت CPU باید بررسی شود. انتقالهای قبلی را متوقف کنید و با اتصال تازهای که fasttrack نشده آزمون بگیرید؛ کل جدول اتصالها را پاک نکنید.
این تمرین NAT جدید نمیسازد: دسترسی LAN از هر دو اینترنت باید از قبل مستقل کار کند. پوشش NAT و فهرست WAN را کنترل کنید؛ نبودن NAT خط دوم با درستبودن PCC جبران نمیشود.
ابتدا جدولها و مسیرهایشان را بسازید
/routing/table
add name=nm-pcc1 fib
add name=nm-pcc2 fib
/ip/route
add dst-address=0.0.0.0/0 gateway=192.168.10.1 routing-table=nm-pcc1 distance=1 check-gateway=ping comment="NM-PCC-1-main"
add dst-address=0.0.0.0/0 gateway=192.168.20.1 routing-table=nm-pcc1 distance=2 check-gateway=ping comment="NM-PCC-1-backup"
add dst-address=0.0.0.0/0 gateway=192.168.20.1 routing-table=nm-pcc2 distance=1 check-gateway=ping comment="NM-PCC-2-main"
add dst-address=0.0.0.0/0 gateway=192.168.10.1 routing-table=nm-pcc2 distance=2 check-gateway=ping comment="NM-PCC-2-backup"در RouterOS 7 جدول باید پیش از استفاده در new-routing-mark وجود داشته باشد. در این سناریو دروازه هر جدول از شبکه متصل و شناختهشده در main قابل حل است. در IP → Routes، جدول، active و immediate-gw هر مسیر را بررسی کنید؛ نام جدولِ درست با دروازه حلنشده، مسیر قابل استفاده نمیسازد.
پشتیبان این مثال فقط پاسخ مودم را با ping میسنجد. اگر مودم روشن باشد و اینترنت پشت آن قطع شود، ممکن است همان مسیر اصلی انتخاب بماند. برای پایش بیرون از مودم، آموزش Failover را بخوانید؛ برای ترکیب با PCC باید سلامت مسیر در هر جدول سفارشی نیز اعمال و آزموده شود. افزودن دو پیشفرض به main، بهتنهایی پشتیبان جدولهای سفارشی نیست.
مقصدهای داخلی را از تقسیم مصرف خارج کنید
/ip/firewall/mangle
add chain=prerouting in-interface=bridge-lan dst-address-type=local action=accept disabled=yes comment="NM-PCC-local"
add chain=prerouting in-interface=bridge-lan dst-address=192.168.50.0/24 action=accept disabled=yes comment="NM-PCC-LAN"
add chain=prerouting in-interface=bridge-lan dst-address=192.168.10.0/24 action=accept disabled=yes comment="NM-PCC-WAN1-net"
add chain=prerouting in-interface=bridge-lan dst-address=192.168.20.0/24 action=accept disabled=yes comment="NM-PCC-WAN2-net"local در اینجا آدرسهای خود روتر است؛ همه شبکههای خصوصی را شامل نمیشود. سه شبکه سناریو جدا مستثنا شدهاند تا ترافیک مدیریت و مقصدهای متصل وارد پیشفرض جدول دیگری نشود. اگر VLAN، شعبه یا مقصد داخلی دیگری دارید، ابتدا مسیر و استثنای همان مقصد را طراحی کنید. accept در Mangle فقط ادامه پردازش همین زنجیره را متوقف میکند و مجوز عبور از Filter نیست.
اتصال را دستهبندی و بسته را مسیریابی کنید
/ip/firewall/mangle
add chain=prerouting in-interface=bridge-lan src-address=192.168.50.0/24 dst-address-type=!local connection-state=new connection-mark=no-mark per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=nm-wan1 passthrough=yes disabled=yes comment="NM-PCC-class1"
add chain=prerouting in-interface=bridge-lan src-address=192.168.50.0/24 dst-address-type=!local connection-state=new connection-mark=no-mark per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=nm-wan2 passthrough=yes disabled=yes comment="NM-PCC-class2"
add chain=prerouting in-interface=bridge-lan connection-mark=nm-wan1 action=mark-routing new-routing-mark=nm-pcc1 passthrough=no disabled=yes comment="NM-PCC-route1"
add chain=prerouting in-interface=bridge-lan connection-mark=nm-wan2 action=mark-routing new-routing-mark=nm-pcc2 passthrough=no disabled=yes comment="NM-PCC-route2"both-addresses جفت IP کلاینت و مقصد را ثابت در یک گروه میگذارد؛ دو بخش 2/0 و 2/1 همه باقیماندههای تقسیم بر دو را پوشش میدهند. با پاسدادن بسته پس از mark-connection، همان بسته به mark-routing میرسد. اتصالهای موجود دوباره دستهبندی نمیشوند و بستههای برگشتی از WAN وارد این قواعد مخصوص LAN نمیشوند.
در WinBox ترتیب چهار استثنا، دو classifier و دو mark-routing را کنترل کنید. ابتدا استثناها و قواعد mark-routing را Enable کنید و سپس دو classifier را فعال کنید. این ترتیب، فاصلهای را که اتصال تازه علامت دارد ولی قاعده هدایت آن هنوز خاموش است کم میکند. با یک اتصال تازه از کلاینت آزمایشی شروع کنید؛ فعالسازی موفق یک قاعده به معنی تحویل کل طرح نیست.
انتخاب both-addresses-and-ports میتواند اتصالهای بیشتری از یک کلاینت به یک مقصد را پخش کند، اما اتصالهای جداگانه یک برنامه ممکن است با IP عمومی متفاوت دیده شوند. نمونه ما both-addresses است؛ حتی این انتخاب هم وقتی برنامه چند مقصد دارد یا خط عوض میشود، حفظ همه نشستهای کاربردی را تضمین نمیکند.
تقسیم اتصال را با تقسیم حجم اشتباه نگیرید
/ip/firewall/mangle/print stats where comment~"NM-PCC-"
/ip/firewall/connection/print detail where connection-mark=nm-wan1
/ip/firewall/connection/print detail where connection-mark=nm-wan2
/ip/route/print detail where comment~"NM-PCC-"از چند کلاینت و مقصد متفاوت، کارهای کنترلشده ایجاد کنید و علامت اتصال، مسیر و شمارنده خروجیها را کنار هم ببینید. ممکن است چند اتصال کمتعداد اتفاقاً در یک گروه بیفتند. چون اندازه ارتباطها یکسان نیست، تقسیم گروهها سقف سرعت یا سهم دقیق بایت ایجاد نمیکند؛ یک انتقال طولانی نیز ممکن است یک خط را پر کند.
| آزمون | انتظار و محدودیت |
|---|---|
| چند ارتباط تازه با دو خط سالم | هر دو گروه و هر دو خروجی قابل مشاهده باشند؛ یک دانلود تکاتصالی معیار جمع سرعت دو خط نیست. |
| مدیریت روتر و دسترسی به مودمها | طبق مجوزهای قبلی کار کنند و به جدول PCC فرستاده نشوند. |
| قطع مسیر تا مودم یکی از خطها | پشتیبان هر جدول بررسی شود؛ نشست قبلی و اتصال تازه جدا سنجیده شوند. |
| قطع اینترنت پشت مودم پاسخگو | محدودیت check-gateway همین مثال آشکار شود؛ این وضعیت پوشش کامل Failover ندارد. |
| بازگشت خط و کار برنامه حساس | مسیرها و نیاز به ورود یا اتصال مجدد بررسی شوند؛ ادامه بیوقفه وعده داده نمیشود. |
برای دیدن همه ستونها، جدول را به چپ یا راست بکشید؛ با کیبورد از کلیدهای جهت استفاده کنید.
آزمون نهایی را با Torch و Sniffer خاموش انجام دهید؛ راهنمای Torch توضیح میدهد مشاهده میتواند وضعیت FastTrack را عوض کند. برای خطوط نامساوی، نسبت گروهها باید متناسب با نیاز و اندازهگیری انتخاب شود؛ تغییر مخرج بدون پوشش همه باقیماندهها یا تکرار یک باقیمانده طرح درستی نیست. همین نسبت هم مصرف لحظهای برابر ایجاد نمیکند.
رفع ایراد و برگشت از تمرین
اگر فقط بخشی از اتصالها کار میکنند، ابتدا جدول، NAT و سلامت خط مربوط به علامت همان اتصال را بررسی کنید. اگر مدیریت مودم از دست رفته، ترتیب استثناها را ببینید. اگر شمارنده classifier صفر است، رابط واقعی ورود LAN و تازهبودن اتصال را کنترل کنید. اگر شمارنده بالا میرود ولی مسیر درست نیست، routing mark، جدول فعال و FastTrack را بررسی کنید؛ برای رفع آن همه فایروال را خاموش نکنید.
برای برگشت، از مدیریت محلی ابتدا classifierها و سپس قواعد NM-PCC-route را Disable کنید تا ترافیک تازه و قدیمی از سیاست عادی main استفاده کند. پس از توقف انتقالهای آزمایشی، بازشدن اتصال تازه را بررسی کنید؛ وضعیت NAT قبلی ممکن است هنوز روی اتصال باز اثر داشته باشد. فقط قواعد، مسیرها و جدولهای ساختهشده همین تمرین را پس از رفع وابستگی حذف کنید و FastTrack را مطابق ثبت اولیه برگردانید. در صورت پذیرش نتیجه، تنظیمات و رفتار واقعی آزمون را ثبت و Safe Mode را با Ctrl+X نهایی کنید.