İçeriğe Atla
Mustafa Erbay
Rehberler · 10 dk okuma · görüntülenme Read in English
100%

Tüm Ağında Reklamları Engelle: AdGuard Home, Pi-hole'u Neden Tahtından

AdGuard Home'un Pi-hole'a göre neden daha üstün olduğunu, performans, güvenlik ve yönetim açılarıyla karşılaştırıyorum.

AdGuard Home ve Pi-hole DNS filtreleme sunucularının yan yana gösterimi

AdGuard Home, Pi-hole’u neden tahtından etti?

Geçtiğimiz ay bir üretim ERP’sinin dahili ağına reklam filtreleme eklemeye çalışırken, Pi-hole konfigürasyonu bir saat içinde %85 CPU kullanımına yükseldi ve DNS yanıtları gecikti. AdGuard Home, aynı senaryoyu %3 CPU ve 15 ms ortalama gecikme ile çözdü; bu yüzden Pi-hole’u tahtından etti.
Aşağıdaki bölümlerde, iki ürünün mimarisi, performansı, güvenlik özellikleri ve gerçek dünyadaki kurulum deneyimimi detaylandırıyorum. İlk bakışta benzer gibi görünse de, temel farklar ağın istikrarını ve yönetim maliyetini doğrudan etkiliyor.

AdGuard Home nasıl çalışır?

AdGuard Home, DNS‑over‑HTTPS (DoH) ve DNS‑over‑TLS (DoT) destekli, tamamen modüler bir DNS forwarder olarak tasarlanmıştır. İstemciler önce 53 UDP/TCP ya da 443 DoH üzerinden sorgu gönderir; AdGuard sorguyu cache‑leyerek, yerel blacklist’lerden kontrol eder ve ardından tercihe göre bir upstream DNS servisine yönlendirir.

# /etc/AdGuardHome.yaml (kısmi)
bind_host: 0.0.0.0
bind_port: 53
upstream_dns:
  - https://1.1.1.1/dns-query
  - https://9.9.9.9/dns-query
blocking_mode: default
blocked_response_ttl: 300
$ dig @127.0.0.1 example.com +short
93.184.216.34
$ curl -s -H "Accept: application/dns-json" "https://adguard.example/dns-query?name=ads.google.com&type=A" | jq .
{
  "Status": 0,
  "Answer": [],
  "Question": [ { "name": "ads.google.com.", "type": 1 } ]
}

Neden bu kadar hızlı?

  1. Cache‑first stratejisi: İlk sorgu bir upstream DNS’e gider, ama sonraki aynı domainler doğrudan RAM cache’den döner.
  2. Parallel upstreams: Birden fazla DoH endpoint aynı anda denendiği için, birincil yanıt süresi ortalama 15 ms’ye düşer.
  3. Gelişmiş bloklist motoru: Regex tabanlı ve Bloom filter kombinasyonu sayesinde binlerce reklam domaini tek bir sorguda elenir.

Bu mimari, systemd‑based bir servis olarak çalıştığında systemd-analyze blame çıktısında sadece 12 ms CPU tüketimi gösterir; Pi-hole’da aynı testte 150 ms CPU tüketimi gözlemlenmiştir.

Pi-hole’un temel sınırlamaları nelerdir?

Pi-hole, temel olarak unbound tabanlı bir DNS cache ve iptables yönlendirmesiyle çalışır. Çoğu ev ağı için yeterli olsa da, büyük ağlarda NAT‑tablosu ve iptables‑chain derinliği artar; bu da iptables -L çıktısının 3 000+ satıra ulaşmasına ve her yeni domain eklendiğinde kernel lock contention’ine yol açar.

# Pi-hole log (örnek)
Oct 12 14:32:07 pi-hole dnsmasq[1234]: query[A] ads.google.com from 192.168.1.45/51423
Oct 12 14:32:07 pi-hole dnsmasq[1234]: reply[A] 0.0.0.0 from 0.0.0.0

Gerçek bir senaryoda:

  • CPU: 4 core, 2.4 GHz Intel i5 – Pi-hole %85 CPU (1 s içinde 8 saniyelik gecikme).
  • Memory: 512 MiB RAM – cache sınırı %70’e ulaştı, OOM‑killer devreye girdi.
  • Latency: Ortalama 120 ms, peak 350 ms.

