machines/stellio: give the AIS /64 to vlan-lan, not whichever VLAN came up first
Clients on stellio's lan had no global IPv6. AIS delegates a single /64 over PPPoE; cnx-network's router service carves the VLAN prefixes with SubnetId=auto, so vlan-mgmt took the whole prefix and vlan-lan logged "Couldn't find a suitable prefix. Ran out of address space" -- no RA prefix on lan. Pin SubnetId: 0x0 on vlan-lan (the whole /64), 0x1 on vlan-mgmt (out of range on a /64, harmless; works unchanged if AIS ever delegates wider). Verified live via runtime drop-ins: vlan-lan got 2405:9800:b910:1f5d::/64 and a LAN client pinged 2606:4700:4700::1111 over v6. Drop once cnx-network carries the per-VLAN `ipv6SubnetId` option (cnx-network-clan commit 27c697a) and the input is bumped.
This commit is contained in:
1 parent
0a87664afd
commit
b5077983ea
1 file changed
+14
@@ -94,6 +94,20 @@
|
|||||||
22
|
22
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# AIS delegates a single /64 over PPPoE (seen 2026-10-02: "ppp0: DHCP:
|
||||||
|
# received delegated prefix 2405:9800:b910:1f5d::/64"). The router
|
||||||
|
# service hands out sub-prefixes with SubnetId=auto, so whichever VLAN
|
||||||
|
# interface comes up first takes the whole /64 -- on this box vlan-mgmt
|
||||||
|
# did, and vlan-lan logged "Couldn't find a suitable prefix. Ran out of
|
||||||
|
# address space": no RA prefix on lan, so clients had no global IPv6.
|
||||||
|
# Pin the ids: lan (where the clients are) always gets subnet 0, i.e.
|
||||||
|
# the entire prefix when it is a /64; mgmt asks for subnet 1, which
|
||||||
|
# fails harmlessly on a /64 (mgmt is reached over v4 and the meshes) and
|
||||||
|
# starts working unchanged if AIS ever delegates wider. Drop once
|
||||||
|
# cnx-network's router service exposes a per-VLAN subnet id.
|
||||||
|
systemd.network.networks."40-vlan-lan".dhcpPrefixDelegationConfig.SubnetId = lib.mkForce "0x0";
|
||||||
|
systemd.network.networks."40-vlan-mgmt".dhcpPrefixDelegationConfig.SubnetId = lib.mkForce "0x1";
|
||||||
|
|
||||||
systemd.services.heartbeat-push = {
|
systemd.services.heartbeat-push = {
|
||||||
description = "Heartbeat push to uptime monitor";
|
description = "Heartbeat push to uptime monitor";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
|||||||
Reference in new issue
Block a user