Generated by GPT-5-mini| systemd-networkd | |
|---|---|
| Name | systemd-networkd |
| Title | systemd-networkd |
| Author | Lennart Poettering |
| Developer | Freedesktop.org |
| Released | 2011 |
| Operating system | Linux |
| Platform | systemd |
| License | LGPL |
systemd-networkd
systemd-networkd is a network management daemon for the Linux platform developed as part of the systemd suite by contributors led by Lennart Poettering and coordinated through Freedesktop.org. It provides lightweight, declarative configuration and runtime management for network links on servers, embedded systems, and desktop distributions such as Debian, Ubuntu, Fedora, Arch Linux, and openSUSE. systemd-networkd aims to integrate tightly with other systemd components like systemd-resolved, systemd-journald, and systemd-networkd-wait-online to offer unified startup, logging, and name resolution across diverse deployments.
systemd-networkd operates as a userspace daemon that configures and monitors network devices exposed by the Linux networking stack, including interfaces managed by Netlink and devices created by subsystems such as NetworkManager-incompatible virtual devices. It is commonly used in environments where minimal dependencies and fast boot times are required, such as containerization platforms like Docker, orchestration frameworks such as Kubernetes, and virtual machine hosts running on KVM or Xen. The project interacts with standards and protocols defined by organizations like the IETF and relies on kernel features maintained by Linux kernel developers.
systemd-networkd implements fundamental network protocols and features including DHCP, IPv6, Router Advertisement, ARP, VLAN, bridge management, and PPP in parts. Components and facilities related to the daemon include the configuration directory parsed at boot, the runtime network state exposed via systemctl units, and the control interface surfaced through systemd-networkctl and D-Bus. It integrates with cryptographic and security primitives available from OpenSSL, GnuPG, and kernel-level mechanisms like SELinux and AppArmor for confinement. The daemon cooperates with the udev device manager and leverages features of Linux namespaces for containerized network setups.
Configuration for systemd-networkd is declarative, using INI-style files placed under /etc/systemd/network or /run/systemd/network and parsed into objects representing networks, links, and addresses. Common configuration stanzas support directives for IPv4, IPv6, DHCP client parameters, static addressing, routing, bonding, and interface matching by MAC address or driver names like e1000e or virtio-net. Administrators often combine systemd-networkd files with tools and metadata from distributions including Debian, Ubuntu, Fedora, or cloud-init providers such as OpenStack and Amazon Web Services to automate network provisioning. The configuration format is documented alongside other systemd units like systemd.service and integrates with distribution-specific network configuration frontends.
At runtime, systemd-networkd exposes operational state and statistics through commands such as systemd-networkctl and through the D-Bus API for programmatic control used by higher-level systems like Cockpit or orchestration tools. Administrators monitor logs with systemd-journald and control startup ordering using systemctl unit dependencies such as network-online.target. The daemon supports hotplugging via udev rules and cooperates with container runtimes including systemd-nspawn and LXC to manage virtual links, virtual Ethernet pairs, and macvlan devices. Performance and debug workflows frequently involve interactions with kernel tracing tools maintained by Linux kernel developers and network analysis utilities like tcpdump, Wireshark, and iproute2.
systemd-networkd is designed to be compatible with ecosystem components and standards including DHCPv6, IPv6 Stateless Address Autoconfiguration, and IEEE 802.1Q for VLAN tagging. It can coexist with alternative network managers such as NetworkManager and specialized controllers used by cloud platforms like CloudStack and OpenNebula provided interfaces are not simultaneously unmanaged. Integration points include name resolution via systemd-resolved or external resolvers like BIND and dnsmasq, authentication via Kerberos in enterprise setups, and orchestration with Ansible, Puppet, and SaltStack. The daemon also interoperates with hypervisors and tools such as libvirt, QEMU, and VirtualBox networking backends.
Security and reliability considerations for systemd-networkd involve privilege separation, sandboxing with systemd service directives, and minimizing attack surface by limiting ancillary dependencies. It benefits from kernel-level protections implemented by SELinux, AppArmor, and networking controls such as iptables and nftables managed by Netfilter. High-availability deployments often pair systemd-networkd with clustering and failover solutions like Pacemaker or use dynamic orchestration in Kubernetes clusters to maintain service continuity. Testing and validation draw on tools and standards from the IETF and contributions from vendor projects including Red Hat, Canonical, SUSE, and community testing services hosted by Freedesktop.org.
Category:Linux network daemons