2 Commits

View File

@@ -50,6 +50,7 @@ let
addr4 = "192.168.1.61"; addr4 = "192.168.1.61";
addr4Sized = "${addr4}/24"; addr4Sized = "${addr4}/24";
gw4 = "192.168.1.254"; gw4 = "192.168.1.254";
gw6 = "fe80::e21f:2bff:fe96:e952";
}; };
lan = mkIfConfig { lan = mkIfConfig {
name_ = "lan"; name_ = "lan";
@@ -369,7 +370,7 @@ in
}; };
netdevs = { netdevs = {
"10-vlan10" = mkVlanDev { id = 10; name = ifs.lan10.name; }; # "10-vlan10" = mkVlanDev { id = 10; name = ifs.lan10.name; };
"10-vlan20" = mkVlanDev { id = 20; name = ifs.lan20.name; }; "10-vlan20" = mkVlanDev { id = 20; name = ifs.lan20.name; };
"10-vlan30" = mkVlanDev { id = 30; name = ifs.lan30.name; }; "10-vlan30" = mkVlanDev { id = 30; name = ifs.lan30.name; };
"10-vlan40" = mkVlanDev { id = 40; name = ifs.lan40.name; }; "10-vlan40" = mkVlanDev { id = 40; name = ifs.lan40.name; };
@@ -387,13 +388,16 @@ in
Address = [ ifs.wan.addr4Sized ]; Address = [ ifs.wan.addr4Sized ];
IPv6AcceptRA = false; IPv6AcceptRA = false;
}; };
routes = [ { Gateway = ifs.wan.gw4; } ]; routes = [
{ Gateway = ifs.wan.gw4; }
{ Gateway = ifs.wan.gw6; }
];
# make routing on this interface a dependency for network-online.target # make routing on this interface a dependency for network-online.target
linkConfig.RequiredForOnline = "routable"; linkConfig.RequiredForOnline = "routable";
}; };
"20-lan" = (mkLanConfig ifs.lan) // { "20-lan" = (mkLanConfig ifs.lan) // {
vlan = [ vlan = [
ifs.lan10.name # ifs.lan10.name
ifs.lan20.name ifs.lan20.name
ifs.lan30.name ifs.lan30.name
ifs.lan40.name ifs.lan40.name
@@ -417,23 +421,23 @@ in
}; };
networking.interfaces = { networking.interfaces = {
${ifs.lan10.name} = { # ${ifs.lan10.name} = {
ipv4.addresses = [ { address = ifs.lan10.addr4; prefixLength = ifs.lan10.p4Size; } ]; # ipv4.addresses = [ { address = ifs.lan10.addr4; prefixLength = ifs.lan10.p4Size; } ];
ipv6.addresses = [ # ipv6.addresses = [
{ # {
address = ifs.lan10.addr6; # address = ifs.lan10.addr6;
prefixLength = ifs.lan10.p6Size; # prefixLength = ifs.lan10.p6Size;
} # }
{ # {
address = ifs.lan10.ulaAddr; # address = ifs.lan10.ulaAddr;
prefixLength = ifs.lan10.ulaSize; # prefixLength = ifs.lan10.ulaSize;
} # }
]; # ];
}; # };
}; };
networking.dhcpcd.allowInterfaces = [ ifs.wan.name ]; networking.dhcpcd.allowInterfaces = [ ifs.wan.name ];
services.radvd.enable = true; services.radvd.enable = false;
services.radvd.config = '' services.radvd.config = ''
interface ${ifs.lan10.name} { interface ${ifs.lan10.name} {
RDNSS ${ifs.lan.ulaAddr} { RDNSS ${ifs.lan.ulaAddr} {
@@ -609,7 +613,7 @@ in
services.kea.dhcp4.settings = { services.kea.dhcp4.settings = {
interfaces-config.interfaces = [ interfaces-config.interfaces = [
ifs.lan.name ifs.lan.name
ifs.lan10.name # ifs.lan10.name
ifs.lan20.name ifs.lan20.name
ifs.lan30.name ifs.lan30.name
ifs.lan40.name ifs.lan40.name
@@ -619,7 +623,7 @@ in
ddns-qualifying-suffix = "4.default.${ldomain}"; ddns-qualifying-suffix = "4.default.${ldomain}";
subnet4 = [ subnet4 = [
((mkDhcp4Subnet 1 ifs.lan) // reservations.lan.v4) ((mkDhcp4Subnet 1 ifs.lan) // reservations.lan.v4)
(mkDhcp4Subnet 10 ifs.lan10) # (mkDhcp4Subnet 10 ifs.lan10)
((mkDhcp4Subnet 20 ifs.lan20) // reservations.lan20.v4) ((mkDhcp4Subnet 20 ifs.lan20) // reservations.lan20.v4)
(mkDhcp4Subnet 30 ifs.lan30) (mkDhcp4Subnet 30 ifs.lan30)
(mkDhcp4Subnet 40 ifs.lan40) (mkDhcp4Subnet 40 ifs.lan40)
@@ -631,7 +635,7 @@ in
services.kea.dhcp6.settings = { services.kea.dhcp6.settings = {
interfaces-config.interfaces = [ interfaces-config.interfaces = [
ifs.lan.name ifs.lan.name
ifs.lan10.name # ifs.lan10.name
# ifs.lan20.name # Managed by Att box # ifs.lan20.name # Managed by Att box
ifs.lan30.name ifs.lan30.name
ifs.lan40.name ifs.lan40.name
@@ -642,7 +646,7 @@ in
ddns-qualifying-suffix = "6.default.${ldomain}"; ddns-qualifying-suffix = "6.default.${ldomain}";
subnet6 = [ subnet6 = [
((mkDhcp6Subnet 1 ifs.lan) // reservations.lan.v6) ((mkDhcp6Subnet 1 ifs.lan) // reservations.lan.v6)
(mkDhcp6Subnet 10 ifs.lan10) # (mkDhcp6Subnet 10 ifs.lan10)
(mkDhcp6Subnet 30 ifs.lan30) (mkDhcp6Subnet 30 ifs.lan30)
(mkDhcp6Subnet 40 ifs.lan40) (mkDhcp6Subnet 40 ifs.lan40)
(mkDhcp6Subnet 50 ifs.lan50) (mkDhcp6Subnet 50 ifs.lan50)