ماجراهای تکنولوژیک خانه من: اولین فاز بروزرسانی!

اینم یه تجربه پراکنده دیگه!

قبلا گفته بودم که میخوام سیستم خونه رو آپدیت کنم. این یه گزارش کوتاه از اون بروزرسانیه. اولا اینکه یه پولی به دستم رسید که باعث شد بتونم این بروزرسانی رو انجام.

از سخت افزار شروع میکنم. اول از همه رفتم سه تا هارد ۲ ترابایت وسترن دیجیتال قرمز خریدم بعدش به این نتیجه رسیدم که کامپیوترهایی قدیمی که داشتم ممکنه پاورشون خوب نباشه و یه پاور هم خریدم و از بین دوتا کامپیوتر قدیمی که داشتم یکیش متاسفانه یکی از پورت‌های sataاش کنده شده بود پس از اون یکی دیگه استفاده کردم. با اینکه اون یکی دیگه صدای بیشتری داشت. عکسشون رو میتونید این پایین ببینید

IMG_20150313_090826

IMG_20150313_094727

انتخاب‌های نرم افزاری که انجام دادم اینها بودن. با توجه به نگاهی که به smartos انداخته بودم(لینک) به این نتیجه رسیدم که بهتره از سیستم‌های مبتنی بر FreeBSD استفاده کنم چون آشنایی بیشتری باهاشون دارم. همچنین برای سر هم کردن هاردها از ZFS استفاده کردم. دوتا محصول برای این کار وجود داشت NAS4Free و FreeNAS که ارتباط‌هایی با هم دارن اما کلا از هم جدا شدن. قبلا استفاده از NAS4Free بر FreeNAS ارجحیت داشت چون نسخه FreeBSD و ZFS بالاتری رو پشتیبانی می‌کرد اما الان که این نسخه‌ها یکی شدن استفاده از FreeNAS بخاطر واسط کاربری بهتر قابل قبول بود. همچنین من با کمک دوتا ماشین مجازی سعی کردم که سه تاهارد رو از FreeNAS به NAS4Free انتقال بدم که انتقال سریع و بدون دردسر بود پس اگه به این نتیجه رسیدم که اشتباه کردم راه بازگشت برام وجود داره.

تو فاز اسمبل کردن هم باید قبل از شروع به کار چک میکردم که همه هاردها به درستی کار میکنن بعدش همه چیز رو سر هم کنم که نتیجش شد این وضعیت

IMG_20150313_105428

بعد از این مراحل FreeNAS رو روی یک فلش نصب کردم و سیستم رو باهاش بالا آوردم.لازمه بگم که مستندات این سیستم عامل به شدت خوبه و سوالی نیست که نتونی به راحتی توی مستندات جوابش رو پیدا کنی.

الان بعد از گذشت یک ماه همه چیز به خوبی کار میکنه و موارد زیر هر از گاهی اذیت میکنه:

  • سرعت بوت شدن از فلش کمه
  • به علت قدیمی بودن سخت افزار، یه باگ توی مادربرد وجود داره که باعث میشه سیستم به درستی shutdown نشه
  • FreeNAS به سرعت خوب اینترنت حساسه و اگه اینترنت سرعت خوبی نداشته باشه نصب پکیجهاش و این جور چیزاش به درستی انجام نمیشه
  • نصب اولین Plugin با کندی انجام میشه چون باید یه حجم به نصبت زیاد رو دانلود کنه

فعلا همین!

ماجراهای تکنولوژیک خانه من: برنامه بروزرسانی بعد از دو سال

اینم یه تجربه پراکنده دیگه!

همینطور که قبلا نوشته بودم(لینک، لینک، لینک) من تقریبا دوسال میشه که یه سیستم تمام وقت روشن توی خونه دارم که باهاش کارهای بسیاری میکنم که لیست اون کارها از این قراره:

  1. یه ماشین مجازی کوچک دارم و pfsense مسئولیت مسیریابی خونه رو به عهده داره
  2. روش minidlna دارم  که مسئولیت تفریحات فیلمی خونه رو برعهده داره
  3. روش یه samba server دارم که مسئولیت اشتراک فایل رو برعهده داره
  4. روش یه seafile سرور دارم که مسئولیت بک آپ اتوماتیک از تصاویر تلفن‌ها و اطلاعات مهم لپ تاپ‌ها رو برعهده داره.
  5. روش یه deluge دارم که شبها تورنتها رو دانلود و آپلود میکنه
  6. روش یه سرور taskwarior دارم که نقط بک آپ مدیریت لیست کارهایی هست که در هفته انجام میدم

