nixos: networking: simplify
This commit is contained in:
parent
429d9c9fa7
commit
88e6cea3f3
7 changed files with 39 additions and 121 deletions
|
@ -2,6 +2,5 @@
|
||||||
imports = [
|
imports = [
|
||||||
./boot
|
./boot
|
||||||
./hardware
|
./hardware
|
||||||
./networking
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./dns.nix
|
|
||||||
./network-configuration-daemon.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.networking.dns;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake.networking.dns = {
|
|
||||||
provider = lib.mkOption {
|
|
||||||
type = lib.types.enum ["dhcp" "google" "alidns"];
|
|
||||||
default =
|
|
||||||
{
|
|
||||||
"Asia/Shanghai" = "alidns";
|
|
||||||
}
|
|
||||||
.${config.time.timeZone}
|
|
||||||
or "google";
|
|
||||||
example = "alidns";
|
|
||||||
description = "Select desired DNS provider.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
networking.nameservers =
|
|
||||||
{
|
|
||||||
dhcp = [];
|
|
||||||
google = [
|
|
||||||
### Google DNS
|
|
||||||
"8.8.8.8"
|
|
||||||
"8.8.4.4"
|
|
||||||
"2001:4860:4860::8888"
|
|
||||||
"2001:4860:4860::8844"
|
|
||||||
];
|
|
||||||
alidns = [
|
|
||||||
### AliDNS
|
|
||||||
"223.5.5.5"
|
|
||||||
"223.6.6.6"
|
|
||||||
"2400:3200::1"
|
|
||||||
"2400:3200:baba::1"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
.${cfg.provider};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.myFlake.networking;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
myFlake = {
|
|
||||||
networking = {
|
|
||||||
network-configuration-daemon = lib.mkOption {
|
|
||||||
type = lib.types.enum ["iwd" "networkmanager" "networkmanager-iwd"];
|
|
||||||
default = "iwd";
|
|
||||||
example = "networkmanager";
|
|
||||||
description = "Select desired network configuration daemon.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
|
||||||
(lib.mkIf (cfg.network-configuration-daemon == "iwd") {
|
|
||||||
networking.wireless.iwd.enable = true;
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.network-configuration-daemon == "networkmanager" || cfg.network-configuration-daemon == "networkmanager-iwd") {
|
|
||||||
networking.networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
ethernet.macAddress = "random";
|
|
||||||
wifi.macAddress = "random";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.network-configuration-daemon == "networkmanager-iwd") {
|
|
||||||
networking.wireless.iwd.enable = true;
|
|
||||||
networking.networkmanager.wifi.backend = "iwd";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -7,6 +7,7 @@
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardening
|
./hardening
|
||||||
|
./networking
|
||||||
./nix
|
./nix
|
||||||
./packages
|
./packages
|
||||||
|
|
||||||
|
@ -82,18 +83,4 @@
|
||||||
# this shouldn't affect non-nvidia machines.
|
# this shouldn't affect non-nvidia machines.
|
||||||
nixpkgs.config.nvidia.acceptLicense = true;
|
nixpkgs.config.nvidia.acceptLicense = true;
|
||||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
||||||
|
|
||||||
### https://wiki.archlinux.org/title/Sysctl#Improving_performance
|
|
||||||
boot.kernelModules = ["tcp_bbr"];
|
|
||||||
boot.kernel.sysctl = {
|
|
||||||
"net.ipv4.tcp_fastopen" = "3";
|
|
||||||
|
|
||||||
"net.ipv4.tcp_keepalive_time" = "80";
|
|
||||||
"net.ipv4.tcp_keepalive_intvl" = "10";
|
|
||||||
"net.ipv4.tcp_keepalive_probes" = "6";
|
|
||||||
"net.ipv4.tcp_mtu_probing" = "1";
|
|
||||||
|
|
||||||
"net.core.default_qdisc" = "cake";
|
|
||||||
"net.ipv4.tcp_congestion_control" = "bbr";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
38
nixos/profiles/core/networking/default.nix
Normal file
38
nixos/profiles/core/networking/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
_: {
|
||||||
|
networking.wireless.iwd.enable = true;
|
||||||
|
networking.nameservers = [
|
||||||
|
### Google DNS
|
||||||
|
"8.8.8.8#dns.google"
|
||||||
|
"8.8.4.4#dns.google"
|
||||||
|
"2001:4860:4860::8888#dns.google"
|
||||||
|
"2001:4860:4860::8844#dns.google"
|
||||||
|
];
|
||||||
|
|
||||||
|
### systemd-resolved
|
||||||
|
services.resolved = {
|
||||||
|
enable = true;
|
||||||
|
domains = ["~."];
|
||||||
|
dnssec = "true";
|
||||||
|
extraConfig = "DNSOverTLS=yes";
|
||||||
|
fallbackDns = [
|
||||||
|
#"8.8.8.8#dns.google"
|
||||||
|
#"8.8.4.4#dns.google"
|
||||||
|
#"2001:4860:4860::8888#dns.google"
|
||||||
|
#"2001:4860:4860::8844#dns.google"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
### https://wiki.archlinux.org/title/Sysctl#Improving_performance
|
||||||
|
boot.kernelModules = ["tcp_bbr"];
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.tcp_fastopen" = "3";
|
||||||
|
|
||||||
|
"net.ipv4.tcp_keepalive_time" = "80";
|
||||||
|
"net.ipv4.tcp_keepalive_intvl" = "10";
|
||||||
|
"net.ipv4.tcp_keepalive_probes" = "6";
|
||||||
|
"net.ipv4.tcp_mtu_probing" = "1";
|
||||||
|
|
||||||
|
"net.core.default_qdisc" = "cake";
|
||||||
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,18 +0,0 @@
|
||||||
_: {
|
|
||||||
### systemd-resolved
|
|
||||||
services.resolved = {
|
|
||||||
enable = true;
|
|
||||||
dnssec = "true";
|
|
||||||
domains = ["~."];
|
|
||||||
fallbackDns = [
|
|
||||||
"8.8.8.8#dns.google"
|
|
||||||
"8.8.4.4#dns.google"
|
|
||||||
"2001:4860:4860::8888#dns.google"
|
|
||||||
"2001:4860:4860::8844#dns.google"
|
|
||||||
];
|
|
||||||
extraConfig = "DNSOverTLS=yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
### NetworkManager integration
|
|
||||||
networking.networkmanager.dns = "systemd-resolved";
|
|
||||||
}
|
|
Loading…
Reference in a new issue