<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd-networkd.service" conditional='ENABLE_NETWORKD'>

  <refentryinfo>
    <title>systemd-networkd.service</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-networkd.service</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-networkd.service</refname>
    <refname>systemd-networkd</refname>
    <refpurpose>Network manager</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>systemd-networkd.service</filename></para>
    <para><filename>/usr/lib/systemd/systemd-networkd</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-networkd</command> is a system service that
    manages networks. It detects and configures network devices as
    they appear, as well as creating virtual network devices.</para>

    <para>To configure low-level link settings independently of
    networks, see
    <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

    <para><command>systemd-networkd</command> will create network devices based
    on the configuration in
    <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    files, respecting the [Match] sections in those files.</para>

    <para><command>systemd-networkd</command> will manage network addresses and
    routes for any link for which it finds a <filename>.network</filename> file
    with an appropriate [Match] section, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    For those links, it will flush existing network addresses and routes when
    bringing up the device. Any links not matched by one of the
    <filename>.network</filename> files will be ignored. It is also possible to
    explicitly tell <filename>systemd-networkd</filename> to ignore a link by
    using <varname>Unmanaged=yes</varname> option, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    </para>

    <para>When <filename>systemd-networkd</filename> exits, it generally leaves existing network devices and
    configuration intact. This makes it possible to transition from the initrd and to restart the service
    without breaking connectivity. This also means that when configuration is updated and
    <filename>systemd-networkd</filename> is restarted, netdev interfaces for which configuration was removed
    will not be dropped, and may need to be cleaned up manually.</para>

    <para><command>systemd-networkd</command> may be introspected and controlled at runtime using
    <citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
    </para>
  </refsect1>

  <refsect1><title>Configuration Files</title>
    <para>The configuration files are read from the files located in the
    system network directory <filename>/usr/lib/systemd/network</filename>,
    the volatile runtime network directory
    <filename>/run/systemd/network</filename> and the local administration
    network directory <filename>/etc/systemd/network</filename>.</para>

    <para>Networks are configured in <filename>.network</filename>
    files, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
    and virtual network devices are configured in
    <filename>.netdev</filename> files, see
    <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
