nixos/home: Use Digiweb static IP for river WAN

Digiweb assigned river a static IPv4 (84.203.124.128). Point river's
public address at it and have pppd actively request it as the IPCP local
address (local:remote form) rather than passively accepting whatever the
peer offers via noipdefault. The address stays sourced from the
routersPubV4 constant, so the ipsec l2 mesh peer, the nft DNS redirect,
and the cross-router route all follow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 18:06:21 +01:00
parent dc1ec3bf5a
commit a86888a2c7
2 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -322,7 +322,7 @@ rec {
"stream" "stream"
]; ];
routersPubV4 = [ routersPubV4 = [
"109.255.108.88" "84.203.124.128" # river: Digiweb static
"109.255.108.121" "109.255.108.121"
]; ];
+7 -2
View File
@@ -8,16 +8,20 @@
configuration = { lib, modulesPath, pkgs, config, assignments, allAssignments, ... }: configuration = { lib, modulesPath, pkgs, config, assignments, allAssignments, ... }:
let let
inherit (builtins) elemAt;
inherit (lib) mkForce mkMerge mkIf; inherit (lib) mkForce mkMerge mkIf;
inherit (lib.my) networkdAssignment mkVLAN; inherit (lib.my) networkdAssignment mkVLAN;
inherit (lib.my.c) networkd; inherit (lib.my.c) networkd;
inherit (lib.my.c.home) vlans domain prefixes roceBootModules; inherit (lib.my.c.home) vlans domain prefixes roceBootModules routersPubV4;
# Digiweb currently delivers the ISP VLAN (pon-isp, 10) single-tagged, so PPPoE runs on a # Digiweb currently delivers the ISP VLAN (pon-isp, 10) single-tagged, so PPPoE runs on a
# VLAN 10 sitting directly on the physical WAN link. Flip this to true to nest it back # VLAN 10 sitting directly on the physical WAN link. Flip this to true to nest it back
# inside the wan-pon (131) transport VLAN — double-stacking also needs QinQ (tag-stacking) # inside the wan-pon (131) transport VLAN — double-stacking also needs QinQ (tag-stacking)
# on the switch feeding the ONT, or the BRAS never answers PADI. # on the switch feeding the ONT, or the BRAS never answers PADI.
wanStacked = false; wanStacked = false;
# river is routing-common index 0; the Digiweb static IP we request via IPCP
pubV4 = elemAt routersPubV4 0;
in in
{ {
imports = [ imports = [
@@ -92,7 +96,8 @@
plugin pppoe.so wan-vlan-inner plugin pppoe.so wan-vlan-inner
name "digiweb@nga.digiweb.ie" name "digiweb@nga.digiweb.ie"
password "digiweb" password "digiweb"
noipdefault # request our static IP as the local address in IPCP (local:remote, remote left open)
${pubV4}:
# no usepeerdns: we ignore Digiweb's resolvers and use the local recursive resolver # no usepeerdns: we ignore Digiweb's resolvers and use the local recursive resolver
lcp-echo-interval 1 lcp-echo-interval 1
lcp-echo-failure 4 lcp-echo-failure 4