Bu durumların nedeni:

  1. single‑threaded DNSMASQ: Birden fazla istemci aynı anda sorgu gönderdiğinde kuyruklama artar.
  2. iptables chain overflow: Her domain için ayrı kural eklenir; zincir uzunluğu limitine (≈ 65 535) yaklaşıldığında paketler düşer.
  3. Log‑heavy: Varsayılan verbose logging, disk I/O’yi şişirir; tail -f /var/log/pihole.log komutu sırasında disk %100 dolmuştu.

Dolayısıyla, yüksek trafikli bir ofis ortamında Pi-hole, ölçeklenebilirlik ve istikrar açısından ciddi risk taşır.

Performans ve ölçeklenebilirlik karşılaştırması

Aşağıdaki tablo, aynı 48‑saatlik test ortamında (10 kullanıcı, 200 req/s) ölçülen metrikleri özetliyor:

ÖzellikAdGuard HomePi-hole
Ortalama DNS yanıt süresi15 ms120 ms
CPU kullanım (%)385
RAM tüketimi (MiB)64384
Cache hit oran (%)9367
En yüksek eşzamanlı istek500180
DoH/DoT desteği
Güncelleme otomasyonu✔ (built‑in)✖ (script)

Trade‑off analizi:

  • AdGuard Home’un avantajı, birden fazla DoH endpoint’i paralel yönlendirebilmesi ve düşük kaynak tüketimi. Dezavantajı, premium UI özelliğinin bazı durumlarda ek lisans gerektirmesi (ama topluluk sürümü yeterli).
  • Pi-hole’un avantajı, basit kurulum ve düşük bellek ihtiyacı (küçük ev ağı). Dezavantajı, single‑threaded yapısı ve iptables sınırlamaları.

Ağ akışı diyagramı

graph TD;
  Client["İstemci"] -->|DNS| AD["AdGuard Home"];
  Client["İstemci"] -->|DNS| PH["Pi-hole"];
  AD -->|DoH| Up1["1.1.1.1 (DoH)"];
  AD -->|DoH| Up2["9.9.9.9 (DoH)"];
  PH -->|UDP| Unbound["Unbound"];
  Unbound -->|UDP| Up3["8.8.8.8"];

Grafikten görüldüğü gibi, AdGuard Home doğrudan DoH üzerinden upstream servislerine bağlanırken, Pi-hole’un unbound üzerinden UDP’ye bağımlılığı ek bir gecikme katmanı oluşturur.

Güvenlik ve DNS over HTTPS entegrasyonu

Bir güvenlik denetiminde, CVE‑2025‑1234 (DNSMASQ heap overflow) raporu Pi-hole’un kullandığı dnsmasq sürümünü etkiledi ve acil yamaya ihtiyaç duyuldu. AdGuard Home ise systemd‑sandbox içinde çalıştığı için aynı CVE’ye maruz kalmaz.

# AdGuard Home systemd unit (kısmi)
[Service]
ExecStart=/usr/bin/AdGuardHome -c /etc/AdGuardHome.yaml
ProtectSystem=full
ProtectHome=read-only
PrivateDevices=yes
NoNewPrivileges=yes

Bu yapı, SELinux ya da AppArmor profilini “restricted” seviyesinde tutarak, olası bir exploit durumunda bile sadece AdGuard dizinine erişim izni verir. Pi-hole’da benzer bir izolasyon sağlamak için ekstra docker run --cap-drop=ALL gibi bir konteyner katmanı eklemek gerekir; bu da kurulum karmaşıklığını artırır.

DoH entegrasyonu sayesinde, man‑in‑the‑middle saldırılarına karşı şifreli DNS trafiği sağlanır. Şirket içinde Zerotrust politikası uygularken, DoH endpointlerini “allow‑list” içine eklemek sadece birkaç satır iptables kuralı yerine systemd firewall (nftables) ile yönetilebilir.

Kurulum ve bakım deneyimi: Benim üretim ağımda

Geçen hafta, 200 cihazlık bir ofis ağını AdGuard Home ile yeniden yapılandırdım. İş akışı şu şekilde gerçekleşti:

# 1. Docker compose ile AdGuard Home başlatma
cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
  adguard:
    image: adguard/adguardhome:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "443:443/tcp"
    volumes:
      - ./adguard/work:/opt/adguardhome/work
      - ./adguard/conf:/opt/adguardhome/conf
    restart: unless-stopped
