From a86888a2c7dd3207190e21706642017b5e08671d Mon Sep 17 00:00:00 2001 From: Jack O'Sullivan Date: Mon, 20 Jul 2026 18:06:21 +0100 Subject: [PATCH] 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 --- lib/constants.nix | 2 +- nixos/boxes/home/palace/vms/river.nix | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/constants.nix b/lib/constants.nix index 019d936..954d0e1 100644 --- a/lib/constants.nix +++ b/lib/constants.nix @@ -322,7 +322,7 @@ rec { "stream" ]; routersPubV4 = [ - "109.255.108.88" + "84.203.124.128" # river: Digiweb static "109.255.108.121" ]; diff --git a/nixos/boxes/home/palace/vms/river.nix b/nixos/boxes/home/palace/vms/river.nix index ffbda74..309c486 100644 --- a/nixos/boxes/home/palace/vms/river.nix +++ b/nixos/boxes/home/palace/vms/river.nix @@ -8,16 +8,20 @@ configuration = { lib, modulesPath, pkgs, config, assignments, allAssignments, ... }: let + inherit (builtins) elemAt; inherit (lib) mkForce mkMerge mkIf; inherit (lib.my) networkdAssignment mkVLAN; 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 # 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) # on the switch feeding the ONT, or the BRAS never answers PADI. wanStacked = false; + + # river is routing-common index 0; the Digiweb static IP we request via IPCP + pubV4 = elemAt routersPubV4 0; in { imports = [ @@ -92,7 +96,8 @@ plugin pppoe.so wan-vlan-inner name "digiweb@nga.digiweb.ie" 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 lcp-echo-interval 1 lcp-echo-failure 4