summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/dns.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/dns.nix b/modules/dns.nix
new file mode 100644
index 0000000..c3512e4
--- /dev/null
+++ b/modules/dns.nix
@@ -0,0 +1,40 @@
+{ oisd, ... }:
+
+let
+  cloudflareServers = [
+    "1.1.1.1" "1.0.0.1"
+    "2606:4700:4700::1111" "2606:4700:4700::1001"
+  ];
+
+  quad9Servers = [
+    "9.9.9.9" "149.112.112.112"
+    "2620:fe::fe" "2620:fe::9"
+  ];
+
+  upstreamServers = cloudflareServers ++ quad9Servers;
+in
+{
+  services.resolved.enable = false;
+
+  services.dnsmasq = {
+    enable = true;
+
+    # Ref: https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
+    settings = {
+      interface = [ "enp1s0" "tailscale0" ];
+      bind-dynamic = true;
+
+      server = upstreamServers;
+      cache-size = 4096;
+
+      no-resolv = true;
+      bogus-priv = true;
+      domain-needed = true;
+      localise-queries = true;
+
+      conf-file = "${oisd}/dnsmasq2_big.txt";
+
+      log-queries = true;
+    };
+  };
+}