From fca4f238ec461ab8d1cf4b906e0b66b6d3c60b23 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 22 Jan 2022 14:13:57 +0100 Subject: [PATCH] Add VoIP Network --- hosts/carbon/configuration.nix | 98 ++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/hosts/carbon/configuration.nix b/hosts/carbon/configuration.nix index ed9130b..a7e63be 100644 --- a/hosts/carbon/configuration.nix +++ b/hosts/carbon/configuration.nix @@ -65,6 +65,14 @@ networking.interfaces."enp1s0.202".ipv4.addresses = [ { address = "192.168.32.1"; prefixLength = 24; } ]; + ## VoIP + networking.vlans."enp1s0.204" = { + id = 204; + interface = "enp1s0"; + }; + networking.interfaces."enp1s0.204".ipv4.addresses = [ + { address = "10.152.33.1"; prefixLength = 24; } + ]; # Use Anycast Nameservers networking.nameservers = [ "fd00:152:152::1" "10.152.0.1" ]; @@ -87,6 +95,96 @@ }; ''; + services.kea.dhcp4 = { + enable = true; + settings = { + interfaces-config = { + interfaces = [ "enp1s0.204" ]; + }; + option-def = [ + { + space = "dhcp4"; + name = "vendor-encapsulated-options"; + code = 43; + type = "empty"; + encapsulate = "sipdect"; + } + { + space = "sipdect"; + name = "ommip1"; + code = 10; + type = "ipv4-address"; + } + { + space = "sipdect"; + name = "ommip2"; + code = 19; + type = "ipv4-address"; + } + { + space = "sipdect"; + name = "syslogip"; + code = 14; + type = "ipv4-address"; + } + { + space = "sipdect"; + name = "syslogport"; + code = 15; + type = "int16"; + } + { + space = "dhcp4"; + name = "magic_str"; + code = 224; + type = "string"; + } + ]; + subnet4 = [ + { + subnet = "10.152.33.0/24"; + pools = [ + { + pool = "10.152.33.10 - 10.152.33.200"; + } + ]; + option-data = [ + { + name = "routers"; + data = "10.152.33.1"; + } + ]; + + reservations = [ + { + hostname = "iridium"; + hw-address = "00:30:42:1B:8C:7C"; + ip-address = "10.152.33.11"; + option-data = [ + { + name = "host-name"; + data = "iridium"; + } + { + name = "vendor-encapsulated-options"; + } + { + space = "sipdect"; + name = "ommip1"; + data = "10.152.33.11"; + } + { + name = "magic_str"; + data = "OpenMobilitySIP-DECT"; + } + ]; + } + ]; + } + ]; + }; + }; + networking.wireguard.enable = true; networking.wireguard.interfaces = { wg-gatekeeper4 = {