کانفیگ سیستم هم اصلا جدید نیست و یه سیستم میشه گفت بسیار قدیمیه

  1. سی پی یو: AMD sempron 3000+ AM2
  2. رم : ابتدا ۱ گیگ و سپس ارتقا به ۲٫۵ گیگ
  3. هارد: ۵۰۰ گیگ
  4. سیستم عامل: اوایل ubuntu server و mint

این سیستم تقریبا با ثبات بسیار خوبی این دو سال گذشته رو خدمت رسانی کرده و من ازش راضیم خدا هم ازش راضی باشه! توی این دو سال من تجربه بسیاری خوبی در مورد مدیریت یه سیستم تنها به کمک ssh داشتم. همچنین توی این دوسال خانمم هم به مدت کوتاهی از این سیستم به عنوان دسکتاپ استفاده کرده.

اما این سیستم بعد از دوسال نیاز به بروزرسانی داره و من میخوام به دلایل زیر این سیستم رو از نظر سخت افزاری و نرم افزاری ارتقا بدم

  1. پرشدن هارد بر اثر دانلود زیاد
  2. نیاز به راه‌اندازی یک NAS به دلیل نزدیک شدن به پایان عمر مفید هارد دیسک‌های اکسترنال(حدودا سال ۸۷ خریداری شده اند)
  3. یادگیری تکنولوژی‌های جدید
  4. بهینه سازی سیستم فعلی

اما طرح من برای بهینه کردن این سیستم از این قراره که:

  1. علی الحساب میخوام سه تا هارد دو ترا به سیستم اضافه کنم که یکیش بک آپ اون دوتای دیگه باشه. همچنین نمیخوام از کارت raid استفاده کنم و ترجیحم اینه که از سیستم فایل zfs استفاده کنم.
  2. میخوام بتونم روی این سیستم از مجازی سازی سبک یا همون container های استفاده کنم که این استفاده هم کلی چیز جدید به من یاد میده
  3. میخوام سیستم عامل رو سبک کنم و میزان مصرف منابع کاهش بدم. برای این کار به نظر میرسه باید از لینوکس به یه سیستم عامل دیگه مهاجرت کنم که این مهاجرت کلی مطالب جدید به من یاد میده
  4. در صورتی که پولم برسه میخوام یه ssd بخرم و اون رو به عنوان cache به zfs اضافه کنم,

چالشهای پیش روم هم ایناست:

  1. zfs یک سیستم فایل بسیار قوی هست اما من فکر نمیکنم که هنوز به اندازه کافی اون رو بلدم که بخوام بهش اعتماد کنم و کل هاردهام رو به اون بسپارم
  2. zfs روی سیستم عامل freebsd و illumos و حتی linux وجود داره اما من نمیدونم کدوم پیاده‌سازی بهتر و با ثبات تره. البته باید بگم که پیاده‌سازی‌های موجود روی این سیستم‌ها قدیمی و با ثبات هستن
  3. تکنولوژی مجازی سازی سبک یا container‌ ها همنطور که اینجا هم بررسی کردم روی لینوکس freebsd و illumos با هم متفاوته من هیچ دید عملیاتی ندارم که کدوم بهتره.
  4. هر کدوم از این سیستم‌های یه سری کارها رو راحت کردن مثلا freebsd با freenas و nas4free کار رو برای پیاده‌سازی آسون zfs راحت کرده و شیر کردن و تورنت بازی این چیزا خیلی ساده شده. همچنین illumos با یه محصول به نام smartos مجازی سازی و مجازی سازی سبک و مدیریت اونها رو بسیار ساده کرده. که این انتخاب رو سخت میکنه

