systemd-resolved can do this, though I haven't played with it too much yet.
Here's a random post I just found: https://gist.github.com/brasey/fa2277a6d7242cdf4e4b7c720d42b...
(Ha, I did the thing where I read the comments before the post, and the post describes how to do this. So what's still missing?)