Ara

$5’lık Çip ile 537.000 Domain Engelleme: Reklam Engelleyici Dongle Devrim Yaratıyor!

Donanımsal tabanlı bir DNS filtreleme sistemi ne kadar ucuza mal edilebilir? Eğer biraz ikinci el donanım bulabilirseniz, maliyeti neredeyse sıfıra indirebilirsiniz. Peki ya şansınız yaver gitmezse? Günümüzün yüksek RAM maliyetleri göz önüne alındığında, tek başına bir Raspberry Pi bile cep yakabiliyor. Ancak daha da iyisi var: yalnızca 5 dolarlık bir mikrodenetleyici ile 500.000'den fazla domain'i engelleyebilen ve sorgulara ortalama 10 milisaniye gibi kısa bir sürede yanıt verebilen tam fonksiyonlu bir reklam engelleyici oluşturmak mümkün.

Bu başarının arkasındaki isim, tam yığın geliştirici ZedAxis (GitHub'da @M-Abozaid). Kendisi, ESP32-C3 "SuperMini" kartını kullanarak ev ağı için yedek bir DNS oluşturmuş. Bu sistem, birincil Pi-hole sunucusu (reklam engelleme entegrasyonuna sahip özel yazılımlar çalıştıran bir Raspberry Pi) yeniden başlatılırken veya ulaşılamaz olduğunda devreye giriyor ve kesintisiz reklam engelleme sağlıyor.

ESP32 ailesinin Wi-Fi özellikli mikrodenetleyicileri, yetenekleriyle biliniyor ve bu tür bir işlevsellik, onların kapasitesinin dışında değil. Hatta bu projede kullanılan ESP32-C3, daha üst modellerde bulunan 8MB PSRAM'a sahip olmayan, maliyeti düşürülmüş bir versiyon. Bu çip, yalnızca 400KB RAM ve 4MB flaş belleğe sahip.

Bu kısıtlı kaynaklarla, büyük boyutlu bir düz metin engelleme listesini depolamak mümkün değil. İşte bu noktada, yetenekli bir geliştiricinin dahiyane çözümü devreye giriyor: Verileri karma (hashing) yöntemiyle sıkıştırmak. 32-bit karma yönteminde çok fazla çakışma olacağı ve 64-bit karma yönteminin ise fazla yer kaplayacağı düşünülerek, 40-bit FNV-1a karma yöntemi tercih edilmiş. Bu sayede, yaklaşık 537.000 domain, cihazın flaş belleğine sığdırılabiliyor.

Buradaki asıl zeka, sadece karma yöntemi değil. Domain'lerin kendileri yerine, geliştirme süreci halka açık engelleme listelerinden veri indiriyor, tekrarlanan girdileri ve yorumları temizliyor, her bir domain'i 40-bitlik bir değere dönüştürüyor, bu değerleri sıralıyor ve tamamlanmış veritabanını ESP32'nin flaş belleğine yazıyor. Bir DNS sorgusu geldiğinde, istenen alan adı aynı şekilde karma yöntemiyle işleniyor ve sıralanmış karma tablosunda ikili arama yapılıyor. Eğer bir eşleşme bulunursa, sorgu engelleniyor; aksi takdirde, sorgu bir üst çözümleyiciye (upstream resolver) iletiliyor. Geliştiriciye göre, tamamlanmış firmware yalnızca yaklaşık 50KB RAM kullanarak sorguları yaklaşık 10 milisaniyede yanıtlayabiliyor.

Tasarımda gözden kaçmayan bir başka akıllıca düzenleme de mevcut. ESP32, genellikle çift firmware kopyası tutarak havadan (OTA) güncellemeleri risk almadan gerçekleştirmeyi sağlıyor. Eğer kablosuz firmware güncellemesi sizin için önemli değilse, bu ikinci firmware bölümünü engelleme listesi veritabanı için kullanabilirsiniz. OTA desteği açıkken, proje yaklaşık 250.000 engellenmiş domain ile sınırlı kalıyor. OTA desteği devre dışı bırakıldığında ise bu sayı, genellikle bir öğle yemeği fiyatına bulunabilen bu mikrodenetleyicide yaklaşık 537.000 domain'e ulaşıyor. Geliştirici bu maliyeti 2 dolar olarak belirtse de, piyasada 5 dolar civarında bulunabiliyor.

Elbette bu çözüm, tam teşekküllü bir Pi-hole veya AdGuard Home kurulumunun yerini almayı amaçlamıyor. ESP32 projesinin basit bir kontrol paneli olsa da, istemci bazında detaylı istatistikler, geçmiş sorgu kayıtları veya bu platformları çekici kılan diğer gelişmiş özellikleri sunmuyor. Bunun yerine, küçük bir sigorta poliçesi gibi tasarlanmış. Ağ üzerinde sessizce duruyor, sadece birkaç düzine miliamper güç tüketiyor ve ana DNS sunucusu bir yeniden başlatma veya güç kesintisi nedeniyle devre dışı kaldığında, istemciler yönlendiricinin yapılandırdığı çözücüye geri dönmek yerine filtrelenmiş DNS yanıtları almaya devam ediyor.

En çok hoşuma giden detay ise, ZedAxis'in tüm sistemi, servis sağlayıcısının fiber modeminin (Huawei OptiXstar) arkasındaki USB portundan güç alması. USB bağlantısı veri taşımasa da, sadece yönlendiriciye "5 volt veriyorum" demesi ve ESP32'nin "teşekkürler" demesinden ibaret. Port, pratik olarak arkasında kaybolan bu kadar küçük bir cihaz için uygun bir güç kaynağı görevi görüyor. Tüm iletişim, ESP32'nin entegre Wi-Fi adaptörü üzerinden gerçekleşiyor.

Bu tür projelerin yaygınlaşıp yaygınlaşmayacağı belirsiz. Muhtemelen çok yaygınlaşmayacaktır, çünkü ağ genelinde reklam engelleme isteyen çoğu kişi hala bir Raspberry Pi, ikinci el bir mini PC satın alacak veya sanal bir makinede AdGuard Home çalıştıracaktır. Yine de, 5 dolarlık bir mikrodenetleyiciye bakıp "Evet, bu iş görür" diyen birini görmek oldukça ilham verici.

Önceki Haber
Samsung'da Sular Durulmuyor: Üretim Bölümü Çalışanlarının %80'i Ayrılmak İstiyor!
Sıradaki Haber
192 Kalem Pille Bilgisayar Çalıştırdı: Hannah Montana Linux'a Başarıyla Giriş Yaptı!

Benzer Haberler: