From def2055775680024eb927e21068f6b861ae377c8 Mon Sep 17 00:00:00 2001 From: clerie Date: Thu, 8 Aug 2024 20:02:57 +0200 Subject: [PATCH] hosts/carbon: Add net-iot --- hosts/carbon/configuration.nix | 1 + hosts/carbon/net-iot.nix | 69 ++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 hosts/carbon/net-iot.nix diff --git a/hosts/carbon/configuration.nix b/hosts/carbon/configuration.nix index b97e2fe..c9cc78f 100644 --- a/hosts/carbon/configuration.nix +++ b/hosts/carbon/configuration.nix @@ -10,6 +10,7 @@ ./net-dsl.nix ./net-gastnetz.nix ./net-heimnetz.nix + ./net-iot.nix ./net-lte.nix ./net-voip.nix ./ppp.nix diff --git a/hosts/carbon/net-iot.nix b/hosts/carbon/net-iot.nix new file mode 100644 index 0000000..be18bfc --- /dev/null +++ b/hosts/carbon/net-iot.nix @@ -0,0 +1,69 @@ +{ ... }: + +{ + + networking.vlans."enp1s0.205" = { + id = 205; + interface = "enp1s0"; + }; + networking.bridges."net-iot".interfaces = [ + "enp1s0.205" + ]; + networking.interfaces."net-iot".ipv6.addresses = [ + { address = "fe80::1"; prefixLength = 64; } + { address = "fd00:152:152:205::1"; prefixLength = 64; } + ]; + networking.interfaces."net-iot".ipv4.addresses = [ + { address = "10.152.205.1"; prefixLength = 24; } + ]; + + services.radvd.config = '' + interface net-iot { + AdvSendAdvert on; + prefix fd00:152:152:205::/64 {}; + RDNSS fd00:152:152::1 {}; + DNSSL iot.clerie.de {}; + }; + ''; + + services.kea.dhcp4 = { + settings = { + interfaces-config = { + interfaces = [ "net-iot" ]; + }; + subnet4 = [ + { + id = 205; + subnet = "10.152.205.0/24"; + pools = [ + { + pool = "10.152.205.100 - 10.152.205.240"; + } + ]; + option-data = [ + { + name = "routers"; + data = "10.152.205.1"; + } + { + name = "domain-name-servers"; + data = "10.152.0.1"; + } + { + name = "domain-name"; + data = "iot.clerie.de"; + } + ]; + } + ]; + }; + }; + + clerie.firewall.extraForwardFilterCommands = '' + # Allow access from Heimnetz to IOT devices + ip46tables -A forward-filter -i net-heimnetz -o net-iot -j ACCEPT + ip46tables -A forward-filter -i net-iot -j DROP + ip46tables -A forward-filter -o net-iot -j DROP + ''; + +}