mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 02:18:12 +09:00
dns
This commit is contained in:
@@ -1,12 +1,98 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
networking.nameservers = lib.mkDefault [
|
||||
"1.1.1.1"
|
||||
"1.0.0.1"
|
||||
let
|
||||
dohPort = 5300;
|
||||
|
||||
dohLocalUpstream = "127.0.0.1#${toString dohPort}";
|
||||
|
||||
internalDns = [
|
||||
"10.50.80.53"
|
||||
"10.50.80.54"
|
||||
|
||||
# "fd00:50:80::53"
|
||||
# "fd00:50:80::54"
|
||||
];
|
||||
|
||||
services.resolved.enable = lib.mkDefault false;
|
||||
security.pki.certificateFiles = [ ./root_ca.crt ];
|
||||
internalZones = [
|
||||
"app.homelabs.run"
|
||||
];
|
||||
|
||||
internalDnsServers = lib.concatMap (zone: map (dns: "/${zone}/${dns}") internalDns) internalZones;
|
||||
in
|
||||
{
|
||||
services.resolved.enable = false;
|
||||
|
||||
networking.networkmanager.dns = "none";
|
||||
|
||||
services.dnscrypt-proxy = {
|
||||
enable = true;
|
||||
|
||||
upstreamDefaults = true;
|
||||
|
||||
settings = {
|
||||
listen_addresses = [
|
||||
"127.0.0.1:${toString dohPort}"
|
||||
];
|
||||
|
||||
server_names = [
|
||||
"cloudflare"
|
||||
"cloudflare-ipv6"
|
||||
];
|
||||
|
||||
ipv4_servers = true;
|
||||
ipv6_servers = true;
|
||||
|
||||
dnscrypt_servers = false;
|
||||
doh_servers = true;
|
||||
odoh_servers = false;
|
||||
|
||||
cache = false;
|
||||
|
||||
block_ipv6 = false;
|
||||
|
||||
ignore_system_dns = true;
|
||||
|
||||
bootstrap_resolvers = [
|
||||
"9.9.9.11:53"
|
||||
"149.112.112.11:53"
|
||||
"[2620:fe::11]:53"
|
||||
"[2620:fe::fe:11]:53"
|
||||
];
|
||||
|
||||
netprobe_address = "1.1.1.1:443";
|
||||
|
||||
timeout = 5000;
|
||||
keepalive = 30;
|
||||
};
|
||||
};
|
||||
|
||||
services.dnsmasq = {
|
||||
enable = true;
|
||||
|
||||
resolveLocalQueries = true;
|
||||
|
||||
settings = {
|
||||
no-resolv = true;
|
||||
|
||||
local-service = "host";
|
||||
|
||||
server = [ dohLocalUpstream ] ++ internalDnsServers;
|
||||
|
||||
all-servers = true;
|
||||
|
||||
cache-size = 10000;
|
||||
|
||||
dns-loop-detect = true;
|
||||
domain-needed = true;
|
||||
bogus-priv = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.dnsmasq = {
|
||||
wants = [ "dnscrypt-proxy.service" ];
|
||||
after = [ "dnscrypt-proxy.service" ];
|
||||
};
|
||||
|
||||
security.pki.certificateFiles = [
|
||||
./root_ca.crt
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user