PowerDNS Platform Filter¶
Platform Filter is a DNS-based content filtering system built on PowerDNS. It combines subscriber-aware IP mapping, policy enforcement, and real-time device registration to deliver per-subscriber filtering at scale.
Components¶
| Component | Purpose |
|---|---|
| RADIUS Listener | RADIUS accounting listener that maps IP addresses to subscriber identifiers |
| Device Register | Receives new-device notifications from the Recursor or DNSdist and registers them in Redis, Postgres, and Kafka |
| Organization Manager | REST API to manage IP CIDR allocations per organisation and fan the resulting ranges out to the IP Mapper over NATS |
| IP Mapper | Tracks subscriber IP session allocations and maps IP addresses to sessions |
| OX Feed Mirror | HTTP caching mirror for OX Feeds — reduces inter-datacenter bandwidth and speeds up filter-node recovery |
| Settings Syncer | Syncs subscriber settings and IP mappings from Redis to a local LMDB |
| OX Feed Client | Keeps a local LMDB database in sync with one or more OX Feed HTTP servers for URL categorization |
| OX Feed Command Source | Runs an external command on an interval and turns its output into a versioned OX Feed with snapshots and deltas |
| OX Feed HTTP API Downloader | Mirrors an upstream OX Feed HTTP API (such as oxfeed-vtfeed) into a local feed directory of snapshots, deltas, and code map |
| OX Feed RPZ Downloader | Pulls a DNS Response Policy Zone via AXFR/IXFR and republishes the records as a versioned OX Feed |
| OX Feed Gitfeed | Converts a CSV file stored in git into a versioned OX Feed with snapshots and deltas |
| Simulator HTTP Server | HTTP and NATS service that runs the Platform Filter Lua engine for ad-hoc simulation queries and optional remote proxy decisions |
| Carbonizer | Scrapes Prometheus /metrics endpoints, converts the samples to Carbon dotted paths, and forwards them to Graphite-compatible servers |
Guides¶
Cross-cutting guides covering deployment, integration, and operations are collected under Guides.