current
 1{
 2  den.aspects.pardofelis.nixos = {config, ...}: let
 3    iface = "eth0";
 4  in {
 5    networking = {
 6      useNetworkd = true;
 7      useDHCP = false;
 8      search = ["local"];
 9    };
10
11    systemd.network.networks."10-${iface}" = {
12      matchConfig.Name = iface;
13      dns = ["172.16.36.100"] ++ config.networking.nameservers;
14      linkConfig.RequiredForOnline = "routable";
15    };
16
17    environment.etc."systemd/network/10-${iface}.network.d/99-address.conf" = {
18      source = config.vaultix.templates.networkd-address.path;
19      user = "root";
20      group = "systemd-network";
21      mode = "0440";
22    };
23    environment.etc."systemd/network/10-${iface}.network.d/99-route.conf" = {
24      source = config.vaultix.templates.networkd-route.path;
25      user = "root";
26      group = "systemd-network";
27      mode = "0440";
28    };
29
30    vaultix.templates.networkd-address = {
31      content = ''
32        [Network]
33        Address=${config.vaultix.placeholder.hosts-pardofelis-ipv4}/24
34        Address=${config.vaultix.placeholder.hosts-pardofelis-ipv6}/64
35      '';
36      owner = "root";
37      group = "systemd-network";
38      mode = "0440";
39    };
40    vaultix.templates.networkd-route = {
41      content = ''
42        [Route]
43        Gateway=${config.vaultix.placeholder.hosts-pardofelis-gateway}
44        Destination=0.0.0.0/0
45        [Route]
46        Gateway=${config.vaultix.placeholder.hosts-pardofelis-gateway6}
47        Destination=::/0
48      '';
49      owner = "root";
50      group = "systemd-network";
51      mode = "0440";
52    };
53
54    vaultix.secrets.hosts-pardofelis-ipv4.file = ./ipv4.age;
55    vaultix.secrets.hosts-pardofelis-ipv6.file = ./ipv6.age;
56    vaultix.secrets.hosts-pardofelis-gateway.file = ./gateway.age;
57    vaultix.secrets.hosts-pardofelis-gateway6.file = ./gateway6.age;
58  };
59}