حالا با توجه به اینکه انتخاب‌های من کم نیستن بایستی یکم بیشتر بررسی کنم و انتخاب کنم.

همین!

همه ایده‌های من: کسب و کار مبتنی بر pfSense

اینم یه تجربه پراکنده دیگه!

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

با توجه به تجربه سه ساله کار با pfSense میدونم که بسیار خوش ساخت طراحی شده و با ثبات وکیفیت بسیار خوبی به کار  خودش ادامه میده. نیازمندی‌های سخت افزاری قابل قبولی داره و اون کاری که باید انجام بده رو به درستی انجام میده . باید اضافه کنم که شرکت‌های فعال در زمینه امنیت شبکه از این محصول به عنوان پایه محصولات بومیشون که اکثرا ورتر، فایروال و utm هست استفاده کردن. اما به نظر من این rebranding و توسعه، نیاز بازاری هست که شامل بخش دولتی و دستگاه‌های حساس میشه. این بازار معمولا بسیار پر رقابت هست و پول‌های بسیاری خوبی توش جابجا میشه پس جزابه اما این بازار دوتا ایراد داره اولا بسیار کوچک هست و دوما بزرگ نمیشه پس از نظر من واسه راه انداختن کسب و کار که بشه startup به درد نمیخوره. پس این ایده‌هایی که اینجا مطرح میشه هدفش بازار هرچه نزدیکتر به خونه مردم هست که تعدادش بزرگ باشه و بشه بصورت انبوه فروختش. ایده‌ها اینجا لیست شده:

  1. فروش سرویس نصب و راه‌اندازی pfSense: یعنی شما برای مشتری نهایی سیستم و پیکربندی کنی و راه‌اندازی کنی. این کار خوبه اما به دلیل محدود بودن نیروی متخصص pfSense این ایده که معمولا ساده‌ترین ایده استفاده از سیستم‌های متن باز هست خیلی جذاب نیست.
  2. فروش appliance که بصورت پیشفرض pfSense روی اونها نصب شده: نمونه این سخت افزارها اینجا و اینجا پیدا میشه. این کار بسیار خوب میتونه باشه چون نیاز نیروی انسانی کمی داره و شما خدماتی ارائه نمیدی و عملا یه سخت افزار میفروشی. ایراد این ایده اینه که در دنیای appliance ها معمولا از روترها و فایروال‌های cisco و یا mikrotik استفاده میشه. مهمترین دلیل این استفاده هم وجود آموزشهای تخصصی برای این روترها و آشنایی مدیران شبکه با این روترها هست. دومین مشکل این سیستم هم وارداته که خب اگه کسی از این کارها نکرده باشه بسیار میتونه به مشکل بر بخوره. همچنین قیمت تمام شده این محصول تقریبا هم سطح رقبا است و عملا رقبا به علت سابقه بیشتر برنده میشن. اما اگه کسی بتونه این مشکلات رو حل کنه که حل ناشدنی نیست بسیار میتونه موفق باشه.
  3. راه‌اندازی hotspot مبتنی بر pfsense و فروش اینترنت در سطح شهر: برای بسیاری از ما اتفاق افتاده که وسط خیابون باشیم و واقعا نیاز به اینترنت با کیفیت داشته باشیم. اخیرا با اومدا نسل سوم و چهارم موبایل این نیاز تا حدی مرتفع شده اما هنوز قیمت گران اینترنت نسل سه و  چهار جا رو برای این کار باز میگذاره. حالا شما به راحتی با config کردن pfsense اون رو به یه hotspot بسیار قوی تبدیل میکنی و با فروش اکانت اینترنت سود میبری. این کار تقریبا عملی ترین کار به حساب میاد. ممکله از نظر قانونی مشکلاتی وجود داشته باشه اما چیز خاصی به نظر نمیرسه. نیازمند یه سیستم اکانت ساختن و فروش اکانت هست که من برای حل این مشکل فاز اول رو نصب و راه‌اندازی این ایده در کنار کافی نت ها میدونم. یعنی کافی نت‌ها عامل فروش هستند و شما سیستم پورسانت اونها رو میدی. ایراد این ایده نیاز هماهنگی و همکاری با بخش‌های زیادی هست. همچنین سرمایه گذاری اولیه زیادی رو هم میطلبه. همچنین بازارش یکم نا آشناست یعنی اینکه معمولم نیست که واقعا این نیاز وجود داره یا نه.
  4. خاص منظوره کردن این سیستم مخصوص کافی شاپ‌ها، رستوران‌ها و هتل‌ها: الان وضعیت سرویس اینرنت مجانی کافی‌شاپ ها و رستوران‌ها خیلی داغونه در این حد که من تا بحال نتونستم از اینترنتشون به درستی استفاده کنم. واسه اونها ممکنه ارائه خدمات قابل اعتماد ارزشمند باشه. این کار هم بسیار به عملیاتی بودن نزدیکه اما مشکلش نیاز به سرمایه گذاری بالا و پشتیبانی زیاد هست
  5. راه اندازی سیستم accounting ساده روی این سیستم و استفاده از اشتراکی از اینترنت در ساختمان‌های بزرگ یا شرکت‌ها. در این ساختمان‌ها معمولا آدم‌هایی هستن که نمیخوان اینترنت داشته باشن و دوست دارن به اندازه مصرفشون پول بدن که میشه با استفاده از pfSense پیاده‌سازی شه. همچنین در شرکت‌ها معمولا حجم افراد محدود بوده و نباید بیشتر از یک حد در روز از اینترنت استفاده کنن. که با این سیستم قابل پیاده‌سازی هست.

