احتمالا خیلی از افرادی که به دنبال اینترنت سریع تر، به فکر استفاده از چندتا ISP افتاده اند. همین جوری که در آخر داستان اینترنت در ایران گفته ام من از دوتا ISP شاتل و زیتل اینترنت میگیرم و اولین سوالی که پیش میاد اینه که ترافیک را بین این ISP ها چگونه تقسیم کنیم؟
بهترین راه این است که پکت ها را، بر حسب سرعت هریک از لینک ها، بر روی هردو ارسال کنیم این گونه سرعت ما جمع سرعت دو لینک خواهد بود ولی نتیجه این خواهد بود که خیلی از نرمافزار ها دچار مشکل خواهند شد چرا که بخشی از ترافیک از دوتا لینک با IP های مختلف ارسال میشود.
راه دیگر این است که برحسب کیفیت و سرعت هریک از لینک ها نت خود را عوض کنیم. در این حالت سرعت شما جمع سرعت دوتا ISP نخواهد بود ولی همیشه بهترین سرعت بین ISP ها خواهد بود.
یکی از راه حل های مشهور واسه این مشکل pfSense و مشتق های آن مثل OPNsense میتواند باشد. با این که OPNsense خیلی سادهتر از pfSense ولی همچنان برای مشکل ما بسیار ابزار بزرگی است و شاید یک بخشی از ویژگی هایی که ما میخواهیم را نداشته باشد، درست است هردو نرمافزار open source هست ولی بخاطر بزرگ شدن پروژه آنان تغییر در کد سخت خواهد بود و نیاز به مهارت بالا دارد.
راه حل بعدی یک پروژه خوب در گیت هاب هست به نام Net-ISP-Balance و من با دیدن این مقاله خیلی جذب این نرمافزار شدم حتما توصیه میکنم نگاهی بیندازید.
ولی نباید فراموش کرد که ما فقط میخواهیم فقط یه دکمه داشته باشیم که نتورک ما رو عوض کند.
راه حل اولیه من این بود که جفت نتورک ها روی یک سابنت تنظیم کنم. من زیتل رو روی 192.168.1.1/24 و شاتل رو روی 192.168.1.254/24 تنظیم کردم، فراموش هم نکردم که dhcp یکی رو خاموش کنم :)
بعد از این هم کافی بود فقط Gateway دستگاهی که میخاستم رو عوض کنم و به راحتی نتورک من عوض میشد. البته این راه حل باید اتوماتیک باشه و درصورت نیاز قابلیت عوض کردن Gateway به صورت دستی و Local باشد.
شاید بگید که pfSense ،OPNsense یا حتی همین Net-ISP-Balance بیشتر فایروال هستن و من با این کار فایروالی نخواهم داشت. نباید فراموش کنید که هریک از مودم های شاتل و زیتل فایروال خود را دارند و انداختن نت ها پشت فایروال امکان جابه جایی دستی بین نتورک ها رو از ما خواهد گرفت علاوه بر این ها کانفیگ فایروال مجازی نیاز به یه دستگاه نسبتا قوی و حداقل دارای 3 پورت باید باشد(2 تا VAN و 1 LAN)، پس هزینه بر خواهد بود.
پس از چند هفته تحقیق و پیدا نکردن هیچ راه حلی بالاخره تصمیم گرفتم راه حل خودم رو داشته باشم :)
ایده این است که با تغییر در مسیرهای(Routes) یک VM لینوکس بتوانیم از آن به Gateway های مختلف وصل بشیم.
یک بخش مهم دیگر نیازهایی هست که ما داریم پس باید یک لیست ویژگی ها هم بسازیم:
تا به اینجا فقط تیک های سبز انجام شده ولی تا به اینجای کار هم بسیار راضی کننده بوده نتیجه.