Systemd/networkd: Difference between revisions
Fix static route example |
Interface renaming |
||
| (4 intermediate revisions by 3 users not shown) | |||
| Line 29: | Line 29: | ||
These use cases are better served by [[NetworkManager]] and its various frontends, that provides a better integrated user experience for various desktop systems. | These use cases are better served by [[NetworkManager]] and its various frontends, that provides a better integrated user experience for various desktop systems. | ||
{{Note|Both systemd-networkd and NetworkManager can exist in parallel on the same machine, | {{Note|Both systemd-networkd and NetworkManager can exist in parallel on the same machine, when they manage a distinct set of interfaces. If upstream connectivity is managed by NetworkManager (for example, NM handles wifi and networkd does VM networking), set {{Nixos:option|systemd.network.wait-online.enable}} to false so that boot isn't blocked on connectivity that networkd will never provide.}} | ||
when they manage a distinct set of interfaces.}} | |||
=== Enabling === | === Enabling === | ||
| Line 148: | Line 147: | ||
Examples should be concise and give proper hints on how to achieve a reliably working <code>network-online.target</code>. | Examples should be concise and give proper hints on how to achieve a reliably working <code>network-online.target</code>. | ||
=== Interface Naming === | |||
The name of an interface can be changed based on different matches. This is useful for pretty names (e.g. wan, lan), but also if you want to make sure that your interface name never changes. This might be useful because even with predictable interface naming your interface name can change, for example when you add a new PCIe card and indexing changes, or due to kernel changes the way your mainboard gets interpreted changes.<syntaxhighlight lang="nix"> | |||
systemd.network.links."10-wan" = { | |||
# Check systemd.link(5) for other matchers | |||
matchConfig.Path = "pci-0000:09:00.0"; | |||
linkConfig.Name = "wan"; | |||
}; | |||
</syntaxhighlight> | |||
=== DHCP/RA === | === DHCP/RA === | ||
| Line 293: | Line 301: | ||
=== Bonding === | === Bonding === | ||
<div style="margin-left: 2em; margin-bottom:1em"> | |||
''More details: [[Networking#Link aggregation]]''</div> | |||
Given two hardlinks <code>enp2s0</code> and <code>enp3s0</code> create a virtual <code>bond0</code> interface using Dynamic LACP (802.3ad), hashing outgoing packets using a packet's layer 3/4 (network/transport layer in the OSI model) information. | Given two hardlinks <code>enp2s0</code> and <code>enp3s0</code> create a virtual <code>bond0</code> interface using Dynamic LACP (802.3ad), hashing outgoing packets using a packet's layer 3/4 (network/transport layer in the OSI model) information. | ||
| Line 378: | Line 389: | ||
* [https://gist.github.com/mweinelt/b78f7046145dbaeab4e42bf55663ef44 NixOS 22.11 VDSL Router (VLANs on top of Bonding, IPv6 Prefix-Delegation, pppd Integration)] by [https://github.com/mweinelt mweinelt] | * [https://gist.github.com/mweinelt/b78f7046145dbaeab4e42bf55663ef44 NixOS 22.11 VDSL Router (VLANs on top of Bonding, IPv6 Prefix-Delegation, pppd Integration)] by [https://github.com/mweinelt mweinelt] | ||
* [https://github.com/philipwilk/nixos/blob/4fec9d73bfa7b1ecb490186522de38d25ee81e69/homelab/router/systemd.nix NixOS Unstable (25.04) Router (ipv4/ipv6 dual stack, dnssec+dnsovertls, NTP-rs)] by [https://github.com/philipwilk philipwilk] | |||
[[Category:systemd]] | [[Category:systemd]] | ||
[[Category:Networking]] | [[Category:Networking]] | ||