chiark / gitweb /
networkd: netdev - add ipvlan support
[elogind.git] / man / systemd.netdev.xml
index c17ae9eb22e919d906ea19ddbbb4a1dc7be01bf0..03b0940716dfb1731778b5773ab339aeb17cca59 100644 (file)
 
                 <para>Virtual Network Device files must have the extension
                 <filename>.netdev</filename>; other extensions are ignored. Virtual
-                network devices are created as soon as networkd is started.</para>
+                network devices are created as soon as networkd is started. If a netdev
+                with the specified name already exists, networkd will use that as-is
+                rather than create its own. Note that the settings of the pre-existing
+                netdev will not be changed by networkd.</para>
 
                 <para>The <filename>.netdev</filename> files are read from the files located in the
                 system network directory <filename>/usr/lib/systemd/network</filename>,
                 <filename>/usr/lib</filename>, pointing to <filename>/dev/null</filename>,
                 disables the configuration file entirely.</para>
 
+        </refsect1>
+
+        <refsect1>
+                <title>[Match] Section Options</title>
+
                 <para>A virtual network device is only created if the
                 <literal>[Match]</literal> section matches the current
                 environment, or if the section is empty. The following keys are accepted:</para>
                                 </varlistentry>
                         </variablelist>
 
+        </refsect1>
+
+        <refsect1>
+                <title>[NetDev] Section Options</title>
+
                         <para>The <literal>[NetDev]</literal> section accepts the following
                         keys:</para>
 
                         <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Description=</varname></term>
+                                        <listitem>
+                                                <para>A free-form description of the netdev.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
                                 <varlistentry>
                                         <term><varname>Name=</varname></term>
                                         <listitem>
                                         <term><varname>Kind=</varname></term>
                                         <listitem>
                                                 <para>The netdev kind. Currently, <literal>bridge</literal>,
-                                                <literal>bond</literal>, <literal>vlan</literal> and
-                                                <literal>macvlan</literal> are supported. This option
-                                                is compulsory.</para>
+                                                <literal>bond</literal>, <literal>vlan</literal>,
+                                                <literal>macvlan</literal>,
+                                                <literal>ipvlan</literal>, <literal>vxlan</literal>,
+                                                <literal>ipip</literal>, <literal>gre</literal>,
+                                                <literal>sit</literal>, <literal>vti</literal>,
+                                                <literal>veth</literal>, <literal>tun</literal>,
+                                                <literal>tap</literal> and <literal>dummy</literal>
+                                                are supported. This option is compulsory.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>MTUBytes=</varname></term>
+                                        <listitem>
+                                                <para>The maximum transmission unit in bytes to
+                                                set for the device. The usual suffixes K, M, G,
+                                                are supported and are understood to the base of
+                                                1024. This key is not currently suported for
+                                                <literal>tun</literal> or <literal>tap</literal> devices.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>MACAddress=</varname></term>
+                                        <listitem>
+                                                <para>The MAC address to use for the device.
+                                                If none is given, one is generated based on
+                                                the interface name and the
+                                                <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+                                                This key is not currently suported for <literal>tun</literal> or <literal>tap</literal> devices.
+                                                </para>
                                         </listitem>
                                 </varlistentry>
                         </variablelist>
+        </refsect1>
+
+        <refsect1>
+                <title>[VLAN] Section Options</title>
 
                         <para>The <literal>[VLAN]</literal> section only applies for netdevs of kind <literal>vlan</literal>,
                         and accepts the following key:</para>
                                 </varlistentry>
                         </variablelist>
 
+        </refsect1>
+
+        <refsect1>
+                <title>[MACVLAN] Section Options</title>
+
                         <para>The <literal>[MACVLAN]</literal> section only applies for netdevs of kind
                         <literal>macvlan</literal>, and accepts the following key:</para>
 
 
         </refsect1>
 