این‌های به نظرم عملیاتی‌ترین ایده‌ها بود اما به علت تعدد پکیجهای این سیستم عملامیشه کارهای بسیار دیگه‌ای ازش استفاده کرد. مثلا استفاده به عنوان loadbalancer بین چند اینترنت، استفاده به عنوان cache سرور با استفاده از squid. اما این ایده‌ها خیلی خام هستن ونیاز به پختن زیادی دارن.

همین

اندازه گیری ترافیک مصرفی کاربران در pfsense

اینم یه تجربه پراکنده دیگه!

دوستان توی کامنتا سوال پرسیده بودن که چطور میشه پهنای باند مصرفی کاربران رو اندازه گرفت. من سعی میکنم بصورت خلاصه توضیح بدم که این روند چطوره

پیش‌نیازها

پیش‌نیازها به شرح زی هست:

  1. مهمترین پیش‌نیاز برای راه‌اندازی این سیستم یه کامپیوتر هست که بتونه بصورت ۲۴ ساعته روشن باشه
  2. دومین ویژگی اینه که اون کامپیوتر یا دوتا کارت شبکه داشته باشه یا اونقدر قوی باشه که بشه روش ماشین مجازی اجرا کرد
  3. حداقل هارد مورد نیاز ۱ گیگ هست
  4. حداقل رم مورد نیاز ۲۵۶ مگ هست

نصب pfSense

