summaryrefslogtreecommitdiff
path: root/doc/netplan.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/netplan.md')
l---------[-rw-r--r--]doc/netplan.md1530
1 files changed, 1 insertions, 1529 deletions
diff --git a/doc/netplan.md b/doc/netplan.md
index e9b4e92..6b0b685 100644..120000
--- a/doc/netplan.md
+++ b/doc/netplan.md
@@ -1,1529 +1 @@
-## Introduction
-Distribution installers, cloud instantiation, image builds for particular
-devices, or any other way to deploy an operating system put its desired
-network configuration into YAML configuration file(s). During
-early boot, the netplan "network renderer" runs which reads
-``/{lib,etc,run}/netplan/*.yaml`` and writes configuration to ``/run`` to hand
-off control of devices to the specified networking daemon.
-
- - Configured devices get handled by systemd-networkd by default,
- unless explicitly marked as managed by a specific renderer (NetworkManager)
- - Devices not covered by the network config do not get touched at all.
- - Usable in initramfs (few dependencies and fast)
- - No persistent generated config, only original YAML config
- - Parser supports multiple config files to allow applications like libvirt or lxd
- to package up expected network config (``virbr0``, ``lxdbr0``), or to change the
- global default policy to use NetworkManager for everything.
- - Retains the flexibility to change backends/policy later or adjust to
- removing NetworkManager, as generated configuration is ephemeral.
-
-## General structure
-netplan's configuration files use the
-[YAML](<http://yaml.org/spec/1.1/current.html>) format. All
-``/{lib,etc,run}/netplan/*.yaml`` are considered. Lexicographically later files
-(regardless of in which directory they are) amend (new mapping keys) or
-override (same mapping keys) previous ones. A file in ``/run/netplan``
-completely shadows a file with same name in ``/etc/netplan``, and a file in
-either of those directories shadows a file with the same name in
-``/lib/netplan``.
-
-The top-level node in a netplan configuration file is a ``network:`` mapping
-that contains ``version: 2`` (the YAML currently being used by curtin, MaaS,
-etc. is version 1), and then device definitions grouped by their type, such as
-``ethernets:``, ``modems:``, ``wifis:``, or ``bridges:``. These are the types that our
-renderer can understand and are supported by our backends.
-
-Each type block contains device definitions as a map where the keys (called
-"configuration IDs") are defined as below.
-
-## Device configuration IDs
-The key names below the per-device-type definition maps (like ``ethernets:``)
-are called "ID"s. They must be unique throughout the entire set of
-configuration files. Their primary purpose is to serve as anchor names for
-composite devices, for example to enumerate the members of a bridge that is
-currently being defined.
-
-(Since 0.97) If an interface is defined with an ID in a configuration file; it will
-be brought up by the applicable renderer. To not have netplan touch an interface
-at all, it should be completely omitted from the netplan configuration files.
-
-There are two physically/structurally different classes of device definitions,
-and the ID field has a different interpretation for each:
-
-Physical devices
-
-: (Examples: ethernet, modem, wifi) These can dynamically come and go between
- reboots and even during runtime (hotplugging). In the generic case, they
- can be selected by ``match:`` rules on desired properties, such as name/name
- pattern, MAC address, driver, or device paths. In general these will match
- any number of devices (unless they refer to properties which are unique
- such as the full path or MAC address), so without further knowledge about
- the hardware these will always be considered as a group.
-
- It is valid to specify no match rules at all, in which case the ID field is
- simply the interface name to be matched. This is mostly useful if you want
- to keep simple cases simple, and it's how network device configuration has
- been done for a long time.
-
- If there are ``match``: rules, then the ID field is a purely opaque name
- which is only being used for references from definitions of compound
- devices in the config.
-
-
-Virtual devices
-
-: (Examples: veth, bridge, bond) These are fully under the control of the
- config file(s) and the network stack. I. e. these devices are being created
- instead of matched. Thus ``match:`` and ``set-name:`` are not applicable for
- these, and the ID field is the name of the created virtual device.
-
-## Common properties for physical device types
-
-``match`` (mapping)
-
-: This selects a subset of available physical devices by various hardware
- properties. The following configuration will then apply to all matching
- devices, as soon as they appear. *All* specified properties must match.
-
- ``name`` (scalar)
- : Current interface name. Globs are supported, and the primary use case
- for matching on names, as selecting one fixed name can be more easily
- achieved with having no ``match:`` at all and just using the ID (see
- above).
- (``NetworkManager``: as of v1.14.0)
-
- ``macaddress`` (scalar)
- : Device's MAC address in the form "XX:XX:XX:XX:XX:XX". Globs are not
- allowed.
-
- ``driver`` (scalar or sequence of scalars) – sequence since **0.104**
- : Kernel driver name, corresponding to the ``DRIVER`` udev property.
- A sequence of globs is supported, any of which must match.
- Matching on driver is *only* supported with networkd.
-
- Examples:
-
- - all cards on second PCI bus:
-
- match:
- name: enp2*
-
- - fixed MAC address:
-
- match:
- macaddress: 11:22:33:AA:BB:FF
-
- - first card of driver ``ixgbe``:
-
- match:
- driver: ixgbe
- name: en*s0
-
- - first card with a driver matching ``bcmgenet`` or ``smsc*``:
-
- match:
- driver: ["bcmgenet", "smsc*"]
- name: en*
-
-``set-name`` (scalar)
-
-: When matching on unique properties such as path or MAC, or with additional
- assumptions such as "there will only ever be one wifi device",
- match rules can be written so that they only match one device. Then this
- property can be used to give that device a more specific/desirable/nicer
- name than the default from udev’s ifnames. Any additional device that
- satisfies the match rules will then fail to get renamed and keep the
- original kernel name (and dmesg will show an error).
-
-``wakeonlan`` (bool)
-
-: Enable wake on LAN. Off by default.
-
- **Note:** This will not work reliably for devices matched by name
- only and rendered by networkd, due to interactions with device
- renaming in udev. Match devices by MAC when setting wake on LAN.
-
-``emit-lldp`` (bool) – since **0.99**
-
-: (networkd backend only) Whether to emit LLDP packets. Off by default.
-
-``receive-checksum-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the hardware offload for
- checksumming of ingress network packets is enabled. When unset,
- the kernel's default will be used.
-
-``transmit-checksum-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the hardware offload for
- checksumming of egress network packets is enabled. When unset,
- the kernel's default will be used.
-
-``tcp-segmentation-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the TCP Segmentation
- Offload (TSO) is enabled. When unset, the kernel's default will
- be used.
-
-``tcp6-segmentation-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the TCP6 Segmentation
- Offload (tx-tcp6-segmentation) is enabled. When unset, the
- kernel's default will be used.
-
-``generic-segmentation-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the Generic Segmentation
- Offload (GSO) is enabled. When unset, the kernel's default will
- be used.
-
-``generic-receive-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the Generic Receive
- Offload (GRO) is enabled. When unset, the kernel's default will
- be used.
-
-``large-receive-offload`` (bool) – since **0.104**
-
-: (networkd backend only) If set to true, the Generic Receive
- Offload (GRO) is enabled. When unset, the kernel's default will
- be used.
-
-``openvswitch`` (mapping) – since **0.100**
-
-: This provides additional configuration for the network device for openvswitch.
- If openvswitch is not available on the system, netplan treats the presence of
- openvswitch configuration as an error.
-
- Any supported network device that is declared with the ``openvswitch`` mapping
- (or any bond/bridge that includes an interface with an openvswitch configuration)
- will be created in openvswitch instead of the defined renderer.
- In the case of a ``vlan`` definition declared the same way, netplan will create
- a fake VLAN bridge in openvswitch with the requested vlan properties.
-
- ``external-ids`` (mapping) – since **0.100**
- : Passed-through directly to OpenVSwitch
-
- ``other-config`` (mapping) – since **0.100**
- : Passed-through directly to OpenVSwitch
-
- ``lacp`` (scalar) – since **0.100**
- : Valid for bond interfaces. Accepts ``active``, ``passive`` or ``off`` (the default).
-
- ``fail-mode`` (scalar) – since **0.100**
- : Valid for bridge interfaces. Accepts ``secure`` or ``standalone`` (the default).
-
- ``mcast-snooping`` (bool) – since **0.100**
- : Valid for bridge interfaces. False by default.
-
- ``protocols`` (sequence of scalars) – since **0.100**
- : Valid for bridge interfaces or the network section. List of protocols to be used when
- negotiating a connection with the controller. Accepts ``OpenFlow10``, ``OpenFlow11``,
- ``OpenFlow12``, ``OpenFlow13``, ``OpenFlow14``, ``OpenFlow15`` and ``OpenFlow16``.
-
- ``rstp`` (bool) – since **0.100**
- : Valid for bridge interfaces. False by default.
-
- ``controller`` (mapping) – since **0.100**
- : Valid for bridge interfaces. Specify an external OpenFlow controller.
-
- ``addresses`` (sequence of scalars)
- : Set the list of addresses to use for the controller targets. The
- syntax of these addresses is as defined in ovs-vsctl(8). Example:
- addresses: ``[tcp:127.0.0.1:6653, "ssl:[fe80::1234%eth0]:6653"]``
-
- ``connection-mode`` (scalar)
- : Set the connection mode for the controller. Supported options are
- ``in-band`` and ``out-of-band``. The default is ``in-band``.
-
- ``ports`` (sequence of sequence of scalars) – since **0.100**
- : OpenvSwitch patch ports. Each port is declared as a pair of names
- which can be referenced as interfaces in dependent virtual devices
- (bonds, bridges).
-
- Example:
-
- openvswitch:
- ports:
- - [patch0-1, patch1-0]
-
- ``ssl`` (mapping) – since **0.100**
- : Valid for global ``openvswitch`` settings. Options for configuring SSL
- server endpoint for the switch.
-
- ``ca-cert`` (scalar)
- : Path to a file containing the CA certificate to be used.
-
- ``certificate`` (scalar)
- : Path to a file containing the server certificate.
-
- ``private-key`` (scalar)
- : Path to a file containing the private key for the server.
-
-## Common properties for all device types
-
-``renderer`` (scalar)
-
-: Use the given networking backend for this definition. Currently supported are
- ``networkd`` and ``NetworkManager``. This property can be specified globally
- in ``network:``, for a device type (in e. g. ``ethernets:``) or
- for a particular device definition. Default is ``networkd``.
-
- (Since 0.99) The ``renderer`` property has one additional acceptable value for vlan
- objects (i. e. defined in ``vlans:``): ``sriov``. If a vlan is defined with the
- ``sriov`` renderer for an SR-IOV Virtual Function interface, this causes netplan to
- set up a hardware VLAN filter for it. There can be only one defined per VF.
-
-``dhcp4`` (bool)
-
-: Enable DHCP for IPv4. Off by default.
-
-``dhcp6`` (bool)
-
-: Enable DHCP for IPv6. Off by default. This covers both stateless DHCP -
- where the DHCP server supplies information like DNS nameservers but not the
- IP address - and stateful DHCP, where the server provides both the address
- and the other information.
-
- If you are in an IPv6-only environment with completely stateless
- autoconfiguration (SLAAC with RDNSS), this option can be set to cause the
- interface to be brought up. (Setting accept-ra alone is not sufficient.)
- Autoconfiguration will still honour the contents of the router advertisement
- and only use DHCP if requested in the RA.
-
- Note that **``rdnssd``**(8) is required to use RDNSS with networkd. No extra
- software is required for NetworkManager.
-
-``ipv6-mtu`` (scalar) – since **0.98**
-: Set the IPv6 MTU (only supported with `networkd` backend). Note
- that needing to set this is an unusual requirement.
-
- **Requires feature: ipv6-mtu**
-
-``ipv6-privacy`` (bool)
-
-: Enable IPv6 Privacy Extensions (RFC 4941) for the specified interface, and
- prefer temporary addresses. Defaults to false - no privacy extensions. There
- is currently no way to have a private address but prefer the public address.
-
-``link-local`` (sequence of scalars)
-
-: Configure the link-local addresses to bring up. Valid options are 'ipv4'
- and 'ipv6', which respectively allow enabling IPv4 and IPv6 link local
- addressing. If this field is not defined, the default is to enable only
- IPv6 link-local addresses. If the field is defined but configured as an
- empty set, IPv6 link-local addresses are disabled as well as IPv4 link-
- local addresses.
-
- This feature enables or disables link-local addresses for a protocol, but
- the actual implementation differs per backend. On networkd, this directly
- changes the behavior and may add an extra address on an interface. When
- using the NetworkManager backend, enabling link-local has no effect if the
- interface also has DHCP enabled.
-
- Example to enable only IPv4 link-local: ``link-local: [ ipv4 ]``
- Example to enable all link-local addresses: ``link-local: [ ipv4, ipv6 ]``
- Example to disable all link-local addresses: ``link-local: [ ]``
-
-``ignore-carrier`` (bool) – since **0.104**
-
-: (networkd backend only) Allow the specified interface to be configured even
- if it has no carrier.
-
-``critical`` (bool)
-
-: Designate the connection as "critical to the system", meaning that special
- care will be taken by to not release the assigned IP when the daemon is
- restarted. (not recognized by NetworkManager)
-
-``dhcp-identifier`` (scalar)
-
-: (networkd backend only) Sets the source of DHCPv4 client identifier. If ``mac``
- is specified, the MAC address of the link is used. If this option is omitted,
- or if ``duid`` is specified, networkd will generate an RFC4361-compliant client
- identifier for the interface by combining the link's IAID and DUID.
-
- ``dhcp4-overrides`` (mapping)
-
- : (networkd backend only) Overrides default DHCP behavior; see the
- ``DHCP Overrides`` section below.
-
- ``dhcp6-overrides`` (mapping)
-
- : (networkd backend only) Overrides default DHCP behavior; see the
- ``DHCP Overrides`` section below.
-
-``accept-ra`` (bool)
-
-: Accept Router Advertisement that would have the kernel configure IPv6 by itself.
- When enabled, accept Router Advertisements. When disabled, do not respond to
- Router Advertisements. If unset use the host kernel default setting.
-
-``addresses`` (sequence of scalars and mappings)
-
-: Add static addresses to the interface in addition to the ones received
- through DHCP or RA. Each sequence entry is in CIDR notation, i. e. of the
- form ``addr/prefixlen``. ``addr`` is an IPv4 or IPv6 address as recognized
- by **``inet_pton``**(3) and ``prefixlen`` the number of bits of the subnet.
-
- For virtual devices (bridges, bonds, vlan) if there is no address
- configured and DHCP is disabled, the interface may still be brought online,
- but will not be addressable from the network.
-
- In addition to the addresses themselves one can specify configuration
- parameters as mappings. Current supported options are:
-
- ``lifetime`` (scalar) – since **0.100**
- : Default: ``forever``. This can be ``forever`` or ``0`` and corresponds
- to the ``PreferredLifetime`` option in ``systemd-networkd``'s Address
- section. Currently supported on the ``networkd`` backend only.
-
- ``label`` (scalar) – since **0.100**
- : An IP address label, equivalent to the ``ip address label``
- command. Currently supported on the ``networkd`` backend only.
-
- Example: ``addresses: [192.168.14.2/24, "2001:1::1/64"]``
-
- Example:
-
- ethernets:
- eth0:
- addresses:
- - 10.0.0.15/24:
- lifetime: 0
- label: "maas"
- - "2001:1::1/64"
-
-``ipv6-address-generation`` (scalar) – since **0.99**
-
-: Configure method for creating the address for use with RFC4862 IPv6
- Stateless Address Autoconfiguration (only supported with `NetworkManager`
- backend). Possible values are ``eui64`` or ``stable-privacy``.
-
-``ipv6-address-token`` (scalar) – since **0.100**
-
-: Define an IPv6 address token for creating a static interface identifier for
- IPv6 Stateless Address Autoconfiguration. This is mutually exclusive with
- ``ipv6-address-generation``.
-
-``gateway4``, ``gateway6`` (scalar)
-
-: Deprecated, see ``Default routes``.
- Set default gateway for IPv4/6, for manual address configuration. This
- requires setting ``addresses`` too. Gateway IPs must be in a form
- recognized by **``inet_pton``**(3). There should only be a single gateway
- per IP address family set in your global config, to make it unambiguous.
- If you need multiple default routes, please define them via
- ``routing-policy``.
-
- Example for IPv4: ``gateway4: 172.16.0.1``
- Example for IPv6: ``gateway6: "2001:4::1"``
-
-``nameservers`` (mapping)
-
-: Set DNS servers and search domains, for manual address configuration. There
-are two supported fields: ``addresses:`` is a list of IPv4 or IPv6 addresses
-similar to ``gateway*``, and ``search:`` is a list of search domains.
-
- Example:
-
- ethernets:
- id0:
- [...]
- nameservers:
- search: [lab, home]
- addresses: [8.8.8.8, "FEDC::1"]
-
-``macaddress`` (scalar)
-
-: Set the device's MAC address. The MAC address must be in the form
- "XX:XX:XX:XX:XX:XX".
-
- **Note:** This will not work reliably for devices matched by name
- only and rendered by networkd, due to interactions with device
- renaming in udev. Match devices by MAC when setting MAC addresses.
-
- Example:
-
- ethernets:
- id0:
- match:
- macaddress: 52:54:00:6b:3c:58
- [...]
- macaddress: 52:54:00:6b:3c:59
-
-``mtu`` (scalar)
-
-: Set the Maximum Transmission Unit for the interface. The default is 1500.
- Valid values depend on your network interface.
-
- **Note:** This will not work reliably for devices matched by name
- only and rendered by networkd, due to interactions with device
- renaming in udev. Match devices by MAC when setting MTU.
-
-``optional`` (bool)
-
-: An optional device is not required for booting. Normally, networkd will
- wait some time for device to become configured before proceeding with
- booting. However, if a device is marked as optional, networkd will not wait
- for it. This is *only* supported by networkd, and the default is false.
-
- Example:
-
- ethernets:
- eth7:
- # this is plugged into a test network that is often
- # down - don't wait for it to come up during boot.
- dhcp4: true
- optional: true
-
-``optional-addresses`` (sequence of scalars)
-
-: Specify types of addresses that are not required for a device to be
- considered online. This changes the behavior of backends at boot time to
- avoid waiting for addresses that are marked optional, and thus consider
- the interface as "usable" sooner. This does not disable these addresses,
- which will be brought up anyway.
-
- Example:
-
- ethernets:
- eth7:
- dhcp4: true
- dhcp6: true
- optional-addresses: [ ipv4-ll, dhcp6 ]
-
-``activation-mode`` (scalar) – since **0.103**
-
-: Allows specifying the management policy of the selected interface. By
- default, netplan brings up any configured interface if possible. Using the
- ``activation-mode`` setting users can override that behavior by either
- specifying ``manual``, to hand over control over the interface state to the
- administrator or (for networkd backend *only*) ``off`` to force the link
- in a down state at all times. Any interface with ``activation-mode``
- defined is implicitly considered ``optional``.
- Supported officially as of ``networkd`` v248+.
-
- Example:
-
- ethernets:
- eth1:
- # this interface will not be put into an UP state automatically
- dhcp4: true
- activation-mode: manual
-
-``routes`` (sequence of mappings)
-
-: Configure static routing for the device; see the ``Routing`` section below.
-
-``routing-policy`` (sequence of mappings)
-
-: Configure policy routing for the device; see the ``Routing`` section below.
-
-## DHCP Overrides
-Several DHCP behavior overrides are available. Most currently only have any
-effect when using the ``networkd`` backend, with the exception of ``use-routes``
-and ``route-metric``.
-
-Overrides only have an effect if the corresponding ``dhcp4`` or ``dhcp6`` is
-set to ``true``.
-
-If both ``dhcp4`` and ``dhcp6`` are ``true``, the ``networkd`` backend requires
-that ``dhcp4-overrides`` and ``dhcp6-overrides`` contain the same keys and
-values. If the values do not match, an error will be shown and the network
-configuration will not be applied.
-
-When using the NetworkManager backend, different values may be specified for
-``dhcp4-overrides`` and ``dhcp6-overrides``, and will be applied to the DHCP
-client processes as specified in the netplan YAML.
-
-``dhcp4-overrides``, ``dhcp6-overrides`` (mapping)
-
-: The ``dhcp4-overrides`` and ``dhcp6-overrides`` mappings override the
- default DHCP behavior.
-
- ``use-dns`` (bool)
- : Default: ``true``. When ``true``, the DNS servers received from the
- DHCP server will be used and take precedence over any statically
- configured ones. Currently only has an effect on the ``networkd``
- backend.
-
- ``use-ntp`` (bool)
- : Default: ``true``. When ``true``, the NTP servers received from the
- DHCP server will be used by systemd-timesyncd and take precedence
- over any statically configured ones. Currently only has an effect on
- the ``networkd`` backend.
-
- ``send-hostname`` (bool)
- : Default: ``true``. When ``true``, the machine's hostname will be sent
- to the DHCP server. Currently only has an effect on the ``networkd``
- backend.
-
- ``use-hostname`` (bool)
- : Default: ``true``. When ``true``, the hostname received from the DHCP
- server will be set as the transient hostname of the system. Currently
- only has an effect on the ``networkd`` backend.
-
- ``use-mtu`` (bool)
- : Default: ``true``. When ``true``, the MTU received from the DHCP
- server will be set as the MTU of the network interface. When ``false``,
- the MTU advertised by the DHCP server will be ignored. Currently only
- has an effect on the ``networkd`` backend.
-
- ``hostname`` (scalar)
- : Use this value for the hostname which is sent to the DHCP server,
- instead of machine's hostname. Currently only has an effect on the
- ``networkd`` backend.
-
- ``use-routes`` (bool)
- : Default: ``true``. When ``true``, the routes received from the DHCP
- server will be installed in the routing table normally. When set to
- ``false``, routes from the DHCP server will be ignored: in this case,
- the user is responsible for adding static routes if necessary for
- correct network operation. This allows users to avoid installing a
- default gateway for interfaces configured via DHCP. Available for
- both the ``networkd`` and ``NetworkManager`` backends.
-
- ``route-metric`` (scalar)
- : Use this value for default metric for automatically-added routes.
- Use this to prioritize routes for devices by setting a lower metric
- on a preferred interface. Available for both the ``networkd`` and
- ``NetworkManager`` backends.
-
- ``use-domains`` (scalar) – since **0.98**
- : Takes a boolean, or the special value "route". When true, the domain
- name received from the DHCP server will be used as DNS search domain
- over this link, similar to the effect of the Domains= setting. If set
- to "route", the domain name received from the DHCP server will be
- used for routing DNS queries only, but not for searching, similar to
- the effect of the Domains= setting when the argument is prefixed with
- "~".
-
- **Requires feature: dhcp-use-domains**
-
-
-## Routing
-Complex routing is possible with netplan. Standard static routes as well
-as policy routing using routing tables are supported via the ``networkd``
-backend.
-
-These options are available for all types of interfaces.
-
-### Default routes
-
-The most common need for routing concerns the definition of default routes to
-reach the wider Internet. Those default routes can only defined once per IP family
-and routing table. A typical example would look like the following:
-
-```yaml
-eth0:
- [...]
- routes:
- - to: default # could be 0/0 or 0.0.0.0/0 optionally
- via: 10.0.0.1
- metric: 100
- on-link: true
- - to: default # could be ::/0 optionally
- via: cf02:de:ad:be:ef::2
-eth1:
- [...]
- routes:
- - to: default
- via: 172.134.67.1
- metric: 100
- on-link: true
- table: 76 # Not on the main routing table, does not conflict with the eth0 default route
-```
-
-``routes`` (mapping)
-
-: The ``routes`` block defines standard static routes for an interface.
- At least ``to`` must be specified. If type is ``local`` or ``nat`` a
- default scope of ``host`` is assumed.
- If type is ``unicast`` and no gateway (``via``) is given or type is
- ``broadcast``, ``multicast`` or ``anycast`` a default scope of ``link``
- is assumend. Otherwise, a ``global`` scope is the default setting.
-
- For ``from``, ``to``, and ``via``, both IPv4 and IPv6 addresses are
- recognized, and must be in the form ``addr/prefixlen`` or ``addr``.
-
- ``from`` (scalar)
- : Set a source IP address for traffic going through the route.
- (``NetworkManager``: as of v1.8.0)
-
- ``to`` (scalar)
- : Destination address for the route.
-
- ``via`` (scalar)
- : Address to the gateway to use for this route.
-
- ``on-link`` (bool)
- : When set to "true", specifies that the route is directly connected
- to the interface.
- (``NetworkManager``: as of v1.12.0 for IPv4 and v1.18.0 for IPv6)
-
- ``metric`` (scalar)
- : The relative priority of the route. Must be a positive integer value.
-
- ``type`` (scalar)
- : The type of route. Valid options are "unicast" (default), "anycast",
- "blackhole", "broadcast", "local", "multicast", "nat", "prohibit",
- "throw", "unreachable" or "xresolve".
-
- ``scope`` (scalar)
- : The route scope, how wide-ranging it is to the network. Possible
- values are "global", "link", or "host".
-
- ``table`` (scalar)
- : The table number to use for the route. In some scenarios, it may be
- useful to set routes in a separate routing table. It may also be used
- to refer to routing policy rules which also accept a ``table``
- parameter. Allowed values are positive integers starting from 1.
- Some values are already in use to refer to specific routing tables:
- see ``/etc/iproute2/rt_tables``.
- (``NetworkManager``: as of v1.10.0)
-
- ``mtu`` (scalar) – since **0.101**
- : The MTU to be used for the route, in bytes. Must be a positive integer
- value.
-
- ``congestion-window`` (scalar) – since **0.102**
- : The congestion window to be used for the route, represented by number
- of segments. Must be a positive integer value.
-
- ``advertised-receive-window`` (scalar) – since **0.102**
- : The receive window to be advertised for the route, represented by
- number of segments. Must be a positive integer value.
-
-``routing-policy`` (mapping)
-
-: The ``routing-policy`` block defines extra routing policy for a network,
- where traffic may be handled specially based on the source IP, firewall
- marking, etc.
-
- For ``from``, ``to``, both IPv4 and IPv6 addresses are recognized, and
- must be in the form ``addr/prefixlen`` or ``addr``.
-
- ``from`` (scalar)
- : Set a source IP address to match traffic for this policy rule.
-
- ``to`` (scalar)
- : Match on traffic going to the specified destination.
-
- ``table`` (scalar)
- : The table number to match for the route. In some scenarios, it may be
- useful to set routes in a separate routing table. It may also be used
- to refer to routes which also accept a ``table`` parameter.
- Allowed values are positive integers starting from 1.
- Some values are already in use to refer to specific routing tables:
- see ``/etc/iproute2/rt_tables``.
-
- ``priority`` (scalar)
- : Specify a priority for the routing policy rule, to influence the order
- in which routing rules are processed. A higher number means lower
- priority: rules are processed in order by increasing priority number.
-
- ``mark`` (scalar)
- : Have this routing policy rule match on traffic that has been marked
- by the iptables firewall with this value. Allowed values are positive
- integers starting from 1.
-
- ``type-of-service`` (scalar)
- : Match this policy rule based on the type of service number applied to
- the traffic.
-
-## Authentication
-Netplan supports advanced authentication settings for ethernet and wifi
-interfaces, as well as individual wifi networks, by means of the ``auth`` block.
-
-``auth`` (mapping)
-
-: Specifies authentication settings for a device of type ``ethernets:``, or
- an ``access-points:`` entry on a ``wifis:`` device.
-
- The ``auth`` block supports the following properties:
-
- ``key-management`` (scalar)
- : The supported key management modes are ``none`` (no key management);
- ``psk`` (WPA with pre-shared key, common for home wifi); ``eap`` (WPA
- with EAP, common for enterprise wifi); and ``802.1x`` (used primarily
- for wired Ethernet connections).
-
- ``password`` (scalar)
- : The password string for EAP, or the pre-shared key for WPA-PSK.
-
- The following properties can be used if ``key-management`` is ``eap``
- or ``802.1x``:
-
- ``method`` (scalar)
- : The EAP method to use. The supported EAP methods are ``tls`` (TLS),
- ``peap`` (Protected EAP), and ``ttls`` (Tunneled TLS).
-
- ``identity`` (scalar)
- : The identity to use for EAP.
-
- ``anonymous-identity`` (scalar)
- : The identity to pass over the unencrypted channel if the chosen EAP
- method supports passing a different tunnelled identity.
-
- ``ca-certificate`` (scalar)
- : Path to a file with one or more trusted certificate authority (CA)
- certificates.
-
- ``client-certificate`` (scalar)
- : Path to a file containing the certificate to be used by the client
- during authentication.
-
- ``client-key`` (scalar)
- : Path to a file containing the private key corresponding to
- ``client-certificate``.
-
- ``client-key-password`` (scalar)
- : Password to use to decrypt the private key specified in
- ``client-key`` if it is encrypted.
-
- ``phase2-auth`` (scalar) – since **0.99**
- : Phase 2 authentication mechanism.
-
-
-## Properties for device type ``ethernets:``
-Ethernet device definitions, beyond common ones described above, also support
-some additional properties that can be used for SR-IOV devices.
-
-``link`` (scalar) – since **0.99**
-
-: (SR-IOV devices only) The ``link`` property declares the device as a
- Virtual Function of the selected Physical Function device, as identified
- by the given netplan id.
-
-Example:
-
- ethernets:
- enp1: {...}
- enp1s16f1:
- link: enp1
-
-``virtual-function-count`` (scalar) – since **0.99**
-
-: (SR-IOV devices only) In certain special cases VFs might need to be
- configured outside of netplan. For such configurations ``virtual-function-count``
- can be optionally used to set an explicit number of Virtual Functions for
- the given Physical Function. If unset, the default is to create only as many
- VFs as are defined in the netplan configuration. This should be used for special
- cases only.
-
- **Requires feature: sriov**
-
-``embedded-switch-mode`` (scalar) – since **0.104**
-
-: (SR-IOV devices only) Change the operational mode of the embedded switch
- of a supported SmartNIC PCI device (e.g. Mellanox ConnectX-5). Possible
- values are ``switchdev`` or ``legacy``, if unspecified the vendor's
- default configuration is used.
-
- **Requires feature: eswitch-mode**
-
-``delay-virtual-functions-rebind`` (bool) – since **0.104**
-
-: (SR-IOV devices only) Delay rebinding of SR-IOV virtual functions to its
- driver after changing the embedded-switch-mode setting to a later stage.
- Can be enabled when bonding/VF LAG is in use. Defaults to ``false``.
-
- **Requires feature: eswitch-mode**
-
-## Properties for device type ``modems:``
-GSM/CDMA modem configuration is only supported for the ``NetworkManager``
-backend. ``systemd-networkd`` does not support modems.
-
-**Requires feature: modems**
-
-``apn`` (scalar) – since **0.99**
-
-: Set the carrier APN (Access Point Name). This can be omitted if
- ``auto-config`` is enabled.
-
-``auto-config`` (bool) – since **0.99**
-
-: Specify whether to try and autoconfigure the modem by doing a lookup of
- the carrier against the Mobile Broadband Provider database. This may not
- work for all carriers.
-
-``device-id`` (scalar) – since **0.99**
-
-: Specify the device ID (as given by the WWAN management service) of the
- modem to match. This can be found using ``mmcli``.
-
-``network-id`` (scalar) – since **0.99**
-
-: Specify the Network ID (GSM LAI format). If this is specified, the device
- will not roam networks.
-
-``number`` (scalar) – since **0.99**
-
-: The number to dial to establish the connection to the mobile broadband
- network. (Deprecated for GSM)
-
-``password`` (scalar) – since **0.99**
-
-: Specify the password used to authenticate with the carrier network. This
- can be omitted if ``auto-config`` is enabled.
-
-``pin`` (scalar) – since **0.99**
-
-: Specify the SIM PIN to allow it to operate if a PIN is set.
-
-``sim-id`` (scalar) – since **0.99**
-
-: Specify the SIM unique identifier (as given by the WWAN management service)
- which this connection applies to. If given, the connection will apply to
- any device also allowed by ``device-id`` which contains a SIM card matching
- the given identifier.
-
-``sim-operator-id`` (scalar) – since **0.99**
-
-: Specify the MCC/MNC string (such as "310260" or "21601") which identifies
- the carrier that this connection should apply to. If given, the connection
- will apply to any device also allowed by ``device-id`` and ``sim-id``
- which contains a SIM card provisioned by the given operator.
-
-``username`` (scalar) – since **0.99**
-
-: Specify the username used to authentiate with the carrier network. This
- can be omitted if ``auto-config`` is enabled.
-
-## Properties for device type ``wifis:``
-Note that ``systemd-networkd`` does not natively support wifi, so you need
-wpasupplicant installed if you let the ``networkd`` renderer handle wifi.
-
-``access-points`` (mapping)
-
-: This provides pre-configured connections to NetworkManager. Note that
- users can of course select other access points/SSIDs. The keys of the
- mapping are the SSIDs, and the values are mappings with the following
- supported properties:
-
- ``password`` (scalar)
- : Enable WPA2 authentication and set the passphrase for it. If neither
- this nor an ``auth`` block are given, the network is assumed to be
- open. The setting
-
- password: "S3kr1t"
-
- is equivalent to
-
- auth:
- key-management: psk
- password: "S3kr1t"
-
- ``mode`` (scalar)
- : Possible access point modes are ``infrastructure`` (the default),
- ``ap`` (create an access point to which other devices can connect),
- and ``adhoc`` (peer to peer networks without a central access point).
- ``ap`` is only supported with NetworkManager.
-
- ``bssid`` (scalar) – since **0.99**
- : If specified, directs the device to only associate with the given
- access point.
-
- ``band`` (scalar) – since **0.99**
- : Possible bands are ``5GHz`` (for 5GHz 802.11a) and ``2.4GHz``
- (for 2.4GHz 802.11), do not restrict the 802.11 frequency band of the
- network if unset (the default).
-
- ``channel`` (scalar) – since **0.99**
- : Wireless channel to use for the Wi-Fi connection. Because channel
- numbers overlap between bands, this property takes effect only if
- the ``band`` property is also set.
-
- ``hidden`` (bool) – since **0.100**
- : Set to ``true`` to change the SSID scan technique for connecting to
- hidden WiFi networks. Note this may have slower performance compared
- to ``false`` (the default) when connecting to publicly broadcast
- SSIDs.
-
-``wakeonwlan`` (sequence of scalars) – since **0.99**
-
-: This enables WakeOnWLan on supported devices. Not all drivers support all
- options. May be any combination of ``any``, ``disconnect``, ``magic_pkt``,
- ``gtk_rekey_failure``, ``eap_identity_req``, ``four_way_handshake``,
- ``rfkill_release`` or ``tcp`` (NetworkManager only). Or the exclusive
- ``default`` flag (the default).
-
-## Properties for device type ``bridges:``
-
-``interfaces`` (sequence of scalars)
-
-: All devices matching this ID list will be added to the bridge. This may
- be an empty list, in which case the bridge will be brought online with
- no member interfaces.
-
- Example:
-
- ethernets:
- switchports:
- match: {name: "enp2*"}
- [...]
- bridges:
- br0:
- interfaces: [switchports]
-
-``parameters`` (mapping)
-
-: Customization parameters for special bridging options. Time intervals
- may need to be expressed as a number of seconds or milliseconds: the
- default value type is specified below. If necessary, time intervals can
- be qualified using a time suffix (such as "s" for seconds, "ms" for
- milliseconds) to allow for more control over its behavior.
-
- ``ageing-time`` (scalar)
- : Set the period of time to keep a MAC address in the forwarding
- database after a packet is received. This maps to the AgeingTimeSec=
- property when the networkd renderer is used. If no time suffix is
- specified, the value will be interpreted as seconds.
-
- ``priority`` (scalar)
- : Set the priority value for the bridge. This value should be a
- number between ``0`` and ``65535``. Lower values mean higher
- priority. The bridge with the higher priority will be elected as
- the root bridge.
-
- ``port-priority`` (scalar)
- : Set the port priority to <priority>. The priority value is
- a number between ``0`` and ``63``. This metric is used in the
- designated port and root port selection algorithms.
-
- ``forward-delay`` (scalar)
- : Specify the period of time the bridge will remain in Listening and
- Learning states before getting to the Forwarding state. This field
- maps to the ForwardDelaySec= property for the networkd renderer.
- If no time suffix is specified, the value will be interpreted as
- seconds.
-
- ``hello-time`` (scalar)
- : Specify the interval between two hello packets being sent out from
- the root and designated bridges. Hello packets communicate
- information about the network topology. When the networkd renderer
- is used, this maps to the HelloTimeSec= property. If no time suffix
- is specified, the value will be interpreted as seconds.
-
- ``max-age`` (scalar)
- : Set the maximum age of a hello packet. If the last hello packet is
- older than that value, the bridge will attempt to become the root
- bridge. This maps to the MaxAgeSec= property when the networkd
- renderer is used. If no time suffix is specified, the value will be
- interpreted as seconds.
-
- ``path-cost`` (scalar)
- : Set the cost of a path on the bridge. Faster interfaces should have
- a lower cost. This allows a finer control on the network topology
- so that the fastest paths are available whenever possible.
-
- ``stp`` (bool)
- : Define whether the bridge should use Spanning Tree Protocol. The
- default value is "true", which means that Spanning Tree should be
- used.
-
-
-## Properties for device type ``bonds:``
-
-``interfaces`` (sequence of scalars)
-
-: All devices matching this ID list will be added to the bond.
-
- Example:
-
- ethernets:
- switchports:
- match: {name: "enp2*"}
- [...]
- bonds:
- bond0:
- interfaces: [switchports]
-
-``parameters`` (mapping)
-
-: Customization parameters for special bonding options. Time intervals
- may need to be expressed as a number of seconds or milliseconds: the
- default value type is specified below. If necessary, time intervals can
- be qualified using a time suffix (such as "s" for seconds, "ms" for
- milliseconds) to allow for more control over its behavior.
-
- ``mode`` (scalar)
- : Set the bonding mode used for the interfaces. The default is
- ``balance-rr`` (round robin). Possible values are ``balance-rr``,
- ``active-backup``, ``balance-xor``, ``broadcast``, ``802.3ad``,
- ``balance-tlb``, and ``balance-alb``.
- For OpenVSwitch ``active-backup`` and the additional modes
- ``balance-tcp`` and ``balance-slb`` are supported.
-
- ``lacp-rate`` (scalar)
- : Set the rate at which LACPDUs are transmitted. This is only useful
- in 802.3ad mode. Possible values are ``slow`` (30 seconds, default),
- and ``fast`` (every second).
-
- ``mii-monitor-interval`` (scalar)
- : Specifies the interval for MII monitoring (verifying if an interface
- of the bond has carrier). The default is ``0``; which disables MII
- monitoring. This is equivalent to the MIIMonitorSec= field for the
- networkd backend. If no time suffix is specified, the value will be
- interpreted as milliseconds.
-
- ``min-links`` (scalar)
- : The minimum number of links up in a bond to consider the bond
- interface to be up.
-
- ``transmit-hash-policy`` (scalar)
- : Specifies the transmit hash policy for the selection of slaves. This
- is only useful in balance-xor, 802.3ad and balance-tlb modes.
- Possible values are ``layer2``, ``layer3+4``, ``layer2+3``,
- ``encap2+3``, and ``encap3+4``.
-
- ``ad-select`` (scalar)
- : Set the aggregation selection mode. Possible values are ``stable``,
- ``bandwidth``, and ``count``. This option is only used in 802.3ad
- mode.
-
- ``all-slaves-active`` (bool)
- : If the bond should drop duplicate frames received on inactive ports,
- set this option to ``false``. If they should be delivered, set this
- option to ``true``. The default value is false, and is the desirable
- behavior in most situations.
-
- ``arp-interval`` (scalar)
- : Set the interval value for how frequently ARP link monitoring should
- happen. The default value is ``0``, which disables ARP monitoring.
- For the networkd backend, this maps to the ARPIntervalSec= property.
- If no time suffix is specified, the value will be interpreted as
- milliseconds.
-
- ``arp-ip-targets`` (sequence of scalars)
- : IPs of other hosts on the link which should be sent ARP requests in
- order to validate that a slave is up. This option is only used when
- ``arp-interval`` is set to a value other than ``0``. At least one IP
- address must be given for ARP link monitoring to function. Only IPv4
- addresses are supported. You can specify up to 16 IP addresses. The
- default value is an empty list.
-
- ``arp-validate`` (scalar)
- : Configure how ARP replies are to be validated when using ARP link
- monitoring. Possible values are ``none``, ``active``, ``backup``,
- and ``all``.
-
- ``arp-all-targets`` (scalar)
- : Specify whether to use any ARP IP target being up as sufficient for
- a slave to be considered up; or if all the targets must be up. This
- is only used for ``active-backup`` mode when ``arp-validate`` is
- enabled. Possible values are ``any`` and ``all``.
-
- ``up-delay`` (scalar)
- : Specify the delay before enabling a link once the link is physically
- up. The default value is ``0``. This maps to the UpDelaySec= property
- for the networkd renderer. This option is only valid for the miimon
- link monitor. If no time suffix is specified, the value will be
- interpreted as milliseconds.
-
- ``down-delay`` (scalar)
- : Specify the delay before disabling a link once the link has been
- lost. The default value is ``0``. This maps to the DownDelaySec=
- property for the networkd renderer. This option is only valid for the
- miimon link monitor. If no time suffix is specified, the value will
- be interpreted as milliseconds.
-
- ``fail-over-mac-policy`` (scalar)
- : Set whether to set all slaves to the same MAC address when adding
- them to the bond, or how else the system should handle MAC addresses.
- The possible values are ``none``, ``active``, and ``follow``.
-
- ``gratuitous-arp`` (scalar)
- : Specify how many ARP packets to send after failover. Once a link is
- up on a new slave, a notification is sent and possibly repeated if
- this value is set to a number greater than ``1``. The default value
- is ``1`` and valid values are between ``1`` and ``255``. This only
- affects ``active-backup`` mode.
-
- For historical reasons, the misspelling ``gratuitious-arp`` is also
- accepted and has the same function.
-
- ``packets-per-slave`` (scalar)
- : In ``balance-rr`` mode, specifies the number of packets to transmit
- on a slave before switching to the next. When this value is set to
- ``0``, slaves are chosen at random. Allowable values are between
- ``0`` and ``65535``. The default value is ``1``. This setting is
- only used in ``balance-rr`` mode.
-
- ``primary-reselect-policy`` (scalar)
- : Set the reselection policy for the primary slave. On failure of the
- active slave, the system will use this policy to decide how the new
- active slave will be chosen and how recovery will be handled. The
- possible values are ``always``, ``better``, and ``failure``.
-
- ``resend-igmp`` (scalar)
- : In modes ``balance-rr``, ``active-backup``, ``balance-tlb`` and
- ``balance-alb``, a failover can switch IGMP traffic from one
- slave to another.
-
- This parameter specifies how many IGMP membership reports
- are issued on a failover event. Values range from 0 to 255. 0
- disables sending membership reports. Otherwise, the first
- membership report is sent on failover and subsequent reports
- are sent at 200ms intervals.
-
- ``learn-packet-interval`` (scalar)
- : Specify the interval between sending learning packets to
- each slave. The value range is between ``1`` and ``0x7fffffff``.
- The default value is ``1``. This option only affects ``balance-tlb``
- and ``balance-alb`` modes. Using the networkd renderer, this field
- maps to the LearnPacketIntervalSec= property. If no time suffix is
- specified, the value will be interpreted as seconds.
-
- ``primary`` (scalar)
- : Specify a device to be used as a primary slave, or preferred device
- to use as a slave for the bond (ie. the preferred device to send
- data through), whenever it is available. This only affects
- ``active-backup``, ``balance-alb``, and ``balance-tlb`` modes.
-
-
-## Properties for device type ``tunnels:``
-
-Tunnels allow traffic to pass as if it was between systems on the same local
-network, although systems may be far from each other but reachable via the
-Internet. They may be used to support IPv6 traffic on a network where the ISP
-does not provide the service, or to extend and "connect" separate local
-networks. Please see https://en.wikipedia.org/wiki/Tunneling_protocol for
-more general information about tunnels.
-
-``mode`` (scalar)
-
-: Defines the tunnel mode. Valid options are ``sit``, ``gre``, ``ip6gre``,
- ``ipip``, ``ipip6``, ``ip6ip6``, ``vti``, ``vti6`` and ``wireguard``.
- Additionally, the ``networkd`` backend also supports ``gretap`` and
- ``ip6gretap`` modes.
- In addition, the ``NetworkManager`` backend supports ``isatap`` tunnels.
-
-``local`` (scalar)
-
-: Defines the address of the local endpoint of the tunnel.
-
-``remote`` (scalar)
-
-: Defines the address of the remote endpoint of the tunnel.
-
-``ttl`` (scalar) – since **0.103**
-
-: Defines the TTL of the tunnel.
-
-``key`` (scalar or mapping)
-
-: Define keys to use for the tunnel. The key can be a number or a dotted
- quad (an IPv4 address). For ``wireguard`` it can be a base64-encoded
- private key or (as of ``networkd`` v242+) an absolute path to a file,
- containing the private key (since 0.100).
- It is used for identification of IP transforms. This is only required
- for ``vti`` and ``vti6`` when using the networkd backend, and for
- ``gre`` or ``ip6gre`` tunnels when using the NetworkManager backend.
-
- This field may be used as a scalar (meaning that a single key is
- specified and to be used for input, output and private key), or as a
- mapping, where you can further specify ``input``/``output``/``private``.
-
- ``input`` (scalar)
- : The input key for the tunnel
-
- ``output`` (scalar)
- : The output key for the tunnel
-
- ``private`` (scalar) – since **0.100**
- : A base64-encoded private key required for WireGuard tunnels. When the
- ``systemd-networkd`` backend (v242+) is used, this can also be an
- absolute path to a file containing the private key.
-
-``keys`` (scalar or mapping)
-
-: Alternate name for the ``key`` field. See above.
-
-Examples:
-
- tunnels:
- tun0:
- mode: gre
- local: ...
- remote: ...
- keys:
- input: 1234
- output: 5678
-
- tunnels:
- tun0:
- mode: vti6
- local: ...
- remote: ...
- key: 59568549
-
- tunnels:
- wg0:
- mode: wireguard
- addresses: [...]
- peers:
- - keys:
- public: rlbInAj0qV69CysWPQY7KEBnKxpYCpaWqOs/dLevdWc=
- shared: /path/to/shared.key
- ...
- key: mNb7OIIXTdgW4khM7OFlzJ+UPs7lmcWHV7xjPgakMkQ=
-
- tunnels:
- wg0:
- mode: wireguard
- addresses: [...]
- peers:
- - keys:
- public: rlbInAj0qV69CysWPQY7KEBnKxpYCpaWqOs/dLevdWc=
- ...
- keys:
- private: /path/to/priv.key
-
-
-WireGuard specific keys:
-
-``mark`` (scalar) – since **0.100**
-
-: Firewall mark for outgoing WireGuard packets from this interface,
- optional.
-
-``port`` (scalar) – since **0.100**
-
-: UDP port to listen at or ``auto``. Optional, defaults to ``auto``.
-
-``peers`` (sequence of mappings) – since **0.100**
-
-: A list of peers, each having keys documented below.
-
-Example:
-
- tunnels:
- wg0:
- mode: wireguard
- key: /path/to/private.key
- mark: 42
- port: 5182
- peers:
- - keys:
- public: rlbInAj0qV69CysWPQY7KEBnKxpYCpaWqOs/dLevdWc=
- allowed-ips: [0.0.0.0/0, "2001:fe:ad:de:ad:be:ef:1/24"]
- keepalive: 23
- endpoint: 1.2.3.4:5
- - keys:
- public: M9nt4YujIOmNrRmpIRTmYSfMdrpvE7u6WkG8FY8WjG4=
- shared: /some/shared.key
- allowed-ips: [10.10.10.20/24]
- keepalive: 22
- endpoint: 5.4.3.2:1
-
-``endpoint`` (scalar) – since **0.100**
-
-: Remote endpoint IPv4/IPv6 address or a hostname, followed by a colon
- and a port number.
-
-``allowed-ips`` (sequence of scalars) – since **0.100**
-
-: A list of IP (v4 or v6) addresses with CIDR masks from which this peer
- is allowed to send incoming traffic and to which outgoing traffic for
- this peer is directed. The catch-all 0.0.0.0/0 may be specified for
- matching all IPv4 addresses, and ::/0 may be specified for matching
- all IPv6 addresses.
-
-``keepalive`` (scalar) – since **0.100**
-
-: An interval in seconds, between 1 and 65535 inclusive, of how often to
- send an authenticated empty packet to the peer for the purpose of
- keeping a stateful firewall or NAT mapping valid persistently. Optional.
-
-``keys`` (mapping) – since **0.100**
-
-: Define keys to use for the WireGuard peers.
-
- This field can be used as a mapping, where you can further specify the
- ``public`` and ``shared`` keys.
-
- ``public`` (scalar) – since **0.100**
- : A base64-encoded public key, required for WireGuard peers.
-
- ``shared`` (scalar) – since **0.100**
- : A base64-encoded preshared key. Optional for WireGuard peers.
- When the ``systemd-networkd`` backend (v242+) is used, this can
- also be an absolute path to a file containing the preshared key.
-
-## Properties for device type ``vlans:``
-
-``id`` (scalar)
-
-: VLAN ID, a number between 0 and 4094.
-
-``link`` (scalar)
-
-: netplan ID of the underlying device definition on which this VLAN gets
- created.
-
-Example:
-
- ethernets:
- eno1: {...}
- vlans:
- en-intra:
- id: 1
- link: eno1
- dhcp4: yes
- en-vpn:
- id: 2
- link: eno1
- addresses: ...
-
-## Properties for device type ``nm-devices:``
-
-The ``nm-devices`` device type is for internal use only and should not be used in normal configuration files. It enables a fallback mode for unsupported settings, using the ``passthrough`` mapping.
-
-
-## Backend-specific configuration parameters
-
-In addition to the other fields available to configure interfaces, some
-backends may require to record some of their own parameters in netplan,
-especially if the netplan definitions are generated automatically by the
-consumer of that backend. Currently, this is only used with ``NetworkManager``.
-
-``networkmanager`` (mapping) – since **0.99**
-
-: Keeps the NetworkManager-specific configuration parameters used by the
- daemon to recognize connections.
-
- ``name`` (scalar) – since **0.99**
- : Set the display name for the connection.
-
- ``uuid`` (scalar) – since **0.99**
- : Defines the UUID (unique identifier) for this connection, as
- generated by NetworkManager itself.
-
- ``stable-id`` (scalar) – since **0.99**
- : Defines the stable ID (a different form of a connection name) used
- by NetworkManager in case the name of the connection might otherwise
- change, such as when sharing connections between users.
-
- ``device`` (scalar) – since **0.99**
- : Defines the interface name for which this connection applies.
-
- ``passthrough`` (mapping) – since **0.102**
- : Can be used as a fallback mechanism to missing keyfile settings.
-
-## Examples
-Configure an ethernet device with networkd, identified by its name, and enable
-DHCP:
-
- network:
- version: 2
- ethernets:
- eno1:
- dhcp4: true
-
-This is an example of a static-configured interface with multiple IPv4 addresses
-and multiple gateways with networkd, with equal route metric levels, and static
-DNS nameservers (Google DNS for this example):
-
- network:
- version: 2
- renderer: networkd
- ethernets:
- eno1:
- addresses:
- - 10.0.0.10/24
- - 11.0.0.11/24
- nameservers:
- addresses:
- - 8.8.8.8
- - 8.8.4.4
- routes:
- - to: 0.0.0.0/0
- via: 10.0.0.1
- metric: 100
- - to: 0.0.0.0/0
- via: 11.0.0.1
- metric: 100
-
-This is a complex example which shows most available features:
-
- network:
- version: 2
- # if specified, can only realistically have that value, as networkd cannot
- # render wifi/3G.
- renderer: NetworkManager
- ethernets:
- # opaque ID for physical interfaces, only referred to by other stanzas
- id0:
- match:
- macaddress: 00:11:22:33:44:55
- wakeonlan: true
- dhcp4: true
- addresses:
- - 192.168.14.2/24
- - 192.168.14.3/24
- - "2001:1::1/64"
- nameservers:
- search: [foo.local, bar.local]
- addresses: [8.8.8.8]
- routes:
- - to: default
- via: 192.168.14.1
- - to: default
- via: "2001:1::2"
- - to: 0.0.0.0/0
- via: 11.0.0.1
- table: 70
- on-link: true
- metric: 3
- routing-policy:
- - to: 10.0.0.0/8
- from: 192.168.14.2/24
- table: 70
- priority: 100
- - to: 20.0.0.0/8
- from: 192.168.14.3/24
- table: 70
- priority: 50
- # only networkd can render on-link routes and routing policies
- renderer: networkd
- lom:
- match:
- driver: ixgbe
- # you are responsible for setting tight enough match rules
- # that only match one device if you use set-name
- set-name: lom1
- dhcp6: true
- switchports:
- # all cards on second PCI bus unconfigured by
- # themselves, will be added to br0 below
- match:
- name: enp2*
- mtu: 1280
- wifis:
- all-wlans:
- # useful on a system where you know there is
- # only ever going to be one device
- match: {}
- access-points:
- "Joe's home":
- # mode defaults to "infrastructure" (client)
- password: "s3kr1t"
- # this creates an AP on wlp1s0 using hostapd
- # no match rules, thus the ID is the interface name
- wlp1s0:
- access-points:
- "guest":
- mode: ap
- # no WPA config implies default of open
- bridges:
- # the key name is the name for virtual (created) interfaces
- # no match: and set-name: allowed
- br0:
- # IDs of the components; switchports expands into multiple interfaces
- interfaces: [wlp1s0, switchports]
- dhcp4: true
-
-<!--- vim: ft=markdown
--->
+netplan-yaml.md \ No newline at end of file