nixos/topology.nix

83 lines
1.7 KiB
Nix

{
lib,
config,
inputs,
...
}: {
nodes.internet = config.lib.topology.mkInternet {};
nodes.tailnet = {
name = "tailnet";
hardware.info = "Tailscale Private Network";
deviceType = "internet";
hardware.image = config.nodes.internet.hardware.image;
interfaces."*" = {};
};
nodes.den-den-mushi = {
deviceType = "router";
hardware.info = "AVM FRITZ!Box 7530";
interfaces = {
dsl0 = {
icon = "interfaces.ethernet";
mac = "AC:9A:96:11:22:33";
physicalConnections = [
{
node = "internet";
interface = "*";
}
];
};
lan1 = {
mac = "DC:39:6F:19:9B:84";
network = "home";
};
lan2 = {
mac = "DC:39:6F:19:9B:84";
network = "home";
};
lan3 = {
mac = "DC:39:6F:19:9B:84";
network = "home";
};
lan4 = {
mac = "DC:39:6F:19:9B:84";
network = "home";
};
};
};
nodes.home-ap = {
deviceType = "switch";
hardware.info = "Ubiquiti AP Unifi U6+";
interfaces = {
wifi = {
icon = "interfaces.wifi";
};
lan1 = {
physicalConnections = [
{
node = "den-den-mushi";
interface = "lan1";
}
];
};
};
};
nixosConfigurations = let
filterFn = name: _: !(builtins.elem name ["radix-balthica" "trochulus-hispidus"]);
in
lib.mkForce (lib.filterAttrs filterFn inputs.self.nixosConfigurations);
networks.home = {
name = "Home Network";
cidrv4 = "192.168.1.0/24";
cidrv6 = "2003:c7:cf11:4200::1/60";
};
networks.tailnet = {
name = "Tailscale Network";
cidrv4 = "100.0.0.0/8";
};
}