روند اجرای مرحله به مرحله به صورت زیره:

  1. اول تنظیمات مودمتون رو عوض کنید و dhcp اون رو خاموش کنید. فرض میکنم که آی پی مودم ۱۹۲٫۱۶۸٫۱٫۱/۲۴ هست. البته برای راحت‌تر بودن میتونید تنظیمات رو ۱۹۲٫۱۶۸٫۱٫۱/۱۶ بدید.
  2. فرض میکنم که رنج آدرس جدیدی که قرار pfsense به کاربرها بده ۱۹۲٫۱۶۸٫۲٫۰/۲۴ هست.
  3. آدرس کامپیوتری که برای پیکربندی قراره استفاده بشه رو ۱۹۲٫۱۶۸٫۲٫۵۰/۱۶ بدید که همزمان بتونید هم مودم رو ببینید هم pfsense
  4. حالا شروع به نصب pfsense روی سیستم اصلی کنید. نصب خیلی راحته در حد next زدن فقط حواستون باشه که در هنگام نصب اطلاعات هاردتون رو از دست ندید.
  5. مهمترین قسمت بعد از نصب انتخاب درست کارتهای شبکه است. یعنی اینکه کدوم کارت شبکه به عنوان LAN و کدوم کارت شبکه به عنوان WAN استفاده بشه. منظور از WAN اون کارت شبکه است که قراره ازش اینترنت بگیره و منظور از LAN هم شبکه داخلیه. اینجا فرض من اینه که هردوی اونها به یک سوئیچ وصل میشن پس فقط مهمه که درست کانفیگ بشه
  6. قدم بعد تخصیص IP به کارت شبکه wan هست. از توی منویی که نشون داده شده گزینه ۲ رو انتخاب کنید و با انتخاب wan اول گرفتن IP رو از DHCP غیر فعال کنید آدرس اون رو مثلا مقدار ۱۹۲٫۱۶۸٫۱٫۱۰ بدید. مقدار subnet mask رو هم ۲۴ بدید و آدرس gateway رو هم مقدار ۱۹۲٫۱۶۸٫۱٫۱ که همون آدرس مودم هست بدید
    منوی اصلی pfsense
    تنظیم wan
  1. قدم بعد آدرس دادن به LAN هست که در این مرحله مثل مرحله قبل عمل میکنید و آدرس رو ۱۹۲٫۱۶۸٫۲٫۱ میدید با subnet mask به مقدار ۲۴ بدون gateway

بعد از این عمل پیکربندی از طریق وب قابل انجامه و آدرس اون https://192.168.2.1 هست.

اندازه گیری ترافیک

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

  1. مرحله اول پیکربندی DHCP هست. برای اینکار به منوی services->dhcp server میریم
    03_pfsense_dhcp_server
  2. روی lan کلیک میکنیم
  3. اگه dhcp غیر فعاله اون رو فعال میکنیم.
    04_pfsense_dhcp_server_config
  4. رنج آی پی رو درست میکنیم
  5. و مهمتر از همه برای کسایی که توی خونه هستن توی قسمت DHCP static mapping یه entry اضافه میکنیم و به mac اونها یه آی پی اختصاص میدیم
    04_pfsense_dhcp_server_static
  6. بعد از اینکار میریم به منوی system->packages
  7. به بخش available packages میریم
  8. در این بخش پکیج bandwidthd رو نصب میکنیم
  9. بعد از نصب توی منو services->bandwidthd میریم و این پکیج رو برای LAN فعال میکنیم.
  10. دوتا گزینه output_cdf و recover_cdf رو تیک میزنیم که اطلاعات با reset شدن سیستم از دست نره
    05_pfsense_bandwidthd
  11. تغییرات رو ذخیره میکنیم
  12. بایستی بگذارید سیستم یه چند دقیقه‌ای کار کنه. بعد از قسمت access bandwidthd میتونید نمودارهای ساعتی هفتگی و ماهیانه رو ببینید.

با این کار بصورت ساده میتونید ببینید هر کسی در ساعت گذشته، هفته گذشته و ماه گذشته حتی سال گذشته چقدر مصرف داشته.

همین

غواصی در اعماق: systemd socket activation

اینم یه تجربه پراکنده دیگه!

امروز داشتم توی وب میگشتم و در مورد docker میخوندم که چشمم به این پست خورد که چطور توی pantheon تونستن با استفاده از تکنولوژی‌های مرتبط به container تونستن یه بیزنس بسیار جذاب برای ارائه یه نوع هاستینگ خاص مرتبط با drupal و wordpress بسازن. اما نکته‌ای که داشت این بود که یکی از نکاتی که منجر به خفن شدن سیستم اونها شده بود استفاده از یه ویژگی systemd به نام socket activation بود. که من یکم در موردش خوندم و بسیار ازش لذت بردم و گفتم ازش بنویسم.

