1SYSTEMD.NETWORK(5) systemd.network SYSTEMD.NETWORK(5)
2
3
4
6 systemd.network - Network configuration
7
9 network.network
10
12 Network setup is performed by systemd-networkd(8).
13
14 The main network file must have the extension .network; other
15 extensions are ignored. Networks are applied to links whenever the
16 links appear.
17
18 The .network files are read from the files located in the system
19 network directory /usr/lib/systemd/network, the volatile runtime
20 network directory /run/systemd/network and the local administration
21 network directory /etc/systemd/network. All configuration files are
22 collectively sorted and processed in lexical order, regardless of the
23 directories in which they live. However, files with identical filenames
24 replace each other. Files in /etc have the highest priority, files in
25 /run take precedence over files with the same name in /usr/lib. This
26 can be used to override a system-supplied configuration file with a
27 local file if needed. As a special case, an empty file (file size 0) or
28 symlink with the same name pointing to /dev/null disables the
29 configuration file entirely (it is "masked").
30
31 Along with the network file foo.network, a "drop-in" directory
32 foo.network.d/ may exist. All files with the suffix ".conf" from this
33 directory will be parsed after the file itself is parsed. This is
34 useful to alter or add configuration settings, without having to modify
35 the main configuration file. Each drop-in file must have appropriate
36 section headers.
37
38 In addition to /etc/systemd/network, drop-in ".d" directories can be
39 placed in /usr/lib/systemd/network or /run/systemd/network directories.
40 Drop-in files in /etc take precedence over those in /run which in turn
41 take precedence over those in /usr/lib. Drop-in files under any of
42 these directories take precedence over the main netdev file wherever
43 located. (Of course, since /run is temporary and /usr/lib is for
44 vendors, it is unlikely drop-ins should be used in either of those
45 places.)
46
47 Note that an interface without any static IPv6 addresses configured,
48 and neither DHCPv6 nor IPv6LL enabled, shall be considered to have no
49 IPv6 support. IPv6 will be automatically disabled for that interface by
50 writing "1" to /proc/sys/net/ipv6/conf/ifname/disable_ipv6.
51
53 The network file contains a "[Match]" section, which determines if a
54 given network file may be applied to a given device; and a "[Network]"
55 section specifying how the device should be configured. The first (in
56 lexical order) of the network files that matches a given device is
57 applied, all later files are ignored, even if they match as well.
58
59 A network file is said to match a device if each of the entries in the
60 "[Match]" section matches, or if the section is empty. The following
61 keys are accepted:
62
63 MACAddress=
64 A whitespace-separated list of hardware addresses. Use full colon-,
65 hyphen- or dot-delimited hexadecimal. See the example below. This
66 option may appear more than one, in which case the lists are
67 merged. If the empty string is assigned to this option, the list of
68 hardware addresses defined prior to this is reset.
69
70 Example:
71
72 MACAddress=01:23:45:67:89:ab 00-11-22-33-44-55 AABB.CCDD.EEFF
73
74 Path=
75 A whitespace-separated list of shell-style globs matching the
76 persistent path, as exposed by the udev property "ID_PATH". If the
77 list is prefixed with a "!", the test is inverted; i.e. it is true
78 when "ID_PATH" does not match any item in the list.
79
80 Driver=
81 A whitespace-separated list of shell-style globs matching the
82 driver currently bound to the device, as exposed by the udev
83 property "DRIVER" of its parent device, or if that is not set the
84 driver as exposed by "ethtool -i" of the device itself. If the list
85 is prefixed with a "!", the test is inverted.
86
87 Type=
88 A whitespace-separated list of shell-style globs matching the
89 device type, as exposed by the udev property "DEVTYPE". If the list
90 is prefixed with a "!", the test is inverted.
91
92 Name=
93 A whitespace-separated list of shell-style globs matching the
94 device name, as exposed by the udev property "INTERFACE". If the
95 list is prefixed with a "!", the test is inverted.
96
97 Host=
98 Matches against the hostname or machine ID of the host. See
99 "ConditionHost=" in systemd.unit(5) for details. When prefixed with
100 an exclamation mark ("!"), the result is negated. If an empty
101 string is assigned, then previously assigned value is cleared.
102
103 Virtualization=
104 Checks whether the system is executed in a virtualized environment
105 and optionally test whether it is a specific implementation. See
106 "ConditionVirtualization=" in systemd.unit(5) for details. When
107 prefixed with an exclamation mark ("!"), the result is negated. If
108 an empty string is assigned, then previously assigned value is
109 cleared.
110
111 KernelCommandLine=
112 Checks whether a specific kernel command line option is set. See
113 "ConditionKernelCommandLine=" in systemd.unit(5) for details. When
114 prefixed with an exclamation mark ("!"), the result is negated. If
115 an empty string is assigned, then previously assigned value is
116 cleared.
117
118 KernelVersion=
119 Checks whether the kernel version (as reported by uname -r) matches
120 a certain expression. See "ConditionKernelVersion=" in
121 systemd.unit(5) for details. When prefixed with an exclamation mark
122 ("!"), the result is negated. If an empty string is assigned, then
123 previously assigned value is cleared.
124
125 Architecture=
126 Checks whether the system is running on a specific architecture.
127 See "ConditionArchitecture=" in systemd.unit(5) for details. When
128 prefixed with an exclamation mark ("!"), the result is negated. If
129 an empty string is assigned, then previously assigned value is
130 cleared.
131
133 The "[Link]" section accepts the following keys:
134
135 MACAddress=
136 The hardware address to set for the device.
137
138 MTUBytes=
139 The maximum transmission unit in bytes to set for the device. The
140 usual suffixes K, M, G, are supported and are understood to the
141 base of 1024.
142
143 Note that if IPv6 is enabled on the interface, and the MTU is
144 chosen below 1280 (the minimum MTU for IPv6) it will automatically
145 be increased to this value.
146
147 ARP=
148 Takes a boolean. If set to true, the ARP (low-level Address
149 Resolution Protocol) for this interface is enabled. When unset, the
150 kernel's default will be used.
151
152 For example, disabling ARP is useful when creating multiple MACVLAN
153 or VLAN virtual interfaces atop a single lower-level physical
154 interface, which will then only serve as a link/"bridge" device
155 aggregating traffic to the same physical link and not participate
156 in the network otherwise.
157
158 Multicast=
159 Takes a boolean. If set to true, the multicast flag on the device
160 is enabled.
161
162 AllMulticast=
163 Takes a boolean. If set to true, the driver retrieves all multicast
164 packets from the network. This happens when multicast routing is
165 enabled.
166
167 Unmanaged=
168 Takes a boolean. When "yes", no attempts are made to bring up or
169 configure matching links, equivalent to when there are no matching
170 network files. Defaults to "no".
171
172 This is useful for preventing later matching network files from
173 interfering with certain interfaces that are fully controlled by
174 other applications.
175
176 RequiredForOnline=
177 Takes a boolean. When "yes", the network is deemed required when
178 determining whether the system is online when running
179 "systemd-networkd-wait-online". When "no", the network is ignored
180 when checking for online state. Defaults to "yes".
181
182 The network will be brought up normally in all cases, but in the
183 event that there is no address being assigned by DHCP or the cable
184 is not plugged in, the link will simply remain offline and be
185 skipped automatically by "systemd-networkd-wait-online" if
186 "RequiredForOnline=no".
187
189 The "[Network]" section accepts the following keys:
190
191 Description=
192 A description of the device. This is only used for presentation
193 purposes.
194
195 DHCP=
196 Enables DHCPv4 and/or DHCPv6 client support. Accepts "yes", "no",
197 "ipv4", or "ipv6". Defaults to "no".
198
199 Note that DHCPv6 will by default be triggered by Router
200 Advertisement, if that is enabled, regardless of this parameter. By
201 enabling DHCPv6 support explicitly, the DHCPv6 client will be
202 started regardless of the presence of routers on the link, or what
203 flags the routers pass. See "IPv6AcceptRA=".
204
205 Furthermore, note that by default the domain name specified through
206 DHCP is not used for name resolution. See option UseDomains= below.
207
208 See the "[DHCP]" section below for further configuration options
209 for the DHCP client support.
210
211 DHCPServer=
212 Takes a boolean. If set to "yes", DHCPv4 server will be start.
213 Defaults to "no". Further settings for the DHCP server may be set
214 in the "[DHCPServer]" section described below.
215
216 LinkLocalAddressing=
217 Enables link-local address autoconfiguration. Accepts "yes", "no",
218 "ipv4", or "ipv6". Defaults to "ipv6".
219
220 IPv4LLRoute=
221 Takes a boolean. If set to true, sets up the route needed for
222 non-IPv4LL hosts to communicate with IPv4LL-only hosts. Defaults to
223 false.
224
225 IPv6Token=
226 An IPv6 address with the top 64 bits unset. When set, indicates the
227 64-bit interface part of SLAAC IPv6 addresses for this link. Note
228 that the token is only ever used for SLAAC, and not for DHCPv6
229 addresses, even in the case DHCP is requested by router
230 advertisement. By default, the token is autogenerated.
231
232 LLMNR=
233 Takes a boolean or "resolve". When true, enables Link-Local
234 Multicast Name Resolution[1] on the link. When set to "resolve",
235 only resolution is enabled, but not host registration and
236 announcement. Defaults to true. This setting is read by systemd-
237 resolved.service(8).
238
239 MulticastDNS=
240 Takes a boolean or "resolve". When true, enables Multicast DNS[2]
241 support on the link. When set to "resolve", only resolution is
242 enabled, but not host or service registration and announcement.
243 Defaults to false. This setting is read by systemd-
244 resolved.service(8).
245
246 DNSOverTLS=
247 Takes false or "opportunistic". When set to "opportunistic",
248 enables DNS-over-TLS[3] support on the link. This option defines a
249 per-interface setting for resolved.conf(5)'s global DNSOverTLS=
250 option. Defaults to false. This setting is read by systemd-
251 resolved.service(8).
252
253 DNSSEC=
254 Takes a boolean. or "allow-downgrade". When true, enables DNSSEC[4]
255 DNS validation support on the link. When set to "allow-downgrade",
256 compatibility with non-DNSSEC capable networks is increased, by
257 automatically turning off DNSSEC in this case. This option defines
258 a per-interface setting for resolved.conf(5)'s global DNSSEC=
259 option. Defaults to false. This setting is read by systemd-
260 resolved.service(8).
261
262 DNSSECNegativeTrustAnchors=
263 A space-separated list of DNSSEC negative trust anchor domains. If
264 specified and DNSSEC is enabled, look-ups done via the interface's
265 DNS server will be subject to the list of negative trust anchors,
266 and not require authentication for the specified domains, or
267 anything below it. Use this to disable DNSSEC authentication for
268 specific private domains, that cannot be proven valid using the
269 Internet DNS hierarchy. Defaults to the empty list. This setting is
270 read by systemd-resolved.service(8).
271
272 LLDP=
273 Controls support for Ethernet LLDP packet reception. LLDP is a
274 link-layer protocol commonly implemented on professional routers
275 and bridges which announces which physical port a system is
276 connected to, as well as other related data. Accepts a boolean or
277 the special value "routers-only". When true, incoming LLDP packets
278 are accepted and a database of all LLDP neighbors maintained. If
279 "routers-only" is set only LLDP data of various types of routers is
280 collected and LLDP data about other types of devices ignored (such
281 as stations, telephones and others). If false, LLDP reception is
282 disabled. Defaults to "routers-only". Use networkctl(1) to query
283 the collected neighbor data. LLDP is only available on Ethernet
284 links. See EmitLLDP= below for enabling LLDP packet emission from
285 the local system.
286
287 EmitLLDP=
288 Controls support for Ethernet LLDP packet emission. Accepts a
289 boolean parameter or the special values "nearest-bridge",
290 "non-tpmr-bridge" and "customer-bridge". Defaults to false, which
291 turns off LLDP packet emission. If not false, a short LLDP packet
292 with information about the local system is sent out in regular
293 intervals on the link. The LLDP packet will contain information
294 about the local host name, the local machine ID (as stored in
295 machine-id(5)) and the local interface name, as well as the pretty
296 hostname of the system (as set in machine-info(5)). LLDP emission
297 is only available on Ethernet links. Note that this setting passes
298 data suitable for identification of host to the network and should
299 thus not be enabled on untrusted networks, where such
300 identification data should not be made available. Use this option
301 to permit other systems to identify on which interfaces they are
302 connected to this system. The three special values control
303 propagation of the LLDP packets. The "nearest-bridge" setting
304 permits propagation only to the nearest connected bridge,
305 "non-tpmr-bridge" permits propagation across Two-Port MAC Relays,
306 but not any other bridges, and "customer-bridge" permits
307 propagation until a customer bridge is reached. For details about
308 these concepts, see IEEE 802.1AB-2016[5]. Note that configuring
309 this setting to true is equivalent to "nearest-bridge", the
310 recommended and most restricted level of propagation. See LLDP=
311 above for an option to enable LLDP reception.
312
313 BindCarrier=
314 A link name or a list of link names. When set, controls the
315 behavior of the current link. When all links in the list are in an
316 operational down state, the current link is brought down. When at
317 least one link has carrier, the current interface is brought up.
318
319 Address=
320 A static IPv4 or IPv6 address and its prefix length, separated by a
321 "/" character. Specify this key more than once to configure several
322 addresses. The format of the address must be as described in
323 inet_pton(3). This is a short-hand for an [Address] section only
324 containing an Address key (see below). This option may be specified
325 more than once.
326
327 If the specified address is 0.0.0.0 (for IPv4) or [::] (for IPv6),
328 a new address range of the requested size is automatically
329 allocated from a system-wide pool of unused ranges. The allocated
330 range is checked against all current network interfaces and all
331 known network configuration files to avoid address range conflicts.
332 The default system-wide pool consists of 192.168.0.0/16,
333 172.16.0.0/12 and 10.0.0.0/8 for IPv4, and fc00::/7 for IPv6. This
334 functionality is useful to manage a large number of dynamically
335 created network interfaces with the same network configuration and
336 automatic address range assignment.
337
338 Gateway=
339 The gateway address, which must be in the format described in
340 inet_pton(3). This is a short-hand for a [Route] section only
341 containing a Gateway key. This option may be specified more than
342 once.
343
344 DNS=
345 A DNS server address, which must be in the format described in
346 inet_pton(3). This option may be specified more than once. This
347 setting is read by systemd-resolved.service(8).
348
349 Domains=
350 A list of domains which should be resolved using the DNS servers on
351 this link. Each item in the list should be a domain name,
352 optionally prefixed with a tilde ("~"). The domains with the prefix
353 are called "routing-only domains". The domains without the prefix
354 are called "search domains" and are first used as search suffixes
355 for extending single-label host names (host names containing no
356 dots) to become fully qualified domain names (FQDNs). If a
357 single-label host name is resolved on this interface, each of the
358 specified search domains are appended to it in turn, converting it
359 into a fully qualified domain name, until one of them may be
360 successfully resolved.
361
362 Both "search" and "routing-only" domains are used for routing of
363 DNS queries: look-ups for host names ending in those domains (hence
364 also single label names, if any "search domains" are listed), are
365 routed to the DNS servers configured for this interface. The domain
366 routing logic is particularly useful on multi-homed hosts with DNS
367 servers serving particular private DNS zones on each interface.
368
369 The "routing-only" domain "~." (the tilde indicating definition of
370 a routing domain, the dot referring to the DNS root domain which is
371 the implied suffix of all valid DNS names) has special effect. It
372 causes all DNS traffic which does not match another configured
373 domain routing entry to be routed to DNS servers specified for this
374 interface. This setting is useful to prefer a certain set of DNS
375 servers if a link on which they are connected is available.
376
377 This setting is read by systemd-resolved.service(8). "Search
378 domains" correspond to the domain and search entries in
379 resolv.conf(5). Domain name routing has no equivalent in the
380 traditional glibc API, which has no concept of domain name servers
381 limited to a specific link.
382
383 DNSDefaultRoute=
384 Takes a boolean argument. If true, this link's configured DNS
385 servers are used for resolving domain names that do not match any
386 link's configured Domains= setting. If false, this link's
387 configured DNS servers are never used for such domains, and are
388 exclusively used for resolving names that match at least one of the
389 domains configured on this link. If not specified defaults to an
390 automatic mode: queries not matching any link's configured domains
391 will be routed to this link if it has no routing-only domains
392 configured.
393
394 NTP=
395 An NTP server address. This option may be specified more than once.
396 This setting is read by systemd-timesyncd.service(8).
397
398 IPForward=
399 Configures IP packet forwarding for the system. If enabled,
400 incoming packets on any network interface will be forwarded to any
401 other interfaces according to the routing table. Takes a boolean,
402 or the values "ipv4" or "ipv6", which only enable IP packet
403 forwarding for the specified address family. This controls the
404 net.ipv4.ip_forward and net.ipv6.conf.all.forwarding sysctl options
405 of the network interface (see ip-sysctl.txt[6] for details about
406 sysctl options). Defaults to "no".
407
408 Note: this setting controls a global kernel option, and does so one
409 way only: if a network that has this setting enabled is set up the
410 global setting is turned on. However, it is never turned off again,
411 even after all networks with this setting enabled are shut down
412 again.
413
414 To allow IP packet forwarding only between specific network
415 interfaces use a firewall.
416
417 IPMasquerade=
418 Configures IP masquerading for the network interface. If enabled,
419 packets forwarded from the network interface will be appear as
420 coming from the local host. Takes a boolean argument. Implies
421 IPForward=ipv4. Defaults to "no".
422
423 IPv6PrivacyExtensions=
424 Configures use of stateless temporary addresses that change over
425 time (see RFC 4941[7], Privacy Extensions for Stateless Address
426 Autoconfiguration in IPv6). Takes a boolean or the special values
427 "prefer-public" and "kernel". When true, enables the privacy
428 extensions and prefers temporary addresses over public addresses.
429 When "prefer-public", enables the privacy extensions, but prefers
430 public addresses over temporary addresses. When false, the privacy
431 extensions remain disabled. When "kernel", the kernel's default
432 setting will be left in place. Defaults to "no".
433
434 IPv6AcceptRA=
435 Takes a boolean. Controls IPv6 Router Advertisement (RA) reception
436 support for the interface. If true, RAs are accepted; if false, RAs
437 are ignored, independently of the local forwarding state. If unset,
438 the kernel's default is used, and RAs are accepted only when local
439 forwarding is disabled for that interface. When RAs are accepted,
440 they may trigger the start of the DHCPv6 client if the relevant
441 flags are set in the RA data, or if no routers are found on the
442 link.
443
444 Further settings for the IPv6 RA support may be configured in the
445 "[IPv6AcceptRA]" section, see below.
446
447 Also see ip-sysctl.txt[6] in the kernel documentation regarding
448 "accept_ra", but note that systemd's setting of 1 (i.e. true)
449 corresponds to kernel's setting of 2.
450
451 Note that if this option is enabled a userspace implementation of
452 the IPv6 RA protocol is used, and the kernel's own implementation
453 remains disabled, since `networkd` needs to know all details
454 supplied in the advertisements, and these are not available from
455 the kernel if the kernel's own implemenation is used.
456
457 IPv6DuplicateAddressDetection=
458 Configures the amount of IPv6 Duplicate Address Detection (DAD)
459 probes to send. When unset, the kernel's default will be used.
460
461 IPv6HopLimit=
462 Configures IPv6 Hop Limit. For each router that forwards the
463 packet, the hop limit is decremented by 1. When the hop limit field
464 reaches zero, the packet is discarded. When unset, the kernel's
465 default will be used.
466
467 IPv4ProxyARP=
468 Takes a boolean. Configures proxy ARP for IPv4. Proxy ARP is the
469 technique in which one host, usually a router, answers ARP requests
470 intended for another machine. By "faking" its identity, the router
471 accepts responsibility for routing packets to the "real"
472 destination. (see RFC 1027[8]. When unset, the kernel's default
473 will be used.
474
475 IPv6ProxyNDP=
476 Takes a boolean. Configures proxy NDP for IPv6. Proxy NDP (Neighbor
477 Discovery Protocol) is a technique for IPv6 to allow routing of
478 addresses to a different destination when peers expect them to be
479 present on a certain physical link. In this case a router answers
480 Neighbour Advertisement messages intended for another machine by
481 offering its own MAC address as destination. Unlike proxy ARP for
482 IPv4, it is not enabled globally, but will only send Neighbour
483 Advertisement messages for addresses in the IPv6 neighbor proxy
484 table, which can also be shown by ip -6 neighbour show proxy.
485 systemd-networkd will control the per-interface `proxy_ndp` switch
486 for each configured interface depending on this option. When unset,
487 the kernel's default will be used.
488
489 IPv6ProxyNDPAddress=
490 An IPv6 address, for which Neighbour Advertisement messages will be
491 proxied. This option may be specified more than once.
492 systemd-networkd will add the IPv6ProxyNDPAddress= entries to the
493 kernel's IPv6 neighbor proxy table. This option implies
494 IPv6ProxyNDP=yes but has no effect if IPv6ProxyNDP has been set to
495 false. When unset, the kernel's default will be used.
496
497 IPv6PrefixDelegation=
498 Whether to enable or disable Router Advertisement sending on a
499 link. Allowed values are "static" which distributes prefixes as
500 defined in the "[IPv6PrefixDelegation]" and any "[IPv6Prefix]"
501 sections, "dhcpv6" which requests prefixes using a DHCPv6 client
502 configured for another link and any values configured in the
503 "[IPv6PrefixDelegation]" section while ignoring all static prefix
504 configuration sections, "yes" which uses both static configuration
505 and DHCPv6, and "false" which turns off IPv6 prefix delegation
506 altogether. Defaults to "false". See the "[IPv6PrefixDelegation]"
507 and the "[IPv6Prefix]" sections for more configuration options.
508
509 IPv6MTUBytes=
510 Configures IPv6 maximum transmission unit (MTU). An integer greater
511 than or equal to 1280 bytes. When unset, the kernel's default will
512 be used.
513
514 Bridge=
515 The name of the bridge to add the link to. See systemd.netdev(5).
516
517 Bond=
518 The name of the bond to add the link to. See systemd.netdev(5).
519
520 VRF=
521 The name of the VRF to add the link to. See systemd.netdev(5).
522
523 VLAN=
524 The name of a VLAN to create on the link. See systemd.netdev(5).
525 This option may be specified more than once.
526
527 IPVLAN=
528 The name of a IPVLAN to create on the link. See systemd.netdev(5).
529 This option may be specified more than once.
530
531 MACVLAN=
532 The name of a MACVLAN to create on the link. See systemd.netdev(5).
533 This option may be specified more than once.
534
535 VXLAN=
536 The name of a VXLAN to create on the link. See systemd.netdev(5).
537 This option may be specified more than once.
538
539 Tunnel=
540 The name of a Tunnel to create on the link. See systemd.netdev(5).
541 This option may be specified more than once.
542
543 ActiveSlave=
544 Takes a boolean. Specifies the new active slave. The "ActiveSlave="
545 option is only valid for following modes: "active-backup",
546 "balance-alb" and "balance-tlb". Defaults to false.
547
548 PrimarySlave=
549 Takes a boolean. Specifies which slave is the primary device. The
550 specified device will always be the active slave while it is
551 available. Only when the primary is off-line will alternate devices
552 be used. This is useful when one slave is preferred over another,
553 e.g. when one slave has higher throughput than another. The
554 "PrimarySlave=" option is only valid for following modes:
555 "active-backup", "balance-alb" and "balance-tlb". Defaults to
556 false.
557
558 ConfigureWithoutCarrier=
559 Takes a boolean. Allows networkd to configure a specific link even
560 if it has no carrier. Defaults to false.
561
563 An "[Address]" section accepts the following keys. Specify several
564 "[Address]" sections to configure several addresses.
565
566 Address=
567 As in the "[Network]" section. This key is mandatory.
568
569 Peer=
570 The peer address in a point-to-point connection. Accepts the same
571 format as the "Address" key.
572
573 Broadcast=
574 The broadcast address, which must be in the format described in
575 inet_pton(3). This key only applies to IPv4 addresses. If it is not
576 given, it is derived from the "Address" key.
577
578 Label=
579 An address label.
580
581 PreferredLifetime=
582 Allows the default "preferred lifetime" of the address to be
583 overridden. Only three settings are accepted: "forever" or
584 "infinity" which is the default and means that the address never
585 expires, and "0" which means that the address is considered
586 immediately "expired" and will not be used, unless explicitly
587 requested. A setting of PreferredLifetime=0 is useful for addresses
588 which are added to be used only by a specific application, which is
589 then configured to use them explicitly.
590
591 Scope=
592 The scope of the address, which can be "global", "link" or "host"
593 or an unsigned integer ranges 0 to 255. Defaults to "global".
594
595 HomeAddress=
596 Takes a boolean. Designates this address the "home address" as
597 defined in RFC 6275[9]. Supported only on IPv6. Defaults to false.
598
599 DuplicateAddressDetection=
600 Takes a boolean. Do not perform Duplicate Address Detection RFC
601 4862[10] when adding this address. Supported only on IPv6. Defaults
602 to false.
603
604 ManageTemporaryAddress=
605 Takes a boolean. If true the kernel manage temporary addresses
606 created from this one as template on behalf of Privacy Extensions
607 RFC 3041[11]. For this to become active, the use_tempaddr sysctl
608 setting has to be set to a value greater than zero. The given
609 address needs to have a prefix length of 64. This flag allows to
610 use privacy extensions in a manually configured network, just like
611 if stateless auto-configuration was active. Defaults to false.
612
613 PrefixRoute=
614 Takes a boolean. When adding or modifying an IPv6 address, the
615 userspace application needs a way to suppress adding a prefix
616 route. This is for example relevant together with
617 IFA_F_MANAGERTEMPADDR, where userspace creates autoconf generated
618 addresses, but depending on on-link, no route for the prefix should
619 be added. Defaults to false.
620
621 AutoJoin=
622 Takes a boolean. Joining multicast group on ethernet level via ip
623 maddr command would not work if we have an Ethernet switch that
624 does IGMP snooping since the switch would not replicate multicast
625 packets on ports that did not have IGMP reports for the multicast
626 addresses. Linux vxlan interfaces created via ip link add vxlan or
627 networkd's netdev kind vxlan have the group option that enables
628 then to do the required join. By extending ip address command with
629 option "autojoin" we can get similar functionality for openvswitch
630 (OVS) vxlan interfaces as well as other tunneling mechanisms that
631 need to receive multicast traffic. Defaults to "no".
632
634 A "[Neighbor]" section accepts the following keys. The neighbor section
635 adds a permanent, static entry to the neighbor table (IPv6) or ARP
636 table (IPv4) for the given hardware address on the links matched for
637 the network. Specify several "[Neighbor]" sections to configure several
638 static neighbors.
639
640 Address=
641 The IP address of the neighbor.
642
643 MACAddress=
644 The hardware address of the neighbor.
645
647 An "[IPv6AddressLabel]" section accepts the following keys. Specify
648 several "[IPv6AddressLabel]" sections to configure several address
649 labels. IPv6 address labels are used for address selection. See RFC
650 3484[12]. Precedence is managed by userspace, and only the label itself
651 is stored in the kernel
652
653 Label=
654 The label for the prefix (an unsigned integer) ranges 0 to
655 4294967294. 0xffffffff is reserved. This key is mandatory.
656
657 Prefix=
658 IPv6 prefix is an address with a prefix length, separated by a
659 slash "/" character. This key is mandatory.
660
662 An "[RoutingPolicyRule]" section accepts the following keys. Specify
663 several "[RoutingPolicyRule]" sections to configure several rules.
664
665 TypeOfService=
666 Specifies the type of service to match a number between 0 to 255.
667
668 From=
669 Specifies the source address prefix to match. Possibly followed by
670 a slash and the prefix length.
671
672 To=
673 Specifies the destination address prefix to match. Possibly
674 followed by a slash and the prefix length.
675
676 FirewallMark=
677 Specifies the iptables firewall mark value to match (a number
678 between 1 and 4294967295).
679
680 Table=
681 Specifies the routing table identifier to lookup if the rule
682 selector matches. The table identifier for a route (a number
683 between 1 and 4294967295).
684
685 Priority=
686 Specifies the priority of this rule. Priority= is an unsigned
687 integer. Higher number means lower priority, and rules get
688 processed in order of increasing number.
689
690 IncomingInterface=
691 Specifies incoming device to match. If the interface is loopback,
692 the rule only matches packets originating from this host.
693
694 OutgoingInterface=
695 Specifies the outgoing device to match. The outgoing interface is
696 only available for packets originating from local sockets that are
697 bound to a device.
698
699 SourcePort=
700 Specifies the source IP port or IP port range match in forwarding
701 information base (FIB) rules. A port range is specified by the
702 lower and upper port separated by a dash. Defaults to unset.
703
704 DestinationPort=
705 Specifies the destination IP port or IP port range match in
706 forwarding information base (FIB) rules. A port range is specified
707 by the lower and upper port separated by a dash. Defaults to unset.
708
709 IPProtocol=
710 Specifies the IP protocol to match in forwarding information base
711 (FIB) rules. Takes IP protocol name such as "tcp", "udp" or "sctp",
712 or IP protocol number such as "6" for "tcp" or "17" for "udp".
713 Defaults to unset.
714
715 InvertRule=
716 A boolean. Specifies wheather the rule to be inverted. Defaults to
717 false.
718
720 The "[Route]" section accepts the following keys. Specify several
721 "[Route]" sections to configure several routes.
722
723 Gateway=
724 As in the "[Network]" section.
725
726 GatewayOnlink=
727 Takes a boolean. If set to true, the kernel does not have to check
728 if the gateway is reachable directly by the current machine (i.e.,
729 the kernel does not need to check if the gateway is attached to the
730 local network), so that we can insert the route in the kernel table
731 without it being complained about. Defaults to "no".
732
733 Destination=
734 The destination prefix of the route. Possibly followed by a slash
735 and the prefix length. If omitted, a full-length host route is
736 assumed.
737
738 Source=
739 The source prefix of the route. Possibly followed by a slash and
740 the prefix length. If omitted, a full-length host route is assumed.
741
742 Metric=
743 The metric of the route (an unsigned integer).
744
745 IPv6Preference=
746 Specifies the route preference as defined in RFC4191[13] for Router
747 Discovery messages. Which can be one of "low" the route has a
748 lowest priority, "medium" the route has a default priority or
749 "high" the route has a highest priority.
750
751 Scope=
752 The scope of the route, which can be "global", "link" or "host".
753 Defaults to "global".
754
755 PreferredSource=
756 The preferred source address of the route. The address must be in
757 the format described in inet_pton(3).
758
759 Table=num
760 The table identifier for the route (a number between 1 and
761 4294967295, or 0 to unset). The table can be retrieved using ip
762 route show table num.
763
764 Protocol=
765 The protocol identifier for the route. Takes a number between 0 and
766 255 or the special values "kernel", "boot" and "static". Defaults
767 to "static".
768
769 Type=
770 Specifies the type for the route. If "unicast", a regular route is
771 defined, i.e. a route indicating the path to take to a destination
772 network address. If "blackhole", packets to the defined route are
773 discarded silently. If "unreachable", packets to the defined route
774 are discarded and the ICMP message "Host Unreachable" is generated.
775 If "prohibit", packets to the defined route are discarded and the
776 ICMP message "Communication Administratively Prohibited" is
777 generated. If "throw", route lookup in the current routing table
778 will fail and the route selection process will return to Routing
779 Policy Database (RPDB). Defaults to "unicast".
780
781 InitialCongestionWindow=
782 The TCP initial congestion window is used during the start of a TCP
783 connection. During the start of a TCP session, when a client
784 requests a resource, the server's initial congestion window
785 determines how many data bytes will be sent during the initial
786 burst of data. Takes a size in bytes between 1 and 4294967295 (2^32
787 - 1). The usual suffixes K, M, G are supported and are understood
788 to the base of 1024. When unset, the kernel's default will be used.
789
790 InitialAdvertisedReceiveWindow=
791 The TCP initial advertised receive window is the amount of receive
792 data (in bytes) that can initally be buffered at one time on a
793 connection. The sending host can send only that amount of data
794 before waiting for an acknowledgment and window update from the
795 receiving host. Takes a size in bytes between 1 and 4294967295
796 (2^32 - 1). The usual suffixes K, M, G are supported and are
797 understood to the base of 1024. When unset, the kernel's default
798 will be used.
799
800 QuickAck=
801 Takes a boolean. When true enables TCP quick ack mode for the
802 route. When unset, the kernel's default will be used.
803
804 MTUBytes=
805 The maximum transmission unit in bytes to set for the route. The
806 usual suffixes K, M, G, are supported and are understood to the
807 base of 1024.
808
809 Note that if IPv6 is enabled on the interface, and the MTU is
810 chosen below 1280 (the minimum MTU for IPv6) it will automatically
811 be increased to this value.
812
814 The "[DHCP]" section configures the DHCPv4 and DHCP6 client, if it is
815 enabled with the DHCP= setting described above:
816
817 UseDNS=
818 When true (the default), the DNS servers received from the DHCP
819 server will be used and take precedence over any statically
820 configured ones.
821
822 This corresponds to the nameserver option in resolv.conf(5).
823
824 UseNTP=
825 When true (the default), the NTP servers received from the DHCP
826 server will be used by systemd-timesyncd and take precedence over
827 any statically configured ones.
828
829 UseMTU=
830 When true, the interface maximum transmission unit from the DHCP
831 server will be used on the current link. If MTUBytes= is set, then
832 this setting is ignored. Defaults to false.
833
834 Anonymize=
835 Takes a boolean. When true, the options sent to the DHCP server
836 will follow the RFC 7844[14] (Anonymity Profiles for DHCP Clients)
837 to minimize disclosure of identifying information. Defaults to
838 false.
839
840 This option should only be set to true when MACAddressPolicy= is
841 set to "random" (see systemd.link(5)).
842
843 Note that this configuration will overwrite others. In concrete,
844 the following variables will be ignored: SendHostname=,
845 ClientIdentifier=, UseRoutes=, SendHostname=, UseMTU=,
846 VendorClassIdentifier=, UseTimezone=.
847
848 With this option enabled DHCP requests will mimic those generated
849 by Microsoft Windows, in order to reduce the ability to fingerprint
850 and recognize installations. This means DHCP request sizes will
851 grow and lease data will be more comprehensive than normally,
852 though most of the requested data is not actually used.
853
854 SendHostname=
855 When true (the default), the machine's hostname will be sent to the
856 DHCP server. Note that the machine's hostname must consist only of
857 7-bit ASCII lower-case characters and no spaces or dots, and be
858 formatted as a valid DNS domain name. Otherwise, the hostname is
859 not sent even if this is set to true.
860
861 UseHostname=
862 When true (the default), the hostname received from the DHCP server
863 will be set as the transient hostname of the system.
864
865 Hostname=
866 Use this value for the hostname which is sent to the DHCP server,
867 instead of machine's hostname. Note that the specified hostname
868 must consist only of 7-bit ASCII lower-case characters and no
869 spaces or dots, and be formatted as a valid DNS domain name.
870
871 UseDomains=
872 Takes a boolean, or the special value "route". When true, the
873 domain name received from the DHCP server will be used as DNS
874 search domain over this link, similar to the effect of the Domains=
875 setting. If set to "route", the domain name received from the DHCP
876 server will be used for routing DNS queries only, but not for
877 searching, similar to the effect of the Domains= setting when the
878 argument is prefixed with "~". Defaults to false.
879
880 It is recommended to enable this option only on trusted networks,
881 as setting this affects resolution of all host names, in particular
882 of single-label names. It is generally safer to use the supplied
883 domain only as routing domain, rather than as search domain, in
884 order to not have it affect local resolution of single-label names.
885
886 When set to true, this setting corresponds to the domain option in
887 resolv.conf(5).
888
889 UseRoutes=
890 When true (the default), the static routes will be requested from
891 the DHCP server and added to the routing table with a metric of
892 1024, and a scope of "global", "link" or "host", depending on the
893 route's destination and gateway. If the destination is on the local
894 host, e.g., 127.x.x.x, or the same as the link's own address, the
895 scope will be set to "host". Otherwise if the gateway is null (a
896 direct route), a "link" scope will be used. For anything else,
897 scope defaults to "global".
898
899 UseTimezone=
900 When true, the timezone received from the DHCP server will be set
901 as timezone of the local system. Defaults to "no".
902
903 CriticalConnection=
904 When true, the connection will never be torn down even if the DHCP
905 lease expires. This is contrary to the DHCP specification, but may
906 be the best choice if, say, the root filesystem relies on this
907 connection. Defaults to false.
908
909 ClientIdentifier=
910 The DHCPv4 client identifier to use. Takes one of "mac", "duid" or
911 "duid-only". If set to "mac", the MAC address of the link is used.
912 If set to "duid", an RFC4361-compliant Client ID, which is the
913 combination of IAID and DUID (see below), is used. If set to
914 "duid-only", only DUID is used, this may not be RFC compliant, but
915 some setups may require to use this. Defaults to "duid".
916
917 VendorClassIdentifier=
918 The vendor class identifier used to identify vendor type and
919 configuration.
920
921 UserClass=
922 A DHCPv4 client can use UserClass option to identify the type or
923 category of user or applications it represents. The information
924 contained in this option is a string that represents the user class
925 of which the client is a member. Each class sets an identifying
926 string of information to be used by the DHCP service to classify
927 clients. Takes a whitespace-separated list of strings.
928
929 DUIDType=
930 Override the global DUIDType setting for this network. See
931 networkd.conf(5) for a description of possible values.
932
933 DUIDRawData=
934 Override the global DUIDRawData setting for this network. See
935 networkd.conf(5) for a description of possible values.
936
937 IAID=
938 The DHCP Identity Association Identifier (IAID) for the interface,
939 a 32-bit unsigned integer.
940
941 RequestBroadcast=
942 Request the server to use broadcast messages before the IP address
943 has been configured. This is necessary for devices that cannot
944 receive RAW packets, or that cannot receive packets at all before
945 an IP address has been configured. On the other hand, this must not
946 be enabled on networks where broadcasts are filtered out.
947
948 RouteMetric=
949 Set the routing metric for routes specified by the DHCP server.
950
951 RouteTable=num
952 The table identifier for DHCP routes (a number between 1 and
953 4294967295, or 0 to unset). The table can be retrieved using ip
954 route show table num.
955
956 When used in combination with VRF= the VRF's routing table is used
957 unless this parameter is specified.
958
959 ListenPort=
960 Allow setting custom port for the DHCP client to listen on.
961
962 RapidCommit=
963 Takes a boolean. The DHCPv6 client can obtain configuration
964 parameters from a DHCPv6 server through a rapid two-message
965 exchange (solicit and reply). When the rapid commit option is
966 enabled by both the DHCPv6 client and the DHCPv6 server, the
967 two-message exchange is used, rather than the default four-method
968 exchange (solicit, advertise, request, and reply). The two-message
969 exchange provides faster client configuration and is beneficial in
970 environments in which networks are under a heavy load. See RFC
971 3315[15] for details. Defaults to true.
972
973 ForceDHCPv6PDOtherInformation=
974 Takes a boolean that enforces DHCPv6 stateful mode when the 'Other
975 information' bit is set in Router Advertisement messages. By
976 default setting only the 'O' bit in Router Advertisements makes
977 DHCPv6 request network information in a stateless manner using a
978 two-message Information Request and Information Reply message
979 exchange. RFC 7084[16], requirement WPD-4, updates this behavior
980 for a Customer Edge router so that stateful DHCPv6 Prefix
981 Delegation is also requested when only the 'O' bit is set in Router
982 Advertisements. This option enables such a CE behavior as it is
983 impossible to automatically distinguish the intention of the 'O'
984 bit otherwise. By default this option is set to 'false', enable it
985 if no prefixes are delegated when the device should be acting as a
986 CE router.
987
989 The "[IPv6AcceptRA]" section configures the IPv6 Router Advertisement
990 (RA) client, if it is enabled with the IPv6AcceptRA= setting described
991 above:
992
993 UseDNS=
994 When true (the default), the DNS servers received in the Router
995 Advertisement will be used and take precedence over any statically
996 configured ones.
997
998 This corresponds to the nameserver option in resolv.conf(5).
999
1000 UseDomains=
1001 Takes a boolean, or the special value "route". When true, the
1002 domain name received via IPv6 Router Advertisement (RA) will be
1003 used as DNS search domain over this link, similar to the effect of
1004 the Domains= setting. If set to "route", the domain name received
1005 via IPv6 RA will be used for routing DNS queries only, but not for
1006 searching, similar to the effect of the Domains= setting when the
1007 argument is prefixed with "~". Defaults to false.
1008
1009 It is recommended to enable this option only on trusted networks,
1010 as setting this affects resolution of all host names, in particular
1011 of single-label names. It is generally safer to use the supplied
1012 domain only as routing domain, rather than as search domain, in
1013 order to not have it affect local resolution of single-label names.
1014
1015 When set to true, this setting corresponds to the domain option in
1016 resolv.conf(5).
1017
1018 RouteTable=num
1019 The table identifier for the routes received in the Router
1020 Advertisement (a number between 1 and 4294967295, or 0 to unset).
1021 The table can be retrieved using ip route show table num.
1022
1024 The "[DHCPServer]" section contains settings for the DHCP server, if
1025 enabled via the DHCPServer= option described above:
1026
1027 PoolOffset=, PoolSize=
1028 Configures the pool of addresses to hand out. The pool is a
1029 contiguous sequence of IP addresses in the subnet configured for
1030 the server address, which does not include the subnet nor the
1031 broadcast address. PoolOffset= takes the offset of the pool from
1032 the start of subnet, or zero to use the default value. PoolSize=
1033 takes the number of IP addresses in the pool or zero to use the
1034 default value. By default, the pool starts at the first address
1035 after the subnet address and takes up the rest of the subnet,
1036 excluding the broadcast address. If the pool includes the server
1037 address (the default), this is reserved and not handed out to
1038 clients.
1039
1040 DefaultLeaseTimeSec=, MaxLeaseTimeSec=
1041 Control the default and maximum DHCP lease time to pass to clients.
1042 These settings take time values in seconds or another common time
1043 unit, depending on the suffix. The default lease time is used for
1044 clients that did not ask for a specific lease time. If a client
1045 asks for a lease time longer than the maximum lease time, it is
1046 automatically shortened to the specified time. The default lease
1047 time defaults to 1h, the maximum lease time to 12h. Shorter lease
1048 times are beneficial if the configuration data in DHCP leases
1049 changes frequently and clients shall learn the new settings with
1050 shorter latencies. Longer lease times reduce the generated DHCP
1051 network traffic.
1052
1053 EmitDNS=, DNS=
1054 Takes a boolean. Configures whether the DHCP leases handed out to
1055 clients shall contain DNS server information. Defaults to "yes".
1056 The DNS servers to pass to clients may be configured with the DNS=
1057 option, which takes a list of IPv4 addresses. If the EmitDNS=
1058 option is enabled but no servers configured, the servers are
1059 automatically propagated from an "uplink" interface that has
1060 appropriate servers set. The "uplink" interface is determined by
1061 the default route of the system with the highest priority. Note
1062 that this information is acquired at the time the lease is handed
1063 out, and does not take uplink interfaces into account that acquire
1064 DNS or NTP server information at a later point. DNS server
1065 propagation does not take /etc/resolv.conf into account. Also, note
1066 that the leases are not refreshed if the uplink network
1067 configuration changes. To ensure clients regularly acquire the most
1068 current uplink DNS server information, it is thus advisable to
1069 shorten the DHCP lease time via MaxLeaseTimeSec= described above.
1070
1071 EmitNTP=, NTP=
1072 Similar to the EmitDNS= and DNS= settings described above, these
1073 settings configure whether and what NTP server information shall be
1074 emitted as part of the DHCP lease. The same syntax, propagation
1075 semantics and defaults apply as for EmitDNS= and DNS=.
1076
1077 EmitRouter=
1078 Similar to the EmitDNS= setting described above, this setting
1079 configures whether the DHCP lease should contain the router option.
1080 The same syntax, propagation semantics and defaults apply as for
1081 EmitDNS=.
1082
1083 EmitTimezone=, Timezone=
1084 Takes a boolean. Configures whether the DHCP leases handed out to
1085 clients shall contain timezone information. Defaults to "yes". The
1086 Timezone= setting takes a timezone string (such as "Europe/Berlin"
1087 or "UTC") to pass to clients. If no explicit timezone is set, the
1088 system timezone of the local host is propagated, as determined by
1089 the /etc/localtime symlink.
1090
1092 The "[IPv6PrefixDelegation]" section contains settings for sending IPv6
1093 Router Advertisements and whether to act as a router, if enabled via
1094 the IPv6PrefixDelegation= option described above. IPv6 network prefixes
1095 are defined with one or more "[IPv6Prefix]" sections.
1096
1097 Managed=, OtherInformation=
1098 Takes a boolean. Controls whether a DHCPv6 server is used to
1099 acquire IPv6 addresses on the network link when Managed= is set to
1100 "true" or if only additional network information can be obtained
1101 via DHCPv6 for the network link when OtherInformation= is set to
1102 "true". Both settings default to "false", which means that a DHCPv6
1103 server is not being used.
1104
1105 RouterLifetimeSec=
1106 Takes a timespan. Configures the IPv6 router lifetime in seconds.
1107 If set, this host also announces itself in Router Advertisements as
1108 an IPv6 router for the network link. When unset, the host is not
1109 acting as a router.
1110
1111 RouterPreference=
1112 Configures IPv6 router preference if RouterLifetimeSec= is
1113 non-zero. Valid values are "high", "medium" and "low", with
1114 "normal" and "default" added as synonyms for "medium" just to make
1115 configuration easier. See RFC 4191[13] for details. Defaults to
1116 "medium".
1117
1118 EmitDNS=, DNS=
1119 DNS= specifies a list of recursive DNS server IPv6 addresses that
1120 distributed via Router Advertisement messages when EmitDNS= is
1121 true. If DNS= is empty, DNS servers are read from the "[Network]"
1122 section. If the "[Network]" section does not contain any DNS
1123 servers either, DNS servers from the uplink with the highest
1124 priority default route are used. When EmitDNS= is false, no DNS
1125 server information is sent in Router Advertisement messages.
1126 EmitDNS= defaults to true.
1127
1128 EmitDomains=, Domains=
1129 A list of DNS search domains distributed via Router Advertisement
1130 messages when EmitDomains= is true. If Domains= is empty, DNS
1131 search domains are read from the "[Network]" section. If the
1132 "[Network]" section does not contain any DNS search domains either,
1133 DNS search domains from the uplink with the highest priority
1134 default route are used. When EmitDomains= is false, no DNS search
1135 domain information is sent in Router Advertisement messages.
1136 EmitDomains= defaults to true.
1137
1138 DNSLifetimeSec=
1139 Lifetime in seconds for the DNS server addresses listed in DNS= and
1140 search domains listed in Domains=.
1141
1143 One or more "[IPv6Prefix]" sections contain the IPv6 prefixes that are
1144 announced via Router Advertisements. See RFC 4861[17] for further
1145 details.
1146
1147 AddressAutoconfiguration=, OnLink=
1148 Takes a boolean to specify whether IPv6 addresses can be
1149 autoconfigured with this prefix and whether the prefix can be used
1150 for onlink determination. Both settings default to "true" in order
1151 to ease configuration.
1152
1153 Prefix=
1154 The IPv6 prefix that is to be distributed to hosts. Similarly to
1155 configuring static IPv6 addresses, the setting is configured as an
1156 IPv6 prefix and its prefix length, separated by a "/" character.
1157 Use multiple "[IPv6Prefix]" sections to configure multiple IPv6
1158 prefixes since prefix lifetimes, address autoconfiguration and
1159 onlink status may differ from one prefix to another.
1160
1161 PreferredLifetimeSec=, ValidLifetimeSec=
1162 Preferred and valid lifetimes for the prefix measured in seconds.
1163 PreferredLifetimeSec= defaults to 604800 seconds (one week) and
1164 ValidLifetimeSec= defaults to 2592000 seconds (30 days).
1165
1167 The "[Bridge]" section accepts the following keys.
1168
1169 UnicastFlood=
1170 Takes a boolean. Controls whether the bridge should flood traffic
1171 for which an FDB entry is missing and the destination is unknown
1172 through this port. When unset, the kernel's default will be used.
1173
1174 MulticastToUnicast=
1175 Takes a boolean. Multicast to unicast works on top of the multicast
1176 snooping feature of the bridge. Which means unicast copies are only
1177 delivered to hosts which are interested in it. When unset, the
1178 kernel's default will be used.
1179
1180 HairPin=
1181 Takes a boolean. Configures whether traffic may be sent back out of
1182 the port on which it was received. When this flag is false, and the
1183 bridge will not forward traffic back out of the receiving port.
1184 When unset, the kernel's default will be used.
1185
1186 UseBPDU=
1187 Takes a boolean. Configures whether STP Bridge Protocol Data Units
1188 will be processed by the bridge port. When unset, the kernel's
1189 default will be used.
1190
1191 FastLeave=
1192 Takes a boolean. This flag allows the bridge to immediately stop
1193 multicast traffic on a port that receives an IGMP Leave message. It
1194 is only used with IGMP snooping if enabled on the bridge. When
1195 unset, the kernel's default will be used.
1196
1197 AllowPortToBeRoot=
1198 Takes a boolean. Configures whether a given port is allowed to
1199 become a root port. Only used when STP is enabled on the bridge.
1200 When unset, the kernel's default will be used.
1201
1202 Cost=
1203 Sets the "cost" of sending packets of this interface. Each port in
1204 a bridge may have a different speed and the cost is used to decide
1205 which link to use. Faster interfaces should have lower costs. It is
1206 an integer value between 1 and 65535.
1207
1208 Priority=
1209 Sets the "priority" of sending packets on this interface. Each port
1210 in a bridge may have a different priority which is used to decide
1211 which link to use. Lower value means higher priority. It is an
1212 integer value between 0 to 63. Networkd does not set any default,
1213 meaning the kernel default value of 32 is used.
1214
1216 The "[BridgeFDB]" section manages the forwarding database table of a
1217 port and accepts the following keys. Specify several "[BridgeFDB]"
1218 sections to configure several static MAC table entries.
1219
1220 MACAddress=
1221 As in the "[Network]" section. This key is mandatory.
1222
1223 VLANId=
1224 The VLAN ID for the new static MAC table entry. If omitted, no VLAN
1225 ID information is appended to the new static MAC table entry.
1226
1228 The "[CAN]" section manages the Controller Area Network (CAN bus) and
1229 accepts the following keys.
1230
1231 BitRate=
1232 The bitrate of CAN device in bits per second. The usual SI prefixes
1233 (K, M) with the base of 1000 can be used here.
1234
1235 SamplePoint=
1236 Optional sample point in percent with one decimal (e.g. "75%",
1237 "87.5%") or permille (e.g. "875‰").
1238
1239 RestartSec=
1240 Automatic restart delay time. If set to a non-zero value, a restart
1241 of the CAN controller will be triggered automatically in case of a
1242 bus-off condition after the specified delay time. Subsecond delays
1243 can be specified using decimals (e.g. "0.1s") or a "ms" or "us"
1244 postfix. Using "infinity" or "0" will turn the automatic restart
1245 off. By default automatic restart is disabled.
1246
1248 The "[BridgeVLAN]" section manages the VLAN ID configuration of a
1249 bridge port and accepts the following keys. Specify several
1250 "[BridgeVLAN]" sections to configure several VLAN entries. The
1251 VLANFiltering= option has to be enabled, see "[Bridge]" section in
1252 systemd.netdev(5).
1253
1254 VLAN=
1255 The VLAN ID allowed on the port. This can be either a single ID or
1256 a range M-N. VLAN IDs are valid from 1 to 4094.
1257
1258 EgressUntagged=
1259 The VLAN ID specified here will be used to untag frames on egress.
1260 Configuring EgressUntagged= implicates the use of VLAN= above and
1261 will enable the VLAN ID for ingress as well. This can be either a
1262 single ID or a range M-N.
1263
1264 PVID=
1265 The Port VLAN ID specified here is assigned to all untagged frames
1266 at ingress. PVID= can be used only once. Configuring PVID=
1267 implicates the use of VLAN= above and will enable the VLAN ID for
1268 ingress as well.
1269
1271 Example 1. Static network configuration
1272
1273 # /etc/systemd/network/50-static.network
1274 [Match]
1275 Name=enp2s0
1276
1277 [Network]
1278 Address=192.168.0.15/24
1279 Gateway=192.168.0.1
1280
1281 This brings interface "enp2s0" up with a static address. The specified
1282 gateway will be used for a default route.
1283
1284 Example 2. DHCP on ethernet links
1285
1286 # /etc/systemd/network/80-dhcp.network
1287 [Match]
1288 Name=en*
1289
1290 [Network]
1291 DHCP=yes
1292
1293 This will enable DHCPv4 and DHCPv6 on all interfaces with names
1294 starting with "en" (i.e. ethernet interfaces).
1295
1296 Example 3. A bridge with two enslaved links
1297
1298 # /etc/systemd/network/25-bridge-static.network
1299 [Match]
1300 Name=bridge0
1301
1302 [Network]
1303 Address=192.168.0.15/24
1304 Gateway=192.168.0.1
1305 DNS=192.168.0.1
1306
1307 # /etc/systemd/network/25-bridge-slave-interface-1.network
1308 [Match]
1309 Name=enp2s0
1310
1311 [Network]
1312 Bridge=bridge0
1313
1314 # /etc/systemd/network/25-bridge-slave-interface-2.network
1315 [Match]
1316 Name=wlp3s0
1317
1318 [Network]
1319 Bridge=bridge0
1320
1321 This creates a bridge and attaches devices "enp2s0" and "wlp3s0" to it.
1322 The bridge will have the specified static address and network assigned,
1323 and a default route via the specified gateway will be added. The
1324 specified DNS server will be added to the global list of DNS resolvers.
1325
1326 Example 4.
1327
1328 # /etc/systemd/network/20-bridge-slave-interface-vlan.network
1329 [Match]
1330 Name=enp2s0
1331
1332 [Network]
1333 Bridge=bridge0
1334
1335 [BridgeVLAN]
1336 VLAN=1-32
1337 PVID=42
1338 EgressUntagged=42
1339
1340 [BridgeVLAN]
1341 VLAN=100-200
1342
1343 [BridgeVLAN]
1344 EgressUntagged=300-400
1345
1346 This overrides the configuration specified in the previous example for
1347 the interface "enp2s0", and enables VLAN on that bridge port. VLAN IDs
1348 1-32, 42, 100-400 will be allowed. Packets tagged with VLAN IDs 42,
1349 300-400 will be untagged when they leave on this interface. Untagged
1350 packets which arrive on this interface will be assigned VLAN ID 42.
1351
1352 Example 5. Various tunnels
1353
1354 /etc/systemd/network/25-tunnels.network
1355 [Match]
1356 Name=ens1
1357
1358 [Network]
1359 Tunnel=ipip-tun
1360 Tunnel=sit-tun
1361 Tunnel=gre-tun
1362 Tunnel=vti-tun
1363
1364
1365 /etc/systemd/network/25-tunnel-ipip.netdev
1366 [NetDev]
1367 Name=ipip-tun
1368 Kind=ipip
1369
1370
1371 /etc/systemd/network/25-tunnel-sit.netdev
1372 [NetDev]
1373 Name=sit-tun
1374 Kind=sit
1375
1376
1377 /etc/systemd/network/25-tunnel-gre.netdev
1378 [NetDev]
1379 Name=gre-tun
1380 Kind=gre
1381
1382
1383 /etc/systemd/network/25-tunnel-vti.netdev
1384 [NetDev]
1385 Name=vti-tun
1386 Kind=vti
1387
1388
1389 This will bring interface "ens1" up and create an IPIP tunnel, a SIT
1390 tunnel, a GRE tunnel, and a VTI tunnel using it.
1391
1392 Example 6. A bond device
1393
1394 # /etc/systemd/network/30-bond1.network
1395 [Match]
1396 Name=bond1
1397
1398 [Network]
1399 DHCP=ipv6
1400
1401 # /etc/systemd/network/30-bond1.netdev
1402 [NetDev]
1403 Name=bond1
1404 Kind=bond
1405
1406 # /etc/systemd/network/30-bond1-dev1.network
1407 [Match]
1408 MACAddress=52:54:00:e9:64:41
1409
1410 [Network]
1411 Bond=bond1
1412
1413 # /etc/systemd/network/30-bond1-dev2.network
1414 [Match]
1415 MACAddress=52:54:00:e9:64:42
1416
1417 [Network]
1418 Bond=bond1
1419
1420 This will create a bond device "bond1" and enslave the two devices with
1421 MAC addresses 52:54:00:e9:64:41 and 52:54:00:e9:64:42 to it. IPv6 DHCP
1422 will be used to acquire an address.
1423
1424 Example 7. Virtual Routing and Forwarding (VRF)
1425
1426 Add the "bond1" interface to the VRF master interface "vrf1". This will
1427 redirect routes generated on this interface to be within the routing
1428 table defined during VRF creation. For kernels before 4.8 traffic won't
1429 be redirected towards the VRFs routing table unless specific ip-rules
1430 are added.
1431
1432 # /etc/systemd/network/25-vrf.network
1433 [Match]
1434 Name=bond1
1435
1436 [Network]
1437 VRF=vrf1
1438
1439 Example 8. MacVTap
1440
1441 This brings up a network interface "macvtap-test" and attaches it to
1442 "enp0s25".
1443
1444 # /usr/lib/systemd/network/25-macvtap.network
1445 [Match]
1446 Name=enp0s25
1447
1448 [Network]
1449 MACVTAP=macvtap-test
1450
1452 systemd(1), systemd-networkd.service(8), systemd.link(5),
1453 systemd.netdev(5), systemd-resolved.service(8)
1454
1456 1. Link-Local Multicast Name Resolution
1457 https://tools.ietf.org/html/rfc4795
1458
1459 2. Multicast DNS
1460 https://tools.ietf.org/html/rfc6762
1461
1462 3. DNS-over-TLS
1463 https://tools.ietf.org/html/rfc7858
1464
1465 4. DNSSEC
1466 https://tools.ietf.org/html/rfc4033
1467
1468 5. IEEE 802.1AB-2016
1469 https://standards.ieee.org/findstds/standard/802.1AB-2016.html
1470
1471 6. ip-sysctl.txt
1472 https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
1473
1474 7. RFC 4941
1475 https://tools.ietf.org/html/rfc4941
1476
1477 8. RFC 1027
1478 https://tools.ietf.org/html/rfc1027
1479
1480 9. RFC 6275
1481 https://tools.ietf.org/html/rfc6275
1482
1483 10. RFC 4862
1484 https://tools.ietf.org/html/rfc4862
1485
1486 11. RFC 3041
1487 https://tools.ietf.org/html/rfc3041
1488
1489 12. RFC 3484
1490 https://tools.ietf.org/html/rfc3484
1491
1492 13. RFC4191
1493 https://tools.ietf.org/html/rfc4191
1494
1495 14. RFC 7844
1496 https://tools.ietf.org/html/rfc7844
1497
1498 15. RFC 3315
1499 https://tools.ietf.org/html/rfc3315#section-17.2.1
1500
1501 16. RFC 7084
1502 https://tools.ietf.org/html/rfc7084
1503
1504 17. RFC 4861
1505 https://tools.ietf.org/html/rfc4861
1506
1507
1508
1509systemd 241 SYSTEMD.NETWORK(5)