| 2 Jun 2025 |
uep | (for this or other reasons) | 08:31:18 |
K900 | I guess | 08:31:54 |
K900 | Anyway time to grafanize that shit | 08:31:58 |
ElvishJerricco | yea only one network file applies to each interface. Any other that would match it is just completely irrelevant | 08:42:44 |
ElvishJerricco | I forget if it's the first or last when sorting the network files by name that applies | 08:43:13 |
ElvishJerricco | the way to have separate files apply to the same interface is to use drop-ins for the same foo.network name | 08:43:44 |
ElvishJerricco | course that's not super relevant for nixos | 08:44:03 |
emily | for a router that needs to do PPPoE to get a WAN link, which is likely to be less painful, systemd-networkd and orchestrating pppd as a separate service, or just using NetworkManager which supports it natively? | 11:29:15 |
K900 | I don't know how well it works with networkd | 11:29:49 |
K900 | But I know pppd standalone is CURSED | 11:29:53 |
hexa | "60-ppp0" = {
matchConfig.Type = "ppp";
networkConfig = {
IPv6AcceptRA = true;
DHCP = "ipv6";
KeepConfiguration = true;
};
dhcpV6Config = {
WithoutRA = "solicit";
PrefixDelegationHint = "::/56";
};
ipv6SendRAConfig = {
Managed = true;
};
linkConfig.RequiredForOnline = "routable";
| 11:32:43 |
hexa | * "60-ppp0" = {
matchConfig.Type = "ppp";
networkConfig = {
IPv6AcceptRA = true;
DHCP = "ipv6";
KeepConfiguration = true;
};
dhcpV6Config = {
WithoutRA = "solicit";
PrefixDelegationHint = "::/56";
};
ipv6SendRAConfig = {
Managed = true;
};
linkConfig.RequiredForOnline = "routable";
};
| 11:32:55 |
emily | wait systemd-networkd supports it natively? everything I saw implied no | 11:33:21 |
hexa | I think the important bit is KeepConfiguration, since the PPP tunnel configures IPv4 by itself | 11:33:22 |
emily | or is this just separate to the glue to make pppd run at the right time? | 11:33:28 |
hexa | no, it just adds config on top of the ppp interface that pppd creates | 11:33:36 |
emily | right | 11:33:45 |
hexa | networkd reacts to interface creation | 11:33:49 |
emily | I guess you just need that + making the pppd service run whenever the underlying link comes up | 11:34:06 |
emily | was just wondering if NM might be better-integrated somehow | 11:34:16 |
hexa | * "60-ppp0" = {
matchConfig.Type = "ppp";
networkConfig = {
IPv6AcceptRA = true;
DHCP = "ipv6";
KeepConfiguration = true;
};
dhcpV6Config = {
WithoutRA = "solicit";
PrefixDelegationHint = "::/56";
};
ipv6SendRAConfig = {
Managed = true;
};
linkConfig.RequiredForOnline = "routable";
};
| 11:34:20 |
hexa | certainly not | 11:34:24 |
emily | also yeah I've been reading pppd config files and experiencing true suffering | 11:34:52 |
hexa | I don't remember it integrating with pppd | 11:34:57 |
emily | I assume NM's PPPoE support just wraps it anyway though | 11:34:58 |
hexa | age.secrets."ppp-credentials".file = ../../agenix/ppp-credentials.age;
services.pppd = {
enable = true;
peers."1und1" = {
config = ''
debug
plugin pppoe.so
nic-enp1s0
file ${config.age.secrets."ppp-credentials".path}
mtu 1500
mru 1500
maxfail 0
novj
+ipv6
noauth
defaultroute
persist
noaccomp
default-asyncmap
lcp-echo-interval 30
lcp-echo-failure 4
#lcp-echo-adaptive
lcp-max-configure 10
'';
};
};
| 11:35:19 |
emily | https://networkmanager.dev/docs/api/latest/settings-pppoe.html implies it does | 11:35:59 |
emily | (but doesn't look very rich) | 11:36:14 |
emily | ty :) | 11:36:19 |
hexa | oh, it's called DSL/PPPoE in the list | 11:36:41 |