Merge "Revert "Add neutron ML2 plugin info to instalation guid""
This commit is contained in:
commit
97aa41bce1
@ -4,9 +4,8 @@
|
|||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
xml:id="section_networking-routers-with-private-networks">
|
xml:id="section_networking-routers-with-private-networks">
|
||||||
<title>Per-tenant routers with private networks</title>
|
<title>Per-tenant routers with private networks</title>
|
||||||
<para>This section describes how to install the Networking service
|
<para>This section describes how to install the Networking service and its components for a
|
||||||
and its components for a per-tenant routers with private
|
per-tenant routers with private networks use case.</para>
|
||||||
networks use case.</para>
|
|
||||||
<informalfigure>
|
<informalfigure>
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
@ -65,50 +64,35 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Controller Node</td>
|
<td>Controller Node</td>
|
||||||
<td><para>Runs the Networking service, Identity, and
|
<td><para>Runs the Networking service, Identity, and all of the Compute services that are required to
|
||||||
all of the Compute services that are required
|
deploy VMs (<systemitem class="service">nova-api</systemitem>, <systemitem
|
||||||
to deploy VMs (<systemitem class="service"
|
class="service">nova-scheduler</systemitem>, for example). The node must
|
||||||
>nova-api</systemitem>, <systemitem
|
have at least one network interface, which is connected to the Management
|
||||||
class="service"
|
Network. The host name is controlnode, which every other node resolves to
|
||||||
>nova-scheduler</systemitem>, for
|
the IP of the controller node.</para><note>
|
||||||
example). The node must have at least one
|
<para>The <systemitem class="service">nova-network</systemitem> service
|
||||||
network interface, which is connected to the
|
should not be running. This is replaced by Networking.</para>
|
||||||
Management Network. The host name is
|
|
||||||
controlnode, which every other node resolves
|
|
||||||
to the IP of the controller node.</para><note>
|
|
||||||
<para>The <systemitem class="service"
|
|
||||||
>nova-network</systemitem> service
|
|
||||||
should not be running. This is replaced by
|
|
||||||
Networking.</para>
|
|
||||||
</note></td>
|
</note></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Compute Node</td>
|
<td>Compute Node</td>
|
||||||
<td>Runs the Networking L2 agent and the Compute
|
<td>Runs the Networking L2 agent and the Compute services that run VMs (<systemitem
|
||||||
services that run VMs (<systemitem class="service"
|
class="service">nova-compute</systemitem> specifically, and optionally other
|
||||||
>nova-compute</systemitem> specifically, and
|
<systemitem class="service">nova-*</systemitem> services depending on
|
||||||
optionally other <systemitem class="service"
|
configuration). The node must have at least two network interfaces. One
|
||||||
>nova-*</systemitem> services depending on
|
interface communicates with the controller node through the management network.
|
||||||
configuration). The node must have at least two
|
The other node is used for the VM traffic on the data network. The VM receives
|
||||||
network interfaces. One interface communicates
|
its IP address from the DHCP agent on this network.</td>
|
||||||
with the controller node through the management
|
|
||||||
network. The other node is used for the VM traffic
|
|
||||||
on the data network. The VM receives its IP
|
|
||||||
address from the DHCP agent on this network.</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Network Node</td>
|
<td>Network Node</td>
|
||||||
<td>Runs Networking L2 agent, DHCP agent and L3 agent.
|
<td>Runs Networking L2 agent, DHCP agent and L3 agent. This node has access to the
|
||||||
This node has access to the external network. The
|
external network. The DHCP agent allocates IP addresses to the VMs on data
|
||||||
DHCP agent allocates IP addresses to the VMs on
|
network. (Technically, the addresses are allocated by the Networking server, and
|
||||||
data network. (Technically, the addresses are
|
distributed by the dhcp agent.) The node must have at least two network
|
||||||
allocated by the Networking server, and
|
interfaces. One interface communicates with the controller node through the
|
||||||
distributed by the dhcp agent.) The node must have
|
management network. The other interface is used as external network. GRE tunnels
|
||||||
at least two network interfaces. One interface
|
are set up as data networks.</td>
|
||||||
communicates with the controller node through the
|
|
||||||
management network. The other interface is used as
|
|
||||||
external network. GRE tunnels are set up as data
|
|
||||||
networks.</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Router</td>
|
<td>Router</td>
|
||||||
@ -122,62 +106,49 @@
|
|||||||
<para><emphasis role="bold">Controller node</emphasis></para>
|
<para><emphasis role="bold">Controller node</emphasis></para>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Relevant Compute services are installed, configured,
|
<para>Relevant Compute services are installed, configured, and running.</para>
|
||||||
and running.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Glance is installed, configured, and running. In
|
<para>Glance is installed, configured, and running. In
|
||||||
addition, an image named tty must be present.</para>
|
addition, an image named tty must be present.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Identity is installed, configured, and running. A
|
<para>Identity is installed, configured, and running. A Networking user named <emphasis
|
||||||
Networking user named <emphasis role="bold"
|
role="bold">neutron</emphasis> should be created on tenant <emphasis role="bold"
|
||||||
>neutron</emphasis> should be created on tenant
|
>service</emphasis> with password <emphasis role="bold"
|
||||||
<emphasis role="bold">service</emphasis> with
|
>NEUTRON_PASS</emphasis>.</para>
|
||||||
password <emphasis role="bold"
|
|
||||||
>NEUTRON_PASS</emphasis>.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Additional services: <itemizedlist>
|
<para>Additional services: <itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>RabbitMQ is running with default guest
|
<para>RabbitMQ is running with default guest and its password</para>
|
||||||
and its password</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem
|
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<para>MySQL server (user is <emphasis role="bold">root</emphasis> and
|
||||||
<para>MySQL server (user is <emphasis
|
password is <emphasis role="bold">root</emphasis>)</para>
|
||||||
role="bold">root</emphasis> and
|
|
||||||
password is <emphasis role="bold"
|
|
||||||
>root</emphasis>)</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist></para>
|
</itemizedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
<para><emphasis role="bold">Compute node</emphasis></para>
|
<para><emphasis role="bold">Compute node</emphasis></para>
|
||||||
<para>Compute is installed and configured.</para>
|
<para>Compute is installed and configured.</para>
|
||||||
<section xml:id="demo_routers_with_private_networks_installions">
|
<section xml:id="demo_routers_with_private_networks_installions">
|
||||||
<title>Install</title>
|
<title>Install</title>
|
||||||
<para>
|
<para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Controller
|
<para><emphasis role="bold">Controller nodeNetworking server</emphasis><orderedlist>
|
||||||
nodeNetworking server</emphasis><orderedlist>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Install the Networking
|
<para>Install the Networking server.</para>
|
||||||
server.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem
|
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<para>Create database <emphasis role="bold"
|
||||||
<para>Create database <emphasis
|
>ovs_neutron</emphasis>.</para>
|
||||||
role="bold"
|
|
||||||
>ovs_neutron</emphasis>.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the Networking
|
<para>Update the Networking configuration file, <filename>
|
||||||
configuration file, <filename>
|
/etc/neutron/neutron.conf</filename>, with plug-in choice
|
||||||
/etc/neutron/neutron.conf</filename>,
|
and Identity Service user as necessary:</para>
|
||||||
with plug-in choice and Identity
|
|
||||||
Service user as necessary:</para>
|
|
||||||
<programlisting language="ini" os="rhel;centos;fedora;opensuse;sles;ubuntu">[DEFAULT]
|
<programlisting language="ini" os="rhel;centos;fedora;opensuse;sles;ubuntu">[DEFAULT]
|
||||||
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
@ -195,30 +166,24 @@ rabbit_host = controller
|
|||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem
|
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<para>Update the plug-in configuration file,
|
||||||
<para>Update the plug-in configuration
|
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>:</para>
|
||||||
file,
|
|
||||||
<filename>/etc/neutron/plugins/ml2/ml2_conf.ini</filename>:</para>
|
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
|
|
||||||
connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
|
connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
|
||||||
|
|
||||||
[ovs]
|
[ovs]
|
||||||
tenant_network_type = gre
|
tenant_network_type = gre
|
||||||
[ml2_type_gre]
|
|
||||||
tunnel_id_ranges = 1:1000
|
tunnel_id_ranges = 1:1000
|
||||||
|
enable_tunneling = True
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem
|
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<para>Start the Networking server</para>
|
||||||
<para>Start the Networking
|
<para>The Networking server can be a service of the operating
|
||||||
server</para>
|
system. The command to start the service depends on your
|
||||||
<para>The Networking server can be a
|
operating system. The following command runs the Networking
|
||||||
service of the operating system.
|
server directly:</para>
|
||||||
The command to start the service
|
|
||||||
depends on your operating system.
|
|
||||||
The following command runs the
|
|
||||||
Networking server directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-server --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
<screen><prompt>#</prompt> <userinput>neutron-server --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
||||||
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -230,12 +195,9 @@ tunnel_id_ranges = 1:1000
|
|||||||
<para>Install Compute services.</para>
|
<para>Install Compute services.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the Compute configuration
|
<para>Update the Compute configuration file, <filename>
|
||||||
file, <filename>
|
/etc/nova/nova.conf</filename>. Make sure the following line
|
||||||
/etc/nova/nova.conf</filename>.
|
appears at the end of this file:</para>
|
||||||
Make sure the following line
|
|
||||||
appears at the end of this
|
|
||||||
file:</para>
|
|
||||||
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
||||||
|
|
||||||
neutron_admin_username=neutron
|
neutron_admin_username=neutron
|
||||||
@ -249,165 +211,137 @@ libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Restart relevant Compute
|
<para>Restart relevant Compute services.</para>
|
||||||
services.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist></para>
|
</orderedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Compute and Network
|
<para><emphasis role="bold">Compute and Network nodeL2 agent</emphasis><orderedlist>
|
||||||
nodeL2 agent</emphasis><orderedlist>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Install and start Open
|
<para>Install and start Open vSwitch.</para>
|
||||||
vSwitch.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Install the L2 agent (Neutron
|
<para>Install the L2 agent (Neutron Open vSwitch agent).</para>
|
||||||
Open vSwitch agent).</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add the integration bridge to
|
<para>Add the integration bridge to the Open vSwitch:</para>
|
||||||
the Open vSwitch:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-int</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-int</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the Networking
|
<para>Update the Networking configuration file, <filename>
|
||||||
configuration file, <filename>
|
/etc/neutron/neutron.conf</filename>:</para>
|
||||||
/etc/neutron/neutron.conf</filename>:</para>
|
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = controller
|
rabbit_host = controller
|
||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the plug-in configuration
|
<para>Update the plug-in configuration file, <filename>
|
||||||
file, <filename>
|
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>.</para>
|
||||||
/etc/neutron/plugins/ml2/ml2_conf.ini</filename>.</para>
|
<para>Compute node:</para>
|
||||||
<para>Compute Node:</para>
|
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
connection = mysql://root:root@controlnode:3306/neutron_ml2?charset=utf8
|
connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
|
||||||
[ml2]
|
|
||||||
tenant_network_type = gre
|
|
||||||
[ml2_type_gre]
|
|
||||||
tunnel_id_ranges = 1:1000
|
|
||||||
[ovs]
|
[ovs]
|
||||||
|
tenant_network_type = gre
|
||||||
|
tunnel_id_ranges = 1:1000
|
||||||
|
enable_tunneling = True
|
||||||
local_ip = 9.181.89.202
|
local_ip = 9.181.89.202
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>Network node:</para>
|
<para>Network node:</para>
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
connection = mysql://root:root@controlnode:3306/neutron_ml2?charset=utf8
|
connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
|
||||||
[ml2]
|
|
||||||
tenant_network_type = gre
|
|
||||||
[ml2_type_gre]
|
|
||||||
tunnel_id_ranges = 1:1000
|
|
||||||
[ovs]
|
[ovs]
|
||||||
|
tenant_network_type = gre
|
||||||
|
tunnel_id_ranges = 1:1000
|
||||||
|
enable_tunneling = True
|
||||||
local_ip = 9.181.89.203
|
local_ip = 9.181.89.203
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create the integration bridge
|
<para>Create the integration bridge <emphasis role="bold"
|
||||||
<emphasis role="bold"
|
>br-int</emphasis>:</para>
|
||||||
>br-int</emphasis>:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl --may-exist add-br br-int</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl --may-exist add-br br-int</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Start the Networking L2
|
<para>Start the Networking L2 agent</para>
|
||||||
agent</para>
|
|
||||||
<para>The Networking Open vSwitch L2
|
<para>The Networking Open vSwitch L2
|
||||||
agent can be a service of operating
|
agent can be a service of operating
|
||||||
system. The command to start
|
system. The command to start depends
|
||||||
depends on your operating systems.
|
on your operating systems. The following command
|
||||||
The following command runs the
|
runs the service directly:
|
||||||
service directly:</para>
|
</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-openvswitch-agent --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
<screen><prompt>#</prompt> <userinput>neutron-openvswitch-agent --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
||||||
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist></para>
|
</orderedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Network nodeDHCP
|
<para><emphasis role="bold">Network nodeDHCP agent</emphasis><orderedlist>
|
||||||
agent</emphasis><orderedlist>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Install the DHCP agent.</para>
|
<para>Install the DHCP agent.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the Networking
|
<para>Update the Networking configuration file, <filename>
|
||||||
configuration file, <filename>
|
/etc/neutron/neutron.conf</filename></para>
|
||||||
/etc/neutron/neutron.conf</filename></para>
|
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = controller
|
rabbit_host = controller
|
||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
allow_overlapping_ips = True</programlisting>
|
allow_overlapping_ips = True</programlisting>
|
||||||
<para><emphasis role="bold">Set
|
<para><emphasis role="bold">Set
|
||||||
<literal>allow_overlapping_ips</literal>
|
<literal>allow_overlapping_ips</literal> because TenantA
|
||||||
because TenantA and TenantC use
|
and TenantC use overlapping subnets.</emphasis></para>
|
||||||
overlapping
|
|
||||||
subnets.</emphasis></para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the DHCP configuration
|
<para>Update the DHCP configuration file <filename>
|
||||||
file <filename>
|
/etc/neutron/dhcp_agent.ini</filename></para>
|
||||||
/etc/neutron/dhcp_agent.ini</filename></para>
|
|
||||||
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</programlisting>
|
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Start the DHCP agent.</para>
|
<para>Start the DHCP agent.</para>
|
||||||
<para>The Networking DHCP agent can be
|
<para>The Networking DHCP agent can be a service of operating
|
||||||
a service of operating system. The
|
system. The command to start the service depends on your
|
||||||
command to start the service
|
operating system. The following command runs the service
|
||||||
depends on your operating system.
|
directly:</para>
|
||||||
The following command runs the
|
|
||||||
service directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-dhcp-agent --config-file /etc/neutron/neutron.conf \
|
<screen><prompt>#</prompt> <userinput>neutron-dhcp-agent --config-file /etc/neutron/neutron.conf \
|
||||||
--config-file /etc/neutron/dhcp_agent.ini</userinput></screen>
|
--config-file /etc/neutron/dhcp_agent.ini</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist></para>
|
</orderedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Network nodeL3
|
<para><emphasis role="bold">Network nodeL3 agent</emphasis><orderedlist>
|
||||||
agent</emphasis><orderedlist>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Install the L3 agent.</para>
|
<para>Install the L3 agent.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add the external network
|
<para>Add the external network bridge</para>
|
||||||
bridge</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-ex</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-ex</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add the physical interface, for
|
<para>Add the physical interface, for example eth0, that is
|
||||||
example eth0, that is connected to
|
connected to the outside network to this bridge:</para>
|
||||||
the outside network to this
|
|
||||||
bridge:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-port br-ex eth0</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-port br-ex eth0</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Update the L3 configuration file
|
<para>Update the L3 configuration file <filename>
|
||||||
<filename>
|
/etc/neutron/l3_agent.ini</filename>:</para>
|
||||||
/etc/neutron/l3_agent.ini</filename>:</para>
|
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
|
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
|
||||||
use_namespaces=True</programlisting>
|
use_namespaces=True</programlisting>
|
||||||
<para><emphasis role="bold">Set the
|
<para><emphasis role="bold">Set the
|
||||||
<literal>use_namespaces</literal>
|
<literal>use_namespaces</literal> option (it is True by
|
||||||
option (it is True by default)
|
default) because TenantA and TenantC have overlapping
|
||||||
because TenantA and TenantC have
|
subnets, and the routers are hosted on one l3 agent network
|
||||||
overlapping subnets, and the
|
node.</emphasis></para>
|
||||||
routers are hosted on one l3 agent
|
|
||||||
network node.</emphasis></para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Start the L3 agent</para>
|
<para>Start the L3 agent</para>
|
||||||
<para>The Networking L3 agent can be a
|
<para>The Networking L3 agent can be a service of operating system.
|
||||||
service of operating system. The
|
The command to start the service depends on your operating
|
||||||
command to start the service
|
system. The following command starts the agent directly:</para>
|
||||||
depends on your operating system.
|
|
||||||
The following command starts the
|
|
||||||
agent directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-l3-agent --config-file /etc/neutron/neutron.conf \
|
<screen><prompt>#</prompt> <userinput>neutron-l3-agent --config-file /etc/neutron/neutron.conf \
|
||||||
--config-file /etc/neutron/l3_agent.ini</userinput></screen>
|
--config-file /etc/neutron/l3_agent.ini</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -421,9 +355,8 @@ use_namespaces=True</programlisting>
|
|||||||
<para>All of the commands below can be executed on the network
|
<para>All of the commands below can be executed on the network
|
||||||
node.</para>
|
node.</para>
|
||||||
<note>
|
<note>
|
||||||
<para>Ensure that the following environment variables are
|
<para>Ensure that the following environment variables are set. These are used by the
|
||||||
set. These are used by the various clients to access
|
various clients to access the Identity service.</para>
|
||||||
the Identity service.</para>
|
|
||||||
</note>
|
</note>
|
||||||
<para>
|
<para>
|
||||||
<programlisting language="bash">export OS_USERNAME=admin
|
<programlisting language="bash">export OS_USERNAME=admin
|
||||||
@ -434,8 +367,7 @@ use_namespaces=True</programlisting>
|
|||||||
<para>
|
<para>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Get the tenant ID (Used as $TENANT_ID
|
<para>Get the tenant ID (Used as $TENANT_ID later):</para>
|
||||||
later):</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>keystone tenant-list</userinput>
|
<screen><prompt>#</prompt> <userinput>keystone tenant-list</userinput>
|
||||||
<computeroutput>+----------------------------------+---------+---------+
|
<computeroutput>+----------------------------------+---------+---------+
|
||||||
| id | name | enabled |
|
| id | name | enabled |
|
||||||
@ -503,19 +435,14 @@ use_namespaces=True</programlisting>
|
|||||||
+------------------+--------------------------------------------+
|
+------------------+--------------------------------------------+
|
||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
<para><emphasis role="bold">
|
<para><emphasis role="bold">
|
||||||
<literal>provider:network_type
|
<literal>provider:network_type local</literal> means that Networking
|
||||||
local</literal> means that Networking
|
does not have to realize this network through provider network.
|
||||||
does not have to realize this network
|
<literal>router:external true</literal> means that an external
|
||||||
through provider network.
|
network is created where you can create floating IP and router gateway
|
||||||
<literal>router:external
|
|
||||||
true</literal> means that an external
|
|
||||||
network is created where you can create
|
|
||||||
floating IP and router gateway
|
|
||||||
port.</emphasis></para>
|
port.</emphasis></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add an IP on external network to
|
<para>Add an IP on external network to br-ex.</para>
|
||||||
br-ex.</para>
|
|
||||||
<para>Because br-ex is the external network
|
<para>Because br-ex is the external network
|
||||||
bridge, add an IP 30.0.0.100/24 to br-ex and
|
bridge, add an IP 30.0.0.100/24 to br-ex and
|
||||||
ping the floating IP of the VM from our
|
ping the floating IP of the VM from our
|
||||||
@ -571,8 +498,7 @@ use_namespaces=True</programlisting>
|
|||||||
1.</para>
|
1.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create a subnet on the network
|
<para>Create a subnet on the network TenantA-Net:</para>
|
||||||
TenantA-Net:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>
|
<screen><prompt>#</prompt> <userinput>
|
||||||
neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantA-Net 10.0.0.0/24</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantA-Net 10.0.0.0/24</userinput>
|
||||||
@ -637,15 +563,13 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
||||||
TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657</userinput></screen>
|
TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657</userinput></screen>
|
||||||
<para>Added interface to router
|
<para>Added interface to router TenantA-R1</para>
|
||||||
TenantA-R1</para>
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|
||||||
--os-auth-url=http://localhost:5000/v2.0 \
|
--os-auth-url=http://localhost:5000/v2.0 \
|
||||||
router-gateway-set TenantA-R1 Ext-Net</userinput></screen>
|
router-gateway-set TenantA-R1 Ext-Net</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Associate a floating IP for
|
<para>Associate a floating IP for TenantA_VM1.</para>
|
||||||
TenantA_VM1.</para>
|
|
||||||
<para>1. Create a floating IP:</para>
|
<para>1. Create a floating IP:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net</userinput>
|
||||||
@ -673,8 +597,7 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| 6071d430-c66e-4125-b972-9a937c427520 | | fa:16:3e:a0:73:0d | {"subnet_id": "51e2c223-0492-4385-b6e9-83d4e6d10657", "ip_address": "10.0.0.3"} |
|
| 6071d430-c66e-4125-b972-9a937c427520 | | fa:16:3e:a0:73:0d | {"subnet_id": "51e2c223-0492-4385-b6e9-83d4e6d10657", "ip_address": "10.0.0.3"} |
|
||||||
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
|
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
|
||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
<para>3. Associate the floating IP with
|
<para>3. Associate the floating IP with the VM port:</para>
|
||||||
the VM port:</para>
|
|
||||||
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 floatingip-associate \
|
--os-auth-url=http://localhost:5000/v2.0 floatingip-associate \
|
||||||
5a1f90ed-aa3c-4df3-82cb-116556e96bf1 6071d430-c66e-4125-b972-9a937c427520</userinput>
|
5a1f90ed-aa3c-4df3-82cb-116556e96bf1 6071d430-c66e-4125-b972-9a937c427520</userinput>
|
||||||
@ -689,8 +612,7 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Ping the public network from the
|
<para>Ping the public network from the server of TenantA.</para>
|
||||||
server of TenantA.</para>
|
|
||||||
<para>In my environment, 192.168.1.0/24 is
|
<para>In my environment, 192.168.1.0/24 is
|
||||||
my public network connected with my
|
my public network connected with my
|
||||||
physical router, which also connects
|
physical router, which also connects
|
||||||
@ -710,8 +632,7 @@ rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms
|
|||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Ping floating IP of the TenantA's
|
<para>Ping floating IP of the TenantA's server:</para>
|
||||||
server:</para>
|
|
||||||
<screen><prompt>$</prompt> <userinput>ping 30.0.0.2</userinput>
|
<screen><prompt>$</prompt> <userinput>ping 30.0.0.2</userinput>
|
||||||
<computeroutput>PING 30.0.0.2 (30.0.0.2) 56(84) bytes of data.
|
<computeroutput>PING 30.0.0.2 (30.0.0.2) 56(84) bytes of data.
|
||||||
64 bytes from 30.0.0.2: icmp_req=1 ttl=63 time=45.0 ms
|
64 bytes from 30.0.0.2: icmp_req=1 ttl=63 time=45.0 ms
|
||||||
@ -724,8 +645,7 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create other servers for
|
<para>Create other servers for TenantA.</para>
|
||||||
TenantA.</para>
|
|
||||||
<para>We can create more servers for
|
<para>We can create more servers for
|
||||||
TenantA and add floating IPs for
|
TenantA and add floating IPs for
|
||||||
them.</para>
|
them.</para>
|
||||||
@ -741,8 +661,7 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
IPs.</para>
|
IPs.</para>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create networks and subnets for
|
<para>Create networks and subnets for TenantC:</para>
|
||||||
TenantC:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net1</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net1</userinput>
|
||||||
<prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
@ -798,15 +717,13 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
them to create VMs and router.</para>
|
them to create VMs and router.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create a server TenantC-VM1 for
|
<para>Create a server TenantC-VM1 for TenantC on TenantC-Net1.</para>
|
||||||
TenantC on TenantC-Net1.</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
||||||
--nic net-id=91309738-c317-40a3-81bb-bed7a3917a85 TenantC_VM1</userinput></screen>
|
--nic net-id=91309738-c317-40a3-81bb-bed7a3917a85 TenantC_VM1</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create a server TenantC-VM3 for
|
<para>Create a server TenantC-VM3 for TenantC on TenantC-Net2.</para>
|
||||||
TenantC on TenantC-Net2.</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
||||||
--nic net-id=5b373ad2-7866-44f4-8087-f87148abd623 TenantC_VM3</userinput></screen>
|
--nic net-id=5b373ad2-7866-44f4-8087-f87148abd623 TenantC_VM3</userinput></screen>
|
||||||
@ -827,13 +744,10 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
will use them later.</para>
|
will use them later.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Make sure servers get their
|
<para>Make sure servers get their IPs.</para>
|
||||||
IPs.</para>
|
<para>We can use VNC to log on the VMs to check if they get IPs. If not,
|
||||||
<para>We can use VNC to log on the VMs to
|
we have to make sure the Networking components are running right and
|
||||||
check if they get IPs. If not, we have
|
the GRE tunnels work.</para>
|
||||||
to make sure the Networking components
|
|
||||||
are running right and the GRE tunnels
|
|
||||||
work.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create and configure a router for
|
<para>Create and configure a router for
|
||||||
@ -846,13 +760,17 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
<prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
||||||
TenantC-R1 38f0b2f0-9f98-4bf6-9520-f4abede03300</userinput></screen>
|
TenantC-R1 38f0b2f0-9f98-4bf6-9520-f4abede03300</userinput></screen>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 \
|
--os-auth-url=http://localhost:5000/v2.0 \
|
||||||
router-gateway-set TenantC-R1 Ext-Net</userinput></screen>
|
router-gateway-set TenantC-R1 Ext-Net</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Checkpoint: ping from within
|
<para>Checkpoint: ping from within TenantC's servers.</para>
|
||||||
TenantC's servers.</para>
|
<para>Since we have a router connecting to two subnets, the VMs on these subnets are able to ping each other.
|
||||||
|
And since we have set the router's gateway interface, TenantC's servers are able to ping external network IPs, such as 192.168.1.1, 30.0.0.1 etc.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Associate floating IPs for TenantC's servers.</para>
|
||||||
<para>Since we have a router connecting to
|
<para>Since we have a router connecting to
|
||||||
two subnets, the VMs on these subnets
|
two subnets, the VMs on these subnets
|
||||||
are able to ping each other. And since
|
are able to ping each other. And since
|
||||||
@ -862,19 +780,7 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
192.168.1.1, 30.0.0.1 etc.</para>
|
192.168.1.1, 30.0.0.1 etc.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Associate floating IPs for TenantC's
|
<para>Associate floating IPs for TenantC's servers.</para>
|
||||||
servers.</para>
|
|
||||||
<para>Since we have a router connecting to
|
|
||||||
two subnets, the VMs on these subnets
|
|
||||||
are able to ping each other. And since
|
|
||||||
we have set the router's gateway
|
|
||||||
interface, TenantC's servers are able
|
|
||||||
to ping external network IPs, such as
|
|
||||||
192.168.1.1, 30.0.0.1 etc.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Associate floating IPs for TenantC's
|
|
||||||
servers.</para>
|
|
||||||
<para>We can use the similar commands as
|
<para>We can use the similar commands as
|
||||||
we used in TenantA's section to finish
|
we used in TenantA's section to finish
|
||||||
this task.</para>
|
this task.</para>
|
||||||
@ -885,26 +791,20 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="section_use-cases-tenant-router">
|
<section xml:id="section_use-cases-tenant-router">
|
||||||
<title>Use case: per-tenant routers with private
|
<title>Use case: per-tenant routers with private networks</title>
|
||||||
networks</title>
|
<para>This use case represents a more advanced router scenario in which each tenant gets at
|
||||||
<para>This use case represents a more advanced router scenario
|
least one router, and potentially has access to the Networking API to create additional
|
||||||
in which each tenant gets at least one router, and
|
routers. The tenant can create their own networks, potentially uplinking those networks
|
||||||
potentially has access to the Networking API to create
|
to a router. This model enables tenant-defined, multi-tier applications, with each tier
|
||||||
additional routers. The tenant can create their own
|
being a separate network behind the router. Since there are multiple routers, tenant
|
||||||
networks, potentially uplinking those networks to a
|
subnets can overlap without conflicting, since access to external networks all happens
|
||||||
router. This model enables tenant-defined, multi-tier
|
via SNAT or Floating IPs. Each router uplink and floating IP is allocated from the
|
||||||
applications, with each tier being a separate network
|
external network subnet.</para>
|
||||||
behind the router. Since there are multiple routers,
|
|
||||||
tenant subnets can overlap without conflicting, since
|
|
||||||
access to external networks all happens via SNAT or
|
|
||||||
Floating IPs. Each router uplink and floating IP is
|
|
||||||
allocated from the external network subnet.</para>
|
|
||||||
<para>
|
<para>
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
<imagedata scale="55"
|
<imagedata scale="55"
|
||||||
fileref="../common/figures/UseCase-MultiRouter.png"
|
fileref="../common/figures/UseCase-MultiRouter.png" align="left"/>
|
||||||
align="left"/>
|
|
||||||
</imageobject>
|
</imageobject>
|
||||||
</mediaobject>
|
</mediaobject>
|
||||||
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1mmQc8cBUoTEfEns-ehIyQSTvOrjUdl5xeGDv9suVyAY/edit -->
|
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1mmQc8cBUoTEfEns-ehIyQSTvOrjUdl5xeGDv9suVyAY/edit -->
|
||||||
|
@ -96,7 +96,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>Edit file <filename>/etc/neutron/neutron.conf</filename>
|
<para>Edit file <filename>/etc/neutron/neutron.conf</filename>
|
||||||
and modify:
|
and modify:
|
||||||
<programlisting language="ini">core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
|
<programlisting language="ini">core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
auth_strategy = keystone
|
auth_strategy = keystone
|
||||||
fake_rabbit = False
|
fake_rabbit = False
|
||||||
rabbit_password = guest</programlisting>
|
rabbit_password = guest</programlisting>
|
||||||
@ -104,13 +104,12 @@ rabbit_password = guest</programlisting>
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Edit file <filename>
|
<para>Edit file <filename>
|
||||||
/etc/neutron/plugins/ml2/ml2_conf.ini</filename>
|
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>
|
||||||
and modify:</para>
|
and modify:</para>
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@localhost:3306/neutron
|
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@localhost:3306/neutron
|
||||||
[ml2]
|
[ovs]
|
||||||
tenant_network_type = vlan
|
tenant_network_type = vlan
|
||||||
[ml2_type_vlan]
|
|
||||||
network_vlan_ranges = physnet1:100:2999</programlisting>
|
network_vlan_ranges = physnet1:100:2999</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -166,15 +165,13 @@ rabbit_host = controller</programlisting>
|
|||||||
<step>
|
<step>
|
||||||
<para>Update the plug-in configuration file,
|
<para>Update the plug-in configuration file,
|
||||||
<filename>
|
<filename>
|
||||||
/etc/neutron/plugins/ml2/ml2_conf.ini
|
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
|
||||||
</filename>:</para>
|
</filename>:</para>
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@controller:3306/neutron
|
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@controller:3306/neutron
|
||||||
[ml2]
|
|
||||||
tenant_network_type=vlan
|
|
||||||
[ml2_type_vlan]
|
|
||||||
network_vlan_ranges = physnet1:1:4094
|
|
||||||
[ovs]
|
[ovs]
|
||||||
|
tenant_network_type=vlan
|
||||||
|
network_vlan_ranges = physnet1:1:4094
|
||||||
bridge_mappings = physnet1:br-eth1</programlisting>
|
bridge_mappings = physnet1:br-eth1</programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
@ -281,14 +278,12 @@ rabbit_host = controller</programlisting>
|
|||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Update the file <filename>
|
<para>Update the file <filename>
|
||||||
/etc/neutron/plugins/ml2/ml2_conf.ini</filename>:</para>
|
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>:</para>
|
||||||
<programlisting language="ini">[database]
|
<programlisting language="ini">[database]
|
||||||
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@controller:3306/neutron
|
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@controller:3306/neutron
|
||||||
[ml2]
|
|
||||||
tenant_network_type = vlan
|
|
||||||
[ml2_type_vlan]
|
|
||||||
network_vlan_ranges = physnet1:1:4094
|
|
||||||
[ovs]
|
[ovs]
|
||||||
|
tenant_network_type = vlan
|
||||||
|
network_vlan_ranges = physnet1:1:4094
|
||||||
bridge_mappings = physnet1:br-eth1</programlisting>
|
bridge_mappings = physnet1:br-eth1</programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
</informaltable>
|
</informaltable>
|
||||||
<para>The demo assumes the following prerequisites:</para>
|
<para>The demo assumes the following prerequisites:</para>
|
||||||
<para><emphasis role="bold">Controller node</emphasis></para>
|
<para><emphasis role="bold">Controller node</emphasis></para>
|
||||||
<itemizedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Relevant Compute services are installed, configured,
|
<para>Relevant Compute services are installed, configured,
|
||||||
and running.</para>
|
and running.</para>
|
||||||
@ -119,13 +119,13 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</orderedlist>
|
||||||
<para><emphasis role="bold">Compute node</emphasis></para>
|
<para><emphasis role="bold">Compute node</emphasis></para>
|
||||||
<itemizedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Compute is installed and configured.</para>
|
<para>Compute is installed and configured.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</orderedlist>
|
||||||
<section xml:id="demo_flat_installions">
|
<section xml:id="demo_flat_installions">
|
||||||
<title>Install</title>
|
<title>Install</title>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
@ -162,6 +162,7 @@ core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
|||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = controller
|
rabbit_host = controller
|
||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
|
|
||||||
[keystone_authtoken]
|
[keystone_authtoken]
|
||||||
admin_tenant_name=service
|
admin_tenant_name=service
|
||||||
admin_user=neutron
|
admin_user=neutron
|
||||||
@ -176,7 +177,6 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
|||||||
connection = mysql://root:root@controller:3306/ovs_neutron?charset=utf8
|
connection = mysql://root:root@controller:3306/ovs_neutron?charset=utf8
|
||||||
[ovs]
|
[ovs]
|
||||||
network_vlan_ranges = physnet1
|
network_vlan_ranges = physnet1
|
||||||
[ovs]
|
|
||||||
bridge_mappings = physnet1:br-eth0
|
bridge_mappings = physnet1:br-eth0
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -200,12 +200,14 @@ bridge_mappings = physnet1:br-eth0
|
|||||||
following line is at the end of the
|
following line is at the end of the
|
||||||
file:</para>
|
file:</para>
|
||||||
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
||||||
|
|
||||||
neutron_admin_username=neutron
|
neutron_admin_username=neutron
|
||||||
neutron_admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
neutron_admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
||||||
neutron_admin_auth_url=http://controller:35357/v2.0/
|
neutron_admin_auth_url=http://controller:35357/v2.0/
|
||||||
neutron_auth_strategy=keystone
|
neutron_auth_strategy=keystone
|
||||||
neutron_admin_tenant_name=service
|
neutron_admin_tenant_name=service
|
||||||
neutron_url=http://controller:9696/
|
neutron_url=http://controller:9696/
|
||||||
|
|
||||||
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
|
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -248,7 +250,6 @@ notification_driver = neutron.openstack.common.notifier.rabbit_notifier</program
|
|||||||
connection = mysql://root:root@controller:3306/ovs_neutron?charset=utf8
|
connection = mysql://root:root@controller:3306/ovs_neutron?charset=utf8
|
||||||
[ovs]
|
[ovs]
|
||||||
network_vlan_ranges = physnet1
|
network_vlan_ranges = physnet1
|
||||||
[ovs]
|
|
||||||
bridge_mappings = physnet1:br-eth0</programlisting>
|
bridge_mappings = physnet1:br-eth0</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -437,14 +438,14 @@ rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms</computeroutput></screen>
|
|||||||
outside world. For each subnet on an external network, the
|
outside world. For each subnet on an external network, the
|
||||||
gateway configuration on the physical router must be
|
gateway configuration on the physical router must be
|
||||||
manually configured outside of OpenStack.</para>
|
manually configured outside of OpenStack.</para>
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
<imagedata scale="80"
|
<imagedata scale="80"
|
||||||
fileref="../common/figures/UseCase-SingleFlat.png"
|
fileref="../common/figures/UseCase-SingleFlat.png"
|
||||||
/>
|
/>
|
||||||
</imageobject>
|
</imageobject>
|
||||||
</mediaobject>
|
</mediaobject>
|
||||||
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1Jb6iSoBo4G7fv7i2EMpYTMTxesLPmEPKIbI7sVbhhqY/edit -->
|
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1Jb6iSoBo4G7fv7i2EMpYTMTxesLPmEPKIbI7sVbhhqY/edit -->
|
||||||
</section>
|
</section>
|
||||||
<?hard-pagebreak?>
|
<?hard-pagebreak?>
|
||||||
<section xml:id="section_use-cases-multi-flat">
|
<section xml:id="section_use-cases-multi-flat">
|
||||||
@ -453,14 +454,14 @@ rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms</computeroutput></screen>
|
|||||||
network use case, except that tenants can see multiple
|
network use case, except that tenants can see multiple
|
||||||
shared networks via the Networking API and can choose
|
shared networks via the Networking API and can choose
|
||||||
which network (or networks) to plug into.</para>
|
which network (or networks) to plug into.</para>
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
<imagedata scale="60"
|
<imagedata scale="60"
|
||||||
fileref="../common/figures/UseCase-MultiFlat.png"
|
fileref="../common/figures/UseCase-MultiFlat.png"
|
||||||
/>
|
/>
|
||||||
</imageobject>
|
</imageobject>
|
||||||
</mediaobject>
|
</mediaobject>
|
||||||
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/14ayGsyunW_P-wvY8OiueE407f7540JD3VsWUH18KHvU/edit -->
|
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/14ayGsyunW_P-wvY8OiueE407f7540JD3VsWUH18KHvU/edit -->
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="section_use-cases-mixed">
|
<section xml:id="section_use-cases-mixed">
|
||||||
<title>Use case: mixed flat and private network</title>
|
<title>Use case: mixed flat and private network</title>
|
||||||
|
Loading…
Reference in New Issue
Block a user