Data Networks guide

Applied M. Camp's comments on patchset 4.
Also, some additional formatting changes such as tidying line ends <= 79
characters, reformatting very wide ascii table as list table to control
line widths, etc.

Resolved conflict in _includes/data-networks-overview.rest

Change-Id: I8a2a80f21d3630849900e85dc2495da1668648af
Signed-off-by: Ron Stone <ronald.stone@windriver.com>
Signed-off-by: Stone <ronald.stone@windriver.com>
This commit is contained in:
Ron Stone 2020-10-23 10:57:52 -04:00 committed by Stone
parent 10e4b9ac86
commit 11ded0cf7e
40 changed files with 1454 additions and 1 deletions

3
.gitignore vendored
View File

@ -105,3 +105,6 @@ venv.bak/
# mypy
.mypy_cache/
# Mac
.DS_Store

View File

@ -1 +1 @@
.. This file must exist to satisfy build requirements.

View File

@ -0,0 +1,69 @@
.. jow1443038432894
.. _adding-a-static-ip-address-to-a-data-interface:
===========================================
Add a Static IP Address to a Data Interface
===========================================
You can add static IP addresses to a data interface using the web
administration interface or the CLI.
.. rubric:: |context|
For VXLAN connectivity between VMs, you must add appropriate endpoint IP
addresses to the worker node interfaces. You can add individual static
addresses, or you can assign addresses from a pool associated with the
data interface. For more about using address pools, see :ref:`Using IP
Address Pools for Data Interfaces <using-ip-address-pools-for-data-interfaces>`.
To add a static IP address using the web administration interface, refer to the
following steps. To use the CLI, see :ref:`Managing Data Interface Static IP
Addresses Using the CLI <managing-data-interface-static-ip-addresses-using-the-cli>`.
.. rubric:: |prereq|
To make interface changes, you must lock the worker host first.
.. rubric:: |proc|
.. _adding-a-static-ip-address-to-a-data-interface-steps-zkx-d1h-hr:
#. Lock the worker host.
#. Set the interface to support an IPv4 or IPv6 address, or both.
#. Select **Admin** \> **Platform** \> **Host Inventory** to open the Host
Inventory page.
#. Select the **Host** tab, and then double-click the worker host to open
the Host Detail page.
#. Select the **Interfaces** tab and click **Edit Interface** for the data
interface you want to edit.
#. In the Edit Interface dialog box, set the **IPv4 Addressing Mode** or
the **IPv6 Addressing Mode** to **Static**.
.. image:: figures/bju1538154656153.png
#. Add an IPv4 or IPv6 address to the interface.
#. On the Host Detail page, click the **Name** of the interface to open
the Interface Detail page.
.. image:: figures/jow1443041105867.png
#. Click **Create Address** to open the Create Address dialog box.
.. image:: figures/jow1442607685238.png
#. Enter the IPv4 or IPv6 address and netmask \(for example,
192.168.1.3/24\), and then click **Create Address**.
The new address is added to the **Address List**.
#. Unlock the worker node and wait for it to become available.
For more information, see :ref:`Managing Data Interface Static IP Addresses
Using the CLI <managing-data-interface-static-ip-addresses-using-the-cli>`

View File

@ -0,0 +1,56 @@
.. jow1425584215069
.. _adding-and-maintaining-routes-for-a-vxlan-network:
===========================================
Add and Maintain Routes for a VXLAN Network
===========================================
You can add or delete routing table entries for hosts on a VXLAN network using
the CLI.
.. rubric:: |prereq|
The worker node must be locked.
.. rubric:: |proc|
To add routes, use the following command.
.. code-block:: none
~(keystone_admin)]$ system host-route-add <node> <ifname> <network> <prefix> <gateway> <metric>
where
**node**
is the name or UUID of the worker node
**ifname**
is the name of the interface
**network**
is an IPv4 or IPv6 network address
**prefix**
is the netmask length for the network address
**gateway**
is the default gateway
**metric**
is the cost of the route \(the number of hops\)
To delete routes, use the following command.
.. code-block:: none
~(keystone_admin)]$ system host-route-delete <uuid> <ifname> <network> <prefix> <gateway> <metric>
where **uuid** is the UUID of the route to be deleted.
To list existing routes, including their UUIDs, use the following command.
.. code-block:: none
~(keystone_admin)]$ system host-route-list worker-0

View File

@ -0,0 +1,97 @@
.. oiq1559818630326
.. _adding-data-networks-using-the-cli:
===============================
Add Data Networks Using the CLI
===============================
If you prefer, you can add data networks using the CLI. You can set up flat,
VLAN and VXLAN data networks over physical networks using the **controller-0**
command-line interface. The data networks provide connectivity for project
networks.
.. rubric:: |prereq|
.. _adding-data-networks-using-the-cli-prereq-controller-0-ready:
Controller-0 must be installed and configured.
.. rubric:: |proc|
.. _adding-data-networks-using-the-cli-steps-ek5-4fs-hkb:
- To create a data network using the CLI, use the following command.
.. code-block:: none
~(keystone_admin)$ system datanetwork-add -d <description> -m <mtu> -p <port> -g <group> -t <ttl> -M <mode> <name> <type>
where
**<description>**
A description of the data network.
**<mtu>**
The MTU of the data network.
.. note::
To attach to the data network, data interfaces must be configured
with an equal or larger MTU.
**<port>**
The port of the data network.
**<group>**
The multicast group of the data network.
**<ttl>**
The time-to-live of the data network.
**<mode>**
For networks of <type> vxlan only, mode can be either **dynamic** or
**static**.
If set to **dynamic**, <group> must also be specified.
**<name>**
The name assigned to the data network.
**<type>**
The type of data network to be created \(**flat**, **vlan**, or
**vxlan**\)
.. note::
**vxlan** is only applicable to |prod-os|.
For example, to add a VLAN data network named datanet-a:
.. code-block:: none
~(keystone_admin)$ system datanetwork-add datanet-a vlan
+--------------+--------------------------------------+
| Property | Value |
+--------------+--------------------------------------+
| id | 2 |
| uuid | 104071a4-1c26-4383-ba07-72e05316d540 |
| name | datanet-a |
| network_type | vlan |
| mtu | 1500 |
| description | None |
+--------------+--------------------------------------+
You must configure at least one data network in order to assign data
interfaces to worker nodes and unlock the hosts.
.. rubric:: |postreq|
For the |prod-os| application, after creating a data network of the VLAN or
VXLAN type, you can assign one or more segmentation ranges consisting of a set
of consecutive VLAN IDs \(for VLANs\) or VNIs \(for VXLANs\) using the
:command:`openstack network segment range create` command. Segmentation ranges
are required in order to set up project networks.
.. note::
Segmentation ranges are not required in order to attach interfaces and
unlock openstack-compute labeled worker nodes.

View File

@ -0,0 +1,78 @@
.. jow1411739340460
.. _adding-segmentation-ranges-using-the-cli:
=====================================
Add Segmentation Ranges Using the CLI
=====================================
You can use the CLI to add segmentation ranges to data networks.
.. rubric:: |proc|
.. _adding-segmentation-ranges-using-the-cli-steps-scn-pxd-4p:
#. Use the :command:`openstack network segment range` command to create
VLAN/VXLAN segmentation ranges.
This example creates segmentation ranges on data network **data-net-a**.
.. code-block:: none
~(keystone_admin)]$ openstack network segment range create segment-a-common \
--description "Shared segmentation range"
--physical-network data-net-a \
--network-type vlan \
--minimum 10 \
--maximum 10 \
~(keystone_admin)]$ openstack network segment range create segment-a-project1 \
--private \
--project ${project1_UUID} \
--physical-network data-net-a \
--network-type vlan \
--minimum 623
~(keystone_admin)]$ openstack network segment range create segment-a-project2 \
--private \
--project ${project2_UUID} \
--physical-network data-net-b \
--network-type vlan \
--minimum 664 \
--maximum 680
where
**<name>**
name of the segment is a positional argument and can be supplied at the
beginning or the end of the :command:`openstack network segment range
create` command.
This is not a named option.
**description**
is a description of the segmentation range.
**private**
is an flag to denote this is a segmentation range for a single project.
**project**
is the name or UUID of the project associated with the range.
**physical-network**
is the data network associated with the range.
**network type**
is the network type \(VLAN/VXLAN\) of the range.
**minimum**
is the minimum value of the segmentation range.
**maximum**
is the maximum value of the segmentation range.
You can also obtain information about segmentation ranges using the following command:
.. code-block:: none
~(keystone_admin)]$ openstack network segment range show <range_name_or_uuid>

View File

@ -0,0 +1,19 @@
.. riw1559818822179
.. _assigning-a-data-network-to-an-interface:
=====================================
Assign a Data Network to an Interface
=====================================
In order to associate the L2 Network definition of a Data Network with a
physical network, the Data Network must be mapped to an Ethernet or Aggregated
Ethernet interface on a worker node.
.. rubric:: |context|
The command for performing the mapping has the format:
.. code-block:: none
system interfacedatanetworkassign <worker> <interface\_uuid> <datanetwork\_uuid>

View File

@ -0,0 +1,45 @@
.. hyg1467916541021
.. _changing-the-mtu-of-a-data-interface-using-the-cli:
================================================
Change the MTU of a Data Interface Using the CLI
================================================
You can change the MTU value for a data interface from the OpenStack Horizon
Web interface or the CLI.
.. rubric:: |context|
The MTU must be changed while the worker host is locked.
You can use CLI commands to lock and unlock hosts, and to modify the MTU
on the hosts.
.. code-block:: none
~(keystone_admin)]$ system host-lock <nodeName>
~(keystone_admin)]$ system host-if-modify <nodeName> <interface name> --imtu <mtu_size>
~(keystone_admin)]$ system host-unlock <nodeName>
where:
**<nodename>**
is the name of the host
**<interface name>**
is the name of the interface
**<mtu\_size>**
is the new MTU value
For example:
.. code-block:: none
~(keystone_admin)]$ system host-if-modify worker-0 enp0s8 --imtu 1496
.. note::
You cannot set the MTU on an openstack-compute-labeled worker node
interface to a value smaller than the largest MTU used on its data
networks.

View File

@ -0,0 +1,44 @@
.. rst1448489015877
.. _changing-the-mtu-of-a-data-interface:
==================================
Change the MTU of a Data Interface
==================================
You can change the MTU value for a data interface within limits determined by
the data network to which the interface is attached.
.. rubric:: |context|
The data interface MTU must be equal to or greater than the MTU of the data
network.
.. rubric:: |prereq|
You must lock the host for the interface on which you want to change the MTU.
.. rubric:: |proc|
.. _changing-the-mtu-of-a-data-interface-steps-hfm-5nb-p5:
#. Lock all hosts attached to the data network.
#. From **Admin** \> **Platform** \> **Host Inventory**, select the
**Hosts** tab.
#. From the **Edit** menu for the standby controller, select **Lock Host**.
#. On all the hosts, edit the interface to change the MTU value.
#. Click the name of the host, and then select the **Interfaces** tab and
click **Edit** for the interface you want to change.
#. In the Edit Interface dialog, edit the **MTU** field, and then click
**Save**.
#. Unlock all the hosts.
From the **Edit** menu for the host, select **Unlock Host**.
The network MTU is updated with the new value.

View File

@ -0,0 +1,16 @@
.. uhq1476460566339
.. _configuring-data-interfaces-for-vxlans:
====================================
Configure Data Interfaces for VXLANs
====================================
For data interfaces attached to VXLAN-based data networks, endpoint IP
addresses, \(static or dynamic from a IP Address pool\) and possibly IP
Routes are additionally required on the host data interfaces.
You can complete the VXLAN data network setup by using the web
administration interface or the CLI. For more information on setting up
VXLAN Data Networks, see tasks related to :ref:`VXLAN data network setup
completion <adding-a-static-ip-address-to-a-data-interface>`.

View File

@ -0,0 +1,139 @@
.. lgk1559832444795
.. _configuring-data-interfaces:
=========================
Configure Data Interfaces
=========================
A **data** class interface attaches the host to a data network providing the
underlying network for OpenStack Neutron Tenant/Project Networks.
.. rubric:: |context|
.. See the following sections in |node-doc|:
.. _configuring-data-interfaces-ul-vvz-qst-wlb:
.. xreflink - :ref:`Interface Provisioning <interface-provisioning>`
.. xreflink - :ref:`Configuring Ethernet Interfaces <configuring-ethernet-interfaces-using-horizon>`
.. xreflink - :ref:`Configuring Aggregated Interfaces <configuring-aggregated-ethernet-interfaces-using-horizon>`
.. xreflink - :ref:`Configuring VLAN Interfaces <configuring-vlan-interfaces-using-the-cli>`
For each of the above procedures, configure the node interface specifying the
``ifclass`` as ``data`` and assign one or more data networks to the node
interface.
.. xreflink As an example for an Ethernet interface, repeat the procedure in
|node-doc|: :ref:`Configuring Ethernet Interfaces
<configuring-ethernet-interfaces-using-horizon>`.
.. rubric:: |proc|
.. _configuring-data-interfaces-steps-twz-gsh-lkb:
#. List the attached interfaces.
To list all interfaces, use the :command:`system host-if-list` command and
include the -a flag.
.. code-block:: none
~(keystone_admin)]$ system host-if-list -a controller-0
+---...+----------+----------+...+---------------+...+-------------------+
| uuid | name | class | | ports | | data networks |
+---...+----------+----------+...+---------------+...+-------------------+
| 68...| ens787f3 | None | | [u'ens787f3'] | | [] |
| 79...| data0 | data | | [u'ens787f0'] | | [u'group0-data0'] |
| 78...| cluster0 | platform | | [] | | [] |
| 89...| ens513f3 | None | | [u'ens513f3'] | | [] |
| 97...| ens803f1 | None | | [u'ens803f1'] | | [] |
| d6...| pxeboot0 | platform | | [u'eno2'] | | [] |
| d6...| mgmt0 | platform | | [] | | [] |
+---...+----------+----------+...+---------------+...+-------------------+
#. Attach an interface to a data network.
Use a command sequence of the following form:
.. code-block:: none
~(keystone_admin)]$ system host-if-modify -n <ifname> -m <mtu> -c <ifclass> <hostname> <ethname> [--ipv4-mode=ip4_mode [ipv4-pool addr_pool]] [--ipv6-mode=ip6_mode [ipv6-pool addr_pool]]
~(keystone_admin)]$ system interface-datanetwork-assign <hostname> <ifname> <data network>
where the following options are available:
**ifname**
A name for the interface.
**mtu**
The MTU for the interface.
.. note::
The MTU must be equal to or larger than the MTU of the data network
to which the interface is attached.
**ifclass**
The class of the interface. The valid classes are **platform**,
**data**, **pci-sriov**, and **pci-passthrough**.
**data network**
The name or ID of the data network to assign the interface to.
**hostname**
The name or UUID of the host.
**ethname**
The name or UUID of the Ethernet interface to use.
**ip4\_mode**
The mode for assigning IPv4 addresses to a data interface \(static or
pool.\)
**ip6\_mode**
The mode for assigning IPv6 addresses to a data interface \(static or
pool.\)
**addr\_pool**
The name of an IPv4 or IPv6 address pool, for use with the pool mode
of IP address assignment for data interfaces.
.. xreflink For valid values, see |node-doc|: :ref:`Interface
Settings <interface-settings>`.
The following example attaches an interface named **enp0s9** to a VLAN
data network named **datanet-a**, using the Ethernet interface
**enp0s9** on **worker-0**:
.. code-block:: none
~(keystone_admin)]$ system host-if-modify -n enp0s9 -c data worker-0 enp0s9
+-------------------+---------------------------------------+
| Property | Value |
+-------------------+---------------------------------------+
| ifname | enp0s3 |
| ifclass | data |
| iftype | ethernet |
| ports | [u'enp0s3'] |
| datanetworks | datanet-a |
| imac | 08:00:27:66:38:c6 |
| imtu | 1500 |
| aemode | None |
| schedpolicy | None |
| txhashpolicy | None |
| uuid | 4ff97cc5-8e59-4763-9a85-c4be3996ddbe |
| ihost_uuid | 327b2136-ffb6-4cd5-8fed-d2ec545302aa |
| vlan_id | None |
| uses | [] |
| used_by | [] |
| created_at | 2015-12-23T13:04:49.768322+00:00 |
| updated_at | 2015-12-23T16:16:19.540661+00:00 |
| sriov_numvfs | 0 |
| ipv4_mode | disabled |
| ipv6_mode | disabled |
| accelerated | [u'True'] |
+-------------------+---------------------------------------+
~(keystone_admin)]$ interface-datanetwork-assign controller-1 enp0s9 datanet-a

View File

@ -0,0 +1,49 @@
.. jjl1559817878161
.. _data-network-management-data-networks:
===========================
Data Networks in Kubernetes
===========================
|prod-long| data network management allows you to model the L2 networks that
are attached to node data, pci-sriov and pci-passthrough interfaces.
A data network represents a Layer 2 physical or virtual network, or set of
virtual networks, used to provide the underlying network connectivity needed
to support the application networks. Multiple data networks may be configured
as required, and realized over the same or different physical networks. Access
to external networks is typically \(although not necessarily\) granted to
worker nodes using a data network. The extent of this connectivity, including
access to the open internet, is application dependent.
Data networks are required for |prod-os| deployments and for the base
|prod-long| if you wish to deploy container applications with SR-IOV devices.
Data networks are created by the administrator to make use of an underlying set
of resources on a physical network. The following types of data networks can be
created:
**flat**
A data network mapped entirely over the physical network.
**VLAN**
A data network implemented on a physical network using a VLAN identifier.
This allows multiple data networks over the same physical network.
**VXLAN**
.. note::
This data interface is ONLY applicable to the |prod-os| application.
Static VXLAN is limited to one data network, and if configured, it must
be enabled on all openstack-compute labeled nodes.
A data network implemented across non-contiguous physical networks connected
by Layer 3 routers, using a VNI identifier. This allows multiple data
networks over physically separated Layer 2 networks.
There are no specific requirements for network services to be available on the
data network. However, you must ensure that all network services required by
the guests running on the worker nodes are available. For configuration
purposes, the worker nodes themselves are entirely served by the services
provided by the controller nodes over the internal management and cluster-host
networks.

View File

@ -0,0 +1,52 @@
.. wdq1463583173409
.. _data-networks-overview:
===================================
Data Networks in OpenStack Overview
===================================
Data networks are used to model the L2 Networks that nodes' data, pci-sriov
and pci-passthrough interfaces attach to.
.. note::
Data networks are required if you plan to deploy the openstack application
or provide SR-IOV network interface access to container workloads.
A Layer 2 physical or virtual network or set of virtual networks is used to
provide the underlying network connectivity needed to support the application
project networks. Multiple data networks may be configured as required, and
realized over the same or different physical networks. Access to external
networks is typically granted to the **openstack-compute** labeled worker nodes
using the data network. The extent of this connectivity, including access to
the open internet, is application dependent.
Data networks are created at the |prod| level. Flat, VLAN and VXLAN type
data networks are supported by the |prod-os| virtual switch. For details on
creating data networks and assigning them to node interfaces, see the
following documentation:
.. _data-networks-overview-ul-yj1-dtq-3nb:
- :ref:`Adding Data Networks Using the CLI
<adding-data-networks-using-the-cli>`
- :ref:`Assigning a Data Network to an Interface
<assigning-a-data-network-to-an-interface>`
- :ref:`Removing a Data Network Using the CLI
<removing-a-data-network-using-the-cli>`
VXLAN Data Networks are specific to |prod-os| application.
.. xreflink and are described in detail in :ref:`VXLAN Data Networks
<vxlan-data-networks>`.
Segmentation ID ranges for VLAN and VXLAN data networks are defined through
OpenStack Neutron commands, see :ref:`Adding Segmentation Ranges Using the CLI
<adding-segmentation-ranges-using-the-cli>`.
.. only:: partner
.. include:: ../_includes/data-networks-overview.rest

View File

@ -0,0 +1,41 @@
.. xoq1512159092473
.. _differences-between-dynamic-and-static-vxlan-modes:
==================================================
Differences Between Dynamic and Static VXLAN Modes
==================================================
This section summarizes the differences between dynamic and static VXLAN modes.
.. _differences-between-dynamic-and-static-vxlan-modes-table-exv-tbr-1bb:
.. list-table:: Differences between the Dynamic and Static VXLAN modes
:widths: auto
:header-rows: 1
* - Destination MAC\\mode
- Static VXLAN mode
- Dynamic VXLAN mode
* - Known MAC address
- Unicast packet is sent to destination worker node.
- Unicast packet is sent to destination worker node.
* - Unknown MAC address
- The packet is dropped.
- A multicast packet is sent to all registered nodes.
* - Broadcast MAC address
- #. If the packet is an IPv4 ARP packet, and the target IP address is
known, then a reply packet is created and sent to the originator
directly without involving the intended recipient or destination
VTEP node.
#. Otherwise the packet is cloned and a copy is sent to each
registered/known worker node on that data network.
- A multicast packet is sent to all registered nodes.
* - Multicast MAC address
- #. If the packet is an ICMPv6 ND packet, and the target IP address is
known, then a reply packet is created and sent to the originator
directly without involving the intended recipient or destination
VTEP node.
#. Otherwise the packet is cloned and a copy is sent to each
registered/known worker node on that data network.
- A multicast packet is sent to all registered nodes.

View File

@ -0,0 +1,40 @@
.. qks1559818290232
.. _displaying-data-network-information-using-horizon:
==============================================
Display Data Network Information Using Horizon
==============================================
You can view data network details from the Horizon Web interface or the CLI.
You can also view data network topologies from Horizon.
.. rubric:: |context|
Using Horizon, you can obtain information about data networks using the
following:
The **Data Network Topology** view. This is a graphical representation of all
data networks on the system and their connections to worker hosts. You can
select individual data networks to view details. You can also review active
alarms for data network connections.
.. For more information, see :ref:`The Data Network Topology View <the-data-network-topology-view>`.
.. note::
You cannot make changes from this view.
Both places use the **Data Network Details** tab to present details. If you
prefer, you can view the details using the CLI; for more information, see
:ref:`Displaying Data Network Information Using the CLI
<displaying-data-network-information-using-the-cli>`.
.. rubric:: |proc|
#. From the left pane menu, select **Admin** \> **Platform** \> **Data
Networks**.
#. Click the name of the data network to open the Data Network Overview page.
Details for the data network are displayed and, in the case of |prod-os|,
the project networks.

View File

@ -0,0 +1,39 @@
.. anh1559818482640
.. _displaying-data-network-information-using-the-cli:
==============================================
Display Data Network Information Using the CLI
==============================================
You can display information about data networks from the CLI.
.. rubric:: |proc|
.. _displaying-data-network-information-using-the-cli-steps-zln-xky-hkb:
#. Retrieve the names of the data networks.
.. code-block:: none
~(keystone_admin)$ system datanetwork-list
+--------------------------------------+--------------+----------+------+
| uuid | name | network_ | mtu |
| | | type | |
+--------------------------------------+--------------+----------+------+
| 3a575af8-01a7-44ca-9519-edaa2f06c74b | group0-data0 | vlan | 1500 |
+--------------------------------------+--------------+----------+------+
#. Review information for a data network from the CLI.
.. code-block:: none
~(keystone_admin)$ system datanetwork-show <datanet>
Where <datanet> is the name or UUID of the data network.
For example:
.. code-block:: none
~(keystone_admin)$ system datanetwork-show group0-data0

View File

@ -0,0 +1,77 @@
.. rcy1511538457696
.. _dynamic-vxlan:
=============
Dynamic VXLAN
=============
|prod-os| supports dynamic mode \(learning\) VXLAN implementation that has
each vSwitch instance registered on the network for a particular IP
multicast group, MAC addresses, and VTEP endpoints that are populated based on
neutron configuration data.
The IP multicast group, \(for example, 239.1.1.1\), is input when a new
neutron data network is provisioned. The selection of the IP multicast group
constraints flooding to only those nodes that have registered for the specified
group. The IP multicast network can work in both a single subnet \(that is,
local Layer2 environment\) or can span Layer3 segments in the customer network
for more complex routing requirements but requires IP multicast enabled routers.
In the dynamic VXLAN mode, when a VM instance sends a packet to some destination
node the vSwitch VXLAN implementation examines the destination MAC address to
determine how to treat the packet. If the destination is known, a unicast packet
is sent to the worker node hosting that VM instance. If the destination is
unknown or the packet is a broadcast/multicast packet then a multicast packet
is sent to all worker nodes. Once the destination VM instance receives the
packet and responds to the initial source worker node, it learns that the VM
is hosted from that worker node, and any future packets destined to that VM
instance are unicasted to that worker node.
.. figure:: figures/eol1510005391750.png
`Multicast Endpoint Distribution`
For broadcast and multicast packets originating from the VM instances the
vSwitch implements head-end replication to clone and send a copy of the
packet to each known worker node. This operation is expensive and will
negatively impact performance if the network is experiencing high volume of
broadcast or multicast packets.
.. _dynamic-vxlan-section-N10054-N1001F-N10001:
-------------------------------------------------
Workflow to Configure Dynamic VXLAN Data Networks
-------------------------------------------------
Use the following workflow to create dynamic VXLAN data networks and add
segmentation ranges using CLI.
.. _dynamic-vxlan-ol-bpj-dlb-1cb:
#. Create a VXLAN data network, see :ref:`Adding Data Networks
<adding-data-networks-using-the-cli>`.
#. Add segmentation ranges to dynamic VXLAN \(Multicast VXLAN\) data networks,
see :ref:`Adding Segmentation Ranges Using the CLI
<adding-segmentation-ranges-using-the-cli>`.
#. Configure the endpoint IP addresses of the worker nodes using the web
administration interface or the CLI:
- To configure static IP addresses for individual data interfaces, see:
:ref:`Adding a Static IP Address to a Data Interface
<adding-a-static-ip-address-to-a-data-interface>`
- To assign IP addresses from predefined address pools, see:
:ref:`Using IP Address Pools for Data Interfaces
<using-ip-address-pools-for-data-interfaces>`
#. Establish routes between the hosts, see :ref:`Adding and Maintaining Routes
for a VXLAN Network <adding-and-maintaining-routes-for-a-vxlan-network>`.
For more information on the differences between the dynamic and static VXLAN
modes, see :ref:`Differences Between Dynamic and Static VXLAN Modes
<differences-between-dynamic-and-static-vxlan-modes>`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -0,0 +1,15 @@
===================================
|prod-long| Data Network Management
===================================
- :ref:`Data Networks <data-network-management-data-networks>`
- Displaying Data Network Information
- :ref:`Displaying Data Network Information Using Horizon <displaying-data-network-information-using-horizon>`
- :ref:`Displaying Data Network Information Using the CLI <displaying-data-network-information-using-the-cli>`
- :ref:`The Data Network Topology View <the-data-network-topology-view>`
- :ref:`Adding Data Networks Using the CLI <adding-data-networks-using-the-cli>`
- :ref:`Assigning a Data Network to an Interface <assigning-a-data-network-to-an-interface>`
- :ref:`Removing a Data Network Using the CLI <removing-a-data-network-using-the-cli>`

View File

@ -0,0 +1,101 @@
.. Data networks file, created by
sphinx-quickstart on Thu Sep 3 15:14:59 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
=============
Data Networks
=============
----------
Kubernetes
----------
.. toctree::
:maxdepth: 1
data-network-management-data-networks
***********************************
Displaying data network information
***********************************
.. toctree::
:maxdepth: 1
displaying-data-network-information-using-horizon
displaying-data-network-information-using-the-cli
the-data-network-topology-view
*********************************************
Adding, assigning, and removing data networks
*********************************************
.. toctree::
:maxdepth: 1
adding-data-networks-using-the-cli
assigning-a-data-network-to-an-interface
removing-a-data-network-using-the-cli
-------------------
StarlingX OpenStack
-------------------
.. toctree::
:maxdepth: 1
data-networks-overview
*******************
VXLAN data networks
*******************
.. toctree::
:maxdepth: 1
dynamic-vxlan
static-vxlan
differences-between-dynamic-and-static-vxlan-modes
**************************
Adding segmentation ranges
**************************
.. toctree::
:maxdepth: 1
adding-segmentation-ranges-using-the-cli
************************************
Data network interface configuration
************************************
.. toctree::
:maxdepth: 1
configuring-data-interfaces
configuring-data-interfaces-for-vxlans
******************************
MTU values of a data interface
******************************
.. toctree::
:maxdepth: 1
changing-the-mtu-of-a-data-interface-using-the-cli
changing-the-mtu-of-a-data-interface
***********************************
VXLAN data network setup completion
***********************************
.. toctree::
:maxdepth: 1
adding-a-static-ip-address-to-a-data-interface
managing-data-interface-static-ip-addresses-using-the-cli
using-ip-address-pools-for-data-interfaces
managing-ip-address-pools-using-the-cli
adding-and-maintaining-routes-for-a-vxlan-network

View File

@ -0,0 +1,94 @@
.. jow1425584170078
.. _managing-data-interface-static-ip-addresses-using-the-cli:
=======================================================
Manage Data Interface Static IP Addresses Using the CLI
=======================================================
If you prefer, you can create and manage static addresses for data interfaces
using the CLI.
.. rubric:: |context|
For more information about using static addresses for data interfaces, see
:ref:`Adding a Static IP Address to a Data Interface
<adding-a-static-ip-address-to-a-data-interface>`.
.. rubric:: |prereq|
To make interface changes, you must lock the worker node first.
.. rubric:: |proc|
.. _managing-data-interface-static-ip-addresses-using-the-cli-steps-zkx-d1h-hr:
1. Lock the worker node.
2. Set the interface to support an IPv4 or IPv6 address, or both.
.. code-block:: none
~(keystone_admin)]$ system host-if-modify <node> <ifname> --ipv4-mode=<ipv4mode> --ipv6-mode=<ipv6mode>
where
**node**
is the name or UUID of the worker node
**ifname**
is the name of the interface
**ipv4mode**
is either **disabled** or **static**
**ipv6mode**
is either **disabled** or **static**
#. Add an IPv4 or IPv6 address to the interface.
.. code-block:: none
~(keystone_admin)]$ system host-addr-add <node> <ifname> <ip_address> <prefix>
where
**node**
is the name or UUID of the worker node
**ifname**
is the name of the interface
**ip\_address**
is an IPv4 or IPv6 address
**prefix**
is the netmask length for the address
To delete an address, use the following commands:
.. code-block:: none
~(keystone_admin)]$ system host-addr-list <hostname/ID>
This displays the UUIDs of existing addresses, as shown in this example
below.
.. code-block:: none
~(keystone_admin)]$ system host-addr-list worker-0
+-----------------------+--------+------------------------+--------+
| uuid | ifname | address | prefix |
+-----------------------+--------+------------------------+--------+
| 290629f6-41e5-48d9... | ae0 | 2605:6400:2:fed5:22... | 112 |
| 5de0e0bf-21fc-4532... | ae0 | 2605:6400:2:fed5:22... | 122 |
| e78923d7-3ccf-4332... | ae0 | 192.168.61.70 | 27 |
+-----------------------+--------+------------------------+--------+
.. code-block:: none
~(keystone_admin)]$ system host-addr-delete <uuid>
where **uuid** is the UUID of the address.
#. Unlock the worker node and wait for it to become available.

View File

@ -0,0 +1,99 @@
.. jow1445966287915
.. _managing-ip-address-pools-using-the-cli:
=====================================
Manage IP Address Pools Using the CLI
=====================================
You can create and manage address pools using the CLI:
.. contents::
:local:
:depth: 1
.. rubric:: |prereq|
To make interface changes, you must lock the worker node first.
.. _managing-ip-address-pools-using-the-cli-section-N1003C-N1001F-N10001:
------------------------
Creating an address pool
------------------------
To create an address pool, use a command of the following form:
.. code-block:: none
~(keystone_admin)]$ system addrpool-add <name> <network> <prefix> [-- order <assign_order>] [--ranges <addr_ranges>]
where:
**<name>**
is a name used to select the pool during data interface setup
**<network>**
is the subnet and mask for the range \(for example, **192.168.1.0**\)
**<prefix>**
is the subnet mask, expressed in network prefix length notation \(for
example, **24**\)
**<assign\_order>**
is the order in which to assign addresses from the pool \(random or
sequential\). The default is random.
**<addr\_ranges>**
is a set of IP address ranges to use for assignment, where the start
and end IP address of each range is separated by a dash, and the ranges
are separated by commas \(for example, **192.168.1.10-192.168.1.20,
192.168.1.35-192.168.1.45**\). If no range is specified, the full range is
used.
.. _managing-ip-address-pools-using-the-cli-section-N10109-N1001F-N10001:
---------------------
Listing address pools
---------------------
To list existing address pools, use a command of the following form:
.. code-block:: none
~(keystone_admin)]$ system addrpool-show <uuid>
where **<uuid>** is the universally unique identifier for the pool.
.. _managing-ip-address-pools-using-the-cli-section-N10131-N1001F-N10001:
-------------------------
Modifying an address pool
-------------------------
To modify an address pool, use a command of the following form:
.. code-block:: none
~(keystone_admin)]$ system addrpool-modify <uuid> [--name <name>] [-- order <assign_order>] [--ranges <addr_ranges>]
.. _managing-ip-address-pools-using-the-cli-section-N1015F-N1001F-N10001:
------------------------
Deleting an address pool
------------------------
To delete an address pool, use a command of the following form:
.. code-block:: none
~(keystone_admin)]$ system addrpool-delete <uuid>
.. rubric:: |postreq|
To use address pools with data interfaces, see :ref:`Using IP Address Pools
for Data Interfaces <using-ip-address-pools-for-data-interfaces>`.
.. seealso::
For more information about address pools, see :ref:`Using IP Address Pools
for Data Interfaces <using-ip-address-pools-for-data-interfaces>`.

View File

@ -0,0 +1,54 @@
.. lnl1559819027423
.. _removing-a-data-network-using-the-cli:
===================================
Remove a Data Network Using the CLI
===================================
Before you can delete a data network, you must remove any interface
associations.
.. rubric:: |context|
Complete the following steps to delete a data interface.
.. rubric:: |prereq|
The following procedure requires that the host be locked.
.. rubric:: |proc|
#. Remove the data network from the interface.
#. Identify the interface to be removed.
For example:
.. code-block:: none
~(keystone_admin)$ system interface-datanetwork-list controller-1
+--------------+--------------------------------------+--------+------------------+
| hostname | uuid | ifname | datanetwork_name |
+--------------+--------------------------------------+--------+------------------+
| controller-1 | 212d5afc-e417-49fe-919a-d94e9b46c236 | sriov0 | group0-data0 |
| controller-1 | 6c2f7066-3889-4291-8928-5fb4b2bccfee | data0 | group0-data0 |
| controller-1 | c4ac3c62-283e-491f-a08b-2e4a5ece205c | pthru0 | group0-data0 |
+--------------+--------------------------------------+--------+------------------+
#. Remove the network.
For example:
.. code-block:: none
~(keystone_admin)$ system interface-datanetwork-remove c4ac3c62-283e-491f-a08b-2e4a5ece205c
Deleted Interface DataNetwork: c4ac3c62-283e-491f-a08b-2e4a5ece205c
#. Delete the data network from the system.
.. code-block:: none
~[keystone_admin]$ system datanetwork-delete <datanetworkUUID>
where <datanetworkUUID> is the UUID of the data network.

View File

@ -0,0 +1,56 @@
.. drb1511538596277
.. _static-vxlan:
============
Static VXLAN
============
The static unicast mode relies on the mapping of neutron ports to worker nodes
to receive the packet in order to reach the VM.
In this mode there is no multicast addressing or multicast packets sent from
the worker nodes, neither is there any learning. In contrast to the dynamic
VXLAN mode, any packets destined to unknown MAC addresses are dropped. To
ensure that there are no unknown endpoints the system examines the neutron
port DB and gathers the list of mappings between port MAC/IP addresses and the
hostname on which they reside. This information is then propagated throughout
the system to pre-provision endpoint entries into all vSwitch instances. This
ensures that each vSwitch knows how to reach all VM instances that are related
to any local VM instances.
Static VXLAN is limited to use on one data network. If configured, it must be
enabled on all OpenStack worker nodes.
.. figure:: figures/oeg1510005898965.png
`Static Endpoint Distribution`
.. note::
In the static mode there is no dynamic endpoint learning. This means that
if a node does not have an entry for some destination MAC address it will
not create an entry even if it receives a packet from that device.
.. _static-vxlan-section-N1006B-N1001F-N10001:
------------------------------------------------
Workflow to Configure Static VXLAN Data Networks
------------------------------------------------
Use the following workflow to create static VXLAN data networks and add
segmentation ranges using the CLI.
.. _static-vxlan-ol-bpj-dlb-1cb:
#. Create a VXLAN data network, see :ref:`Adding Data Networks Using the CLI
<adding-data-networks-using-the-cli>`.
#. Add segmentation ranges to static VXLAN data networks, see :ref:`Adding
Segmentation Ranges Using the CLI <adding-segmentation-ranges-using-the-cli>`.
#. Establish routes between the hosts, see :ref:`Adding and Maintaining Routes
for a VXLAN Network <adding-and-maintaining-routes-for-a-vxlan-network>`.
For more information on the differences between the dynamic and static VXLAN
modes, see :ref:`Differences Between Dynamic and Static VXLAN Modes
<differences-between-dynamic-and-static-vxlan-modes>`.

View File

@ -0,0 +1,89 @@
.. vkv1559818533210
.. _the-data-network-topology-view:
==============================
The Data Network Topology View
==============================
The Data Network Topology view shows data networks and worker host data
interface connections for the system using a color-coded graphical display.
Active alarm information is also shown in real time. You can select individual
hosts or networks to highlight their connections and obtain more details.
.. contents::
:local:
:depth: 1
To display this view, select **Admin** \> **Platform** \> **Data Network
Topology**.
.. image:: figures/sqw1475425312420.png
:height: 365px
.. _the-data-network-topology-view-section-N1002F-N1001C-N10001:
------------------------
Selection and Navigation
------------------------
The Data Network Topology view shows all worker hosts and data networks
graphically in a framed topology window, and lists them by name in the **Worker
Hosts** and **Data Networks** lists to the left of the window. You can select
an entity using the window or the lists. The selected entity is highlighted in
both places.
If the topology of the system is too large to fit in the window, you can drag
inside the window to see other areas. You can also bring an entity into view by
selecting it from the lists. The view is panned automatically to show the
entity.
.. _the-data-network-topology-view-section-N1004E-N1001C-N10001:
-------------------------------
Additional Details for Entities
-------------------------------
When you select an entity, associated entities are highlighted in the **Worker
Hosts** list or the **Data Networks** list. For example, if you select the
**group0-data0** data network, all hosts attached to it are highlighted in the
**Worker Hosts** list.
Additional information for the selected entity is available in tabbed pages
below the topology window.
.. _the-data-network-topology-view-ul-z5z-czh-mx:
- For a worker host, the additional information includes the **Overview**,
**Interfaces**, and **LLDP** tabs from the Host Detail, as well as a
**Related Alarms** tab that lists any active alarms associated with the
host.
- For a data network, the additional information includes the
**Data Network Detail** tab from the Data Network Overview, and a
**Related Alarms** tab that lists any active alarms associated with the
data network.
.. _the-data-network-topology-view-section-N1009C-N1001C-N10001:
---------------
Alarm Reporting
---------------
Active alarms for entities are displayed in real time in the topology window,
using icons superimposed on the entities. The alarms are color-coded for
severity using the same colors as the Global Alarm Banner. Details for the
alarms are listed in the **Related Alarms** tab for the entity.
.. image:: figures/eal1475518780745.png
.. _the-data-network-topology-view-section-N100AD-N1001C-N10001:
------------------------------
Labels for Network Connections
------------------------------
Network connections in the topology window may be labeled with the data
interface name \(displayed above the connection line\) and LLDP neighbor
information \(displayed below the connection line\). You can show or hide the
labels using a button above the lists \(**Show Labels** or **Hide Labels**\).

View File

@ -0,0 +1,72 @@
.. jow1445966231060
.. _using-ip-address-pools-for-data-interfaces:
========================================
Use IP Address Pools for Data Interfaces
========================================
You can create pools of IP addresses for use with data interfaces.
.. rubric:: |context|
As an alternative to manually adding static IP addresses to data interfaces for
use with VXLANs, you can define pools of IP addresses and associate them with
one or more data interfaces. Each pool consists of one or more contiguous
ranges of IPv4 or IPv6 addresses. When a data interface is associated with a
pool, its IP address is allocated from the pool. The allocation may be either
random or sequential, depending on the settings for the pool.
You can use the web administration interface or the CLI to create and manage
address pools. For information about using the CLI, see :ref:`Managing IP
Address Pools Using the CLI <managing-ip-address-pools-using-the-cli>`.
.. rubric:: |prereq|
To make interface changes, you must lock the compute node first.
.. rubric:: |proc|
#. Lock the compute node.
#. In the |prod-os| Web administration interface, open the System
Configuration page.
The System Configuration page is available from **Admin** \> **Platform**
\> **System Configuration** in the left-hand pane.
#. Select the **Address Pools** tab.
.. image:: figures/jow1445971002260.png
You can use the controls on the Address Pools page to create, update, or
delete address pools.
#. To create an address pool, click **Create Address Pool** and complete the
dialog box.
.. image:: figures/jow1445971475692.png
**Name**
A name used for selecting the pool during data interface setup.
**Network Address**
The subnet for the range \(for example, **192.168.1.0/24**\).
**Allocation Order**
The order for assigning addresses. You can select **Sequential** or
**Random** from the drop-down list.
**Address Range**
One or more ranges, where the start and end IP address of each range
is separated by a dash, and the ranges are separated by commas \(for
example, **192.168.1.10-192.168.1.20, 192.168.1.35-192.168.1.45**\).
If no range is specified, the full range is used.
.. rubric:: |postreq|
You can select an address pool by name when setting up the **IPv4 Addressing
Mode** or **IPv6 Addressing Mode** for a data interface.
See also :ref:`Managing IP Address Pools Using the CLI
<managing-ip-address-pools-using-the-cli>`

View File

@ -57,6 +57,15 @@ Configuration
configuration/index
------------------------------------------------
Data Network Configuration and Management Guides
------------------------------------------------
.. toctree::
:maxdepth: 2
datanet/index
----------------
Fault Management
----------------