I spent a few evenings in the past weeks on understanding how different DNS blockers work, why Adguard Home kept crashing on my OpenStick and to see if I could come-up with a good solution for my usecase.
I figured the write-up might be interesting for other people, after all DNS blocking is just a form of blocking and I've had to deal with blocking (bad actors, garbage input data, fraud, DNS, email, HTTP, etc) at various points in my career.
I ended up with a faster and more efficient implementation at the cost of (a lot of) additional complexity, taking a lot of inspiration from the excellent esp32-c3-adblock (https://github.com/M-Abozaid/esp32-c3-adblock).
I've created a fork so that other people can try it, without dumping a bunch of barely tested code on the (excellent!) upstream project. Consider this to be an experiment but one that should be stable enough for a homelab.
I spent a few evenings in the past weeks on understanding how different DNS blockers work, why Adguard Home kept crashing on my OpenStick and to see if I could come-up with a good solution for my usecase.
I figured the write-up might be interesting for other people, after all DNS blocking is just a form of blocking and I've had to deal with blocking (bad actors, garbage input data, fraud, DNS, email, HTTP, etc) at various points in my career.
I ended up with a faster and more efficient implementation at the cost of (a lot of) additional complexity, taking a lot of inspiration from the excellent esp32-c3-adblock (https://github.com/M-Abozaid/esp32-c3-adblock).
I've created a fork so that other people can try it, without dumping a bunch of barely tested code on the (excellent!) upstream project. Consider this to be an experiment but one that should be stable enough for a homelab.