قصه از اینجا شروع میشه که توی سیستم‌های مبتنی بر یونیکس از قدیم الایام یه چیزی وجود داشته با نام SysV که قدمهای مرتبط با boot سیستم توی اونجا انجام میشده. یعنی اینکه فرض کنید برای اینکه لینوکس بطور کامل بالا بیاد نیاز به داره که ۱۰ تا سرویس اجرا بشه و هر کدوم از اونها یه سری وابستگی دارن که این سیستم این قدم‌ها رو با توجه به وابستگی‌هاش اجرا میکنه. نحوه اجرا شدن این قدم‌ها توی SysV بصورت ترتیبی است که این روند باعث افزایش زمان مورد نیاز برای boot شدن سیستم میشه. توی MacOs از سیستم به نام launchd برای کاهش زمان boot پیاده‌سازی شده. همچنین توی لینوکس  راه حل‌هایی برای اجرای موازی سرویسهایی که به همدیگه وابسته نیستن مثل upstart اوبونتو توسعه پیدا کرده. اما مشکل سرعت کم boot بصورت کامل رفع نشده. به همین خاطر systemd پیاده‌سازی شده و از ساز و کاری به اسم socket activation ایجاد شده که سرویس‌ها هم بتونن با سرعت لود بشن هم مشکلی بوجود نیاد.

تقریبا همه چیز در لینوکس معمولا این سرویسها ارتباطشون از طریق socket ها ایجاد میشه و از socket به عنوان IPC استفاده میشه. حالا ایده اینه که بجای اینکه کل پروسس مربوط به یک سرویس بالا بیاد و بعد اون بیاد و سرویس رو ایجاد کنه، systemd بجای پروسه اصلی سوکت رو ایجاد کنه و هر وقت اولین درخواست به این سوکت رسید سرویس اجرا بشه و سوکت باز شده هم در اختیار پروسس این سرویس قرار بگیره. خوبی این روش هم اینه که تقریبا تمام سرویس‌های متونن همزمان اجرا بشن و خب در صورتی که یه سرویس زودتر از یه سرویس دیگه اجرا بشه و به سرویس کند نیاز داشته باشه درخواست‌هاش رو به سوکت مربوطه میفرسته تا زمانی که این سوکت بتونه چیزی دریافت کنه-لازمه بگم که هر سوکت میتونه به حجم محدودی اطلاعات رو توی خودش نگه داره- پس از اون کرنل دخالت میکنه و برنامه‌ یا برنامه ‌هایی که میخوان به اون سوکت بنویسن رو بصورت موقت متوقف میکنه. تا سرویس دهنده اجرا بشه و بیاد به درخواست‌ها پاسخ بده و سوکت با امکان نوشته شدن داشته باشه. این ایده جدید نبوده و توی inted ملقب به superserver هم برای سرویس دهنده‌های اینترنتی مثل ftp مورد استفاده قرار گرفته. اما systemd ایده رو توسعه داده و بجای سوکت‌های اینترنتی از همه نوع سوکتی پشتیبانی میکنه. این روش سود‌های دیگه‌ای هم داره:

  • وابستگی‌ها بصورت واضحی معرفی نمیشن چون همه سوکت‌ها برای دریافت اطلاعات وجود دارن
  • اگر یک سرویس به علتی خراب بشه و به اصطلاح بمیره سوکت اون وجود خواهد داشت و پس از شروع مجدد دوباره کارهاش رو از همون جایی که بوده پی میگیره
  • اگر یک سرویس بروزرسانی بشه میتوان اون رو به راحتی restart کرد ولی سوکت مربوطه وجود داره به سرویس دهی ادامه میده
  • تغییر سرویس هم از دید کاربر مخفی میمونه

همین!

منابع:

حالا اگه کسی خواست واقعا بیشتر بدونه بهتره به منابع پایین یه سری بزنه

  1. این سایت اصلیه که کلی اطلاعات جذاب توش داره.
  2. این سایت نویسنده یا یکی از نویسندگان اصلی systemd هست
  3. اگه برنامه نویس هستید و میخواد با این مفهوم بیشتر آشنا بشید این مطلب و این یکی رو هم بخونید

 

تقسیم پهنای باند بین کاربران فعال در pfSense

اینم یه تجربه پراکنده دیگه!

