<?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 initramfs 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>
