summary refs log tree commit diff
path: root/modules/dns.nix
blob: 63bb13c1083211f21f26d51669b7f7de83d5d0e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{ oisd, ... }:

let
  tailscaleDns = [ "/serval-moth.ts.net/100.100.100.100" ];

  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 ++ tailscaleDns;
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;
    };
  };
}