یکی از مشکلاتی که همیشه در محل‌هایی که من فعالیت داشتن وجود داشته اینه که چطور پهنای باند رو بین تمام استفاده کنندگان تقسیم کرد بصورتی که اگه ۱۰ کاربر داریم که در حال حاضر ۲ تاشون فعالن، پهنای باند بین دو نفر تقسیم بشه و اگه به عنوان مثال ۳ نفر فعال باشن پهنای باند بین اون ۵ نفر تقسیم بشه. مزایای این اتفاق بسیاره که اگه عمری بود در موردش مینویسم. سعی میکنم مراحل کار رو اینجا با مثال رو شکل توضیح بدم:

  1. ابتدا باید به منوی firewall -> traffic shaper -> limiter رفته و یه limiter جدید میسازیم
    1.0
  2. سپس اسم limiter رو برای راحتی کار آینده download میگذاریم و اون رو فعال میکنیم
    1.1
  3. سپس تو قسمت bandwidth یک گزینه جدید اضافه می‌کنیم
    1.2
  4. بعد توی قسمت bandwidth حد دانلود رو وارد می‌کنیم. و ذخیره می‌کنیم
    1.3
  5. توی صفحه بعد گزینه اضافه کردن یک صف جدید رو انتخاب می‌کنیم
    2.0
  6. توی این قسمت هم تنها یه اسم وارد کنید که بعدا بتونید به یاد بیاردش و مثلا download_lan باشه و نحوه انتخاب رو براساس آدرس مقصد انتخاب کنید و تنظیمات رو ذخیره کنید
    2.1
  7. حالا بایستی همین کار برای آپلود هم انجام بشه پس یه limiter جدید ساخته میشه
    3.0
  8. یه اسم برای آپلود انتخاب کنید و تنظیمات رو ذخیره کنید
    3.1
  9. حال دوباره توی قسمت bandwidth یک گزینه جدید اضافه کنید
    3.2
  10. پهنای باند آپلود رو اینجا وارد کنید و تغییرات رو ذخیره کنید
    3.3
  11. دوباره برای این قسمت هم یک صف اضافه می‌کنیم
    4.0
  12. توی این قسمت هم تنها یه اسم وارد کنید که بعدا بتونید به یاد بیاردش و مثلا upload_lan باشه و نحوه انتخاب رو براساس آدرس مبدا انتخاب کنید و تنظیمات رو ذخیره کنید
    4.1
  13. حالا به بخش قوانین مسیریابی برید و قانون اصلی رو که اجازه میده ترافیک رد بشه ویرایش کنید
    5.0
  14. به بخش In/Out برید و روی گزینه advance کلیک کنید
    5.1
  15. و برای خروجی از صف upload_lan و برای ورودی از صف download_lan استفاده کنید.
    5.2

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

منبع: اینجا

استفاده از pfsense در محیط تجاری/عملیات

اینم یه تجربه پراکنده دیگه

من تقریبا دو سال میشه که در محل کار و خونه از pfSense به عنوان روتر و فایروال استفاده کردم. حالا میخواستم یکم در مورد درستی یا غلطی استفاده از یه روتر متن باز تو محیط عملیاتی بگم. شاید به درد کسی بخوره و توی تصمیم گیری کمکش کنه.

اگه به شخص من باشه، من در برای کسب و کارهای کوچک و متوسط پیشنهاد میکنم که از pfSense استفاده بشه. چون کیفیت این محصول خوبه و کنترل کافی روی پهنای باند و شبکه رو فراهم میکنه و نگهداریش سربار اضافی برای اون کسب و کار به همراه نداره. هزینه راه‌اندازی به نسبت  کمی هم داره تنها چیزایی که میخواد یه کامپیوتر قدیمی که دارای حداقل دوتا کارت شبکه باشه هست.

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

از نظر ویژگی‌ها هم کارهای بسیار خوب زیادی میشه باهاش انجام داد. که من لیست کارهایی که باهاش کردم رو مینویسم:

  • سر هم کردن دوتا اینترنت برای افزایش پهنای باند و افزایش ثبات
  • راه اندازی یک captive portal برای احراز هویت کاربران برای دسترسی به اینترنت
  • استفاده از ویژگی NAT برای تخصیص پورتهایی به یکی از سیستم‌های داخلی
  • پشتیبانی از سیستم تلفنی مبتنی بر IP به نام Asterisk
  • پشتیبانی از محدود کردن پهنای باند و ترافیک کاربران
  • محدود کردن دسترسی عده‌ای یا گروهی از کاربران به اینترنت
  • پشتیبانی از squid‌به منظور افزایش کارایی استفاده از اینترنت
  • امکان بررسی ترافیک عبوری و ویروسیابی آن
  • امکان اعمال سیاستهای تضمین کیفیت

