nixos/network-interfaces-systemd: fix IPv6 privacy extensions
networkd seems to be buggy with IPv6PrivacyExtensions=kernel being set, and the addresses don't appear anymore. In fact, the corresponding sysctl seems to be set to -1 again. Fixes https://github.com/NixOS/nixpkgs/issues/106858. Upstream Issue: https://github.com/systemd/systemd/issues/18003
This commit is contained in:
parent
91b8237b48
commit
d349582c07
1 changed files with 11 additions and 1 deletions
|
@ -93,7 +93,17 @@ in
|
||||||
(if i.useDHCP != null then i.useDHCP else false));
|
(if i.useDHCP != null then i.useDHCP else false));
|
||||||
address = forEach (interfaceIps i)
|
address = forEach (interfaceIps i)
|
||||||
(ip: "${ip.address}/${toString ip.prefixLength}");
|
(ip: "${ip.address}/${toString ip.prefixLength}");
|
||||||
networkConfig.IPv6PrivacyExtensions = "kernel";
|
# IPv6PrivacyExtensions=kernel seems to be broken with networkd.
|
||||||
|
# Instead of using IPv6PrivacyExtensions=kernel, configure it according to the value of
|
||||||
|
# `tempAddress`:
|
||||||
|
networkConfig.IPv6PrivacyExtensions = {
|
||||||
|
# generate temporary addresses and use them by default
|
||||||
|
"default" = true;
|
||||||
|
# generate temporary addresses but keep using the standard EUI-64 ones by default
|
||||||
|
"enabled" = "prefer-public";
|
||||||
|
# completely disable temporary addresses
|
||||||
|
"disabled" = false;
|
||||||
|
}.${i.tempAddress};
|
||||||
linkConfig = optionalAttrs (i.macAddress != null) {
|
linkConfig = optionalAttrs (i.macAddress != null) {
|
||||||
MACAddress = i.macAddress;
|
MACAddress = i.macAddress;
|
||||||
} // optionalAttrs (i.mtu != null) {
|
} // optionalAttrs (i.mtu != null) {
|
||||||
|
|
Loading…
Reference in a new issue