+        <refsect1>
+                <title>[IPVLAN] Section Options</title>
+
+                        <para>The <literal>[IPVLAN]</literal> section only applies for netdevs of kind
+                        <literal>ipvlan</literal>, and accepts the following key:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Mode=</varname></term>
+                                        <listitem>
+                                                <para>The IPVLAN mode to use. The supported options are
+                                                <literal>L2</literal> and <literal>L3</literal>.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
+
+        </refsect1>
+
+        <refsect1>
+                <title>[VXLAN] Section Options</title>
+                        <para>The <literal>[VXLAN]</literal> section only applies for netdevs of kind
+                        <literal>vxlan</literal>, and accepts the following key:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Id=</varname></term>
+                                        <listitem>
+                                                <para>The VXLAN ID to use.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Group=</varname></term>
+                                        <listitem>
+                                                <para>An assigned multicast group IP address.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>TOS=</varname></term>
+                                        <listitem>
+                                                <para>The Type Of Service byte value for a vxlan interface.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>TTL=</varname></term>
+                                        <listitem>
+                                                <para>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
+                                                N is a number in the range 1-255. 0 is a special value meaning that packets
+                                                inherit the TTL value.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>MacLearning=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables dynamic MAC learning
+                                                to discover remote MAC addresses.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>FDBAgeingSec=</varname></term>
+                                        <listitem>
+                                                <para>The lifetime of Forwarding Database entry learnt by the kernel in seconds.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>ARPProxy=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables ARP proxy.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>L2MissNotification=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables netlink LLADDR miss notifications.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>L3MissNotification=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables netlink IP ADDR miss notifications.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>RouteShortCircuit=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true route short circuit is turned on.</para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
+        </refsect1>
+        <refsect1>
+                <title>[Tunnel] Section Options</title>
+
+                        <para>The <literal>[Tunnel]</literal> section only applies for netdevs of kind
+                        <literal>ipip</literal>, <literal>sit</literal>, <literal>gre</literal> and
+                        <literal>vti</literal> and accepts the following keys:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Local=</varname></term>
+                                        <listitem>
+                                                <para>A static local address for tunneled packets.
+                                                It must be an address on another interface of this host.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Remote=</varname></term>
+                                        <listitem>
+                                                <para>The remote endpoint of the tunnel.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>TOS=</varname></term>
+                                        <listitem>
+                                                <para>The Type Of Service byte value for a tunnel interface.
+                                                For details about the TOS see the
+                                                <ulink url="http://tools.ietf.org/html/rfc1349">
+                                                Type of Service in the Internet Protocol Suite
+                                                </ulink> document.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>TTL=</varname></term>
+                                        <listitem>
+                                                <para>A fixed Time To Live N on tunneled packets.
+                                                N is a number in the range 1-255. 0 is a special value meaning that packets
+                                                inherit the TTL value. The default value for IPv4 tunnels is: inherit.
+                                                The default value for IPv6 tunnels is: 64.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>DiscoverPathMTU=</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables Path MTU Discovery on the tunnel.</para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
+        </refsect1>
+        <refsect1>
+                <title>[Peer] Section Options</title>
+
+                        <para>The <literal>[Peer]</literal> section only applies for netdevs of kind <literal>veth</literal>
+                        and accepts the following key:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Name=</varname></term>
+                                        <listitem>
+                                                <para>The interface name used when creating the netdev.
+                                                This option is compulsory.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>MACAddress=</varname></term>
+                                        <listitem>
+                                                <para>The peer MACAddress, if not set it is generated in the same
+                                                way as the MAC address of the main interface.</para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
+        </refsect1>
+        <refsect1>
+                <title>[Tun] Section Options</title>
+
+                        <para>The <literal>[Tun]</literal> section only applies for netdevs of kind
+                        <literal>tun</literal>, and accepts the following keys:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>OneQueue=</varname></term>
+                                        <listitem><para>Takes a boolean argument. Configures whether
+                                        all packets are queued at the device (enabled), or a fixed number
+                                        of packets are queued at the device and the rest at the
+                                        <literal>qdisc</literal>. Defaults to <literal>no</literal>.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>MultiQueue=</varname></term>
+                                        <listitem><para>Takes a boolean argument. Configures whether to
+                                        use multiple file descriptors (queues) to parallelize packets
+                                        sending and receiving. Defaults to <literal>no</literal>.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>PacketInfo=</varname></term>
+                                        <listitem><para>Takes a boolean argument. Configures whether packets
+                                        should be prepened with four extra bytes (two flag bytes and two
+                                        protocol bytes). If disabled it indicates that the packets will be
+                                        pure IP packets. Defaults to <literal>no</literal>.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>User=</varname></term>
+                                        <listitem><para>User to grant access to the <filename>/dev/net/tun</filename>
+                                        device.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Group=</varname></term>
+                                        <listitem><para>Group to grant access to the <filename>/dev/net/tun</filename>
+                                        device.</para>
+                                        </listitem>
+                                </varlistentry>
+
+                        </variablelist>
+
+        </refsect1>
+
+        <refsect1>
+                <title>[Tap] Section Options</title>
+
+                        <para>The <literal>[Tap]</literal> section only applies for netdevs of kind
+                        <literal>tap</literal>, and accepts the same keys as the
+                        <literal>[Tun]</literal> section.</para>
+        </refsect1>
+
+        <refsect1>
+                <title>[Bond] Section Options</title>
+
+                        <para>The <literal>[Bond]</literal> section accepts the following
+                        key:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Mode=</varname></term>
+                                        <listitem>
+                                          <para>Specifies one of the bonding policies. The default is
+                                          <literal>balance-rr</literal> (round robin). Possible values are
+                                                <literal>balance-rr</literal>,
+                                                <literal>active-backup</literal>,
+                                                <literal>balance-xor</literal>,
+                                                <literal>broadcast</literal>,
+                                                <literal>802.3ad</literal>,
+                                                <literal>balance-tlb</literal>, and
+                                                <literal>balance-alb</literal>.
+                                          </para>
+                                        </listitem>
+                                </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>TransmitHashPolicy=</varname></term>
+                                  <listitem>
+                                    <para>Selects the transmit hash policy to use for slave selection in
+                                    balance-xor, 802.3ad, and tlb modes. Possible values are
+                                    <literal>layer2</literal>,
+                                    <literal>layer3+4</literal>,
+                                    <literal>layer2+3</literal>,
+                                    <literal>encap2+3</literal>,
+                                    <literal>802.3ad</literal>, and
+                                    <literal>encap3+4</literal>.
+                                    </para>
+                                  </listitem>
+                                </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>LACPTransmitRate=</varname></term>
+                                  <listitem>
+                                    <para>Specifies the rate with which link partner
+                                    transmits Link Aggregation Control Protocol Data Unit packets
+                                    in 802.3ad mode. Possible values are
+                                    <literal>slow</literal>, which requests partner to transmit LACPDUs every 30 seconds, and
+                                    <literal>fast</literal>, which requests partner to transmit LACPDUs every second.
+                                    The default value is <literal>slow</literal>.</para>
+                                  </listitem>
+                                </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>MIIMonitorSec=</varname></term>
+                                  <listitem>
+                                    <para>Specifies the frequency that Media Independent Interface link
+                                    monitoring will occur. A value of zero disables MII link monitoring.
+                                    This values is rounded down to the nearest millisecond. The default
+                                    value is 0.</para>
+                                  </listitem>
+                                </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>UpDelaySec=</varname></term>
+                                  <listitem>
+                                    <para>Specifies the delay before a link is enabled after a link up
+                                    status has been detected. This value is rounded down to a multiple of
+                                    MIIMonitorSec. The default value is 0.</para>
+                                  </listitem>
+                                </varlistentry>
+
+                                <varlistentry>
+                                  <term><varname>DownDelaySec=</varname></term>
+                                  <listitem>
+                                    <para>Specifies the delay before a link is disabled after a link down
+                                    status has been detected. This value is rounded down to a multiple of
+                                    MIIMonitorSec. The default value is 0.</para>
+                                  </listitem>
+                                </varlistentry>
+
+                        </variablelist>
+        </refsect1>
+
         <refsect1>
                 <title>Example</title>
                 <example>
