Jump to content

Systemd/networkd: Difference between revisions

m
no edit summary
imported>Mweinelt
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[[Category: Networking]] 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.
[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
      # configure addresses including subnet mask
        "192.0.2.100/24"
      "192.0.2.100/24"
        "2001:DB8::2/64"
      "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 = {
       {
        Gateway = "172.31.1.1";
        routeConfig = {
        GatewayOnLink = true;
          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" ];
          "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";
            # 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]]
trusted
602

edits