How to overwrite Qubes Virtual DNS 10.139.1.1, 10.139.1.2

@whoami

I am still learning about Qubes OS and I have never heard about lokinet before seeing this thread, so consider this as a disclaimer for anything I write here. I think we need better documentation about how various things work in Qubes OS, as well as about setting up custom DNS services.

What I have learned so far is that Qubes OS routes all DNS requests to 10.139.1.1 and 10.139.1.2 which is done using /etc/resolv.conf files in templates and firewall rules. To use a custom DNS one obviously needs to modify both, otherwise DNS requests would still go to the 2 default hosts.

To persist modifications in /etc/* you must either do them in the particular template, or use some of the other methods described in the docs: config files or bind-dirs. Since you mentioned that you are using a StandaloneVM, I don’t know why the changes you make may be volatile. You may need to look deeper into logs of the VM and the service file itself.

You can use the guide I shared in the other thread too. The sys-wall I use there routes all DNS requests to a sys-dns qube. Just replace the part related to dnscrypt with your lokinet specific stuff, thus creating your own sys-dns running whatever DNS you like. This approach makes any modifications in the client qube (your lokinet-standalone-debian-11) unnecessary as sys-wall which you will use as a NetVM will do that for you upstream.