@@ -202,14 +556,90 @@ Kind=vlan
 [VLAN]
 Id=1</programlisting>
                 </example>
+                <example>
+                        <title>/etc/systemd/network/ipip.netdev</title>
+                        <programlisting>[NetDev]
+Name=ipip-tun
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
+TTL=64</programlisting>
+                </example>
+                <example>
+                  <title>/etc/systemd/network/tap.netdev</title>
+                  <programlisting>[NetDev]
+Name=tap-test
+Kind=tap
 
-        </refsect1>
+[Tap]
+MultiQueue=true
+PacketInfo=true</programlisting> </example>
+
+                <example>
+                        <title>/etc/systemd/network/sit.netdev</title>
+                        <programlisting>[NetDev]
+Name=sit-tun
+Kind=sit
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+                </example>
+
+                <example>
+                        <title>/etc/systemd/network/gre.netdev</title>
+                        <programlisting>[NetDev]
+Name=gre-tun
+Kind=gre
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+                </example>
 
+                <example>
+                        <title>/etc/systemd/network/vti.netdev</title>
+
+                        <programlisting>[NetDev]
+Name=vti-tun
+Kind=vti
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+                </example>
+
+                <example>
+                        <title>/etc/systemd/network/veth.netdev</title>
+                        <programlisting>[NetDev]
+Name=veth-test
+Kind=veth
+
+[Peer]
+Name=veth-peer</programlisting>
+                </example>
+
+                <example>
+                        <title>/etc/systemd/network/dummy.netdev</title>
+                        <programlisting>[NetDev]
+Name=dummy-test
+Kind=dummy
+MACAddress=12:34:56:78:9a:bc</programlisting>
+                </example>
+
+        </refsect1>
         <refsect1>
                 <title>See Also</title>
                 <para>
                         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 </para>
         </refsect1>