این کارهایی که من انجام دادم اکثرا توسط پکیج‌های جانبی این سیستم انجام شده و اگه عمری بود سناریوی اجرای تک تک این قسمت‌ها رو میگم

همین!

راهکارهای متن باز برای Network Attached Storage

اینم یه تجربه پراکنده دیگه!

امروز میخوام درباره Network Attached Storage یا همون NAS یکم بنویسم. خب از اونجایی که من علاقه‌مند به سیستم های متن بازم پس بازهم در مورد راهکارهایی که متن باز این سیستم رو پیاده‌سازی میکنن حرف میزنم. فکر کنم که بهتره هرچه سریعتر لیست این محصولات رو بگم:

من متاسفانه هیچکدوم از این محصولات رو توی خونه ندارم ولی دوست داشتم که یه کامپیوتر کم مصرف داشتم که بتونم یه دونه رو راه بندازم. اما توی شرکت ما از NAS4Free استفاده می‌کنیم که تا الان با کیفیت خوبی جواب کارمون رو داده.

پروتکل‌های ارتباطی که معمولا هر کدوم از این محصولات پشتیبانی میکنند هم توی لیست پایین اومدن:

فکر میکنم یکی دیگه از اطلاعاتی که مهمه مقایسه این محصولات با همه که با توجه به جستجوهای من در اینترنت این مقالات رو پیدا کردم که فکر کنم به درد بخوره

مقایسه FreeNAS با Openfiler توی این لینک پیدا میشه

مقایسه FreeNAS با NAS4Free توی این لینک پیدا میشه

همین!

راه‌کارهای توزیع بار و استفاده از چند اینترنت در خانه و محل کار

بعد از یه مدت که سرم توی کار خیلی شلوغ بوده با یه تجربه پراکنده دیگه اومدم اینجا.

سوال اصلی که قرار جواب داده بشه اینه که اگه ما چند تا منبع اینترنت داشتیم و خواستیم برای افزایش قابلیت اطمینان پهنای باند اونها رو باهم ترکیب کنیم این کار چطور صورت میگیره.

خب راه حل‌های گوناگونی برای اینکار وجود داره. یکی از راه استفاده از سخت افزارهایی هست که برای این کار ساخته شده. mikrotik یا مسیریاب‌های اختصاصی شرکتهای دیگه که قابلیت loadbalancing رو دارند و معمولا با سام تجاری loadbalancing router شناخته میشن این قابلیت رو داره.

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

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

خب راه حل هایی که من باهاشون مستقیما کار کردم zeroshell و pfSense هست که یکیشون یه لینوکسه یک دیگش هم یه freeBSD  هست. اما دیدم دوستان با استفاده از kerio و محصولات cisco اینکار رو انجام دادن. هردوی zeroshell و pfSense امکاناتی دارند که به راحتی کانفیگ میشن و این کار انجام میشه.

این مقدمه برای این پست کافیه تا تو یه پست کامل توضیح میدم که اینکار pfSense چطور انجام میشه.

نسخه جدید pfSense منتشر شد

خب اینم که تجربه پراکنده دیگه.

همونطور که گفته بودم من توی خونه از pfSense به عنوان روتر خونم استفاده میکنم. بعد از بیش از یک سال نسخه جدید این سیستم عامل متن باز منتشر شده و من از تغییرات ایجاد شده خوشحالم. تغییرات زیادی توی این نسخه ایجاد شده که لیست کاملش اینجا هست. اما به نظر من مهمترین تغییرات از این قرارن:

  • بروزرسانی نسخه freebsd به نسخه ۸.۳
  • پشتیبانی از نسخه ۶ پروتکل IP
  • بهبود واسط کاربری وب