یک برنامهنویس مصری پروژهای جالب توسعه داده که نشان میدهد برای ساخت یک مسدود کننده سختافزاری تبلیغات، همیشه به رزبری پای یا سختافزار قدرتمند نیاز نیست. او با استفاده از یک برد 2 دلاری ESP32-C3، دستگاهی ساخته که به مودم یا روتر وصل میشود و دامنههای تبلیغاتی را مسدود میکند.
در سالهای اخیر بسیاری از کاربران برای حذف تبلیغات و مسدود کردن دامنههای ردیابی کننده کاربر، از راهکارهایی مانند Pi-hole استفاده میکنند. در این روش یک نرمافزار روی Raspberry Pi اجرا میشود و در سطح شبکه تبلیغات را مسدود میکند. با این کار همه دستگاههای متصل به شبکه از شر تبلیغات راحت میشوند.
اخیراً یک توسعهدهنده مصری نشان داده که انجام این کار حتی به رزبری پای نیاز ندارد و یک میکروکنترلر کوچک نیز از پس آن برمیآید.
بیش از نیم میلیون دامنه روی یک برد کوچک
پروژه ZedAxis بر پایه برد ESP32-C3 SuperMini ساخته شده که تنها ۴۰۰ کیلوبایت حافظه رم و ۴ مگابایت حافظه فلش در اختیار دارد. این مشخصات در نگاه اول برای نگهداری فهرستی شامل صدها هزار دامنه کافی به نظر نمیرسد، اما توسعهدهنده پروژه با تغییر روش ذخیرهسازی دادهها این محدودیت را دور زده است.

او به جای ذخیره مستقیم نام دامنهها، از الگوریتم هش ۴۰ بیتی FNV-1a استفاده کرده است. در این روش لیست دامنههای تبلیغاتی ابتدا دانلود، ورودیهای تکراری حذف و سپس تمام دامنهها به مقادیر هش تبدیل میشوند. در نهایت نیز این دادهها بهصورت مرتب داخل حافظه فلش ذخیره میشوند.
هنگام دریافت هر درخواست DNS، دستگاه همان عملیات هش را روی نام دامنه انجام میدهد و سپس با یک جستجوی باینری، وجود آن را در فهرست بررسی میکند. اگر دامنه در فهرست باشد، درخواست مسدود میشود و در غیر این صورت به سرور DNS اصلی ارسال خواهد شد.

به گفته سازنده، این فریمور هنگام اجرا تنها حدود ۵۰ کیلوبایت از حافظه رم کنترلر را اشغال میکند و پاسخ درخواستهایی که باید مسدود شوند، بهطور متوسط در حدود ۱۰ میلیثانیه آماده میشود.
نکته جالب دیگر این پروژه، استفاده هوشمندانه از حافظه فلش است. بردهای ESP32 معمولاً بخشی از حافظه خود را برای دریافت آپدیتهای بیسیم (OTA) رزرو میکنند تا در صورت بروز مشکل هنگام نصب نسخه جدید، دستگاه همچنان قابل راهاندازی باشد.
هکر مصری قابلیت OTA را غیرفعال کرده و فضای آزادشده را به ذخیره کردن پایگاه داده دامنههای مسدودشده اختصاص داده است. نتیجه این تصمیم، افزایش ظرفیت از حدود ۲۵۰ هزار دامنه به بیش از ۵۳۷ هزار دامنه بوده است.

سازنده پروژه تأکید میکند این دستگاه قرار نیست جایگزین کامل Pi-hole یا AdGuard Home باشد. برخلاف این نرمافزارها، پروژه ESP32 امکاناتی مانند گزارشهای تحلیلی، تاریخچه درخواستها یا مدیریت کامل کاربران شبکه را ارائه نمیدهد.
در عوض هدف آن ایفای نقش یک DNS پشتیبان است؛ یعنی اگر سرور اصلی Pi-hole به هر دلیلی مانند ریاستارت یا قطع برق از دسترس خارج شود، این برد کوچک بهطور خودکار وارد عمل شده و همچنان تبلیغات و دامنههای ناخواسته را در شبکه خانگی فیلتر میکند.
این پروژه بار دیگر نشان میدهد که با کمی خلاقیت و بهینهسازی نرمافزاری، حتی سختافزارهایی با چند صد کیلوبایت حافظه نیز میتوانند وظایفی را انجام دهند که معمولاً به دستگاههای بسیار قدرتمندتر سپرده میشود.
در صورتی که به این روش علاقهمند شدهاید، جزئیات کامل و فایلهای آن در صفحه گیتهاب پروژه به طور مجانی در دسترس است.













نظر خود را اضافه کنید.
برای ارسال نظر وارد شوید
ارسال نظر بدون عضویت در سایت