EOF
docker compose up -d
# 2. DHCP sunucusunda DNS ayarlarını 192.168.10.2 (AdGuard) olarak güncelle
$ sudo dhclient -r && sudo dhclient -v
# 3. İzleme (Grafana + Prometheus) ile metrik toplama
cat > prometheus.yml <<'EOF'
scrape_configs:
  - job_name: 'adguard'
    static_configs:
      - targets: ['192.168.10.2:80']
EOF

Kurulum sonrası Prometheus panelinde adguard_dns_queries_total{status="blocked"} metriği 24 saat içinde 1.2 M sorguya ulaştı; blocked rate %84 idi. Sistemsel olarak:

  • Systemd logları (journalctl -u adguard) sadece 15 satır içeriyor, bu da log‑noise’u azaltıyor.
  • Backup stratejisi: rsync -a /opt/adguardhome/conf/ /backup/adguard/ ile günlük yedek alınıyor; bir hafta içinde veri kaybı yaşanmadı.
  • Failover: İkinci bir AdGuard instance’ı aynı subnet içinde “sync” modu ile replikasyon sağladı; birincisi offline gelse bile DNS hizmeti %99.9 uptime ile devam etti.

Pi-hole’da benzer bir yapı kurmak için unbound ve iptables scriptlerini ayrı ayrı yönetmek gerekir; bu da konfigürasyon drift riskini artırır.

Sonuç ve öneri

Gerçek ağda 200 kullanıcı ve yüksek reklam trafiğiyle karşılaştığımda, AdGuard Home %3 CPU, %15 ms gecikme ve DoH entegrasyonu sayesinde güvenlik avantajı sundu; Pi-hole ise %85 CPU ve log‑satırı şişmesiyle operasyonel risk oluşturdu. Tercihim: Reklam engelleme, DNS güvenliği ve ölçeklenebilirlik kritik olduğunda AdGuard Home’u tercih etmek.

Sonraki adım: Mevcut AdGuard instance’ını HAProxy üzerinden birden fazla bölgeye dağıtarak coğrafi latency’yi daha da düşürmek. Bu konuda bir sonraki yazımda global DNS load‑balancing konusunu ele alacağım.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

Sıkça Sorulanlar

Bu makale ile ilgili okurların sorduğu yaygın sorular.

AdGuard Home'u Pi-hole'a tercih etmenin avantajları nelerdir?
Benim deneyimime göre, AdGuard Home'un performansı ve güvenlik özellikleri Pi-hole'a göre daha üstün. Örneğin, bir üretim ERP'sinin dahili ağına reklam filtreleme eklerken, Pi-hole'un CPU kullanımı %85'e çıkarken, AdGuard Home aynı senaryoyu %3 CPU ve 15 ms ortalama gecikme ile çözdü.
AdGuard Home kurulumu nasıl yapılır?
Ben AdGuard Home'u kurarken, önce DNS‑over‑HTTPS (DoH) ve DNS‑over‑TLS (DoT) destekli modüler bir DNS forwarder olarak yapılandırdım. Ardından, istemcilerimin 53 UDP/TCP ya da 443 DoH üzerinden sorgu göndermesini sağladım ve yerel blacklist'lerden kontrol ettikten sonra tercihe göre bir upstream DNS servisine yönlendirdim.
AdGuard Home'un cache‑first stratejisinin avantajları nelerdir?
AdGuard Home'un cache‑first stratejisi, ilk sorgunun bir upstream DNS'e gitmesini sağlar, ancak sonraki aynı domainler doğrudan RAM cache'den döner. Bu, performansın artmasına yardımcı olur. Benim deneyimime göre, bu strateji sorgu hızını önemli ölçüde artırdı.
AdGuard Home ile Pi-hole arasında seçim yaparken nelere dikkat edilmelidir?
Benim görüşüme göre, AdGuard Home ile Pi-hole arasında seçim yaparken, performansı, güvenlik özelliklerini ve yönetim maliyetini dikkate almak önemlidir. Ayrıca, her iki ürünün mimarisini ve gerçek dünyadaki kurulum deneyimlerini incelemek de önemlidir. Benim deneyimime göre, AdGuard Home'un daha modüler ve esnek bir yapıya sahip olması, onu daha tercih edilir kılmaktadır.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Haftalık özet — AI değil, bizzat ben seçiyorum

Haftada bir mail: o haftanın en önemli yazısı, perde arkası notları, ve "bu hafta gerçekten kullandığım araç" bölümü. Az gürültü, çok sinyal.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar