Blame man/nm-openvswitch.xml

Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
Packit Service b23acc
Packit Service b23acc
%entities;
Packit Service b23acc
]>
Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
  nm-openvswitch(7) manual page
Packit Service b23acc
Packit Service b23acc
  Copyright 2017 Red Hat, Inc.
Packit Service b23acc
Packit Service b23acc
  Permission is granted to copy, distribute and/or modify this document
Packit Service b23acc
  under the terms of the GNU Free Documentation License, Version 1.1
Packit Service b23acc
  or any later version published by the Free Software Foundation;
Packit Service b23acc
  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Packit Service b23acc
  Texts. You may obtain a copy of the GNU Free Documentation License
Packit Service b23acc
  from the Free Software Foundation by visiting their Web site or by
Packit Service b23acc
  writing to:
Packit Service b23acc
Packit Service b23acc
  Free Software Foundation, Inc.,
Packit Service b23acc
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit Service b23acc
-->
Packit Service b23acc
Packit Service b23acc
<refentry id="nm-openvswitch">
Packit Service b23acc
  <refentryinfo>
Packit Service b23acc
    <title>nm-openvswitch</title>
Packit Service b23acc
    <author>NetworkManager Open vSwitch support</author>
Packit Service b23acc
  </refentryinfo>
Packit Service b23acc
Packit Service b23acc
  <refmeta>
Packit Service b23acc
    <refentrytitle>nm-openvswitch</refentrytitle>
Packit Service b23acc
    <manvolnum>7</manvolnum>
Packit Service b23acc
    <refmiscinfo class="source">NetworkManager</refmiscinfo>
Packit Service b23acc
    <refmiscinfo class="manual">Open vSwitch support overview</refmiscinfo>
Packit Service b23acc
    <refmiscinfo class="version">&NM_VERSION;</refmiscinfo>
Packit Service b23acc
  </refmeta>
Packit Service b23acc
Packit Service b23acc
  <refnamediv>
Packit Service b23acc
    <refname>nm-openvswitch</refname>
Packit Service b23acc
    <refpurpose>overview of NetworkManager Open vSwitch support</refpurpose>
Packit Service b23acc
  </refnamediv>
Packit Service b23acc
Packit Service b23acc
  <refsect1>
Packit Service b23acc
    <title>Overview</title>
Packit Service b23acc
Packit Service b23acc
    <para>NetworkManager includes basic Open vSwitch support, good enough
Packit Service b23acc
    to be capable of setting up simple Open vSwitch configurations. It is not
Packit Service b23acc
    extensive and does not expose all functionality of Open vSwitch provides.
Packit Service b23acc
    For large or complicated deployments users are advised to use native tools
Packit Service b23acc
    shipped with Open vSwitch. This document seeks to provide overview of
Packit Service b23acc
    functionality currently provided by NetworkManager, its capabilities and
Packit Service b23acc
    limitations.</para>
Packit Service b23acc
Packit Service b23acc
    <para>First and foremost: NetworkManager applies the configuration by
Packit Service b23acc
    modifying the OVSDB directly. Its configuration model follows the OVSDB
Packit Service b23acc
    database model closely and it does not provide the level of abstraction
Packit Service b23acc
    <command>ovs-vsctl</command> provides.</para>
Packit Service b23acc
Packit Service b23acc
    <para>In practical terms it means the following:
Packit Service b23acc
      <itemizedlist>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>NetworkManager only ever talks to a single OVSDB instance via an
Packit Service b23acc
          UNIX domain socket.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>The configuration is made up of Bridges, Ports and
Packit Service b23acc
          Interfaces. Interfaces are always enslaved to Ports, and Ports are always
Packit Service b23acc
          enslaved to Bridges.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>NetworkManager only creates Bridges, Ports and Interfaces
Packit Service b23acc
          you ask it to. Unlike <command>ovs-vsctl</command>, it doesn't create the
Packit Service b23acc
          local interface nor its port automatically.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>You can't enslave Interface directly to a Bridge. You
Packit Service b23acc
          always need a Port, even if it has just one interface.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>There are no VLANs. The VLAN tagging is enabled by setting a
Packit Service b23acc
          <link linkend="nm-settings.property.ovs-port.tag">ovs-port.tag</link>
Packit Service b23acc
          property on a Port.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
        <listitem>
Packit Service b23acc
          <para>There are no bonds either. The bonding is enabled by
Packit Service b23acc
          enslaving multiple Interfaces to a Port and configured by setting
Packit Service b23acc
          properties on a port.</para>
Packit Service b23acc
        </listitem>
Packit Service b23acc
      </itemizedlist>
Packit Service b23acc
    </para>
Packit Service b23acc
Packit Service b23acc
    <refsect2>
Packit Service b23acc
      <title>Bridges</title>
Packit Service b23acc
Packit Service b23acc
      <para>Bridges are represented by connections of ovs-bridge
Packit Service b23acc
      <link linkend="nm-settings.property.connection.type">type</link>.
Packit Service b23acc
      Due to the limitations of OVSDB, "empty" Bridges (with no Ports) can't exist.
Packit Service b23acc
      NetworkManager inserts the records for Bridges into OVSDB when a Port is
Packit Service b23acc
      enslaved.
Packit Service b23acc
      </para>
Packit Service b23acc
    </refsect2>
Packit Service b23acc
Packit Service b23acc
    <refsect2>
Packit Service b23acc
      <title>Ports</title>
Packit Service b23acc
Packit Service b23acc
      <para>Ports are represented by connections of ovs-port
Packit Service b23acc
      <link linkend="nm-settings.property.connection.type">type</link>.
Packit Service b23acc
      Due to the limitations of OVSDB, "empty" Ports (with no Interfaces) can't
Packit Service b23acc
      exist.  Ports can also be configured to do VLAN tagging or Bonding.
Packit Service b23acc
      NetworkManager inserts the records for Ports into OVSDB when an Interface is
Packit Service b23acc
      enslaved. Ports must be enslaved to a Bridge.</para>
Packit Service b23acc
    </refsect2>
Packit Service b23acc
Packit Service b23acc
    <refsect2>
Packit Service b23acc
      <title>Interfaces</title>
Packit Service b23acc
Packit Service b23acc
      <para>Interfaces are represented by a connections enslaved to a Port. The
Packit Service b23acc
      system interfaces (that have a corresponding Linux link) have a respective
Packit Service b23acc
      <link linkend="nm-settings.property.connection.type">connection.type</link>
Packit Service b23acc
      of the link (e.g. "wired", "bond", "dummy", etc.). Other interfaces ("internal"
Packit Service b23acc
      or "patch" interfaces) are of ovs-interface type. The OVSDB entries are
Packit Service b23acc
      inserted upon enslavement to a Port.</para>
Packit Service b23acc
    </refsect2>
Packit Service b23acc
  </refsect1>
Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
  <refsect1>
Packit Service b23acc
    <title>Examples</title>
Packit Service b23acc
Packit Service b23acc
    <example><title>Creating a Bridge with a single internal Interface</title>
Packit Service b23acc
<screen><prompt>$ </prompt><userinput>nmcli conn add type ovs-bridge conn.interface bridge0</userinput>
Packit Service b23acc
Connection 'ovs-bridge-bridge0' (d10fc64d-1d48-4394-a1b8-e1aea72f27d5) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ovs-port conn.interface port0 master bridge0</userinput>
Packit Service b23acc
Connection 'ovs-port-port0' (5ae22bae-bba4-4815-9ade-7e635633e1f0) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ovs-interface slave-type ovs-port conn.interface iface0 \
Packit Service b23acc
  master port0 ipv4.method manual ipv4.address 192.0.2.1/24</userinput>
Packit Service b23acc
Connection 'ovs-interface-iface0' (3640d2a1-a2fd-4718-92f1-cffadb5b6cdc) successfully added.
Packit Service b23acc
</screen>
Packit Service b23acc
      <para>As said above, you need to create a Port even for a single interface.
Packit Service b23acc
      Also, before you add the Interface, the Bridge and Port devices appear active,
Packit Service b23acc
      but are not configured in OVSDB yet. You can inspect the results with
Packit Service b23acc
      <command>ovs-vsctl show</command>.</para>
Packit Service b23acc
    </example>
Packit Service b23acc
Packit Service b23acc
    <example><title>Adding a Linux interface to a Bridge</title>
Packit Service b23acc
<screen><prompt>$ </prompt><userinput>nmcli conn add type ovs-port conn.interface port1 master bridge0</userinput>
Packit Service b23acc
Connection 'ovs-port-port1' (67d041eb-8e7b-4458-afee-a1d07c9c4552) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ethernet conn.interface eth0 master port1</userinput>
Packit Service b23acc
Connection 'ovs-slave-eth0' (d459c45c-cf78-4c1c-b4b7-505e71379624) successfully added.
Packit Service b23acc
</screen>
Packit Service b23acc
<para>Again, you need a port.</para>
Packit Service b23acc
    </example>
Packit Service b23acc
Packit Service b23acc
    <example><title>Creating a VLAN</title>
Packit Service b23acc
<screen><prompt>$ </prompt><userinput>nmcli conn add type ovs-port conn.interface port2 master bridge0 ovs-port.tag 120</userinput>
Packit Service b23acc
Connection 'ovs-port-port2' (3994c093-4ef7-4549-a4fd-627b831c3cb8) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ethernet conn.interface eth1 master port2</userinput>
Packit Service b23acc
Connection 'ovs-slave-eth1' (099be06e-71ad-484d-8d5a-fcadc5f207f5) successfully added.
Packit Service b23acc
</screen>
Packit Service b23acc
      <para>It's just a port with a tag.</para>
Packit Service b23acc
    </example>
Packit Service b23acc
Packit Service b23acc
    <example><title>Creating a Bond</title>
Packit Service b23acc
<screen><prompt>$ </prompt><userinput>nmcli conn add type ovs-port conn.interface bond0 master bridge0</userinput>
Packit Service b23acc
Connection 'ovs-port-bond0' (d154ebf9-e999-4e1b-a084-a3de53d25d8a) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ethernet conn.interface eth2 master bond0</userinput>
Packit Service b23acc
Connection 'ovs-slave-eth2' (475ac1bf-30b2-4534-a877-27f33f58b082) successfully added.
Packit Service b23acc
<prompt>$ </prompt><userinput>nmcli conn add type ethernet conn.interface eth3 master bond0</userinput>
Packit Service b23acc
Connection 'ovs-slave-eth3' (8dedeecb-ed12-482b-b77a-24a4fb835136) successfully added.
Packit Service b23acc
</screen>
Packit Service b23acc
      <para>It's just a Port with multiple interfaces. See nm-settings manual for
Packit Service b23acc
      Bonding options you can use with "nmcli c add" or "nmcli c modify". You could
Packit Service b23acc
      even set a VLAN tag on the same Port to do VLAN tagging and bonding at the same
Packit Service b23acc
      time.</para>
Packit Service b23acc
    </example>
Packit Service b23acc
  </refsect1>
Packit Service b23acc
Packit Service b23acc
  <refsect1>
Packit Service b23acc
    <title>Bugs</title>
Packit Service b23acc
Packit Service b23acc
    <itemizedlist>
Packit Service b23acc
       <listitem>
Packit Service b23acc
          <para>Not all Open vSwitch capabilities are supported.</para>
Packit Service b23acc
       </listitem>
Packit Service b23acc
       <listitem>
Packit Service b23acc
          <para>Open vSwitch devices don't expose many useful properties on D-Bus.</para>
Packit Service b23acc
       </listitem>
Packit Service b23acc
    </itemizedlist>
Packit Service b23acc
    <para>Probably many more.</para>
Packit Service b23acc
  </refsect1>
Packit Service b23acc
Packit Service b23acc
  <refsect1>
Packit Service b23acc
    <title>See Also</title>
Packit Service b23acc
    <para>
Packit Service b23acc
      <ulink url="https://www.rfc-editor.org/rfc/rfc7047.txt">RFC 7047: The Open vSwitch Database Management Protocol</ulink>,
Packit Service b23acc
      <citerefentry><refentrytitle>ovs-vsctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
Packit Service b23acc
      <citerefentry><refentrytitle>ovs-vswitchd.conf.db</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
Packit Service b23acc
      <link linkend='nm-settings'><citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
Packit Service b23acc
      <link linkend='nmcli'><citerefentry><refentrytitle>nmcli</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>
Packit Service b23acc
    </para>
Packit Service b23acc
  </refsect1>
Packit Service b23acc
</refentry>