64 lines
1.5 KiB
Nix
64 lines
1.5 KiB
Nix
|
{ ... }:
|
||
|
|
||
|
{
|
||
|
|
||
|
## Gastnetz
|
||
|
networking.vlans."enp1s0.202" = {
|
||
|
id = 202;
|
||
|
interface = "enp1s0";
|
||
|
};
|
||
|
networking.interfaces."enp1s0.202".ipv6.addresses = [
|
||
|
{ address = "fd00:3214:9453:4920::1"; prefixLength = 64; }
|
||
|
{ address = "2001:4cd8:100:1313::1"; prefixLength = 64; } # public IPs for local network
|
||
|
];
|
||
|
networking.interfaces."enp1s0.202".ipv4.addresses = [
|
||
|
{ address = "192.168.32.1"; prefixLength = 24; }
|
||
|
];
|
||
|
|
||
|
services.radvd.config = ''
|
||
|
interface enp1s0.202 {
|
||
|
AdvSendAdvert on;
|
||
|
prefix 2001:4cd8:100:1313::/64 {};
|
||
|
RDNSS 2620:fe::fe 2620:fe::9 {}; # Quad 9
|
||
|
};
|
||
|
'';
|
||
|
|
||
|
services.kea.dhcp4 = {
|
||
|
settings = {
|
||
|
interfaces-config = {
|
||
|
interfaces = [ "enp1s0.202" ];
|
||
|
};
|
||
|
subnet4 = [
|
||
|
# Gastnetz
|
||
|
{
|
||
|
id = 202;
|
||
|
subnet = "192.168.32.0/24";
|
||
|
pools = [
|
||
|
{
|
||
|
pool = "192.168.32.100 - 192.168.32.240";
|
||
|
}
|
||
|
];
|
||
|
option-data = [
|
||
|
{
|
||
|
name = "routers";
|
||
|
data = "192.168.32.1";
|
||
|
}
|
||
|
{
|
||
|
name = "domain-name-servers";
|
||
|
data = "9.9.9.9,149.112.112.112"; # Quad 9
|
||
|
}
|
||
|
];
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# net-gastnetz can only access internet
|
||
|
clerie.firewall.extraForwardFilterCommands = ''
|
||
|
ip46tables -A forward-filter -i enp1s0.202 -o ppp-dtagdsl -j ACCEPT
|
||
|
ip46tables -A forward-filter -i enp1s0.202 -j DROP
|
||
|
ip46tables -A forward-filter -o enp1s0.202 -j DROP
|
||
|
'';
|
||
|
|
||
|
}
|