summaryrefslogtreecommitdiff
path: root/hosts/toaster/network.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/toaster/network.nix')
-rw-r--r--hosts/toaster/network.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/hosts/toaster/network.nix b/hosts/toaster/network.nix
new file mode 100644
index 0000000..239ee0e
--- /dev/null
+++ b/hosts/toaster/network.nix
@@ -0,0 +1,62 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [ iwgtk ];
+
+ networking = {
+ hostName = "toaster";
+ firewall.enable = true;
+ networkmanager.enable = false;
+ useNetworkd = true;
+ wireguard.enable = true;
+ wireless.iwd.enable = true;
+ };
+
+ services.resolved = {
+ enable = true;
+ dnssec = "allow-downgrade";
+ };
+
+ # workaround for networkd waiting for shit
+ systemd.services.systemd-networkd-wait-online.serviceConfig.ExecStart = [
+ "" # clear old command
+ "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online --any"
+ ];
+
+ systemd.network = {
+ enable = true;
+
+ # wait-online.ignoredInterfaces = [ "wlan0" "enp53s0" ];
+
+ # Interfaces on the machine
+ netdevs."10-james" = {
+ netdevConfig = {
+ Name = "james";
+ Kind = "bond";
+ };
+ bondConfig = {
+ Mode = "active-backup";
+ PrimaryReselectPolicy = "always";
+ MIIMonitorSec = "1s";
+ };
+ };
+ networks."10-ether-bond" = {
+ matchConfig.MACAddress = "e8:80:88:2f:c6:70";
+ networkConfig = {
+ Bond = "james";
+ PrimarySlave = true;
+ };
+ };
+ networks."10-wlan-bond" = {
+ matchConfig.MACAddress = "04:7b:cb:2a:aa:8c";
+ networkConfig = {
+ Bond = "james";
+ };
+ };
+ networks."10-james-bond" = {
+ matchConfig.Name = "james";
+ networkConfig = {
+ DHCP = "yes";
+ IPv6AcceptRA = true;
+ };
+ };
+ };
+}