diff --git a/hosts/dn42-ildix-clerie/configuration.nix b/hosts/dn42-ildix-clerie/configuration.nix index ff718c0..c51fb69 100644 --- a/hosts/dn42-ildix-clerie/configuration.nix +++ b/hosts/dn42-ildix-clerie/configuration.nix @@ -7,23 +7,42 @@ ]; profiles.clerie.mercury-vm.enable = true; + profiles.clerie.common-networking.enable = true; boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/vda"; - networking.useDHCP = false; - # VM Nat Netz mercury - networking.interfaces.ens18.ipv4.addresses = [ { address = "192.168.10.27"; prefixLength = 24; } ]; - # Ildix - networking.interfaces.ens19.ipv6.addresses = [ { address = "fd81:edb3:71d8:ffff::13"; prefixLength = 64; } ]; - # Route to dn42-ildix-service - networking.interfaces.ens19.ipv6.routes = [ { address = "fd81:edb3:71d8::"; prefixLength = 48; via = "fd81:edb3:71d8:ffff:2953::1"; } ]; - - # public address - networking.interfaces.ens20.ipv6.addresses = [ { address = "2001:638:904:ffcb::4"; prefixLength = 64; } ]; - - networking.defaultGateway6 = { address = "2001:638:904:ffcb::1"; interface = "ens20"; }; - networking.defaultGateway = { address = "192.168.10.1"; interface = "ens18"; }; + systemd.network.networks."10-wan" = { + matchConfig.Name = "ens20"; + address = [ + "2001:638:904:ffcb::4/64" + ]; + routes = [ + { Gateway = "2001:638:904:ffcb::1"; } + ]; + linkConfig.RequiredForOnline = "routable"; + }; + systemd.network.networks."10-nat-netz-mercury" = { + matchConfig.Name = "ens18"; + address = [ + "192.168.10.27/24" + ]; + routes = [ + { Gateway = "192.168.10.1"; } + ]; + linkConfig.RequiredForOnline = "routable"; + }; + systemd.network.networks."10-dn42-ildix" = { + matchConfig.Name = "ens19"; + address = [ + "fd81:edb3:71d8:ffff::13/64" + ]; + routes = [ + # Route to dn42-ildix-service + { Destination = "fd81:edb3:71d8::/48"; Gateway = "fd81:edb3:71d8:ffff:2953::1"; } + ]; + linkConfig.RequiredForOnline = "no"; + }; # Open Firewall for BGP networking.firewall.allowedTCPPorts = [ 179 ]; @@ -36,7 +55,7 @@ services.bird.enable = true; services.bird.package = pkgs.bird2; services.bird.config = '' - router id ${ (lib.head config.networking.interfaces.ens18.ipv4.addresses).address }; + router id 192.168.10.27; protocol direct { interface "ens19";