Files
nixos/hosts/genesis/networking/dhcp.nix
T
Greg Hellings a78cc50db9 Create jellyfin VM
Update DNS for new Jellyfin box
Update DHCP for new Jellyfin box
Modify Isaiah to work better with VMs
Update pinned packages becaue I derped hard on creating a cyclic
dependency
2024-11-21 23:13:21 -06:00

197 lines
4.7 KiB
Nix

{
lan,
iot,
lanIP,
iotIP,
routerIP,
}:
{
enable = true;
settings = {
valid-lifetime = 43200; # 12 hours, in seconds
renew-timer = 1000;
rebind-timer = 2000;
interfaces-config.interfaces = [
lan
iot
];
lease-database = {
type = "memfile";
persist = true;
name = "/var/lib/kea/dhcp4.leases";
};
subnet4 = [
{
subnet = "10.42.0.0/16";
pools = [ { pool = "10.42.2.0 - 10.42.3.255"; } ];
interface = lan;
# https://kea.readthedocs.io/en/kea-2.6.1/arm/dhcp4-srv.html#dhcp4-std-options-list
option-data = [
{
name = "domain-name-servers";
data = "${lanIP},1.1.1.1";
}
{
name = "routers";
data = routerIP;
}
{
name = "domain-search";
data = "home,thehellings.lan";
}
{
name = "lpr-servers";
data = "10.42.1.3";
}
{
name = "domain-name";
data = "thehellings.lan";
}
];
}
{
subnet = "192.168.66.0/24";
pools = [ { pool = "192.168.66.2 - 192.168.66.254"; } ];
interface = iot;
option-data = [
{
name = "domain-name-servers";
data = iotIP;
}
{
name = "routers";
data = "192.168.67.1";
}
];
}
];
reservations = [
# Static IPs for personal work
{
hw-address = "00:23:24:72:64:32"; # Joel
ip-address = "10.42.0.4";
}
{
hw-address = "2a:5d:23:10:4e:22"; # SAN Switch
ip-address = "10.42.0.5";
}
{
hw-address = "00:00:de:ad:be:ef"; # deadbeef
ip-address = "10.42.2.254";
}
{
hw-address = "01:a8:a1:59:c7:8a:12"; # BMC management interface for isaiah
ip-address = "10.42.2.253";
}
{
hw-address = "7c:83:34:b9:ee:ec"; # PVE1
ip-address = "10.42.1.1";
}
{
hw-address = "74:ee:2a:66:b3:51"; # printer
ip-address = "10.42.1.3";
}
{
hw-address = "00:11:32:c6:7c:81"; # chronicles
ip-address = "10.42.1.4";
}
{
hw-address = "6a:86:56:45:0b:b1"; # Genesis
ip-address = "10.42.1.5";
}
{
hw-address = "a8:a1:59:c7:20:44"; # isaiah
ip-address = "10.42.1.6";
}
#{
# hw-address = ""; # hosea
# ip-address = "10.42.1.7";
#}
{
hw-address = "b4:2e:99:aa:22:3c"; # jeremiah
ip-address = "10.42.1.8";
}
{
hw-address = "c8:5e:a9:54:9e:c6"; # IVR laptop Wi-Fi
ip-address = "10.42.1.9";
}
########################################
# VM servers #
########################################
{
hw-address = "52:54:00:2a:74:2f";
ip-address = "10.43.4.1"; # Dendrite
}
{
hw-address = "52:54:00:6e:eb:83";
ip-address = "10.43.4.2"; # Jellyfin
}
########################################
# IOT devices #
########################################
# Static IPs for things in the IOT range
{
hw-address = "b4:b0:24:9a:02:4a";
ip-address = "192.168.66.5";
} # LD125
{
hw-address = "f0:03:8c:b3:b0:f6";
ip-address = "192.168.66.55";
} # Roomba
{
hw-address = "4c:a1:61:05:cd:52";
ip-address = "192.168.66.61";
} # Rainbird
{
hw-address = "48:d6:d5:5d:81:21";
ip-address = "192.168.66.65";
} # Google Home
{
hw-address = "28:87:ba:0e:ca:da";
ip-address = "192.168.66.74";
}
{
hw-address = "54:af:97:83:ed:33";
ip-address = "192.168.66.80";
}
{
hw-address = "ac:84:c6:5e:4b:28";
ip-address = "192.168.66.100";
}
{
hw-address = "8c:85:80:1c:f9:d1";
ip-address = "192.168.66.104";
}
{
hw-address = "8c:49:62:aa:58:60";
ip-address = "192.168.66.108";
} # Roku, HiHandsome
{
hw-address = "92:3e:11:c7:c5:be";
ip-address = "192.168.66.109";
}
{
hw-address = "d8:0d:17:19:60:62";
ip-address = "192.168.66.112";
}
{
hw-address = "b4:b0:24:9a:12:53";
ip-address = "192.168.66.130";
} # KL125
{
hw-address = "b4:b0:24:9a:14:0e";
ip-address = "192.168.66.131";
}
{
hw-address = "e4:f0:42:61:fa:b5";
ip-address = "192.168.66.149";
} # Google Home-mini
];
};
}