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

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

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

از سخت افزار شروع میکنم. اول از همه رفتم سه تا هارد ۲ ترابایت وسترن دیجیتال قرمز خریدم بعدش به این نتیجه رسیدم که کامپیوترهایی قدیمی که داشتم ممکنه پاورشون خوب نباشه و یه پاور هم خریدم و از بین دوتا کامپیوتر قدیمی که داشتم یکیش متاسفانه یکی از پورت‌های 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 استفاده بشه. چون کیفیت این محصول خوبه و کنترل کافی روی پهنای باند و شبکه رو فراهم میکنه و نگهداریش سربار اضافی برای اون کسب و کار به همراه نداره. هزینه راه‌اندازی به نسبت  کمی هم داره تنها چیزایی که میخواد یه کامپیوتر قدیمی که دارای حداقل دوتا کارت شبکه باشه هست.

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

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

  • سر هم کردن دوتا اینترنت برای افزایش پهنای باند و افزایش ثبات
  • راه اندازی یک 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
  • بهبود واسط کاربری وب

ماجراهای تکنولوژیک من و خانه ام

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

ایندفعه قراره از یکی از کارهایی که توی خونه برای اثبات خودم به خودم انجام داده بگم. این تجربه تو زمینه شبکه و این حرفاست. من در یکی از جاهایی که کار میکردم با یه سیستم مسیریاب/دیواره آتش متن باز به نام pfSense کار کردم که بسیار به علم شبکه و نرم افزار من اضافه کرد. این یک سیستم عامل freeBSD خاص منظوره برای کارهای شبکه است. یعنی دوستانی در دنیا پیدا شدن که freeBSD رو با برخی ویژگی‌های openBSD که اولی به بهینه بودن معروفه و دومی به امنیت مریض گونه اش ترکیب کردند و یه سیستم عامل سبک برای مدیریت شبکه راه انداختن. البته سیستم های متن باز مشابه این سیستم وجود داره که لیستش اینجاست.

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

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

اما بگم چرا رفتم سراغ این سیستم. اول اینکه دوست داشتم! دوم اینکه چند مشکل بود که باید حل میشد. یکی از مشکلاتی که من برخود میکردم اینه که وقتی تورنت در حال اجرا بود مودم دیگه به مابقی درخواست‌ها جواب نمیداد چون بخاطر پردازنده محدودش حداکثر یه تعداد محدودی کانکشن باز میتونست داشته باشه چون وقتی از  NAT استفاده میشه بایستی مودم یا روتر وضعیت کانکشن ها رو نگه داره که وقتی دستگاه محدود باشه این تعداد محدود میشد. دومین مشکل کیفیت بد DNS توی کل خونه بود. چون بعضی وقتا یه درخواست DNS روی سرورهای آی اس پی نبود و باید میرفتم سراغ DNSهای معروف مثل ۴٫۲٫۲٫۴ یا ۸٫۸٫۸٫۸ که خب ایراداتی داشت و یکی از مهمتریناش زمان به نسبت زیاد جواب به این DNS هاست.

خب اگه بخوام بگم چیکار کردم. بصورت مرحله به مرحله این کارها رو انجام دادم. ا

  1. بهینه سازی سیستم فایل سرور موجود: من برای فایل سرورم توی خونه از یه کامپیوتر قدیمی با یه گیگ رم و یه سی پی یوی سمپرون تک هسته ای سه هزار استفاده میکنم. که بنا به صلاح دیدم که بشه از اون کامپیوتر استفاده دیگه ای هم کرد روش یه ubuntu desktop 12.04 نصب کردم و samba سرور رو هم راه اندازی کردم. اما بخاطر استفاده از unity حجم زیادی از رمم مورد استفاده بود. بعد از جستجوهای بسیار یه desktop manager خوب پیدا کردم به نام enlightenment که رم استفاده شده توی سیستم رو از حدود ۷۰۰ مگ به ۱۲۰ مگ کاهش داد که این خودش بسیار کار بزرگی بود.
  2. نصب و راه اندازی virtual box: بعد روی این سرور با دردسر زیاد virtual box رو نصب کردم و یه ماشین مجازی که خود pfSense آماده کرده رو نصب کردم و دو سمت شبکه رو با استفاده subnet mask از هم جدا کردم.
  3. پیکربندی pfSense: حالا نوبت به پیکربندی pfSense میرسه که برای اینکار یه کانکشن pppoe ساختم توی سمت اینترنت و توی سمت شبکه داخلی یه DHCP سرور تنظیم کردم. برای رفع مشکل DNS از DNS masqe استفاده کردم و گفتم که در وهله اول از DNSهای آی اس پی استفاده کنه و در اولویت بعد بره سراغ سرورهای معروف. یه ویژگی دیگه هم اینه که این سیستم به مدت محدود رکوردهای DNS رو Cache میکنه و سرعت DNS بالا میره. برای دانلود تورنت هم یه Inbound NAT استفاده کردم و گفتم یه سری پورت برای تورنت به دانلودر تورنتم وصل بشه. مشکل تعداد کانکشن هم بخاطر قدرت بیشتر این سیستم و رم بالاترش بصورت خودکار رفع شده بود.
  4. تنظیم نهایی Virtual Box: در نهایت باید Virtual Box رو بگونه ای تنظیم کرد که در ابتدا شروع سیستم ماشین مجازی روتر رو روشن کنه و در خاموش شدن سیستم این ماشین مجاز رو خاموش کنه. خود Virtual Box این کار رو انجام میده و فقط نیاز به یه سری تنظیمات داره که اگه عمری بود در موردشون بعدا یه پست کامل مینوسم.

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