Systemd/networkd: Difference between revisions
m
no edit summary
imported>Mweinelt (→Bridge) |
mNo edit summary |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Systemd/breadcrumb}} | |||
{{DISPLAYTITLE:systemd-networkd}} | {{DISPLAYTITLE:systemd-networkd}} | ||
[https://www.freedesktop.org/software/systemd/man/systemd-networkd.html systemd-networkd] is the network | [https://www.freedesktop.org/software/systemd/man/systemd-networkd.html systemd-networkd] is the network configuration component of the [[systemd]][[Category:systemd]] software suite. It is well integrated into NixOS below {{Nixos:option|systemd.network}} and should be preferred over {{Nixos:option|networking.interfaces}} options for most use cases, since it receives far superior maintenance. | ||
Configuration for networkd is split into three sections. | Configuration for networkd is split into three sections. | ||
Line 177: | Line 178: | ||
matchConfig.Name = "enp1s0"; | matchConfig.Name = "enp1s0"; | ||
address = [ | address = [ | ||
# configure addresses including subnet mask | |||
"192.0.2.100/24" | |||
"2001:DB8::2/64" | |||
]; | ]; | ||
routes = [ | routes = [ | ||
Line 186: | Line 187: | ||
{ routeConfig.Gateway = "192.0.2.1"; } | { routeConfig.Gateway = "192.0.2.1"; } | ||
# or when the gateway is not on the same network | # or when the gateway is not on the same network | ||
{ routeConfig = { | { | ||
routeConfig = { | |||
Gateway = "172.31.1.1"; | |||
GatewayOnLink = true; | |||
}; | |||
} | |||
]; | ]; | ||
# make the routes on this interface a dependency for network-online.target | # make the routes on this interface a dependency for network-online.target | ||
Line 278: | Line 281: | ||
# Configure the bridge for its desired function | # Configure the bridge for its desired function | ||
"40-br0" = { | "40-br0" = { | ||
matchConfig.Name ="br0"; | matchConfig.Name = "br0"; | ||
bridgeConfig = {}; | bridgeConfig = {}; | ||
# Disable address autoconfig when no IP configuration is required | # Disable address autoconfig when no IP configuration is required | ||
Line 343: | Line 346: | ||
"30-lan" = { | "30-lan" = { | ||
matchConfig.Name = "lan"; | matchConfig.Name = "lan"; | ||
address = [ | address = [ "2001:db8:1122:3344::1/64" ]; | ||
networkConfig = { | networkConfig = { | ||
IPv6SendRA = true; | IPv6SendRA = true; | ||
}; | }; | ||
ipv6Prefixes = [ { | ipv6Prefixes = [ | ||
{ | |||
# Announce a static prefix | |||
ipv6PrefixConfig.Prefix = "2001:db8:1122:3344::/64"; | |||
} | |||
]; | |||
ipv6SendRAConfig = { | ipv6SendRAConfig = { | ||
# Provide a DNS resolver | # Provide a DNS resolver | ||
Line 359: | Line 362: | ||
}; | }; | ||
}; | }; | ||
}; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 376: | Line 380: | ||
* [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] | ||
[[Category:systemd]] | |||
[[Category:Networking]] |