Compare commits
4 Commits
57080fe1b2
...
feature/ro
| Author | SHA1 | Date | |
|---|---|---|---|
|
9760d1f8c8
|
|||
|
bc7fb86f2c
|
|||
|
8997af1a18
|
|||
|
be54d946f3
|
@@ -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";
|
||||||
@@ -230,8 +231,8 @@ let
|
|||||||
matchConfig.Name = ifObj.name;
|
matchConfig.Name = ifObj.name;
|
||||||
networkConfig = {
|
networkConfig = {
|
||||||
IPv4Forwarding = true;
|
IPv4Forwarding = true;
|
||||||
IPv6SendRA = true;
|
IPv6SendRA = (ifObj.name != ifs.lan10.name); # TODO: temporary test, remove
|
||||||
Address = [ ifObj.addr4Sized ];
|
Address = [ ifObj.addr4Sized ifObj.addr6Sized ifObj.ulaAddrSized ];
|
||||||
};
|
};
|
||||||
ipv6Prefixes = [
|
ipv6Prefixes = [
|
||||||
{
|
{
|
||||||
@@ -322,6 +323,10 @@ in
|
|||||||
interface ${ifs.wan.name}
|
interface ${ifs.wan.name}
|
||||||
ipv6rs
|
ipv6rs
|
||||||
dhcp6
|
dhcp6
|
||||||
|
duid
|
||||||
|
ipv6only
|
||||||
|
nohook resolv.conf, yp, hostname, ntp
|
||||||
|
option rapid_commit
|
||||||
|
|
||||||
# this doesn't play well with networkd
|
# this doesn't play well with networkd
|
||||||
# ia_na
|
# ia_na
|
||||||
@@ -365,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; };
|
||||||
@@ -383,20 +388,23 @@ 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
|
||||||
ifs.lan50.name
|
ifs.lan50.name
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"30-vlan10" = mkLanConfig ifs.lan10;
|
# "30-vlan10" = mkLanConfig ifs.lan10;
|
||||||
"30-vlan20" = mkLanConfig ifs.lan20 // {
|
"30-vlan20" = mkLanConfig ifs.lan20 // {
|
||||||
routes = [
|
routes = [
|
||||||
{
|
{
|
||||||
@@ -412,6 +420,46 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.interfaces = {
|
||||||
|
# ${ifs.lan10.name} = {
|
||||||
|
# ipv4.addresses = [ { address = ifs.lan10.addr4; prefixLength = ifs.lan10.p4Size; } ];
|
||||||
|
# ipv6.addresses = [
|
||||||
|
# {
|
||||||
|
# address = ifs.lan10.addr6;
|
||||||
|
# prefixLength = ifs.lan10.p6Size;
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# address = ifs.lan10.ulaAddr;
|
||||||
|
# prefixLength = ifs.lan10.ulaSize;
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
networking.dhcpcd.allowInterfaces = [ ifs.wan.name ];
|
||||||
|
|
||||||
|
services.radvd.enable = false;
|
||||||
|
services.radvd.config = ''
|
||||||
|
interface ${ifs.lan10.name} {
|
||||||
|
RDNSS ${ifs.lan.ulaAddr} {
|
||||||
|
};
|
||||||
|
AdvSendAdvert on;
|
||||||
|
# MinRtrAdvInterval 3;
|
||||||
|
# MaxRtrAdvInterval 10;
|
||||||
|
AdvManagedFlag on;
|
||||||
|
# AdvOtherConfigFlag on;
|
||||||
|
prefix ${ifs.lan10.net6} {
|
||||||
|
AdvOnLink on;
|
||||||
|
AdvAutonomous on;
|
||||||
|
};
|
||||||
|
prefix ${ifs.lan10.ulaNet} {
|
||||||
|
AdvOnLink on;
|
||||||
|
AdvAutonomous on;
|
||||||
|
};
|
||||||
|
route ${ulaPrefix}::/48 {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
networking.nftables.enable = true;
|
networking.nftables.enable = true;
|
||||||
networking.nftables.tables.firewall = {
|
networking.nftables.tables.firewall = {
|
||||||
@@ -441,7 +489,8 @@ in
|
|||||||
set port_forward_v6 {
|
set port_forward_v6 {
|
||||||
type inet_proto . ipv6_addr . inet_service
|
type inet_proto . ipv6_addr . inet_service
|
||||||
elements = {
|
elements = {
|
||||||
tcp . ${ifs.lan.p6}::11:1 . https
|
tcp . ${ifs.lan.p6}::11:1 . https,
|
||||||
|
tcp . ${ifs.lan.p6}:1cd5:56ff:feec:c74a . https,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,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
|
||||||
@@ -574,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)
|
||||||
@@ -586,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
|
||||||
@@ -597,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)
|
||||||
@@ -645,7 +694,7 @@ in
|
|||||||
"@@||googleads.g.doubleclick.net"
|
"@@||googleads.g.doubleclick.net"
|
||||||
]
|
]
|
||||||
# Alpina DNS rewrites
|
# Alpina DNS rewrites
|
||||||
++ map (host: "${host}${domain}^$dnsrewrite=${ifs.lan.p6}::11:1") alpinaDomains
|
++ map (host: "${host}${domain}^$dnsrewrite=${ifs.lan.p6}:1cd5:56ff:feec:c74a") alpinaDomains
|
||||||
++ map (host: "${host}${domain}^$dnsrewrite=${ifs.lan.p4}.11") alpinaDomains;
|
++ map (host: "${host}${domain}^$dnsrewrite=${ifs.lan.p4}.11") alpinaDomains;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user