Replace all references from quantum to neutron

Verify paths for all config files
Include www/sitemap.xml
Include Install Guide

Fix bug 1198464

Change-Id: I4fbe158e06238fc8e3b42bb14e76d1813d5124aa
This commit is contained in:
Edgar Magana 2013-07-09 11:53:25 -07:00
parent e8d2ddbc5c
commit 800517b8c4
22 changed files with 1362 additions and 1524 deletions

View File

@ -8,8 +8,8 @@
<title>OpenStack Grizzly deployment guide for Ubuntu Precise,
Single node installation. </title>
<para>ASSUMPTION: Currently guide uses Nova-Network will be
updated for Quantum soon, although we have created database
and endpoint for the Quantum service.</para>
updated for Neutron soon, although we have created database
and endpoint for the Neutron service.</para>
<section xml:id="osfolubuntu-prerquisite">
<title>Prerequisites</title>
<para>One server with two NICs</para>
@ -153,7 +153,7 @@ restrict ::1
<prompt>$</prompt> <userinput>mysql -u root -proot -e "create database glance;"</userinput>
<prompt>$</prompt> <userinput>mysql -u root -proot -e "create database cinder;"</userinput>
<prompt>$</prompt> <userinput>mysql -u root -proot -e "create database keystone;"</userinput>
<prompt>$</prompt> <userinput>mysql -u root -proot -e "create database ovs_quantum;"</userinput> </screen>Add
<prompt>$</prompt> <userinput>mysql -u root -proot -e "create database ovs_neutron;"</userinput> </screen>Add
mysql permissions for the created
databases.<screen> <userinput>mysql > grant all privileges on nova.* to nova@"localhost" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on nova.* to nova@"%" identified by "openstack";</userinput>
@ -163,8 +163,8 @@ restrict ::1
<userinput>mysql > grant all privileges on cinder.* to cinder@"%" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on keystone.* to keystone@"localhost" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on keystone.* to keystone@"%" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on ovs_quantum.* to ovs_quantum@"localhost" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on ovs_quantum.* to ovs_quantum@"%" identified by "openstack";</userinput></screen></para>
<userinput>mysql > grant all privileges on ovs_neutron.* to ovs_neutron@"localhost" identified by "openstack";</userinput>
<userinput>mysql > grant all privileges on ovs_neutron.* to ovs_neutron@"%" identified by "openstack";</userinput></screen></para>
</section>
@ -195,7 +195,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
<prompt>$</prompt> <userinput>keystone user-create --name glance --pass openstack --email glance@foobar.com</userinput>
<prompt>$</prompt> <userinput>keystone user-create --name swift --pass openstack --email swift@foobar.com</userinput>
<prompt>$</prompt> <userinput>keystone user-create --name cinder --pass openstack --email cinder@foobar.com</userinput>
<prompt>$</prompt> <userinput>keystone user-create --name quantum --pass openstack --email quantum@foobar.com</userinput></screen>Create
<prompt>$</prompt> <userinput>keystone user-create --name neutron --pass openstack --email neutron@foobar.com</userinput></screen>Create
roles.<screen><prompt>$</prompt> <userinput>keystone role-create --name admin</userinput>
<prompt>$</prompt> <userinput>keystone role-create --name Member</userinput></screen></para>
<para>Create
@ -209,7 +209,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
<prompt>$</prompt> <userinput>keystone service-create --name keystone --type identity --description "OpenStack Identity Service"</userinput>
<prompt>$</prompt> <userinput>keystone service-create --name ec2 --type ec2 --description "EC2 Service"</userinput>
<prompt>$</prompt> <userinput>keystone service-create --name cinder --type volume --description "Cinder Service"</userinput>
<prompt>$</prompt> <userinput>keystone service-create --name quantum --type network --description "OpenStack Networking service"</userinput></screen>Create
<prompt>$</prompt> <userinput>keystone service-create --name neutron --type network --description "OpenStack Networking service"</userinput></screen>Create
endpoints.<programlisting># For Nova-api</programlisting></para>
<para>
<screen><prompt>$</prompt> <userinput>keystone endpoint-create --region myregion --service_id bbbd1945908f4fae90530e8721df650d --publicurl "http://172.16.30.20:8774/v2/%(tenant_id)s" --adminurl "http://10.211.55.20:8774/v2/%(tenant_id)s" --internalurl "http://10.211.55.20:8774/v2/%(tenant_id)s"
@ -236,7 +236,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
<screen><prompt>$</prompt> <userinput>keystone endpoint-create --region myregion --service_id 65a888cf384d4c68b595196661cee87d --publicurl "http://172.16.30.20:8776/v1/%(tenant_id)s" --adminurl "http://10.211.55.20:8776/v1/%(tenant_id)s" --internalurl "http://10.211.55.20:8776/v1/%(tenant_id)s"
</userinput></screen>
</para>
<programlisting>#For Quantum</programlisting>
<programlisting>#For Neutron</programlisting>
<screen><prompt>$</prompt> <userinput>keystone endpoint-create --region myregion --service-id 59877a8f97f04a2aad1e8164e14d7450 --publicurl "http://172.16.30.20:9696" --adminurl "http://10.211.55.20:9696" --internalurl "http://10.211.55.20:9696"</userinput></screen>
<para>Retrieve all the
ids.<screen><prompt>$</prompt> <userinput>keystone tenant-list</userinput></screen></para>
@ -252,7 +252,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
| id | name | enabled | email |
+----------------------------------+---------+---------+--------------------+
| 1d64219fcdeb41c3a163a761c61ef280 | nova | True | nova@foobar.com |
| 223c1711de5446f9b99c71803fc488db | quantum | True | quantum@foobar.com |
| 223c1711de5446f9b99c71803fc488db | neutron | True | neutron@foobar.com |
| 45e9461fa61e48f99de1adcd0b38eae7 | admin | True | admin@foobar.com |
| af4a1747e71d48c7834c408678f27316 | cinder | True | cinder@foobar.com |
| ceade796dee047b8b3488661a29f23cd | glance | True | glance@foobar.com |
@ -276,7 +276,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
| 53a8ae206b3645368daa9db4fe149ee5 | volume | volume | OpenStack Volume Service |
| 58e531e33059482f940de8ba9e97e5d1 | ec2 | ec2 | EC2 Service |
| 65a888cf384d4c68b595196661cee87d | cinder | volume | Cinder Service |
| 72c2cd62020f4c349e64a383b05daf8b | quantum | network | OpenStack Networking service |
| 72c2cd62020f4c349e64a383b05daf8b | neutron | network | OpenStack Networking service |
| bbbd1945908f4fae90530e8721df650d | nova | compute | OpenStack Compute Service |
+----------------------------------+----------+--------------+------------------------------+</programlisting>
<para>Adding roles.</para>
@ -297,7 +297,7 @@ export SERVICE_ENDPOINT=http://10.211.55.20:35357/v2.0/</programlisting>Source
<programlisting> # User cinder &lt;> role admin &lt;> tenant service</programlisting>
<screen><prompt>$</prompt> <userinput>keystone user-role-add --user_id af4a1747e71d48c7834c408678f27316 --role_id e45af7cf33be4dac8070aa8310144ce3 --tenant_id 2a76a11b872e4ca18adb3162924735af
</userinput></screen>
<programlisting># User quantum &lt;> role admin &lt;> tenant service </programlisting>
<programlisting># User neutron &lt;> role admin &lt;> tenant service </programlisting>
<screen><prompt>$</prompt> <userinput>keystone user-role-add --user_id 223c1711de5446f9b99c71803fc488db --role_id e45af7cf33be4dac8070aa8310144ce3 --tenant_id 2a76a11b872e4ca18adb3162924735af
</userinput></screen>
<programlisting> # User swift &lt;> role Member &lt;> tenant service</programlisting>
@ -442,10 +442,10 @@ nova-cert ubuntu-precise nova enabled :-) 2012-09-1
<title>Installing and configuring Dashboard</title>
<para>Install the
packages.<screen><prompt>$</prompt> <userinput>sudo apt-get install openstack-dashboard memcached</userinput></screen>Disable
the quantum endpoint, as of now in our setup we are not
using Quantum to do so Edit
the neutron endpoint, as of now in our setup we are not
using Neutron to do so Edit
/etc/openstack-dashboard/local_settings.py - under
TEMPLATE_DEBUG.<programlisting>QUANTUM_ENABLED = False</programlisting></para>
TEMPLATE_DEBUG.<programlisting>NEUTRON_ENABLED = False</programlisting></para>
<note>
<para>In order to change the timezone you can use either
dashboard or inside

View File

@ -44,7 +44,7 @@
start up after a reboot.</para>
<para>It works with glance- services, nova- services,
novnc, and keystone, but not with quantum or swift as
novnc, and keystone, but not with neutron or swift as
of November 22 2011. Here are the basic steps.</para>
<orderedlist>
<listitem><para>Ensure you've run ./stack.sh with all the configuration you need for your systems.</para></listitem>

View File

@ -122,7 +122,7 @@ msgid "Optional: Upgrade nova-volume to OpenStack Block Storage (Cinder). Please
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:47(para)
msgid "Optional: Upgrade nova-network to OpenStack Networking (Quantum). Please note that nova-network will be deprecated in the following release."
msgid "Optional: Upgrade nova-network to OpenStack Networking (Neutron). Please note that nova-network will be deprecated in the following release."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:53(title)
@ -178,7 +178,7 @@ msgid "Compute service (Nova) upgrade"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:195(para)
msgid "We will perform an upgrade of all the nova packages to the Folsom version. However, in this section we do not cover the upgrade to OpenStack Networking (Quantum) and OpenStack Block Storage (Cinder) of the respective and deprecated nova-network and nova-volume packages, as this will be covered in another section."
msgid "We will perform an upgrade of all the nova packages to the Folsom version. However, in this section we do not cover the upgrade to OpenStack Networking (Neutron) and OpenStack Block Storage (Cinder) of the respective and deprecated nova-network and nova-volume packages, as this will be covered in another section."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:202(para)
@ -214,7 +214,7 @@ msgid "If you are using Libvirt: <placeholder-1/>"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:284(para)
msgid "Upgrade all the packages to the latest 2012.2 version, using your distribution package manager. Note that we are not migrating nova-network and nova-volume to OpenStack Networking (Quantum) and OpenStack Block Storage (Cinder) in this step, but just upgrade those packages to Folsom."
msgid "Upgrade all the packages to the latest 2012.2 version, using your distribution package manager. Note that we are not migrating nova-network and nova-volume to OpenStack Networking (Neutron) and OpenStack Block Storage (Cinder) in this step, but just upgrade those packages to Folsom."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:291(para)
@ -306,7 +306,7 @@ msgid "We assume that all the services (including nova-volume) are migrated to F
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:434(title)
msgid "Upgrade nova-network to OpenStack Networking (Quantum)"
msgid "Upgrade nova-network to OpenStack Networking (Neutron)"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_upgrading_from_essex.xml:435(para)
@ -390,7 +390,7 @@ msgid "Networking"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_terminology.xml:151(para)
msgid "Quantum"
msgid "Neutron"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_terminology.xml:85(para)
@ -594,7 +594,7 @@ msgid "<literal>SWIFT_ENABLED</literal>: If an Object Storage (Swift) endpoint i
msgstr ""
#: ./doc/src/docbkx/openstack-install/dashboard-configure.xml:16(para)
msgid "<literal>QUANTUM_ENABLED</literal>: If a Network Connection (Quantum) service is available and configured in the Identity service catalog, set <literal>QUANTUM_ENABLED = True</literal>. Else keep it FALSE if you are not using Quantum."
msgid "<literal>NEUTRON_ENABLED</literal>: If a Network Connection (Neutron) service is available and configured in the Identity service catalog, set <literal>NEUTRON_ENABLED = True</literal>. Else keep it FALSE if you are not using Neutron."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_installidentity.xml:6(title)
@ -1074,7 +1074,7 @@ msgid "The <systemitem class=\"service\">nova-network</systemitem> service depen
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_externals.xml:102(para)
msgid "In a future OpenStack release, functionality that is currently implemented by <systemitem class=\"service\">nova-network</systemitem> will be available through a separate OpenStack project, codenamed Quantum."
msgid "In a future OpenStack release, functionality that is currently implemented by <systemitem class=\"service\">nova-network</systemitem> will be available through a separate OpenStack project, codenamed Neutron."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ch_externals.xml:108(para)
@ -1444,7 +1444,7 @@ msgid "An Object Store (<emphasis role=\"italic\">Swift</emphasis>) endpoint."
msgstr ""
#: ./doc/src/docbkx/openstack-install/dashboard-system-reqs.xml:23(para)
msgid "A <link href=\"http://wiki.openstack.org/Quantum\">Quantum</link> (networking) endpoint."
msgid "A <link href=\"http://wiki.openstack.org/Neutron\">Neutron</link> (networking) endpoint."
msgstr ""
#: ./doc/src/docbkx/openstack-install/compute-config-guest-network.xml:6(title)
@ -2024,7 +2024,7 @@ msgid "The OpenStack™ system has several key projects that are separate instal
msgstr ""
#: ./doc/src/docbkx/openstack-install/bk_openstackinstallguide.xml:61(para)
msgid "Adds chapter about Essex to Folsom upgrade for Compute and related services (excludes OpenStack Object Storage (Swift) and OpenStack Networking (Quantum)."
msgid "Adds chapter about Essex to Folsom upgrade for Compute and related services (excludes OpenStack Object Storage (Swift) and OpenStack Networking (Neutron)."
msgstr ""
#: ./doc/src/docbkx/openstack-install/bk_openstackinstallguide.xml:71(date)
@ -3157,7 +3157,7 @@ msgid "OpenStack Grizzly deployment guide for Ubuntu Precise, Single node instal
msgstr ""
#: ./doc/src/docbkx/openstack-install/ap_installingfolsom.xml:10(para)
msgid "ASSUMPTION: Currently guide uses Nova-Network will be updated for Quantum soon, although we have created database and endpoint for the Quantum service."
msgid "ASSUMPTION: Currently guide uses Nova-Network will be updated for Neutron soon, although we have created database and endpoint for the Neutron service."
msgstr ""
#: ./doc/src/docbkx/openstack-install/ap_installingfolsom.xml:15(para)
@ -3297,7 +3297,7 @@ msgid "Installing and configuring Dashboard"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ap_installingfolsom.xml:446(para)
msgid "Install the packages.<placeholder-1/>Disable the quantum endpoint, as of now in our setup we are not using Quantum to do so Edit /etc/openstack-dashboard/local_settings.py - under TEMPLATE_DEBUG.<placeholder-2/>"
msgid "Install the packages.<placeholder-1/>Disable the neutron endpoint, as of now in our setup we are not using Neutron to do so Edit /etc/openstack-dashboard/local_settings.py - under TEMPLATE_DEBUG.<placeholder-2/>"
msgstr ""
#: ./doc/src/docbkx/openstack-install/ap_installingfolsom.xml:453(para)
@ -3615,7 +3615,7 @@ msgid "Once you have tested stack.sh and tailored it to your system, you can con
msgstr ""
#: ./doc/src/docbkx/openstack-install/compute-scripted-ubuntu-install.xml:46(para)
msgid "It works with glance- services, nova- services, novnc, and keystone, but not with quantum or swift as of November 22 2011. Here are the basic steps."
msgid "It works with glance- services, nova- services, novnc, and keystone, but not with neutron or swift as of November 22 2011. Here are the basic steps."
msgstr ""
#: ./doc/src/docbkx/openstack-install/compute-scripted-ubuntu-install.xml:50(para)

View File

@ -216,7 +216,7 @@ pip|https://github.com/openstack/python-keystoneclient|0a8c96073c3dd76df346c2628
pip|https://github.com/openstack/python-novaclient.git|bfb0f70f40fdea6ee7b75dc2fb44baeadceb646d
pip|python-openid|2.2.5
pip|https://github.com/openstack/python-openstackclient.git|cd140091b5db30e9e3c95929cb5024c3b54ab139
pip|python-quantumclient|2.1
pip|python-neutronclient|2.1
pip|python-swiftclient|1.2.0
pip|pytz|2012d
pip|qpid-python|0.12
@ -232,4 +232,4 @@ pip|unittest2|0.5.1
pip|virtualenv|1.7.1.2
pip|warlock|0.4.0
pip|wsgiref|0.1.2
pip|xattr|0.6.2
pip|xattr|0.6.2

View File

@ -6,10 +6,9 @@
<title>Core Configuration File Options</title>
<section xml:id="quantum_conf">
<?dbhtml stop-chunking?>
<title>quantum.conf</title>
<para>Find the configuration settings for the OpenStack
Networking services in
<filename>/etc/quantum/quantum.conf</filename>.</para>
<title>neutron.conf</title>
<para>Find the configuration settings for the OpenStack Networking services in
<filename>/etc/neutron/neutron.conf</filename>.</para>
<section xml:id="debug_options">
<title>Debugging Options</title>
<table rules="all">
@ -94,18 +93,13 @@
<section xml:id="auth_options">
<title>Authentication Options</title>
<para>The auth_token middleware for keystone now enables
you to configure auth_token in the
<filename>quantum.conf</filename> file. You no
longer have to edit the
<filename>api-paste.ini</filename> file. This
change does not break backward compatibility. The
auth_token middleware first tries the configurations
in <filename>/etc/quantum/api-paste.ini</filename> and
then tries the <filename>quantum.conf</filename>
configuration. If you currently use
<filename>api-paste.ini</filename>, you do not
need to change it.</para>
<para>The auth_token middleware for keystone now enables you to configure auth_token in
the <filename>neutron.conf</filename> file. You no longer have to edit the
<filename>api-paste.ini</filename> file. This change does not break backward
compatibility. The auth_token middleware first tries the configurations in
<filename>/etc/neutron/api-paste.ini</filename> and then tries the
<filename>neutron.conf</filename> configuration. If you currently use
<filename>api-paste.ini</filename>, you do not need to change it.</para>
<table rules="all">
<caption>Authentication Options</caption>
@ -146,8 +140,7 @@
administrative user.</td>
</tr>
<tr>
<td>signing_dir =
/var/lib/quantum/keystone-signing</td>
<td>signing_dir = /var/lib/neutron/keystone-signing</td>
<td>(StrOpt) The signing directory. </td>
</tr>
</tbody>
@ -198,8 +191,7 @@
keystone and noauth. </td>
</tr>
<tr>
<td>
core_plugin=quantum.plugins.sample.SamplePlugin.FakePlugin </td>
<td> core_plugin=neutron.plugins.sample.SamplePlugin.FakePlugin </td>
<td>(StrOpt) The plugin to be loaded by the
service. </td>
</tr>
@ -255,15 +247,11 @@
enabled, native emulated sorting will
be enabled automatically.</para>
<note>
<para>If the plugin supports native
pagination, the plugin will returns
the maximum limit of items as
request. If the plugin didn't
support that, quantum API can
emulate the pagination behavior.
The performance of native
pagination is better than emulated
pagination. </para>
<para>If the plugin supports native pagination, the plugin will
returns the maximum limit of items as request. If the plugin
didn't support that, neutron API can emulate the pagination
behavior. The performance of native pagination is better than
emulated pagination. </para>
</note>
</td>
</tr>
@ -274,14 +262,10 @@
native sorting, it will enable
emulated sorting.</para>
<note>
<para>If the plugin supports native
sorting, the plugin will returns
ordered items as request. If the
plugin didn't support that, quantum
API can emulate the sorting
behavior. The performance of native
sorting is better than emulated
sorting. </para>
<para>If the plugin supports native sorting, the plugin will returns
ordered items as request. If the plugin didn't support that,
neutron API can emulate the sorting behavior. The performance of
native sorting is better than emulated sorting. </para>
</note>
</td>
</tr>
@ -323,17 +307,14 @@
</thead>
<tbody>
<tr>
<td>control_exchange=quantum </td>
<td>control_exchange=neutron </td>
<td>(StrOpt) AMQP exchange to connect to if
using RabbitMQ or QPID. </td>
</tr>
<tr>
<td>
rpc_back_end=quantum.openstack.common.rpc.impl_kombu </td>
<td>(StrOpt) The messaging module to use,
defaults to kombu. For qpid, make use of
quantum.openstack.common.rpc.impl_qpid.
</td>
<td> rpc_back_end=neutron.openstack.common.rpc.impl_kombu </td>
<td>(StrOpt) The messaging module to use, defaults to kombu. For qpid, make
use of neutron.openstack.common.rpc.impl_qpid. </td>
</tr>
<tr>
<td>rpc_thread_pool_size=64 </td>
@ -350,8 +331,7 @@
from call or multi call.</td>
</tr>
<tr>
<td>
allowed_rpc_exception_modules='quantum.openstack.common.exception',
<td> allowed_rpc_exception_modules='neutron.openstack.common.exception',
'nova.exception' </td>
<td>(ListOpt) Modules of exceptions that are
permitted to be recreated upon receiving
@ -530,8 +510,7 @@
</thead>
<tbody>
<tr>
<td>
notification_driver=quantum.openstack.common.notifier.list_notifier </td>
<td> notification_driver=neutron.openstack.common.notifier.list_notifier </td>
<td>(MultiStrOpt) Driver or drivers to handle
sending notifications. The default is set
as notifier as the DHCP agent makes use of
@ -549,7 +528,7 @@
</tr>
<tr>
<td>
list_notifier_drivers='quantum.openstack.common.notifier.no_op_notifier' </td>
list_notifier_drivers='neutron.openstack.common.notifier.no_op_notifier' </td>
<td>(MultiStrOpt) List of drivers to send
notifications. </td>
</tr>
@ -574,13 +553,11 @@
</thead>
<tbody>
<tr>
<td>quota_driver=quantum.quota.ConfDriver </td>
<td>(StrOpt) Default driver to use for quota
checks. If the default driver is used then
the configuration values below are in
effect. To limit quotas per tenant then
use:
<literal>quantum.db.quota_db.DbQuotaDriver</literal>
<td>quota_driver=neutron.quota.ConfDriver </td>
<td>(StrOpt) Default driver to use for quota checks. If the default driver
is used then the configuration values below are in effect. To limit
quotas per tenant then use:
<literal>neutron.db.quota_db.DbQuotaDriver</literal>
</td>
</tr>
<tr>
@ -615,7 +592,7 @@
</section>
<section xml:id="ovs_quantum_plugin">
<?dbhtml stop-chunking?>
<title>ovs_quantum_plugin.ini</title>
<title>ovs_neutron_plugin.ini</title>
<para>For information about the Open vSwitch plugin
configurations, see <link
xlink:href="http://wiki.openstack.org/ConfigureOpenvswitch"
@ -633,14 +610,11 @@
<tbody>
<tr>
<td>sql_connection=sqlite:// </td>
<td><para>(StrOpt) The details of the database
connection. For example
mysql://root:nova@127.0.0.1:3306/ovs_quantum.
Replace 127.0.0.1 above with the IP
address of the database used by the
main OpenStack Networking server.
(Leave it as is if the database runs
on this host.).</para>
<td><para>(StrOpt) The details of the database connection. For example
mysql://root:nova@127.0.0.1:3306/ovs_neutron. Replace 127.0.0.1
above with the IP address of the database used by the main OpenStack
Networking server. (Leave it as is if the database runs on this
host.).</para>
<note>
<para>Change this line to ensure that
the database values are persistent.
@ -757,16 +731,12 @@
<tbody>
<tr>
<td>rpc=True </td>
<td>(BoolOpt) If <literal>True</literal>, the
agent communicates with the plugin through
the OpenStack RPC, which is configured in
<filename>quantum.conf.</filename> If
<literal>False</literal>, the agent
polls the database for changes. If
<literal>False</literal>, you must
update the relevant database settings on
the agent so that it can access the
database. </td>
<td>(BoolOpt) If <literal>True</literal>, the agent communicates with the
plugin through the OpenStack RPC, which is configured in
<filename>neutron.conf.</filename> If <literal>False</literal>, the
agent polls the database for changes. If <literal>False</literal>, you
must update the relevant database settings on the agent so that it can
access the database. </td>
</tr>
<tr>
<td>polling_interval=2 </td>
@ -800,14 +770,11 @@
<tbody>
<tr>
<td>sql_connection=sqlite:// </td>
<td><para>(StrOpt) The details of the
database connection. For example
mysql://root:nova@127.0.0.1:3306/ovs_quantum.
Replace 127.0.0.1 above with the IP
address of the database used by the
main OpenStack Networking server.
(Leave it as is if the database
runs on this host.).</para>
<td><para>(StrOpt) The details of the database connection. For example
mysql://root:nova@127.0.0.1:3306/ovs_neutron. Replace 127.0.0.1
above with the IP address of the database used by the main
OpenStack Networking server. (Leave it as is if the database
runs on this host.).</para>
<note>
<para>This line must be changed to
ensure that the database values are
@ -896,17 +863,12 @@
<tbody>
<tr>
<td>rpc=True </td>
<td>(BoolOpt) If <literal>True</literal>,
the agent communicates with the plugin
through the OpenStack RPC, which is
configured in
<filename>quantum.conf</filename>.
If <literal>False</literal>, the agent
polls the database for changes. If
<literal>False</literal>, you must
update the relevant database settings
on the agent so that it can access the
database. </td>
<td>(BoolOpt) If <literal>True</literal>, the agent communicates with
the plugin through the OpenStack RPC, which is configured in
<filename>neutron.conf</filename>. If <literal>False</literal>,
the agent polls the database for changes. If
<literal>False</literal>, you must update the relevant database
settings on the agent so that it can access the database. </td>
</tr>
<tr>
<td>polling_interval=2 </td>
@ -949,7 +911,7 @@
more details. </td>
</tr>
<tr>
<td>dhcp_driver=quantum.agent.linux.dhcp.Dnsmasq </td>
<td>dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq </td>
<td>(StrOpt) The driver used to manage the
DHCP server. </td>
</tr>
@ -1112,11 +1074,11 @@
</tr>
<tr>
<td>metadata_proxy_shared_secret= </td>
<td>(StrOpt) When proxying metadata requests, Quantum signs the Instance-ID
<td>(StrOpt) When proxying metadata requests, Neutron signs the Instance-ID
header with a shared secret to prevent spoofing. You may select any
string for a secret, but it must match here and in the configuration
used by the Nova Metadata Server. NOTE: Nova uses a different key:
quantum_metadata_proxy_shared_secret </td>
neutron_metadata_proxy_shared_secret </td>
</tr>
<tr>
<td>admin_user= </td>
@ -1234,14 +1196,10 @@
</tr>
<tr>
<td>resync_interval=30 </td>
<td>(IntOpt) If an exception occurs on the
quantum-server service, the DHCP agent
ensures that it syncs with the
<filename>quantum.conf</filename>
configuration. The validation about
syncing occurs every
<literal>resync_interval</literal>
seconds. </td>
<td>(IntOpt) If an exception occurs on the neutron-server service, the DHCP
agent ensures that it syncs with the <filename>neutron.conf</filename>
configuration. The validation about syncing occurs every
<literal>resync_interval</literal> seconds. </td>
</tr>
</tbody>
</table></para>

View File

@ -84,12 +84,10 @@
addition to this there should be an image.</para>
</listitem>
<listitem>
<para>OpenStack Identity is installed, configured and
running. An OpenStack Networking user <emphasis
role="bold">quantum</emphasis> should be created
on tenant <emphasis role="bold"
>servicetenant</emphasis> with password <emphasis
role="bold">servicepassword</emphasis>.</para>
<para>OpenStack Identity is installed, configured and running. An OpenStack Networking
user <emphasis role="bold">neutron</emphasis> should be created on tenant <emphasis
role="bold">servicetenant</emphasis> with password <emphasis role="bold"
>servicepassword</emphasis>.</para>
</listitem>
<listitem>
<para>Additional services <itemizedlist>
@ -121,37 +119,31 @@
<para>Install the OpenStack Networking server.</para>
</listitem>
<listitem>
<para>Create database <emphasis
role="bold">ovs_quantum</emphasis>.
See the section on the <link
linkend="arch_overview">Core
Plugins</link> for the exact
details.</para>
<para>Create database <emphasis role="bold">ovs_neutron</emphasis>.
See the section on the <link linkend="arch_overview">Core
Plugins</link> for the exact details.</para>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>
setting plugin choice and Identity Service user
as necessary:</para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis> setting
plugin choice and Identity Service user as necessary:</para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
[keystone_authtoken]
admin_tenant_name=servicetenant
admin_user=quantum
admin_user=neutron
admin_password=servicepassword
</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file, <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>:</para>
<para>Update the plugin configuration file, <emphasis role="bold"
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>:</para>
<screen><computeroutput>[database]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
sql_connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-eth0
@ -172,14 +164,14 @@ bridge_mappings = physnet1:br-eth0
file, <emphasis role="bold"
>/etc/nova/nova.conf. Make sure the following is at the end of this file</emphasis>:</para>
<screen><computeroutput>
network_api_class=nova.network.quantumv2.api.API
network_api_class=nova.network.neutronv2.api.API
quantum_admin_username=quantum
quantum_admin_password=servicepassword
quantum_admin_auth_url=http://controlnode:35357/v2.0/
quantum_auth_strategy=keystone
quantum_admin_tenant_name=servicetenant
quantum_url=http://controlnode:9696/
neutron_admin_username=neutron
neutron_admin_password=servicepassword
neutron_admin_auth_url=http://controlnode:35357/v2.0/
neutron_auth_strategy=keystone
neutron_admin_tenant_name=servicetenant
neutron_url=http://controlnode:9696/
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver</computeroutput></screen>
</listitem>
@ -201,21 +193,19 @@ libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver</computero
<screen><computeroutput>sudo ovs-vsctl add-br br-int</computeroutput></screen>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>:</para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis>:</para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
notification_driver = neutron.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file, <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>:</para>
<para>Update the plugin configuration file, <emphasis role="bold"
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>:</para>
<screen><computeroutput>[database]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
sql_connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-eth0</computeroutput></screen>
@ -240,20 +230,18 @@ sudo ovs-vsctl add-port br-eth0 eth0</computeroutput></screen>
<para>Install the DHCP agent.</para>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>:</para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis>:</para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
notification_driver = neutron.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
</listitem>
<listitem>
<para>Update the DHCP configuration
file <emphasis role="bold"
>/etc/quantum/dhcp_agent.ini</emphasis>:</para>
<screen><computeroutput>interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
<para>Update the DHCP configuration file <emphasis role="bold"
>/etc/neutron/dhcp_agent.ini</emphasis>:</para>
<screen><computeroutput>interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
</listitem>
<listitem>
<para>Start the DHCP agent</para>
@ -312,7 +300,7 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</computeroutput></screen>
<para>Create a internal shared network on the
demo tenant ($TENANT_ID will be
b7445f221cda4f4a8ac7db6b218b1339):</para>
<screen><computeroutput>quantum net-create --tenant-id $TENANT_ID sharednet1 --shared --provider:network_type flat --provider:physical_network physnet1</computeroutput></screen>
<screen><computeroutput>neutron net-create --tenant-id $TENANT_ID sharednet1 --shared --provider:network_type flat --provider:physical_network physnet1</computeroutput></screen>
<screen><computeroutput>Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
@ -333,7 +321,7 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</computeroutput></screen>
</listitem>
<listitem>
<para>Create a subnet on the network:</para>
<screen><computeroutput>quantum subnet-create --tenant-id $TENANT_ID sharednet1 30.0.0.0/24</computeroutput></screen>
<screen><computeroutput>neutron subnet-create --tenant-id $TENANT_ID sharednet1 30.0.0.0/24</computeroutput></screen>
<screen><computeroutput>Created a new subnet:
+------------------+--------------------------------------------+
| Field | Value |

View File

@ -38,9 +38,8 @@ format="PNG" />
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="app_demo_multi_dhcp_agents">
<title>Scalable and Highly Available DHCP Agents</title>
<para>This section describes how to use the agent management (alias agent) and scheduler (alias agent_scheduler) extensions for DHCP agents scalability and HA</para>
<note><para>Use the ext-list quantum client command to check if
these extensions are enabled:
<screen><computeroutput>$ quantum ext-list -c name -c alias
<note><para>Use the ext-list neutron client command to check if these extensions are enabled:
<screen><computeroutput>$ neutron ext-list -c name -c alias
+-----------------+--------------------------+
| alias | name |
+-----------------+--------------------------+
@ -49,9 +48,9 @@ format="PNG" />
| quotas | Quota management support |
| agent | agent |
| provider | Provider Network |
| router | Quantum L3 Router |
| router | Neutron L3 Router |
| lbaas | LoadBalancing service |
| extraroute | Quantum Extra Route |
| extraroute | Neutron Extra Route |
+-----------------+--------------------------+
</computeroutput></screen></para></note>
<informalfigure>
@ -72,19 +71,15 @@ format="PNG" />
<tbody>
<tr>
<td>OpenStack Controller host - controlnode</td>
<td>Runs the Quantum service, Keystone and all of
the Nova services that are required to deploy
VMs. The node must have at least one
network interface, this should be connected to
the "Management Network". <emphasis
role="bold">Note</emphasis> nova-network
should not be running since it is
replaced by Quantum.</td>
<td>Runs the Neutron service, Keystone and all of the Nova services that are
required to deploy VMs. The node must have at least one network interface,
this should be connected to the "Management Network". <emphasis role="bold"
>Note</emphasis> nova-network should not be running since it is replaced
by Neutron.</td>
</tr>
<tr>
<td>HostA</td>
<td>Runs Nova compute, the Quantum L2 agent and
DCHP agent</td>
<td>Runs Nova compute, the Neutron L2 agent and DCHP agent</td>
</tr>
<tr>
<td>HostB</td>
@ -97,13 +92,13 @@ format="PNG" />
<para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">controlnode - Quantum Server</emphasis></para><orderedlist>
<para><emphasis role="bold">controlnode - Neutron Server</emphasis></para><orderedlist>
<listitem>
<para>Quantum configuration
file <emphasis role="bold">/etc/quantum/quantum.conf</emphasis>:</para>
<para>Neutron configuration file <emphasis role="bold"
>/etc/neutron/neutron.conf</emphasis>:</para>
<screen><computeroutput>
[DEFAULT]
core_plugin = quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2
core_plugin = neutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2
rabbit_host = controlnode
allow_overlapping_ips = True
host = controlnode
@ -111,14 +106,14 @@ agent_down_time = 5
</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file <emphasis role="bold">/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini</emphasis>:</para>
<para>Update the plugin configuration file <emphasis role="bold"
>/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini</emphasis>:</para>
<screen><computeroutput>
[vlans]
tenant_network_type = vlan
network_vlan_ranges = physnet1:1000:2999
[database]
sql_connection = mysql://root:root@127.0.0.1:3306/quantum_linux_bridge
sql_connection = mysql://root:root@127.0.0.1:3306/neutron_linux_bridge
reconnect_interval = 2
[linux_bridge]
physical_interface_mappings = physnet1:eth0
@ -129,8 +124,8 @@ physical_interface_mappings = physnet1:eth0
<listitem>
<para><emphasis role="bold">HostA and HostB - L2 Agent</emphasis></para><orderedlist>
<listitem>
<para>Quantum configuration
file <emphasis role="bold">/etc/quantum/quantum.conf</emphasis>:</para>
<para>Neutron configuration file <emphasis role="bold"
>/etc/neutron/neutron.conf</emphasis>:</para>
<screen><computeroutput>
[DEFAULT]
rabbit_host = controlnode
@ -140,14 +135,14 @@ host = HostA
</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file <emphasis role="bold">/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini</emphasis>:</para>
<para>Update the plugin configuration file <emphasis role="bold"
>/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini</emphasis>:</para>
<screen><computeroutput>
[vlans]
tenant_network_type = vlan
network_vlan_ranges = physnet1:1000:2999
[database]
sql_connection = mysql://root:root@127.0.0.1:3306/quantum_linux_bridge
sql_connection = mysql://root:root@127.0.0.1:3306/neutron_linux_bridge
reconnect_interval = 2
[linux_bridge]
physical_interface_mappings = physnet1:eth0</computeroutput></screen>
@ -157,14 +152,14 @@ physical_interface_mappings = physnet1:eth0</computeroutput></screen>
file <emphasis role="bold"
>/etc/nova/nova.conf</emphasis>:</para>
<screen><computeroutput>[DEFAULT]
network_api_class=nova.network.quantumv2.api.API
network_api_class=nova.network.neutronv2.api.API
quantum_admin_username=quantum
quantum_admin_password=servicepassword
quantum_admin_auth_url=http://controlnode:35357/v2.0/
quantum_auth_strategy=keystone
quantum_admin_tenant_name=servicetenant
quantum_url=http://100.1.1.10:9696/
neutron_admin_username=neutron
neutron_admin_password=servicepassword
neutron_admin_auth_url=http://controlnode:35357/v2.0/
neutron_auth_strategy=keystone
neutron_admin_tenant_name=servicetenant
neutron_url=http://100.1.1.10:9696/
firewall_driver=nova.virt.firewall.NoopFirewallDriver
</computeroutput></screen>
</listitem>
@ -173,12 +168,11 @@ firewall_driver=nova.virt.firewall.NoopFirewallDriver
<listitem>
<para><emphasis role="bold">HostA and HostB - DHCP Agent</emphasis></para><orderedlist>
<listitem>
<para>Update the DHCP configuration
file <emphasis role="bold"
>/etc/quantum/dhcp_agent.ini</emphasis>:</para>
<para>Update the DHCP configuration file <emphasis role="bold"
>/etc/neutron/dhcp_agent.ini</emphasis>:</para>
<screen><computeroutput>
[DEFAULT]
interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
</computeroutput></screen>
</listitem>
@ -202,7 +196,8 @@ export OS_AUTH_URL=http://controlnode:5000/v2.0/</computeroutput></screen>
<itemizedlist>
<listitem>
<para><emphasis role="bold">Settings</emphasis></para>
<para>We need some VMs and a quantum network to experiment. Here they are:</para>
<para>We need some VMs and a neutron network to experiment. Here they
are:</para>
<screen><computeroutput>$ nova list
+--------------------------------------+-----------+--------+---------------+
| ID | Name | Status | Networks |
@ -211,7 +206,7 @@ export OS_AUTH_URL=http://controlnode:5000/v2.0/</computeroutput></screen>
| 2d604e05-9a6c-4ddb-9082-8a1fbdcc797d | myserver2 | ACTIVE | net1=10.0.1.4 |
| c7c0481c-3db8-4d7a-a948-60ce8211d585 | myserver3 | ACTIVE | net1=10.0.1.5 |
+--------------------------------------+-----------+--------+---------------+
$ quantum net-list
$ neutron net-list
+--------------------------------------+------+--------------------------------------+
| id | name | subnets |
+--------------------------------------+------+--------------------------------------+
@ -220,13 +215,14 @@ $ quantum net-list
</listitem>
<listitem>
<para><emphasis role="bold">Manage agents in quantum deployment</emphasis></para>
<para>Every agent which supports these extensions will register itself with the quantum server when
it starts up.</para>
<para><emphasis role="bold">Manage agents in neutron
deployment</emphasis></para>
<para>Every agent which supports these extensions will register itself with the
neutron server when it starts up.</para>
<orderedlist>
<listitem>
<para>List all agents:</para>
<screen><computeroutput>$ quantum agent-list
<screen><computeroutput>$ neutron agent-list
+--------------------------------------+--------------------+-------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+-------+-------+----------------+
@ -236,11 +232,13 @@ $ quantum net-list
| f28aa126-6edb-4ea5-a81e-8850876bc0a8 | DHCP agent | HostB | :-) | True |
+--------------------------------------+--------------------+-------+-------+----------------+
</computeroutput></screen>
<para>Just as shown, we have four agents now, and they have reported their state.
The <literal>'alive'</literal> will be <literal>':-)'</literal> if the agent reported its state
within the period defined by the option <literal>'agent_down_time'</literal> in quantum server's quantum.conf.
Otherwise the <literal>'alive'</literal> is <literal>'xxx'</literal>.
</para>
<para>Just as shown, we have four agents now, and they have reported
their state. The <literal>'alive'</literal> will be
<literal>':-)'</literal> if the agent reported its state within
the period defined by the option
<literal>'agent_down_time'</literal> in neutron server's
neutron.conf. Otherwise the <literal>'alive'</literal> is
<literal>'xxx'</literal>. </para>
</listitem>
<listitem>
<para>List the DHCP agents hosting a given network</para>
@ -254,7 +252,7 @@ $ quantum net-list
more than one network. Let's first go
with command that lists DHCP agents
hosting a given network.</para>
<screen><computeroutput>$ quantum dhcp-agent-list-hosting-net net1
<screen><computeroutput>$ neutron dhcp-agent-list-hosting-net net1
+--------------------------------------+-------+----------------+-------+
| id | host | admin_state_up | alive |
+--------------------------------------+-------+----------------+-------+
@ -266,7 +264,7 @@ $ quantum net-list
<para>List the networks hosted by a
given DHCP agent.</para>
<para>This command is to show which networks a given dhcp agent is managing.</para>
<screen><computeroutput>$ quantum net-list-on-dhcp-agent a0c1c21c-d4f4-4577-9ec7-908f2d48622d
<screen><computeroutput>$ neutron net-list-on-dhcp-agent a0c1c21c-d4f4-4577-9ec7-908f2d48622d
+--------------------------------------+------+---------------------------------------------------+
| id | name | subnets |
+--------------------------------------+------+---------------------------------------------------+
@ -283,18 +281,18 @@ $ quantum net-list
information of an agent, we can use
'agent-show'.</para>
<screen><computeroutput>
$ quantum agent-show a0c1c21c-d4f4-4577-9ec7-908f2d48622d
$ neutron agent-show a0c1c21c-d4f4-4577-9ec7-908f2d48622d
+---------------------+----------------------------------------------------------+
| Field | Value |
+---------------------+----------------------------------------------------------+
| admin_state_up | True |
| agent_type | DHCP agent |
| alive | False |
| binary | quantum-dhcp-agent |
| binary | neutron-dhcp-agent |
| configurations | { |
| | "subnets": 1, |
| | "use_namespaces": true, |
| | "dhcp_driver": "quantum.agent.linux.dhcp.Dnsmasq", |
| | "dhcp_driver": "neutron.agent.linux.dhcp.Dnsmasq", |
| | "networks": 1, |
| | "dhcp_lease_time": 120, |
| | "ports": 3 |
@ -308,25 +306,20 @@ $ quantum agent-show a0c1c21c-d4f4-4577-9ec7-908f2d48622d
| topic | dhcp_agent |
+---------------------+----------------------------------------------------------+
</computeroutput></screen>
<para>In the above output,
<literal>'heartbeat_timestamp'</literal> is the time on
quantum server. So we don't need
all agents synced to quantum
server's time for this extension to
run well. <literal>'configurations'</literal> is about
the agent's static configuration
or run time data. We can see that this
agent is a DHCP agent, and it is
hosting one network, one subnet and 3
ports.</para>
<para>In the above output, <literal>'heartbeat_timestamp'</literal>
is the time on neutron server. So we don't need all agents synced to
neutron server's time for this extension to run well.
<literal>'configurations'</literal> is about the agent's static
configuration or run time data. We can see that this agent is a DHCP
agent, and it is hosting one network, one subnet and 3 ports.</para>
<para>Different type of agents has different detail. Below is information for
a <literal>'Linux bridge agent'</literal></para>
<screen><computeroutput>$ quantum agent-show ed96b856-ae0f-4d75-bb28-40a47ffd7695
<screen><computeroutput>$ neutron agent-show ed96b856-ae0f-4d75-bb28-40a47ffd7695
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| binary | quantum-linuxbridge-agent |
| binary | neutron-linuxbridge-agent |
| configurations | { |
| | "physnet1": "eth0", |
| | "devices": "4" |
@ -361,10 +354,10 @@ $ quantum agent-show a0c1c21c-d4f4-4577-9ec7-908f2d48622d
(We can design more sophisticated
scheduling algorithm just like we do
in nova-schedule later.)</para>
<screen><computeroutput>$ quantum net-create net2
$ quantum subnet-create net2 9.0.1.0/24 --name subnet2
$ quantum port-create net2
$ quantum dhcp-agent-list-hosting-net net2
<screen><computeroutput>$ neutron net-create net2
$ neutron subnet-create net2 9.0.1.0/24 --name subnet2
$ neutron port-create net2
$ neutron dhcp-agent-list-hosting-net net2
+--------------------------------------+-------+----------------+-------+
| id | host | admin_state_up | alive |
+--------------------------------------+-------+----------------+-------+
@ -382,9 +375,9 @@ $ quantum dhcp-agent-list-hosting-net net2
<para>Assign a network to a given DHCP
agent.</para>
<para>We have two DHCP agents, and we want another DHCP agent to host the network too.</para>
<screen><computeroutput>$ quantum dhcp-agent-network-add f28aa126-6edb-4ea5-a81e-8850876bc0a8 net2
<screen><computeroutput>$ neutron dhcp-agent-network-add f28aa126-6edb-4ea5-a81e-8850876bc0a8 net2
Added network net2 to dhcp agent
$ quantum dhcp-agent-list-hosting-net net2
$ neutron dhcp-agent-list-hosting-net net2
+--------------------------------------+-------+----------------+-------+
| id | host | admin_state_up | alive |
+--------------------------------------+-------+----------------+-------+
@ -401,9 +394,9 @@ $ quantum dhcp-agent-list-hosting-net net2
command for the previous one.
Let's remove <literal>'net2'</literal> from HostA's DHCP
agent.</para>
<screen><computeroutput>$ quantum dhcp-agent-network-remove a0c1c21c-d4f4-4577-9ec7-908f2d48622d net2
<screen><computeroutput>$ neutron dhcp-agent-network-remove a0c1c21c-d4f4-4577-9ec7-908f2d48622d net2
Removed network net2 to dhcp agent
$ quantum dhcp-agent-list-hosting-net net2
$ neutron dhcp-agent-list-hosting-net net2
+--------------------------------------+-------+----------------+-------+
| id | host | admin_state_up | alive |
+--------------------------------------+-------+----------------+-------+
@ -422,7 +415,7 @@ $ quantum dhcp-agent-list-hosting-net net2
<orderedlist>
<listitem>
<para>Boot a VM on net2.</para>
<screen><computeroutput>$ quantum net-list
<screen><computeroutput>$ neutron net-list
+--------------------------------------+------+--------------------------------------------------+
| id | name | subnets |
+--------------------------------------+------+--------------------------------------------------+
@ -445,7 +438,7 @@ $ nova list
<para>Make sure both DHCP agents
hosting 'net2'.</para>
<para>We can use commands shown before to assign the network to agents.</para>
<screen><computeroutput>$ quantum dhcp-agent-list-hosting-net net2
<screen><computeroutput>$ neutron dhcp-agent-list-hosting-net net2
+--------------------------------------+-------+----------------+-------+
| id | host | admin_state_up | alive |
+--------------------------------------+-------+----------------+-------+
@ -458,8 +451,9 @@ $ nova list
<para>Testing the HA.</para>
<para>Step 1. Login to the <literal>'myserver4'</literal>
VM, and run <literal>'udhcpc'</literal>, <literal>'dhclient'</literal> or other DHCP client.</para>
<para>Step 2. Stop the DHCP agent on HostA (Beside stopping the quantum-dhcp-agent binary,
we must make sure dnsmasq processes are gone too.)</para>
<para>Step 2. Stop the DHCP agent on HostA (Beside stopping the
neutron-dhcp-agent binary, we must make sure dnsmasq processes are
gone too.)</para>
<para>Step 3. Run a DHCP client in VM. We can see it can get the wanted IP.</para>
<para>Step 4. Stop the DHCP agent on HostB too.</para>
<para>Step 5. Run <literal>'udhcpc'</literal> in VM. We can see it cannot get the wanted IP.</para>
@ -481,8 +475,8 @@ $ nova list
We should remove the resources on
the agent before we delete the agent
itself. </para><para>To run the commands below, we need first stop the DHCP agent on HostA.</para>
<screen><computeroutput>$ quantum agent-update --admin-state-up False a0c1c21c-d4f4-4577-9ec7-908f2d48622d
$ quantum agent-list
<screen><computeroutput>$ neutron agent-update --admin-state-up False a0c1c21c-d4f4-4577-9ec7-908f2d48622d
$ neutron agent-list
+--------------------------------------+--------------------+-------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+-------+-------+----------------+
@ -491,9 +485,9 @@ $ quantum agent-list
| ed96b856-ae0f-4d75-bb28-40a47ffd7695 | Linux bridge agent | HostB | :-) | True |
| f28aa126-6edb-4ea5-a81e-8850876bc0a8 | DHCP agent | HostB | :-) | True |
+--------------------------------------+--------------------+-------+-------+----------------+
$ quantum agent-delete a0c1c21c-d4f4-4577-9ec7-908f2d48622d
$ neutron agent-delete a0c1c21c-d4f4-4577-9ec7-908f2d48622d
Deleted agent: a0c1c21c-d4f4-4577-9ec7-908f2d48622d
$ quantum agent-list
$ neutron agent-list
+--------------------------------------+--------------------+-------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+-------+-------+----------------+

View File

@ -100,10 +100,9 @@
addition to this there should be an image named tty.</para>
</listitem>
<listitem>
<para>OpenStack Identity is installed, configured and running. A
OpenStack Networking user named <emphasis role="bold">quantum</emphasis>
should be created on tenant <emphasis role="bold"
>servicetenant</emphasis> with password <emphasis
<para>OpenStack Identity is installed, configured and running. A OpenStack Networking
user named <emphasis role="bold">neutron</emphasis> should be created on tenant
<emphasis role="bold">servicetenant</emphasis> with password <emphasis
role="bold">servicepassword</emphasis>.</para>
</listitem>
<listitem>
@ -136,36 +135,31 @@
<para>Install the OpenStack Networking server.</para>
</listitem>
<listitem>
<para>Create database <emphasis
role="bold">ovs_quantum</emphasis>.
See the section on the <link
linkend="arch_overview">Core
Plugins</link> for the exact
details.</para>
<para>Create database <emphasis role="bold">ovs_neutron</emphasis>.
See the section on the <link linkend="arch_overview">Core
Plugins</link> for the exact details.</para>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>, with plugin
choice and Identity Service user as necessary:</para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis>, with
plugin choice and Identity Service user as necessary:</para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
[keystone_authtoken]
admin_tenant_name=servicetenant
admin_user=quantum
admin_user=neutron
admin_password=servicepassword
</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file, <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>:</para>
<para>Update the plugin configuration file, <emphasis role="bold"
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>:</para>
<screen><computeroutput>[database]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
sql_connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
@ -178,7 +172,7 @@ enable_tunneling = True
The command may be different to start the service on different operating systems.
One example of the command to run the OpenStack Networking server directly is:</para>
<screen><computeroutput>
sudo quantum-server --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini --config-file /etc/quantum/quantum.conf
sudo neutron-server --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini --config-file /etc/neutron/neutron.conf
</computeroutput></screen>
</listitem>
</orderedlist></para>
@ -193,14 +187,14 @@ enable_tunneling = True
file, <emphasis role="bold"
>/etc/nova/nova.conf. Make sure the following is at the end of this file</emphasis>:</para>
<screen><computeroutput>
network_api_class=nova.network.quantumv2.api.API
network_api_class=nova.network.neutronv2.api.API
quantum_admin_username=quantum
quantum_admin_password=servicepassword
quantum_admin_auth_url=http://controlnode:35357/v2.0/
quantum_auth_strategy=keystone
quantum_admin_tenant_name=servicetenant
quantum_url=http://controlnode:9696/
neutron_admin_username=neutron
neutron_admin_password=servicepassword
neutron_admin_auth_url=http://controlnode:35357/v2.0/
neutron_auth_strategy=keystone
neutron_admin_tenant_name=servicetenant
neutron_url=http://controlnode:9696/
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver</computeroutput></screen>
</listitem>
@ -222,22 +216,20 @@ libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver</computero
<screen><computeroutput>sudo ovs-vsctl add-br br-int</computeroutput></screen>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis></para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis></para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
notification_driver = neutron.openstack.common.notifier.rabbit_notifier</computeroutput></screen>
</listitem>
<listitem>
<para>Update the plugin configuration
file, <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>.</para>
<para>Update the plugin configuration file, <emphasis role="bold"
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>.</para>
<para>Compute Node:</para>
<screen><computeroutput>[database]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
sql_connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
@ -245,7 +237,7 @@ enable_tunneling = True
local_ip = 9.181.89.202</computeroutput></screen>
<para>Network Node:</para>
<screen><computeroutput>[database]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
sql_connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
@ -265,7 +257,7 @@ local_ip = 9.181.89.203</computeroutput></screen>
The command may be different to start the service on different operating systems.
However the command to run it directly is kind of like:</para>
<screen><computeroutput>
sudo quantum-openvswitch-agent --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini --config-file /etc/quantum/quantum.conf
sudo neutron-openvswitch-agent --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini --config-file /etc/neutron/neutron.conf
</computeroutput></screen>
</listitem>
</orderedlist></para>
@ -276,23 +268,21 @@ sudo quantum-openvswitch-agent --config-file /etc/quantum/plugins/openvswitch/ov
<para>Install the DHCP agent.</para>
</listitem>
<listitem>
<para>Update the OpenStack Networking configuration
file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis></para>
<para>Update the OpenStack Networking configuration file, <emphasis
role="bold">/etc/neutron/neutron.conf</emphasis></para>
<screen><computeroutput>[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
allow_overlapping_ips = True</computeroutput></screen>
<para><emphasis role="bold"> We set <literal>allow_overlapping_ips</literal> because we have
overlapping subnets for TenantA and TenantC.</emphasis></para>
</listitem>
<listitem>
<para>Update the DHCP configuration
file <emphasis role="bold"
>/etc/quantum/dhcp_agent.ini</emphasis></para>
<screen><computeroutput>interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
<para>Update the DHCP configuration file <emphasis role="bold"
>/etc/neutron/dhcp_agent.ini</emphasis></para>
<screen><computeroutput>interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
</listitem>
<listitem>
<para>Start the DHCP agent</para>
@ -300,7 +290,7 @@ allow_overlapping_ips = True</computeroutput></screen>
The command may be different to start the service on different operating systems.
However the command to run it directly is kind of like:</para>
<screen><computeroutput>
sudo quantum-dhcp-agent --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/dhcp_agent.ini
sudo neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini
</computeroutput></screen>
</listitem>
</orderedlist></para>
@ -320,11 +310,10 @@ sudo quantum-dhcp-agent --config-file /etc/quantum/quantum.conf --config-file /e
<screen><computeroutput>sudo ovs-vsctl add-port br-ex eth0</computeroutput></screen>
</listitem>
<listitem>
<para>Update the L3 configuration
file <emphasis role="bold"
>/etc/quantum/l3_agent.ini</emphasis>:</para>
<para>Update the L3 configuration file <emphasis role="bold"
>/etc/neutron/l3_agent.ini</emphasis>:</para>
<screen><computeroutput>[DEFAULT]
interface_driver=quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces=True</computeroutput></screen>
<para><emphasis role="bold"> We set <literal>use_namespaces</literal> (It is True by default.) because we have
overlapping subnets for TenantA and TenantC and we are going to host the routers with one l3 agent network node.</emphasis></para>
@ -335,7 +324,7 @@ use_namespaces=True</computeroutput></screen>
The command may be different to start the service on different operating systems.
However the command to run it directly is kind of like:</para>
<screen><computeroutput>
sudo quantum-l3-agent --config-file /etc/quantum/quantum.conf --config-file /etc/quantum/l3_agent.ini
sudo neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini
</computeroutput></screen>
</listitem>
</orderedlist></para>
@ -392,7 +381,7 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</computeroutput></screen>
<para>Create the external network and
its subnet by admin user:</para>
<screen><computeroutput>
quantum net-create Ext-Net --provider:network_type local --router:external true
neutron net-create Ext-Net --provider:network_type local --router:external true
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
@ -410,7 +399,7 @@ Created a new network:
| tenant_id | b7445f221cda4f4a8ac7db6b218b1339 |
+---------------------------+--------------------------------------+
quantum subnet-create Ext-Net 30.0.0.0/24
neutron subnet-create Ext-Net 30.0.0.0/24
Created a new subnet:
+------------------+--------------------------------------------+
| Field | Value |
@ -452,7 +441,7 @@ sudo ip link set br-ex up
<listitem>
<para>Create a network for TenantA</para>
<screen><computeroutput>
quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantA-Net
neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantA-Net
Created a new network:
+-----------------+--------------------------------------+
| Field | Value |
@ -467,7 +456,7 @@ Created a new network:
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
+-----------------+--------------------------------------+</computeroutput></screen>
<para>After that we can use admin user to query the network's provider network information:</para>
<screen><computeroutput> quantum net-show TenantA-Net
<screen><computeroutput> neutron net-show TenantA-Net
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -489,7 +478,7 @@ Created a new network:
<listitem>
<para>Create a subnet on the network TenantA-Net</para>
<screen><computeroutput>
quantum --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
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
Created a new subnet:
+------------------+--------------------------------------------+
| Field | Value |
@ -523,7 +512,7 @@ Created a new subnet:
<para>Create and configure a router
for TenantA:</para>
<screen><computeroutput>
quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 router-create TenantA-R1
neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 router-create TenantA-R1
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
@ -536,18 +525,18 @@ Created a new router:
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
+-----------------------+--------------------------------------+
</computeroutput></screen>
<screen><computeroutput>quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657
<screen><computeroutput>neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657
Added interface to router TenantA-R1
</computeroutput></screen>
<screen><computeroutput>
quantum router-gateway-set TenantA-R1 Ext-Net
neutron router-gateway-set TenantA-R1 Ext-Net
</computeroutput></screen>
<para><emphasis role="bold"> We are using admin user to run last command since our external network is owned by admin tenant.</emphasis></para>
</listitem>
<listitem>
<para>Associate a floating IP for
TenantA_VM1</para>
<para>1. Create a floating IP</para><screen><computeroutput>quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net
<para>1. Create a floating IP</para><screen><computeroutput>neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
@ -562,7 +551,7 @@ Created a new floatingip:
+---------------------+--------------------------------------+
</computeroutput></screen>
<para>2. Get the port ID of the VM with ID 7c5e6499-7ef7-4e36-8216-62c2941d21ff</para><screen><computeroutput>
quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 port-list -- --device_id 7c5e6499-7ef7-4e36-8216-62c2941d21ff
neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 port-list -- --device_id 7c5e6499-7ef7-4e36-8216-62c2941d21ff
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
| id | name | mac_address | fixed_ips |
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
@ -570,9 +559,9 @@ quantum --os-tenant-name TenantA --os-username UserA --os-password password --os
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
</computeroutput></screen>
<para>3. Associate the floating IP with the VM port</para><screen><computeroutput>
quantum --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-associate 5a1f90ed-aa3c-4df3-82cb-116556e96bf1 6071d430-c66e-4125-b972-9a937c427520
neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-associate 5a1f90ed-aa3c-4df3-82cb-116556e96bf1 6071d430-c66e-4125-b972-9a937c427520
Associated floatingip 5a1f90ed-aa3c-4df3-82cb-116556e96bf1
quantum floatingip-list
neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id | fixed_ip_address | floating_ip_address | port_id |
+--------------------------------------+------------------+---------------------+--------------------------------------+
@ -623,13 +612,13 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
<listitem>
<para>Create networks and subnets for TenantC</para>
<screen><computeroutput>
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net1
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net1 10.0.0.0/24 --name TenantC-Subnet1
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net2
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net2 10.0.1.0/24 --name TenantC-Subnet2
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net1
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net1 10.0.0.0/24 --name TenantC-Subnet1
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create TenantC-Net2
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net2 10.0.1.0/24 --name TenantC-Subnet2
</computeroutput></screen>
<para>After that we can use admin user to query the network's provider network information:</para>
<screen><computeroutput> quantum net-show TenantC-Net1
<screen><computeroutput> neutron net-show TenantC-Net1
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -645,7 +634,7 @@ quantum --os-tenant-name TenantC --os-username UserC --os-password password --os
| subnets | cf03fd1e-164b-4527-bc87-2b2631634b83 |
| tenant_id | 2b4fec24e62e4ff28a8445ad83150f9d |
+---------------------------+--------------------------------------+
quantum net-show TenantC-Net2
neutron net-show TenantC-Net2
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -697,13 +686,13 @@ quantum net-show TenantC-Net2
<para>Create and configure a router
for TenantC:</para>
<screen><computeroutput>
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-create TenantC-R1
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-create TenantC-R1
</computeroutput></screen>
<screen><computeroutput>quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantC-R1 cf03fd1e-164b-4527-bc87-2b2631634b83
quantum --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantC-R1 38f0b2f0-9f98-4bf6-9520-f4abede03300
<screen><computeroutput>neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantC-R1 cf03fd1e-164b-4527-bc87-2b2631634b83
neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add TenantC-R1 38f0b2f0-9f98-4bf6-9520-f4abede03300
</computeroutput></screen>
<screen><computeroutput>
quantum router-gateway-set TenantC-R1 Ext-Net
neutron router-gateway-set TenantC-R1 Ext-Net
</computeroutput></screen>
<para><emphasis role="bold"> We are using admin user to run last command since our external network is owned by admin tenant.</emphasis></para>
</listitem>

View File

@ -9,7 +9,7 @@
Provider Router with Private Networks."</para>
<para>We will follow the <link
xlink:href="http://docs.openstack.org/grizzly/basic-install/content/basic-install_intro.html"
>Basic Install</link> document except for the Quantum,
>Basic Install</link> document except for the Neutron,
Open-vSwitch, and Virtual Networking sections on each of the
nodes. </para>
<para>The <emphasis role="bold">Basic Install</emphasis> document
@ -27,7 +27,7 @@
<mediaobject>
<imageobject>
<imagedata
fileref="figures/Quantum-PhysNet-Diagram.png"
fileref="figures/Neutron-PhysNet-Diagram.png"
contentwidth="6in"/>
</imageobject>
</mediaobject>
@ -90,51 +90,51 @@
</table></para>
<section xml:id="demo_installions">
<title>Installations</title>
<section xml:id="controller-install-quantum-server">
<section xml:id="controller-install-neutron-server">
<title>Controller</title>
<procedure>
<title>To install and configure the controller
node</title>
<step>
<para>Run the following command:</para>
<screen><userinput>apt-get install -y quantum-server</userinput></screen>
<screen><userinput>apt-get install -y neutron-server</userinput></screen>
</step>
<step>
<para>Configure Quantum services:</para>
<para>Configure Neutron services:</para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>
>/etc/neutron/neutron.conf</emphasis>
file and
modify:<screen><userinput>core_plugin = \
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
auth_strategy = keystone
fake_rabbit = False
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>
file and modify:</para>
<screen><userinput>[database]
sql_connection = mysql://quantum:password@localhost:3306/quantum
sql_connection = mysql://neutron:password@localhost:3306/neutron
[ovs]
tenant_network_type = vlan
network_vlan_ranges = physnet1:100:2999</userinput></screen>
</listitem>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/quantum/api-paste.ini</emphasis>
>/etc/neutron/api-paste.ini</emphasis>
file and modify:</para>
<screen><userinput>admin_tenant_name = service
admin_user = quantum
admin_user = neutron
admin_password = password</userinput></screen>
</listitem>
</itemizedlist>
</step>
<step>
<para>Start the services:</para>
<screen><userinput>service quantum-server restart</userinput></screen>
<screen><userinput>service neutron-server restart</userinput></screen>
</step>
</procedure>
</section>
@ -146,8 +146,8 @@ admin_password = password</userinput></screen>
node</title>
<step>
<para>Install the packages:</para>
<screen><userinput>apt-get install -y quantum-plugin-openvswitch-agent \
quantum-dhcp-agent quantum-l3-agent</userinput></screen>
<screen><userinput>apt-get install -y neutron-plugin-openvswitch-agent \
neutron-dhcp-agent neutron-l3-agent</userinput></screen>
</step>
<step>
<para>Start Open vSwitch:</para>
@ -161,16 +161,16 @@ quantum-dhcp-agent quantum-l3-agent</userinput></screen>
<step>
<para>Update the OpenStack Networking
configuration file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>:</para>
>/etc/neutron/neutron.conf</emphasis>:</para>
<screen><userinput>rabbit_password = password
rabbit_host = 192.168.0.1</userinput></screen>
</step>
<step>
<para>Update the plugin configuration file,
<emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>:</para>
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>:</para>
<screen><userinput>[database]
sql_connection = mysql://quantum:password@192.168.0.1:3306/quantum
sql_connection = mysql://neutron:password@192.168.0.1:3306/neutron
[ovs]
tenant_network_type=vlan
network_vlan_ranges = physnet1:1:4094
@ -192,37 +192,37 @@ sudo ovs-vsctl add-port br-ex eth2</userinput></screen>
</step>
<step>
<para>Edit the <emphasis role="bold"
>/etc/quantum/l3_agent.ini </emphasis>
>/etc/neutron/l3_agent.ini </emphasis>
file and modify:</para>
<screen><userinput>[DEFAULT]
auth_url = http://192.168.0.1:35357/v2.0
admin_tenant_name = service
admin_user = quantum
admin_user = neutron
admin_password = password
metadata_ip = 192.168.0.1
use_namespaces = True</userinput></screen>
</step>
<step>
<para>Edit the <emphasis role="bold"
>/etc/quantum/api-paste.ini </emphasis>
>/etc/neutron/api-paste.ini </emphasis>
file and modify:</para>
<screen><userinput>[DEFAULT]
auth_host = 192.168.0.1
admin_tenant_name = service
admin_user = quantum
admin_user = neutron
admin_password = password</userinput></screen>
</step>
<step>
<para>Edit the <emphasis role="bold"
>/etc/quantum/dhcp_agent.ini </emphasis>
>/etc/neutron/dhcp_agent.ini </emphasis>
file and modify:</para>
<screen><userinput>use_namespaces = True</userinput></screen>
</step>
<step>
<para>Restart networking services:</para>
<screen><userinput>service quantum-plugin-openvswitch-agent start
service quantum-dhcp-agent restart
service quantum-l3-agent restart</userinput></screen>
<screen><userinput>service neutron-plugin-openvswitch-agent start
service neutron-dhcp-agent restart
service neutron-l3-agent restart</userinput></screen>
</step>
</procedure>
</section>
@ -234,7 +234,7 @@ service quantum-l3-agent restart</userinput></screen>
node</title>
<step>
<para>Install the
packages:<screen><userinput>apt-get install -y openvswitch-switch quantum-plugin-openvswitch-agent</userinput></screen></para>
packages:<screen><userinput>apt-get install -y openvswitch-switch neutron-plugin-openvswitch-agent</userinput></screen></para>
</step>
<step>
<para>Start open vSwitch
@ -247,16 +247,16 @@ service quantum-l3-agent restart</userinput></screen>
<step>
<para>Update the OpenStack Networking
configuration file, <emphasis role="bold"
>/etc/quantum/quantum.conf</emphasis>:</para>
>/etc/neutron/neutron.conf</emphasis>:</para>
<screen><userinput>rabbit_password = password
rabbit_host = 192.168.0.1</userinput></screen>
</step>
<step>
<para>Update the <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>
>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</emphasis>
file:</para>
<screen><userinput>[database]
sql_connection = mysql://quantum:password@192.168.0.1:3306/quantum
sql_connection = mysql://neutron:password@192.168.0.1:3306/neutron
[ovs]
tenant_network_type = vlan
network_vlan_ranges = physnet1:1:4094
@ -264,7 +264,7 @@ bridge_mappings = physnet1:br-eth1</userinput></screen>
</step>
<step>
<para>Start the DHCP agent:</para>
<screen><userinput>service quantum-plugin-openvswitch-agent restart</userinput></screen>
<screen><userinput>service neutron-plugin-openvswitch-agent restart</userinput></screen>
</step>
</procedure>
</section>
@ -321,7 +321,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
role="bold">net1</emphasis> for tenant_A
($TENANT_ID will be
e40fa60181524f9f9ee7aa1038748f08):</para>
<screen><userinput>quantum net-create --tenant-id $TENANT_ID net1</userinput></screen>
<screen><userinput>neutron net-create --tenant-id $TENANT_ID net1</userinput></screen>
<screen><computeroutput>+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -342,7 +342,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<para>Create a subnet on the network <emphasis
role="bold">net1</emphasis> (ID field
below is used as $SUBNET_ID later):</para>
<screen><userinput>quantum subnet-create --tenant-id $TENANT_ID net1 10.5.5.0/24</userinput></screen>
<screen><userinput>neutron subnet-create --tenant-id $TENANT_ID net1 10.5.5.0/24</userinput></screen>
<screen><computeroutput>+------------------+--------------------------------------------+
| Field | Value |
+------------------+--------------------------------------------+
@ -368,7 +368,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<para>Create a router named <emphasis role="bold"
>router1</emphasis> (ID is used as
$ROUTER_ID later):</para>
<screen><userinput>quantum router-create router1</userinput></screen>
<screen><userinput>neutron router-create router1</userinput></screen>
<screen><computeroutput>+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
@ -391,7 +391,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
>router1</emphasis> and attach it to the
subnet from <emphasis role="bold"
>net1</emphasis>:</para>
<screen><userinput>quantum router-interface-add $ROUTER_ID $SUBNET_ID</userinput></screen>
<screen><userinput>neutron router-interface-add $ROUTER_ID $SUBNET_ID</userinput></screen>
<screen><computeroutput>Added interface to router 685f64e7-a020-4fdf-a8ad-e41194ae124b</computeroutput></screen>
<note>
<para>You can repeat this step to add more
@ -402,7 +402,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<step>
<para>Create the external network named <emphasis
role="bold">ext_net</emphasis>:</para>
<screen><userinput>quantum net-create ext_net --router:external=True</userinput></screen>
<screen><userinput>neutron net-create ext_net --router:external=True</userinput></screen>
<screen><computeroutput>+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -425,7 +425,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<para>The DHCP service is disabled for this
subnet.</para>
</note>
<screen><userinput>quantum subnet-create ext_net \
<screen><userinput>neutron subnet-create ext_net \
--allocation-pool start=7.7.7.130,end=7.7.7.150 \
--gateway 7.7.7.1 7.7.7.0/24 -- --enable_dhcp=False</userinput></screen>
<screen><computeroutput>+------------------+--------------------------------------------------+
@ -447,7 +447,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<step>
<para>Set the router's gateway to be the external
network:</para>
<screen><userinput>quantum router-gateway-set $ROUTER_ID $EXTERNAL_NETWORK_ID</userinput></screen>
<screen><userinput>neutron router-gateway-set $ROUTER_ID $EXTERNAL_NETWORK_ID</userinput></screen>
<screen><computeroutput>Set gateway for router 685f64e7-a020-4fdf-a8ad-e41194ae124b</computeroutput></screen>
</step>
</procedure></para>
@ -468,7 +468,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
| 1cdc671d-a296-4476-9a75-f9ca1d92fd26 | testvm | ACTIVE | net1=10.5.5.3 |
+--------------------------------------+--------+--------+---------------+
</computeroutput>
<userinput>quantum port-list -- --device_id 1cdc671d-a296-4476-9a75-f9ca1d92fd26</userinput>
<userinput>neutron port-list -- --device_id 1cdc671d-a296-4476-9a75-f9ca1d92fd26</userinput>
<computeroutput>+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
| id | name | mac_address | fixed_ips |
@ -479,7 +479,7 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<step>
<para>Allocate a floating IP (Used as
$FLOATING_ID):</para>
<screen><userinput>quantum floatingip-create ext_net</userinput><computeroutput>
<screen><userinput>neutron floatingip-create ext_net</userinput><computeroutput>
+---------------------+--------------------------------------+
| Field | Value |
@ -496,13 +496,13 @@ echo "source novarc">>.bashrc</userinput></screen></para>
<step>
<para>Associate the floating IP with the VM's
port:</para>
<screen><userinput>quantum floatingip-associate $FLOATING_ID $PORT_ID</userinput><computeroutput>
<screen><userinput>neutron floatingip-associate $FLOATING_ID $PORT_ID</userinput><computeroutput>
Associated floatingip 40952c83-2541-4d0c-b58e-812c835079a5</computeroutput></screen>
</step>
<step>
<para>Show the floating IP:</para>
<screen><userinput>quantum floatingip-show $FLOATING_ID</userinput><computeroutput>
<screen><userinput>neutron floatingip-show $FLOATING_ID</userinput><computeroutput>
+---------------------+--------------------------------------+
| Field | Value |

View File

@ -14,7 +14,7 @@
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="Quantum-admin-guide-grizzly">
status="final" xml:id="Neutron-admin-guide-grizzly">
<title>OpenStack Networking Administration Guide</title>
<?rax title.font.size="28px" subtitle.font.size="28px"?>
<titleabbrev>OpenStack Networking Administration Guide</titleabbrev>
@ -83,7 +83,7 @@
<itemizedlist spacing="compact">
<listitem>
<para>Added auth_token parameters to the
quantum.conf file description.</para>
neutron.conf file description.</para>
</listitem>
</itemizedlist>
</revdescription>

View File

@ -4,17 +4,17 @@
<title>Advanced Configuration Options</title>
<para>This section describes advanced configurations options for various system components (i.e.
config options where the default is usually ok, but that the user may want to tweak). After
installing from packages, $QUANTUM_CONF_DIR is <filename>/etc/quantum</filename>.</para>
installing from packages, $NEUTRON_CONF_DIR is <filename>/etc/neutron</filename>.</para>
<section xml:id="quantum_server">
<title>OpenStack Networking Server with Plugin</title>
<para>This is the web server that runs the OpenStack Networking API Web Server. It is responsible
for loading a plugin and passing the API calls to the plugin for processing. The
quantum-server should receive one of more configuration files as it its input, for
<para>This is the web server that runs the OpenStack Networking API Web Server. It is
responsible for loading a plugin and passing the API calls to the plugin for processing.
The neutron-server should receive one of more configuration files as it its input, for
example:</para>
<para>
<screen><computeroutput>quantum-server --config-file &lt;quantum config&gt; --config-file &lt;plugin config&gt;</computeroutput></screen>
<screen><computeroutput>neutron-server --config-file &lt;neutron config&gt; --config-file &lt;plugin config&gt;</computeroutput></screen>
</para>
<para>The quantum config contains the common quantum configuration parameters. The plugin
<para>The neutron config contains the common neutron configuration parameters. The plugin
config contains the plugin specific flags. The plugin that is run on the service is
loaded via the configuration parameter core_plugin. In some cases a plugin may have an
agent that performs the actual networking. Specific configuration details can be seen in
@ -31,12 +31,12 @@ mysql&gt; create user '&lt;user-name&gt;'@'%' identified by '&lt;user-name&gt;';
mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</computeroutput></screen>
<para>Once the above is done you can update the settings in the relevant plugin
configuration files. The plugin specific configuration files can be found at
$QUANTUM_CONF_DIR/plugins.</para>
$NEUTRON_CONF_DIR/plugins.</para>
<para>Some plugins have a L2 agent that performs the actual networking. That is, the agent
will attach the virtual machine NIC to the OpenStack Networking network. Each node should have an
L2 agent running on it. Note that the agent receives the following input
parameters:</para>
<screen><computeroutput>quantum-plugin-agent --config-file &lt;quantum config&gt; --config-file &lt;plugin config&gt;</computeroutput></screen>
<screen><computeroutput>neutron-plugin-agent --config-file &lt;neutron config&gt; --config-file &lt;plugin config&gt;</computeroutput></screen>
<para>Two things need to be done prior to working with the plugin:</para>
<orderedlist>
<listitem>
@ -63,40 +63,40 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
<td/>
</tr>
<tr>
<td>core_plugin ($QUANTUM_CONF_DIR/quantum.conf)</td>
<td>quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2</td>
<td>core_plugin ($NEUTRON_CONF_DIR/neutron.conf)</td>
<td>neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2</td>
</tr>
<tr>
<td>sql_connection (in the plugin configuration file)</td>
<td>mysql://&lt;username&gt;:&lt;password&gt;@localhost/ovs_quantum?charset=utf8</td>
<td>mysql://&lt;username&gt;:&lt;password&gt;@localhost/ovs_neutron?charset=utf8</td>
</tr>
<tr>
<td>Plugin Configuration File</td>
<td>$QUANTUM_CONF_DIR/plugins/openvswitch/ovs_quantum_plugin.ini</td>
<td>$NEUTRON_CONF_DIR/plugins/openvswitch/ovs_neutron_plugin.ini</td>
</tr>
<tr>
<td>Agent </td>
<td>quantum-openvswitch-agent</td>
<td>neutron-openvswitch-agent</td>
</tr>
<tr>
<td><emphasis role="bold">Linux Bridge</emphasis></td>
<td/>
</tr>
<tr>
<td>core_plugin ($QUANTUM_CONF_DIR/quantum.conf)</td>
<td>quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2</td>
<td>core_plugin ($NEUTRON_CONF_DIR/neutron.conf)</td>
<td>neutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2</td>
</tr>
<tr>
<td>sql_connection (in the plugin configuration file)</td>
<td>mysql://&lt;username&gt;:&lt;password&gt;@localhost/quantum_linux_bridge?charset=utf8</td>
<td>mysql://&lt;username&gt;:&lt;password&gt;@localhost/neutron_linux_bridge?charset=utf8</td>
</tr>
<tr>
<td>Plugin Configuration File</td>
<td>$QUANTUM_CONF_DIR/plugins/linuxbridge/linuxbridge_conf.ini</td>
<td>$NEUTRON_CONF_DIR/plugins/linuxbridge/linuxbridge_conf.ini</td>
</tr>
<tr>
<td>Agent </td>
<td>quantum-linuxbridge-agent</td>
<td>neutron-linuxbridge-agent</td>
</tr>
</tbody>
</table></para>
@ -109,7 +109,7 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
machines running on the network. When a subnet is created, by default, the
subnet has DHCP enabled.</para>
<para>The node that runs the DHCP agent should run:</para>
<screen><computeroutput>quantum-dhcp-agent --config-file &lt;quantum config&gt;
<screen><computeroutput>neutron-dhcp-agent --config-file &lt;neutron config&gt;
--config-file &lt;dhcp config&gt;</computeroutput></screen>
<para>Currently the DHCP agent uses dnsmasq to perform that static address
assignment.</para>
@ -130,16 +130,16 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
<td/>
</tr>
<tr>
<td>interface_driver ($QUANTUM_CONF_DIR/dhcp_agent.ini)</td>
<td>quantum.agent.linux.interface.OVSInterfaceDriver</td>
<td>interface_driver ($NEUTRON_CONF_DIR/dhcp_agent.ini)</td>
<td>neutron.agent.linux.interface.OVSInterfaceDriver</td>
</tr>
<tr>
<td><emphasis role="bold">Linux Bridge</emphasis></td>
<td/>
</tr>
<tr>
<td>interface_driver ($QUANTUM_CONF_DIR/dhcp_agent.ini)</td>
<td>quantum.agent.linux.interface.BridgeInterfaceDriver</td>
<td>interface_driver ($NEUTRON_CONF_DIR/dhcp_agent.ini)</td>
<td>neutron.agent.linux.interface.BridgeInterfaceDriver</td>
</tr>
</tbody>
</table></para>
@ -161,7 +161,7 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
<title>L3 Agent</title>
<para>There is an option to run a L3 agent that will give enable layer 3 forwarding and
floating IP support. The node that runs the L3 agent should run:</para>
<screen><computeroutput>quantum-l3-agent --config-file &lt;quantum config&gt;
<screen><computeroutput>neutron-l3-agent --config-file &lt;neutron config&gt;
--config-file &lt;l3 config&gt;</computeroutput></screen>
<para>A driver needs to be configured that matches the plugin running on the service. The
driver is used to create the routing interface. <table rules="all">
@ -180,11 +180,11 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
<td/>
</tr>
<tr>
<td>interface_driver ($QUANTUM_CONF_DIR/l3_agent.ini) </td>
<td>quantum.agent.linux.interface.OVSInterfaceDriver </td>
<td>interface_driver ($NEUTRON_CONF_DIR/l3_agent.ini) </td>
<td>neutron.agent.linux.interface.OVSInterfaceDriver </td>
</tr>
<tr>
<td>external_network_bridge ($QUANTUM_CONF_DIR/l3_agent.ini) </td>
<td>external_network_bridge ($NEUTRON_CONF_DIR/l3_agent.ini) </td>
<td>br-ex </td>
</tr>
<tr>
@ -192,11 +192,11 @@ mysql&gt; grant all on &lt;database-name&gt;.* to '&lt;user-name&gt;'@'%';</comp
<td/>
</tr>
<tr>
<td>interface_driver ($QUANTUM_CONF_DIR/l3_agent.ini) </td>
<td>quantum.agent.linux.interface.BridgeInterfaceDriver</td>
<td>interface_driver ($NEUTRON_CONF_DIR/l3_agent.ini) </td>
<td>neutron.agent.linux.interface.BridgeInterfaceDriver</td>
</tr>
<tr>
<td>external_network_bridge ($QUANTUM_CONF_DIR/l3_agent.ini) </td>
<td>external_network_bridge ($NEUTRON_CONF_DIR/l3_agent.ini) </td>
<td>This field must be empty (or the bridge name for the external
network).</td>
</tr>
@ -240,7 +240,7 @@ router_id = 1064ad16-36b7-4c2f-86f0-daa2bcbd6b2a</computeroutput></screen>
<para> To configure it, you need to run the OpenStack Networking service and create a router, and
then set an ID of the router created to <emphasis>router_id</emphasis> in the L3
agent configuration file. </para>
<screen><computeroutput>$ quantum router-create myrouter1
<screen><computeroutput>$ neutron router-create myrouter1
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
@ -280,9 +280,9 @@ Created a new router:
<screen><computeroutput>handle_internal_only_routers = True
gateway_external_network_id = 2118b11c-011e-4fa5-a6f1-2ca34d372c35
external_network_bridge = br-ex</computeroutput></screen>
<screen><computeroutput>python /opt/stack/quantum/bin/quantum-l3-agent
--config-file /etc/quantum/quantum.conf
--config-file=/etc/quantum/l3_agent.ini</computeroutput></screen>
<screen><computeroutput>python /opt/stack/neutron/bin/neutron-l3-agent
--config-file /etc/neutron/neutron.conf
--config-file=/etc/neutron/l3_agent.ini</computeroutput></screen>
<para> For the second (or later) agent, invoke it with the following l3_agent.ini where
handle_internal_only_routers is False. </para>
<screen><computeroutput>handle_internal_only_routers = False

View File

@ -210,23 +210,23 @@
<para>Show all attributes of a network, including provider
attributes when invoked with the admin role:</para>
<para>
<programlisting>quantum net-show &lt;name or net-id&gt;</programlisting>
<programlisting>neutron net-show &lt;name or net-id&gt;</programlisting>
</para>
<para>Create a local provider network (admin-only):</para>
<para>
<programlisting>quantum net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type local</programlisting>
<programlisting>neutron net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type local</programlisting>
</para>
<para>Create a flat provider network (admin-only):</para>
<para>
<programlisting>quantum net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type flat --provider:physical_network &lt;phys-net-name&gt;</programlisting>
<programlisting>neutron net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type flat --provider:physical_network &lt;phys-net-name&gt;</programlisting>
</para>
<para>Create a VLAN provider network (admin-only):</para>
<para>
<programlisting>quantum net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type vlan --provider:physical_network &lt;phys-net-name&gt; --provider:segmentation_id &lt;VID&gt;</programlisting>
<programlisting>neutron net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type vlan --provider:physical_network &lt;phys-net-name&gt; --provider:segmentation_id &lt;VID&gt;</programlisting>
</para>
<para>Create a GRE provider network (admin-only):</para>
<para>
<programlisting>quantum net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type gre --provider:segmentation_id &lt;tunnel-id&gt;</programlisting>
<programlisting>neutron net-create &lt;name&gt; --tenant_id &lt;tenant-id&gt; --provider:network_type gre --provider:segmentation_id &lt;tunnel-id&gt;</programlisting>
</para>
<para>When creating flat networks or VLAN networks,
&lt;phys-net-name&gt; must be known to the plugin. See
@ -415,20 +415,20 @@
<section xml:id="l3_workflow">
<title>Common L3 Workflow</title>
<para>Create external networks (admin-only) </para>
<screen><computeroutput>quantum net-create public --router:external=True
quantum subnet-create public 172.16.1.0/24 </computeroutput></screen>
<screen><computeroutput>neutron net-create public --router:external=True
neutron subnet-create public 172.16.1.0/24 </computeroutput></screen>
<para>Viewing external networks: </para>
<screen><computeroutput>quantum net-list -- --router:external=True</computeroutput></screen>
<screen><computeroutput>neutron net-list -- --router:external=True</computeroutput></screen>
<para>Creating routers</para>
<para>Internal-only router to connect multiple L2 networks
privately.  </para>
<screen><computeroutput>quantum net-create net1
quantum subnet-create net1 10.0.0.0/24
quantum net-create net2
quantum subnet-create net2 10.0.1.0/24
quantum router-create router1
quantum router-interface-add router1 &lt;subnet1-uuid&gt;
quantum router-interface-add router1 &lt;subnet2-uuid&gt;</computeroutput></screen>
<screen><computeroutput>neutron net-create net1
neutron subnet-create net1 10.0.0.0/24
neutron net-create net2
neutron subnet-create net2 10.0.1.0/24
neutron router-create router1
neutron router-interface-add router1 &lt;subnet1-uuid&gt;
neutron router-interface-add router1 &lt;subnet2-uuid&gt;</computeroutput></screen>
<para>The router will get an interface with the gateway_ip
address of the subnet, and this interface will be
attached to a port on the L2 OpenStack Networking
@ -442,18 +442,18 @@ quantum router-interface-add router1 &lt;subnet2-uuid&gt;</computeroutput></scre
<para>A router can also be connected to an “external
network”, allowing that router to act as a NAT gateway
for external connectivity.  </para>
<screen><computeroutput>quantum router-gateway-set router1 &lt;ext-net-id&gt; </computeroutput></screen>
<screen><computeroutput>neutron router-gateway-set router1 &lt;ext-net-id&gt; </computeroutput></screen>
<para>Viewing routers:</para>
<para>List all routers:
<screen><computeroutput>quantum router-list</computeroutput></screen></para>
<screen><computeroutput>neutron router-list</computeroutput></screen></para>
<para>Show a specific router:
<screen><computeroutput>quantum router-show &lt;router_id&gt;</computeroutput></screen></para>
<screen><computeroutput>neutron router-show &lt;router_id&gt;</computeroutput></screen></para>
<para>Show all internal interfaces for a router:
<screen><computeroutput>quantum port-list -- --device_id=&lt;router_id&gt;</computeroutput></screen></para>
<screen><computeroutput>neutron port-list -- --device_id=&lt;router_id&gt;</computeroutput></screen></para>
<para>Associating / Disassociating Floating IPs: </para>
<para>First, identify the port-id representing the VM NIC
that the floating IP should map to: </para>
<screen><computeroutput>quantum port-list -c id -c fixed_ips -- --device_id=ZZZ</computeroutput></screen>
<screen><computeroutput>neutron port-list -c id -c fixed_ips -- --device_id=ZZZ</computeroutput></screen>
<para>This port must be on an OpenStack Networking subnet
that is attached to a router uplinked to the external
network that will be used to create the floating IP. 
@ -465,26 +465,26 @@ quantum router-interface-add router1 &lt;subnet2-uuid&gt;</computeroutput></scre
router).  </para>
<para>Create floating IP unassociated, then
associate</para>
<screen><computeroutput>quantum floatingip-create &lt;ext-net-id&gt;
quantum floatingip-associate &lt;floatingip-id&gt; &lt;internal VM port-id&gt; </computeroutput></screen>
<screen><computeroutput>neutron floatingip-create &lt;ext-net-id&gt;
neutron floatingip-associate &lt;floatingip-id&gt; &lt;internal VM port-id&gt; </computeroutput></screen>
<para>create floating IP and associate in a single
step</para>
<screen><computeroutput>quantum floatingip-create --port_id &lt;internal VM port-id&gt; &lt;ext-net-id&gt; </computeroutput></screen>
<screen><computeroutput>neutron floatingip-create --port_id &lt;internal VM port-id&gt; &lt;ext-net-id&gt; </computeroutput></screen>
<para>Viewing Floating IP State: </para>
<screen><computeroutput>quantum floatingip-list</computeroutput></screen>
<screen><computeroutput>neutron floatingip-list</computeroutput></screen>
<para>Find floating IP for a particular VM port: </para>
<screen><computeroutput>quantum floatingip-list -- --port_id=ZZZ</computeroutput></screen>
<screen><computeroutput>neutron floatingip-list -- --port_id=ZZZ</computeroutput></screen>
<para>Disassociate a Floating IP:</para>
<screen><computeroutput>quantum floatingip-disassociate &lt;floatingip-id&gt;</computeroutput></screen>
<screen><computeroutput>neutron floatingip-disassociate &lt;floatingip-id&gt;</computeroutput></screen>
<para>L3 Tear Down</para>
<para>Delete the Floating IP:</para>
<screen><computeroutput>quantum floatingip-delete &lt;floatingip-id&gt; </computeroutput></screen>
<screen><computeroutput>neutron floatingip-delete &lt;floatingip-id&gt; </computeroutput></screen>
<para>Then clear the gateway: </para>
<screen><computeroutput>quantum router-gateway-clear router1</computeroutput></screen>
<screen><computeroutput>neutron router-gateway-clear router1</computeroutput></screen>
<para>Then remove the interfaces from the router: </para>
<screen><computeroutput>quantum router-interface-delete router1 &lt;subnet-id&gt; </computeroutput></screen>
<screen><computeroutput>neutron router-interface-delete router1 &lt;subnet-id&gt; </computeroutput></screen>
<para>Finally, delete the router: </para>
<screen><computeroutput>quantum router-delete router1</computeroutput></screen>
<screen><computeroutput>neutron router-delete router1</computeroutput></screen>
</section>
</section>
<section xml:id="securitygroups">
@ -500,18 +500,14 @@ quantum floatingip-associate &lt;floatingip-id&gt; &lt;internal VM port-id&gt; <
security group. By default this group will drop all
ingress traffic and allow all egress. Rules can be added
to this group in order to change the behaviour.</para>
<para>If one desires to use the OpenStack Compute security
group APIs and/or have OpenStack Compute orchestrate the
creation of new ports for instances on specific security
groups, additional configuration is needed. To enable
this, one must configure the following file
<filename>/etc/nova/nova.conf</filename> and set the
config option security_group_api=quantum on every node
running nova-compute and nova-api. After this change is
made restart nova-api and nova-compute in order to pick up
this change. After this change is made one will be able to
use both the OpenStack Compute and OpenStack Network
security group API at the same time.</para>
<para>If one desires to use the OpenStack Compute security group APIs and/or have OpenStack
Compute orchestrate the creation of new ports for instances on specific security groups,
additional configuration is needed. To enable this, one must configure the following
file <filename>/etc/nova/nova.conf</filename> and set the config option
security_group_api=neutron on every node running nova-compute and nova-api. After this
change is made restart nova-api and nova-compute in order to pick up this change. After
this change is made one will be able to use both the OpenStack Compute and OpenStack
Network security group API at the same time.</para>
<note>
<para>In order to use the OpenStack Compute security group
API with OpenStack Networking the OpenStack Networking
@ -665,24 +661,24 @@ quantum floatingip-associate &lt;floatingip-id&gt; &lt;internal VM port-id&gt; <
<title>Common Security Group Commands</title>
<para>Create a security group for our web servers:</para>
<screen><computeroutput>
quantum security-group-create webservers --description "security group for webservers"</computeroutput></screen>
neutron security-group-create webservers --description "security group for webservers"</computeroutput></screen>
<para>Viewing security groups: </para>
<screen><computeroutput>quantum security-group-list</computeroutput></screen>
<screen><computeroutput>neutron security-group-list</computeroutput></screen>
<para>Creating security group rule to allow port 80
ingress:</para>
<screen><computeroutput>
quantum security-group-rule-create --direction ingress --protocol tcp --port_range_min 80 --port_range_max 80 &lt;security_group_uuid&gt;</computeroutput></screen>
neutron security-group-rule-create --direction ingress --protocol tcp --port_range_min 80 --port_range_max 80 &lt;security_group_uuid&gt;</computeroutput></screen>
<para>List security group rules: </para>
<screen><computeroutput>quantum security-group-rule-list </computeroutput></screen>
<screen><computeroutput>neutron security-group-rule-list </computeroutput></screen>
<para>Delete a security group rule:</para>
<screen><computeroutput>quantum security-group-rule-delete &lt;security_group_rule_uuid&gt;</computeroutput></screen>
<screen><computeroutput>neutron security-group-rule-delete &lt;security_group_rule_uuid&gt;</computeroutput></screen>
<para>Delete security group:</para>
<screen><computeroutput>quantum security-group-delete &lt;security_group_uuid&gt; </computeroutput></screen>
<screen><computeroutput>neutron security-group-delete &lt;security_group_uuid&gt; </computeroutput></screen>
<para>Create a port and associated two security
groups:</para>
<screen><computeroutput>quantum port-create --security-group &lt;security_group_id1&gt; --security-group &lt;security_group_id2&gt; &lt;network_id&gt;</computeroutput></screen>
<screen><computeroutput>neutron port-create --security-group &lt;security_group_id1&gt; --security-group &lt;security_group_id2&gt; &lt;network_id&gt;</computeroutput></screen>
<para>Remove security groups from a port:</para>
<screen><computeroutput>quantum port-update --no-security-groups &lt;port_id&gt;</computeroutput></screen>
<screen><computeroutput>neutron port-update --no-security-groups &lt;port_id&gt;</computeroutput></screen>
</section>
</section>
<section xml:id="lbaas">
@ -698,24 +694,24 @@ quantum security-group-rule-create --direction ingress --protocol tcp --port_ran
<title>Common Load-Balancer-as-a-Service Workflow</title>
<para>Create a load balancer pool:</para>
<screen><computeroutput>
quantum lb-pool-create --lb-method ROUND_ROBIN --name mypool --protocol HTTP --subnet-id &lt;subnet-uuid&gt;</computeroutput></screen>
neutron lb-pool-create --lb-method ROUND_ROBIN --name mypool --protocol HTTP --subnet-id &lt;subnet-uuid&gt;</computeroutput></screen>
<para>Associate two web servers with pool:</para>
<screen><computeroutput>
quantum lb-member-create --address &lt;webserver one IP&gt; --protocol-port 80 mypool
quantum lb-member-create --address &lt;webserver two IP&gt; --protocol-port 80 mypool</computeroutput></screen>
neutron lb-member-create --address &lt;webserver one IP&gt; --protocol-port 80 mypool
neutron lb-member-create --address &lt;webserver two IP&gt; --protocol-port 80 mypool</computeroutput></screen>
<para>Create a health monitor which checks to make sure
our instances are still running on the specified
protocol-port:</para>
<screen><computeroutput>
quantum lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3</computeroutput></screen>
neutron lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3</computeroutput></screen>
<para>Associate health monitor with pool:</para>
<screen><computeroutput>
quantum lb-healthmonitor-associate &lt;healthmonitor-uuid&gt; mypool</computeroutput></screen>
neutron lb-healthmonitor-associate &lt;healthmonitor-uuid&gt; mypool</computeroutput></screen>
<para>Create a Virtual IP Address (VIP) that when accessed
via the load balancer will direct the requests to one
of the pool members:</para>
<screen><computeroutput>
quantum lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id &lt;subnet-uuid&gt; mypool</computeroutput></screen>
neutron lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id &lt;subnet-uuid&gt; mypool</computeroutput></screen>
</section>
</section>
<section xml:id="plugin_specific_extensions">
@ -748,17 +744,13 @@ quantum lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-i
optimal, a scaling factor from the nova flavor
'rxtx_factor' is passed in from OpenStack Compute
when creating the port to scale the queue.</para>
<para>Lastly, if you want to set a specific baseline
QoS policy for the amount of bandwidth a single
port can use (unless a network queue is specified
with the network a port is created on) a default
queue can be created in quantum which then causes
ports created to be associated with a queue of
that size times the rxtx scaling factor. One thing
to note is that after a network queue or default
queue is specified this will not add queues to
ports previously created and will only create
queues for ports created thereafter.</para>
<para>Lastly, if you want to set a specific baseline QoS policy for the amount of
bandwidth a single port can use (unless a network queue is specified with the
network a port is created on) a default queue can be created in neutron which
then causes ports created to be associated with a queue of that size times the
rxtx scaling factor. One thing to note is that after a network queue or default
queue is specified this will not add queues to ports previously created and will
only create queues for ports created thereafter.</para>
<section xml:id="nicira_nvp_qos_api_abstractions">
<title>Nicira NVP QoS API Abstractions</title>
<table rules="all">
@ -836,15 +828,15 @@ quantum lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-i
<section xml:id="nicira_nvp_qos_walk_through">
<title>Nicira NVP QoS Walk Through</title>
<para>Create QoS Queue (admin-only) </para>
<screen><computeroutput>quantum queue-create--min 10 --max 1000 myqueue</computeroutput></screen>
<screen><computeroutput>neutron queue-create--min 10 --max 1000 myqueue</computeroutput></screen>
<para>Associate queue with a network</para>
<screen><computeroutput>quantum net-create network --queue_id=&lt;queue_id&gt;</computeroutput></screen>
<screen><computeroutput>neutron net-create network --queue_id=&lt;queue_id&gt;</computeroutput></screen>
<para>Create default system queue</para>
<screen><computeroutput>quantum queue-create --default True --min 10 --max 2000 default</computeroutput></screen>
<screen><computeroutput>neutron queue-create --default True --min 10 --max 2000 default</computeroutput></screen>
<para>List QoS Queues: </para>
<screen><computeroutput>quantum queue-list</computeroutput></screen>
<screen><computeroutput>neutron queue-list</computeroutput></screen>
<para>Delete QoS Queue: </para>
<screen><computeroutput>quantum queue-delete &lt;queue_id or name&gt;'</computeroutput></screen>
<screen><computeroutput>neutron queue-delete &lt;queue_id or name&gt;'</computeroutput></screen>
</section>
</section>
</section>

View File

@ -6,10 +6,9 @@
<title>Advanced Operational Features</title>
<section xml:id="ch_adv_logging">
<title>Logging Settings</title>
<para>OpenStack Networking components use Python logging
module to do logging. Logging configuration can be provided in
<filename>quantum.conf</filename> or as command line options. Command options will
override ones in <filename>quantum.conf</filename>.</para>
<para>OpenStack Networking components use Python logging module to do logging. Logging
configuration can be provided in <filename>neutron.conf</filename> or as command line options.
Command options will override ones in <filename>neutron.conf</filename>.</para>
<para>Two ways to specify the logging configuration for
OpenStack Networking components:</para>
<orderedlist>
@ -18,7 +17,7 @@
<para>Please see <link xlink:href="http://docs.python.org/howto/logging.html">Python Logging HOWTO</link> for logging configuration file.</para>
</listitem>
<listitem>
<para>Provide logging setting in <filename>quantum.conf</filename></para>
<para>Provide logging setting in <filename>neutron.conf</filename></para>
<screen>
<computeroutput>
[DEFAULT]
@ -48,11 +47,10 @@
<title>Notifications</title>
<section xml:id="ch_adv_notification_overview">
<title>Notification Options</title>
<para>Notifications can be sent when OpenStack Networking
resources such as network, subnet and port are created,
updated or deleted. To support DHCP agent, rpc_notifier driver
must be set. To set up the notification, edit notification
options in <filename>quantum.conf</filename>:</para>
<para>Notifications can be sent when OpenStack Networking resources such as network, subnet
and port are created, updated or deleted. To support DHCP agent, rpc_notifier driver must be
set. To set up the notification, edit notification options in
<filename>neutron.conf</filename>:</para>
<screen>
<computeroutput>
# ============ Notification System Options =====================
@ -64,11 +62,11 @@
# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = quantum.openstack.common.notifier.no_op_notifier
# notification_driver = neutron.openstack.common.notifier.no_op_notifier
# Logging driver
# notification_driver = quantum.openstack.common.notifier.log_notifier
# notification_driver = neutron.openstack.common.notifier.log_notifier
# RPC driver
notification_driver = quantum.openstack.common.notifier.rpc_notifier
notification_driver = neutron.openstack.common.notifier.rpc_notifier
# default_notification_level is used to form actual topic names or to set logging level
# default_notification_level = INFO
@ -87,12 +85,11 @@ notification_topics = notifications
<title>Setting Cases</title>
<section xml:id="ch_adv_notification_cases_log_rpc">
<title>Logging and RPC</title>
<para>The options below will make OpenStack Networking
server send notifications via logging and RPC. The logging
options are described in <link linkend="ch_adv_logging"
>Logging Settings</link>. RPC notifications will go to
'notifications.info' queue binded to a topic exchange
defined by 'control_exchange' in <filename>quantum.conf</filename>.</para>
<para>The options below will make OpenStack Networking server send notifications via
logging and RPC. The logging options are described in <link linkend="ch_adv_logging"
>Logging Settings</link>. RPC notifications will go to 'notifications.info' queue binded
to a topic exchange defined by 'control_exchange' in
<filename>neutron.conf</filename>.</para>
<screen>
<computeroutput>
# ============ Notification System Options =====================
@ -104,11 +101,11 @@ notification_topics = notifications
# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = quantum.openstack.common.notifier.no_op_notifier
# notification_driver = neutron.openstack.common.notifier.no_op_notifier
# Logging driver
notification_driver = quantum.openstack.common.notifier.log_notifier
notification_driver = neutron.openstack.common.notifier.log_notifier
# RPC driver
notification_driver = quantum.openstack.common.notifier.rpc_notifier
notification_driver = neutron.openstack.common.notifier.rpc_notifier
# default_notification_level is used to form actual topic names or to set logging level
default_notification_level = INFO
@ -125,11 +122,10 @@ notification_topics = notifications
</section>
<section xml:id="ch_adv_notification_cases_multi_rpc_topics">
<title>Multiple RPC Topics</title>
<para>The options below will make OpenStack Networking
server send notifications to multiple RPC topics. RPC
notifications will go to 'notifications_one.info' and
'notifications_two.info' queues binded to a topic exchange
defined by 'control_exchange' in <filename>quantum.conf</filename>.</para>
<para>The options below will make OpenStack Networking server send notifications to
multiple RPC topics. RPC notifications will go to 'notifications_one.info' and
'notifications_two.info' queues binded to a topic exchange defined by 'control_exchange'
in <filename>neutron.conf</filename>.</para>
<screen>
<computeroutput>
# ============ Notification System Options =====================
@ -141,11 +137,11 @@ notification_topics = notifications
# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = quantum.openstack.common.notifier.no_op_notifier
# notification_driver = neutron.openstack.common.notifier.no_op_notifier
# Logging driver
# notification_driver = quantum.openstack.common.notifier.log_notifier
# notification_driver = neutron.openstack.common.notifier.log_notifier
# RPC driver
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
# default_notification_level is used to form actual topic names or to set logging level
default_notification_level = INFO
@ -166,7 +162,7 @@ notification_topics = notifications_one,notifications_two
<title>Quotas</title>
<para> Quota is a function to limit number of resources. You can enforce default quota for all
tenants. You will get error when you try to create more resources than the limit. </para>
<screen><computeroutput>$ quantum net-create test_net
<screen><computeroutput>$ neutron net-create test_net
Quota exceeded for resources: ['network']</computeroutput></screen>
<para>
Per-tenant quota configuration is also supported by quota
@ -179,9 +175,10 @@ Quota exceeded for resources: ['network']</computeroutput></screen>
tenants have a same quota value, i.e., a number of resources
that a tenant can create. This is enabled by default. </para>
<para> The value of quota is defined in the OpenStack Networking configuration file
(<filename>quantum.conf</filename>). If you want to disable quotas for a specific resource
(e.g., network, subnet, port), remove a corresponding item from <literal>quota_items</literal>. Each of the
quota values in the example below is the default value. </para>
(<filename>neutron.conf</filename>). If you want to disable quotas for a specific resource
(e.g., network, subnet, port), remove a corresponding item from
<literal>quota_items</literal>. Each of the quota values in the example below is the
default value. </para>
<screen><computeroutput>[quotas]
# resource name(s) that are supported in quota features
quota_items = network,subnet,port
@ -196,10 +193,11 @@ quota_subnet = 10
quota_port = 50
# default driver to use for quota checks
quota_driver = quantum.quota.ConfDriver</computeroutput></screen>
quota_driver = neutron.quota.ConfDriver</computeroutput></screen>
<para>OpenStack Networking also supports quotas for L3 resources: router and floating IP. You
can configure them by adding the following lines to <literal>quotas</literal> section in
<filename>quantum.conf</filename>. (Note that <literal>quota_items</literal> does not affect these quotas.) </para>
<filename>neutron.conf</filename>. (Note that <literal>quota_items</literal> does not
affect these quotas.) </para>
<screen><computeroutput>[quotas]
# number of routers allowed per tenant, and minus means unlimited
quota_router = 10
@ -208,8 +206,9 @@ quota_router = 10
quota_floatingip = 50</computeroutput></screen>
<para>OpenStack Networking also supports quotas for security group resources: number of
security groups and the number of rules per security group. You can configure them by adding
the following lines to <literal>quotas</literal> section in <filename>quantum.conf</filename>. (Note that
<literal>quota_items</literal> does not affect these quotas.) </para>
the following lines to <literal>quotas</literal> section in
<filename>neutron.conf</filename>. (Note that <literal>quota_items</literal> does not
affect these quotas.) </para>
<screen><computeroutput>[quotas]
# number of security groups per tenant, and minus means unlimited
quota_security_group = 10
@ -220,12 +219,13 @@ quota_security_group_rule = 100</computeroutput></screen>
<section xml:id="cfg_quotas_per_tenant">
<title>Per-tenant quota configuration</title>
<para> OpenStack Networking also supports per-tenant quota limit by quota extension API. To
enable per-tenant quota, you need to set <literal>quota_driver</literal> in <literal>quantum.conf</literal>.</para>
<screen><computeroutput>quota_driver = quantum.db.quota_db.DbQuotaDriver</computeroutput></screen>
enable per-tenant quota, you need to set <literal>quota_driver</literal> in
<literal>neutron.conf</literal>.</para>
<screen><computeroutput>quota_driver = neutron.db.quota_db.DbQuotaDriver</computeroutput></screen>
<para>
When per-tenant quota is enabled, the output of the following command contains <literal>quotas</literal>.
</para>
<screen><computeroutput>$ quantum ext-list -c alias -c name
<screen><computeroutput>$ neutron ext-list -c alias -c name
+-----------------+--------------------------+
| alias | name |
+-----------------+--------------------------+
@ -235,12 +235,12 @@ quota_security_group_rule = 100</computeroutput></screen>
| quotas | Quota management support |
| agent | agent |
| provider | Provider Network |
| router | Quantum L3 Router |
| router | Neutron L3 Router |
| lbaas | LoadBalancing service |
| extraroute | Quantum Extra Route |
| extraroute | Neutron Extra Route |
+-----------------+--------------------------+
$ quantum ext-show quotas
$ neutron ext-show quotas
+-------------+------------------------------------------------------------+
| Field | Value |
+-------------+------------------------------------------------------------+
@ -273,7 +273,7 @@ $ quantum ext-show quotas
The tenants who have the default set of quota limits are not listed.
This command is permitted to only 'admin' users.
</para>
<screen><computeroutput>$ quantum quota-list
<screen><computeroutput>$ neutron quota-list
+------------+---------+------+--------+--------+----------------------------------+
| floatingip | network | port | router | subnet | tenant_id |
+------------+---------+------+--------+--------+----------------------------------+
@ -286,7 +286,7 @@ $ quantum ext-show quotas
If per-tenant quota limits are not defined for the tenant, the default set of
quotas are displayed.
</para>
<screen><computeroutput>$ quantum quota-show --tenant_id 6f88036c45344d9999a1f971e4882723
<screen><computeroutput>$ neutron quota-show --tenant_id 6f88036c45344d9999a1f971e4882723
+------------+-------+
| Field | Value |
+------------+-------+
@ -299,7 +299,7 @@ $ quantum ext-show quotas
<para>
The below is an example called by a non-admin user.
</para>
<screen><computeroutput>$ quantum quota-show
<screen><computeroutput>$ neutron quota-show
+------------+-------+
| Field | Value |
+------------+-------+
@ -311,7 +311,7 @@ $ quantum ext-show quotas
+------------+-------+</computeroutput></screen>
<para>You can update a quota of the given tenant by <literal>quota-update</literal> command.</para>
<para>Update the limit of network quota.</para>
<screen><computeroutput>$ quantum quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --network 5
<screen><computeroutput>$ neutron quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --network 5
+------------+-------+
| Field | Value |
+------------+-------+
@ -322,7 +322,7 @@ $ quantum ext-show quotas
| subnet | 10 |
+------------+-------+</computeroutput></screen>
<para>You can update quotas of multiple resources in one command.</para>
<screen><computeroutput>$ quantum quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --subnet 5 --port 20
<screen><computeroutput>$ neutron quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --subnet 5 --port 20
+------------+-------+
| Field | Value |
+------------+-------+
@ -337,7 +337,7 @@ $ quantum ext-show quotas
specify new values of the quotas after '--'. The example below updates
the limit of the number of floating IPs for the given tenant.
</para>
<screen><computeroutput>$ quantum quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 -- --floatingip 20
<screen><computeroutput>$ neutron quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 -- --floatingip 20
+------------+-------+
| Field | Value |
+------------+-------+
@ -350,7 +350,7 @@ $ quantum ext-show quotas
<para>
You can update the limits of multiple resources including L2 resources and L3 resource in one command.
</para>
<screen><computeroutput>$ quantum quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --network 3 --subnet 3 --port 3 -- --floatingip 3 --router 3
<screen><computeroutput>$ neutron quota-update --tenant_id 6f88036c45344d9999a1f971e4882723 --network 3 --subnet 3 --port 3 -- --floatingip 3 --router 3
+------------+-------+
| Field | Value |
+------------+-------+
@ -365,9 +365,9 @@ $ quantum ext-show quotas
After <literal>quota-delete</literal>, quota limits enforced to the tenant are reset to
the default set of quotas.
</para>
<screen><computeroutput>$ quantum quota-delete --tenant_id 6f88036c45344d9999a1f971e4882723
<screen><computeroutput>$ neutron quota-delete --tenant_id 6f88036c45344d9999a1f971e4882723
Deleted quota: 6f88036c45344d9999a1f971e4882723
$ quantum quota-show --tenant_id 6f88036c45344d9999a1f971e4882723
$ neutron quota-show --tenant_id 6f88036c45344d9999a1f971e4882723
+------------+-------+
| Field | Value |
+------------+-------+

View File

@ -24,18 +24,18 @@
OpenStack Networking server ($IP), and service ID
($ID) returned by the OpenStack Compute service
catalog, run: </para>
<screen><userinput><?db-font-size 75%?>keystone service-create --name quantum --type network --description 'OpenStack Networking Service'</userinput></screen>
<screen><userinput><?db-font-size 75%?>keystone service-create --name neutron --type network --description 'OpenStack Networking Service'</userinput></screen>
<para>Make a note of the ID returned by the command
and put it in the $ID location.</para>
<screen><userinput>keystone endpoint-create --region $REGION --service-id $ID --publicurl 'http://$IP:9696/' --adminurl 'http://$IP:9696/' --internalurl 'http://$IP:9696/'</userinput></screen>
<para>Here's an example with real values:</para>
<screen><userinput><?db-font-size 75%?><prompt>$</prompt> <userinput>keystone service-create --name quantum --type network --description 'OpenStack Networking Service'</userinput></userinput></screen>
<screen><userinput><?db-font-size 75%?><prompt>$</prompt> <userinput>keystone service-create --name neutron --type network --description 'OpenStack Networking Service'</userinput></userinput></screen>
<screen>+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Networking Service |
| id | 26a55b340e254ad5bb78c0b14391e153 |
| name | quantum |
| name | neutron |
| type | network |
+-------------+----------------------------------+</screen>
<screen><prompt>$</prompt> <userinput>keystone endpoint-create --region myregion --service-id 26a55b340e254ad5bb78c0b14391e153 \
@ -59,17 +59,13 @@ catalog.$Region.network.name = Network Service</programlisting>
<step>
<title>Create OpenStack Networking Service
User</title>
<para>For OpenStack Compute to speak to the OpenStack
Networking API, and for some internal components
of OpenStack Networking to communicate with the
OpenStack Networking API, you need to provide them
with admin user credentials that they can use when
accessing the OpenStack Networking API.  The
suggested approach is to create a special
'service' tenant, create a quantum user within
this tenant, and to assign this user an 'admin'
role. Kindly check the ID for user, role and
tenant.</para>
<para>For OpenStack Compute to speak to the OpenStack Networking API, and for some
internal components of OpenStack Networking to communicate with the OpenStack
Networking API, you need to provide them with admin user credentials that they
can use when accessing the OpenStack Networking API.  The suggested approach is
to create a special 'service' tenant, create a neutron user within this
tenant, and to assign this user an 'admin' role. Kindly check the ID for user,
role and tenant.</para>
<para>For example: </para>
<note><para>A <literal>get_id</literal> shell function is used
to store the id of newly created objects. This function needs
@ -83,9 +79,9 @@ catalog.$Region.network.name = Network Service</programlisting>
</para></note>
<screen><prompt>$</prompt> <userinput>ADMIN_ROLE=$(get_id keystone role-create --name=admin)
</userinput></screen>
<screen><prompt>$</prompt> <userinput>QUANTUM_USER=$(get_id keystone user-create --name=quantum --pass="$QUANTUM_PASSWORD" --email=demo@example.com --tenant-id service)
<screen><prompt>$</prompt> <userinput>NEUTRON_USER=$(get_id keystone user-create --name=neutron --pass="$NEUTRON_PASSWORD" --email=demo@example.com --tenant-id service)
</userinput></screen>
<screen><prompt>$</prompt> <userinput>keystone user-role-add --user_id $QUANTUM_USER --role_id $ADMIN_ROLE --tenant_id service</userinput></screen>
<screen><prompt>$</prompt> <userinput>keystone user-role-add --user_id $NEUTRON_USER --role_id $ADMIN_ROLE --tenant_id service</userinput></screen>
</step>
</procedure>
<para> See the OpenStack Installation Guides for more details
@ -138,59 +134,49 @@ catalog.$Region.network.name = Network Service</programlisting>
by each nova-compute and nova-api instance:  </para>
<itemizedlist>
<listitem>
<para>network_api_class: must be modified from
default to 'nova.network.quantumv2.api.API' to
indicate that OpenStack Networking should be
used rather than the traditional nova-network
networking model.</para>
<para>network_api_class: must be modified from default to
'nova.network.neutronv2.api.API' to indicate that OpenStack Networking
should be used rather than the traditional nova-network networking
model.</para>
</listitem>
<listitem>
<para>quantum_url: must include the hostname/IP and port
of the quantum-server instance for this
deployment.</para>
<para>neutron_url: must include the hostname/IP and port of the neutron-server
instance for this deployment.</para>
</listitem>
<listitem>
<para>quantum_auth_strategy: should be kept as default
'keystone' for all production deployments.</para>
<para>neutron_auth_strategy: should be kept as default 'keystone' for all
production deployments.</para>
</listitem>
<listitem>
<para>quantum_admin_tenant_name: must be modified
to be the name of the service tenant created
in the above section on OpenStack Identity
<para>neutron_admin_tenant_name: must be modified to be the name of the service
tenant created in the above section on OpenStack Identity
configuration.</para>
</listitem>
<listitem>
<para>quantum_admin_username: must be modified to
be the name of the user created in the above
section on OpenStack Identity
configuration.</para>
<para>neutron_admin_username: must be modified to be the name of the user
created in the above section on OpenStack Identity configuration.</para>
</listitem>
<listitem>
<para>quantum_admin_password: must be modified to
be the password of the user created in the
above section on OpenStack Identity
configuration.</para>
<para>neutron_admin_password: must be modified to be the password of the user
created in the above section on OpenStack Identity configuration.</para>
</listitem>
<listitem>
<para>quantum_admin_auth_url: must be modified to
point to the OpenStack Identity server IP and
port. This is the Identity (keystone) admin
API server IP and port value, and not the
Identity service API IP and port.</para>
<para>neutron_admin_auth_url: must be modified to point to the OpenStack
Identity server IP and port. This is the Identity (keystone) admin API
server IP and port value, and not the Identity service API IP and
port.</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="nova_config_security_groups">
<title>Security Group Configuration</title>
<para>The OpenStack Networking Service provides security group
functionality using a mechanism that is more flexible and powerful
than the security group capabilities built into OpenStack
Compute. Thus, when using OpenStack Networking, nova.conf should
always disable built-in security groups and proxy all security group
calls to the OpenStack Networking API. Failure to do so will result
in conflicting security policies being simultaneously applied by
both services. To proxy security groups to Quantum, use the
following configuration values:</para>
<para>The OpenStack Networking Service provides security group functionality using a
mechanism that is more flexible and powerful than the security group capabilities
built into OpenStack Compute. Thus, when using OpenStack Networking, nova.conf
should always disable built-in security groups and proxy all security group calls to
the OpenStack Networking API. Failure to do so will result in conflicting security
policies being simultaneously applied by both services. To proxy security groups to
Neutron, use the following configuration values:</para>
<itemizedlist>
<listitem>
<para>
@ -201,11 +187,8 @@ catalog.$Region.network.name = Network Service</programlisting>
</para>
</listitem>
<listitem>
<para>
security_group_api : must be set to 'quantum' so
that all security group requests are proxied to
the OpenStack Network Service.
</para>
<para> security_group_api : must be set to 'neutron' so that all security group
requests are proxied to the OpenStack Network Service. </para>
</listitem>
</itemizedlist>
</section>
@ -218,33 +201,24 @@ catalog.$Region.network.name = Network Service</programlisting>
setting the following fields in nova.conf: </para>
<itemizedlist>
<listitem>
<para>
service_quantum_metadata_proxy: must be set to 'true',
otherwise nova-api will not properly respond to requests
from the quantum-metadata-agent.
</para>
<para> service_neutron_metadata_proxy: must be set to 'true', otherwise nova-api
will not properly respond to requests from the neutron-metadata-agent. </para>
</listitem>
<listitem>
<para>
quantum_metadata_proxy_shared_secret: a string "password"
value that should also be configured in the
metadata_agent.ini file in order to authenticate requests
made for metadata. The default value of the
empty string in both files will allow metadata to
function, but will be insecure if any non-trusted
entities have access to the metadata APIs exposed by
nova-api.
</para>
<para> neutron_metadata_proxy_shared_secret: a string "password" value that
should also be configured in the metadata_agent.ini file in order to
authenticate requests made for metadata. The default value of the empty
string in both files will allow metadata to function, but will be insecure
if any non-trusted entities have access to the metadata APIs exposed by
nova-api. </para>
</listitem>
</itemizedlist>
<note><para>As a precaution, even when using
quantum_metadata_proxy_shared_secret, it is recommended that
you do not expose metadata using the same nova-api instances that
are used for tenants. Instead, run a dedicated set of nova-api
instances for metadata available only on your management network.
Whether a given nova-api instance exposes metadata APIs is
determined by the value of 'enabled_apis' in its nova.conf.
</para></note>
<note><para>As a precaution, even when using neutron_metadata_proxy_shared_secret, it is recommended that
you do not expose metadata using the same nova-api instances that are used for
tenants. Instead, run a dedicated set of nova-api instances for metadata
available only on your management network. Whether a given nova-api instance
exposes metadata APIs is determined by the value of 'enabled_apis' in its
nova.conf. </para></note>
</section>
<section xml:id="nova_with_quantum_vifplugging">
<title>Vif-plugging Configuration</title>
@ -322,19 +296,19 @@ catalog.$Region.network.name = Network Service</programlisting>
cloud controller node running OpenStack Compute and
OpenStack Networking with an IP address of 192.168.1.2
and vif-plugging using the LibvirtHybridOVSBridgeDriver. </para>
<screen><computeroutput>network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.1.2:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=password
quantum_admin_auth_url=http://192.168.1.2:35357/v2.0
<screen><computeroutput>network_api_class=nova.network.neutronv2.api.API
neutron_url=http://192.168.1.2:9696
neutron_auth_strategy=keystone
neutron_admin_tenant_name=service
neutron_admin_username=neutron
neutron_admin_password=password
neutron_admin_auth_url=http://192.168.1.2:35357/v2.0
security_group_api=quantum
security_group_api=neutron
firewall_driver=nova.virt.firewall.NoopFirewallDriver
service_quantum_metadata_proxy=true
quantum_metadata_proxy_shared_secret=foo
service_neutron_metadata_proxy=true
neutron_metadata_proxy_shared_secret=foo
# needed only for nova-compute and only for some plugins
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver

View File

@ -1,12 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ch_high_avail">
<title>High Availability</title>
<para>Several aspects of an OpenStack Networking deployment
benefit from high-availabilty to withstand individual node
failures. In general, quantum-server and quantum-dhcp-agent
can be run in an active-active fashion. The quantum-l3-agent
service can be run only as active/passive, to avoid IP
conflicts with respect to gateway IP addresses.</para>
<para>Several aspects of an OpenStack Networking deployment benefit from high-availabilty to
withstand individual node failures. In general, neutron-server and neutron-dhcp-agent can be
run in an active-active fashion. The neutron-l3-agent service can be run only as
active/passive, to avoid IP conflicts with respect to gateway IP addresses.</para>
<section xml:id="ha_pacemaker">
<title>OpenStack Networking High Availability with
Pacemaker</title>
@ -15,17 +13,19 @@
Networking Server only) with Pacemaker.</para>
<para>Here you can download the latest Resources Agents :<itemizedlist>
<listitem>
<para>quantum-server: <link
xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-server"
>https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-server</link></para>
<para>neutron-server: <link
xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-server"
>https://github.com/madkiss/openstack-resource-agents</link></para>
</listitem>
<listitem>
<para>quantum-dhcp-agent : <link xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-dhcp">https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-dhcp</link>
  </para>
<para>neutron-dhcp-agent : <link
xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-dhcp"
>https://github.com/madkiss/openstack-resource-agents</link>   </para>
</listitem>
<listitem>
<para>quantum-l3-agent : <link xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-l3">https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-l3</link>
  </para>
<para>neutron-l3-agent : <link
xlink:href="https://github.com/madkiss/openstack-resource-agents/blob/master/ocf/quantum-agent-l3"
>https://github.com/madkiss/openstack-resource-agents</link>   </para>
</listitem>
</itemizedlist></para>
<db:note xmlns:db="http://docbook.org/ns/docbook"><db:para> If you need more informations about "<emphasis role="italic">How to build a

View File

@ -29,36 +29,31 @@
<prompt>$</prompt> <userinput>sudo apt-get install ubuntu-cloud-keyring</userinput>
<prompt>$</prompt> <userinput>sudo apt-get update</userinput>
<prompt>$</prompt> <userinput>sudo apt-get upgrade</userinput></screen>
<section xml:id="install_quantum_server">
<title>Install quantum-server </title>
<para>Install quantum-server and CLI for accessing the
API: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-server python-quantumclient</userinput></screen>
<section xml:id="install_neutron_server">
<title>Install neutron-server </title>
<para>Install neutron-server and CLI for accessing the API: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-server python-neutronclient</userinput></screen>
<para>You will also want to install the plugin you choose
to use, for example: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-plugin-&lt;plugin-name&gt;</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-plugin-&lt;plugin-name&gt;</userinput></screen>
<para>Most plugins require a database to be installed and
configured in a plugin configuration file.  For
example: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install mysql-server python-mysqldb python-sqlalchemy </userinput></screen>
<para>A database that you are already using for other
OpenStack services will work fine for this.  Simply
create a quantum database: </para>
<screen><prompt>$</prompt> <userinput>mysql -u &lt;user&gt; -p &lt;pass&gt; -e “create database quantum”</userinput></screen>
<para>And then configure the plugins configuration file
to use this database.  Find the plugin configuration
file in <filename>/etc/quantum/plugins/&lt;plugin-name&gt;</filename> (For
example,
<filename>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</filename>)
<para>A database that you are already using for other OpenStack services will work fine
for this.  Simply create a neutron database: </para>
<screen><prompt>$</prompt> <userinput>mysql -u &lt;user&gt; -p &lt;pass&gt; -e “create database neutron”</userinput></screen>
<para>And then configure the plugins configuration file to use this database.  Find the
plugin configuration file in
<filename>/etc/neutron/plugins/&lt;plugin-name&gt;</filename> (For example,
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>)
and set: </para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/quantum?charset=utf8</computeroutput></screen>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/neutron?charset=utf8</computeroutput></screen>
<section xml:id="rpc_setup">
<title>RPC Setup </title>
<para>Many OpenStack Networking plugins uses RPC to
allow agents to communicate with the main
quantum-server process.  If your plugin requires agents,
this can use the same RPC mechanism used by other OpenStack
components like Nova.  </para>
<para>Many OpenStack Networking plugins uses RPC to allow agents to communicate with
the main neutron-server process.  If your plugin requires agents, this can use
the same RPC mechanism used by other OpenStack components like Nova.  </para>
<para>To use RabbitMQ as the message bus for RPC, make
sure that rabbit is installed on a host reachable
via the management network (if this is already the
@ -66,16 +61,14 @@
Nova, this existing RabbitMQ setup is
sufficient):  </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get install rabbitmq-server rabbitmqctl change_password guest &lt;password&gt;</userinput></screen>
<para>Then update /etc/quantum/quantum.conf with these
values: </para>
<para>Then update /etc/neutron/neutron.conf with these values: </para>
<screen><computeroutput>rabbit_host=&lt;mgmt-IP-of-rabbit-host&gt;
rabbit_password=&lt;password&gt;
rabbit_userid=guest </computeroutput></screen>
<important>
<para>This /etc/quantum/quantum.conf file should be
copied to and used on all hosts running
quantum-server or any quantum-*-agent binaries. </para>
<para>This /etc/neutron/neutron.conf file should be copied to and used on all hosts
running neutron-server or any neutron-*-agent binaries. </para>
</important>
</section>
<section xml:id="openvswitch_plugin">
@ -90,40 +83,42 @@ rabbit_userid=guest </computeroutput></screen>
options are described in the <link
linkend="ch_adv_config"/></para>
<para>Edit
<filename>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</filename>
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>
to specify the following values: </para>
<screen><computeroutput>enable_tunneling=True
tenant_network_type=gre
tunnel_id_ranges=1:1000
# only required for nodes running agents
local_ip=&lt;data-net-IP-address-of-node&gt;</computeroutput></screen>
<para>If you are using the Quantum DHCP agent, add the following to <filename>/etc/quantum/dhcp_agent.ini</filename></para>
<screen><computeroutput>dnsmasq_config_file=/etc/quantum/dnsmasq-quantum.conf</computeroutput></screen>
<para>And create <filename>/etc/quantum/dnsmasq-quantum.conf</filename>. Then add the following values to lower the MTU size on instances and prevent packet fragmentation over the GRE tunnel</para>
<para>If you are using the Neutron DHCP agent, add the following to
<filename>/etc/neutron/dhcp_agent.ini</filename></para>
<screen><computeroutput>dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf</computeroutput></screen>
<para>And create <filename>/etc/neutron/dnsmasq-neutron.conf</filename>. Then add the following
values to lower the MTU size on instances and prevent packet fragmentation over
the GRE tunnel</para>
<screen><computeroutput>dhcp-option-force=26,1400</computeroutput></screen>
<para>After performing that change on the node running
quantum-server, restart quantum-server to pick up
the new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>After performing that change on the node running neutron-server, restart
neutron-server to pick up the new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
</section>
<section xml:id="nvp_plugin">
<title>Plugin Configuration: Nicira NVP Plugin</title>
<para> Make sure the NVP plugin is installed using:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-plugin-nicira</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-plugin-nicira</userinput></screen>
<para>To configure OpenStack Networking to use the NVP plugin first
edit
<filename>/etc/quantum/quantum.conf</filename>
<filename>/etc/neutron/neutron.conf</filename>
and set:</para>
<screen><computeroutput>core_plugin = quantum.plugins.nicira.QuantumPlugin.NvpPluginV2</computeroutput></screen>
<screen><computeroutput>core_plugin = neutron.plugins.nicira.NeutronPlugin.NvpPluginV2</computeroutput></screen>
<para>Edit
<filename>/etc/quantum/plugins/nicira/nvp.ini</filename>
<filename>/etc/neutron/plugins/nicira/nvp.ini</filename>
in order to configure the plugin.</para>
<para>In the [database] section, specify the quantum database
<para>In the [database] section, specify the neutron database
created in the previous step using the following line,
substituting your database server IP address for localhost
if the database is not local:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/quantum?charset=utf8</computeroutput></screen>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/neutron?charset=utf8</computeroutput></screen>
<para>In order to tell OpenStack Networking about a controller
cluster, create a new [cluster:&lt;name&gt;] section in the
config file, and add the following entries:</para>
@ -144,24 +139,23 @@ local_ip=&lt;data-net-IP-address-of-node&gt;</computeroutput></screen>
</para>
<screen><computeroutput>default_l3_gw_service_uuid = &lt;uuid_of_the_gateway_service&gt;</computeroutput></screen>
<warning>
<para> Ubuntu packaging currently does not update the quantum
init script to point to the NVP config file. Instead,
manually update <filename>/etc/default/quantum-server
</filename> to set:</para>
<screen><computeroutput>QUANTUM_PLUGIN_CONFIG = /etc/quantum/plugins/nicira/nvp.ini</computeroutput></screen>
<para> Ubuntu packaging currently does not update the neutron init script to point
to the NVP config file. Instead, manually update
<filename>/etc/default/neutron-server </filename> to set:</para>
<screen><computeroutput>NEUTRON_PLUGIN_CONFIG = /etc/neutron/plugins/nicira/nvp.ini</computeroutput></screen>
</warning>
<para>Lastly, restart quantum-server to pick up the
<para>Lastly, restart neutron-server to pick up the
new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>An example quantum.conf file to use with NVP would be:
<screen><prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
<para>An example neutron.conf file to use with NVP would be:
</para>
<screen><computeroutput>core_plugin = quantum.plugins.nicira.QuantumPlugin.NvpPluginV2
<screen><computeroutput>core_plugin = neutron.plugins.nicira.NeutronPlugin.NvpPluginV2
rabbit_host = 192.168.203.10
allow_overlapping_ips = True
</computeroutput></screen>
<para>An example nvp.ini file to use with NVP would be:</para>
<screen><computeroutput>[database]
sql_connection=mysql://root:root@127.0.0.1/quantum
sql_connection=mysql://root:root@127.0.0.1/neutron
[cluster:main]
default_tz_uuid = d3afb164-b263-4aaa-a3e4-48e0e09bb33c
@ -170,83 +164,64 @@ nvp_controller_connection=10.0.0.2:443:admin:admin:30:10:2:2
nvp_controller_connection=10.0.0.3:443:admin:admin:30:10:2:2
nvp_controller_connection=10.0.0.4:443:admin:admin:30:10:2:2
</computeroutput></screen>
<note><para>In order to debug nvp.ini configuration issues run the following command: check-nvp-config &lt;path/to/nvp.ini&gt; from the host running quantum-server. This command will test that quantum-server can log into all of the NVP Controllers, SQL server, and that all of the UUID values are correct.</para></note>
<note><para>In order to debug nvp.ini configuration issues run the following command: check-nvp-config
&lt;path/to/nvp.ini&gt; from the host running neutron-server. This command
will test that neutron-server can log into all of the NVP Controllers, SQL
server, and that all of the UUID values are correct.</para></note>
</section>
<section xml:id="bigswitch_floodlight_plugin">
<title>Configuring Big Switch, Floodlight REST Proxy Plugin</title>
<para>To configure OpenStack Networking to use the REST Proxy plugin first
edit
<filename>/etc/quantum/quantum.conf</filename>
and set:</para>
<screen><computeroutput>core_plugin = quantum.plugins.bigswitch.plugin.QuantumRestProxyV2</computeroutput></screen>
<para>Edit
<filename>/etc/quantum/plugins/bigswitch/restproxy.ini</filename>
in order to configure the plugin. The quantum
database created previously will be used by
setting:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/restproxy_quantum?charset=utf8</computeroutput></screen>
<para>To configure OpenStack Networking to use the REST Proxy plugin first edit
<filename>/etc/neutron/neutron.conf</filename> and set:</para>
<screen><computeroutput>core_plugin = neutron.plugins.bigswitch.plugin.NeutronRestProxyV2</computeroutput></screen>
<para>Edit <filename>/etc/neutron/plugins/bigswitch/restproxy.ini</filename> in
order to configure the plugin. The neutron database created previously will be
used by setting:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/restproxy_neutron?charset=utf8</computeroutput></screen>
<para>Specify a comma separated list controller_ip:port pairs:</para>
<screen><computeroutput>server = &lt;controller-ip&gt;:&lt;port&gt;</computeroutput></screen>
<para>Lastly, restart quantum-server to pick up the
new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>Lastly, restart neutron-server to pick up the new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
</section>
<section xml:id="ryu_plugin">
<title>Configuring Ryu Plugin</title>
<para>Make sure the ryu plugin is installed using:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-plugin-ryu</userinput></screen>
<para>To configure OpenStack Networking to use the Ryu plugin first
edit
<filename>/etc/quantum/quantum.conf</filename>
and set:</para>
<screen><computeroutput>core_plugin = quantum.plugins.ryu.ryu_quantum_plugin.RyuQuantumPluginV2</computeroutput></screen>
<para>Edit
<filename>/etc/quantum/plugins/ryu/ryu.ini</filename>
in order to configure the plugin.
In the [database] section, specify the quantum database
created in the previous step using the following line,
substituting your database server user/password/IP address/port
based on your setting:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@&lt;ip-address&gt;:&lt;port&gt;/quantum?charset=utf8</computeroutput></screen>
<para>In [ovs] section, set the necessary values for
ryu-quantum-agent.
openflow_rest_api is used to tell where Ryu is
listening for REST API. Substitute ip-address and port-no
based on your ryu setup.
<literal>ovsdb_interface</literal> is used for Ryu
to access ovsdb-server. Substitute eth0 based on your
setup. IP address is derived from the interface name. If
you want to change those value irrelevant to the interafce
name, ovsdb_ip can be specified. If you use non-default
port for ovsdb-server, it can be specified by ovsdb_port.
tunnel_interface needs to be set to tell what IP address is
used for tunneling. (If tunneling isn't used, this value
will be ignored.) The IP address is derived from the
network interface name. The same configuration file can be used
for many compute-node by using network interface name with
different IP address.
</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-plugin-ryu</userinput></screen>
<para>To configure OpenStack Networking to use the Ryu plugin first edit
<filename>/etc/neutron/neutron.conf</filename> and set:</para>
<screen><computeroutput>core_plugin = neutron.plugins.ryu.ryu_neutron_plugin.RyuNeutronPluginV2</computeroutput></screen>
<para>Edit <filename>/etc/neutron/plugins/ryu/ryu.ini</filename> in order to configure the plugin.
In the [database] section, specify the neutron database created in the previous
step using the following line, substituting your database server
user/password/IP address/port based on your setting:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@&lt;ip-address&gt;:&lt;port&gt;/neutron?charset=utf8</computeroutput></screen>
<para>In [ovs] section, set the necessary values for ryu-neutron-agent. openflow_rest_api is used
to tell where Ryu is listening for REST API. Substitute ip-address and port-no
based on your ryu setup. <literal>ovsdb_interface</literal> is used for Ryu to
access ovsdb-server. Substitute eth0 based on your setup. IP address is derived
from the interface name. If you want to change those value irrelevant to the
interafce name, ovsdb_ip can be specified. If you use non-default port for
ovsdb-server, it can be specified by ovsdb_port. tunnel_interface needs to be
set to tell what IP address is used for tunneling. (If tunneling isn't used,
this value will be ignored.) The IP address is derived from the network
interface name. The same configuration file can be used for many compute-node by
using network interface name with different IP address. </para>
<screen><computeroutput>openflow_rest_api = &lt;ip-address&gt;:&lt;port-no&gt;
ovsdb_interface = &lt;eth0&gt;
tunnel_interface = &lt;eth0&gt;
</computeroutput></screen>
<para>Lastly, restart quantum-server to pick up the
new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>Lastly, restart neutron-server to pick up the new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
</section>
<section xml:id="PLUMgridplugin">
<title>Configuring PLUMgrid Plugin</title>
<para>To configure OpenStack Networking to use the
PLUMgrid plugin first edit
<filename>/etc/quantum/quantum.conf</filename>
and set:</para>
<screen><computeroutput>core_plugin = quantum.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin.QuantumPluginPLUMgridV2</computeroutput></screen>
<para>Edit
<filename>/etc/quantum/plugins/plumgrid/plumgrid.ini</filename>
in order to configure the plugin. The quantum
database created previously will be used by
<para>To configure OpenStack Networking to use the PLUMgrid plugin first edit
<filename>/etc/neutron/neutron.conf</filename> and set:</para>
<screen><computeroutput>core_plugin = neutron.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2</computeroutput></screen>
<para>Edit <filename>/etc/neutron/plugins/plumgrid/plumgrid.ini</filename> in order
to configure the plugin. The neutron database created previously will be used by
setting:</para>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/plumgrid_quantum?charset=utf8</computeroutput></screen>
<screen><computeroutput>sql_connection = mysql://&lt;user&gt;:&lt;password&gt;@localhost/plumgrid_neutron?charset=utf8</computeroutput></screen>
<para>Under the [plumgridnos] section specify the IP
address of the PLUMgrid director also
known as NOS. Behind the director information
@ -255,56 +230,47 @@ tunnel_interface = &lt;eth0&gt;
<screen><computeroutput>servers=&lt;plumgrid_NOS_IP>
username=&lt;username>
password=&lt;password></computeroutput></screen>
<para>Lastly, restart quantum-server to pick up the
new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>Lastly, restart neutron-server to pick up the new settings.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
</section>
</section>
<section xml:id="install_quantum_agent">
<section xml:id="install_neutron_agent">
<title>Install Software on Data Forwarding Nodes</title>
<para>Plugins commonly have requirements for particular software
that must be run on each node that handles data packets. This
includes any node running nova-compute, as well as nodes
running dedicated OpenStack Networking service agents like
quantum-dhcp-agent, quantum-l3-agent, quantum-lbaas-agent,
etc (see below for more information about
individual services agents).</para>
<para>Plugins commonly have requirements for particular software that must be run on
each node that handles data packets. This includes any node running nova-compute, as
well as nodes running dedicated OpenStack Networking service agents like
neutron-dhcp-agent, neutron-l3-agent, neutron-lbaas-agent, etc (see below for more
information about individual services agents).</para>
<para>Commonly, any data forwarding node should have a network
interface with an IP address on the “management
network” and another interface on the “data network”. </para>
<para>In this section, we describe the requirements
for particular plugins, which may include the installation of
switching software (e.g., Open vSwitch) as well as agents
used to communicate with the quantum-server process
running elsewhere in the data center.</para>
<section xml:id="install_quantum_agent_ovs">
<para>In this section, we describe the requirements for particular plugins, which may
include the installation of switching software (e.g., Open vSwitch) as well as
agents used to communicate with the neutron-server process running elsewhere in the
data center.</para>
<section xml:id="install_neutron_agent_ovs">
<title>Node Setup: OVS Plugin</title>
<para>The Open vSwitch plugin requires Open vSwitch as well
as the quantum-plugin-openvswitch-agent agent
to be installed on each Data Forwarding Node.</para>
<para>The Open vSwitch plugin requires Open vSwitch as well as the
neutron-plugin-openvswitch-agent agent to be installed on each Data Forwarding
Node.</para>
<para>Install the OVS agent agent package, will pull in the
Open vSwitch software as a dependency: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-plugin-openvswitch-agent</userinput></screen>
<para>The ovs_quantum_plugin.ini created in the above
step must be replicated on all nodes
quantum-plugin-openvswitch-agent. When using
tunneling, each node running
quantum-plugin-openvswitch agent should have an IP
address configured on the Data Network, and that
IP address should be specified using the local_ip
value in the ovs_quantum_plugin.ini file. </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-plugin-openvswitch-agent</userinput></screen>
<para>The ovs_neutron_plugin.ini created in the above step must be replicated on all
nodes neutron-plugin-openvswitch-agent. When using tunneling, each node running
neutron-plugin-openvswitch agent should have an IP address configured on the
Data Network, and that IP address should be specified using the local_ip value
in the ovs_neutron_plugin.ini file. </para>
<para>Then restart Open vSwitch to properly load the kernel
module:</para>
<screen><prompt>$</prompt> <userinput>sudo service openvswitch-switch restart</userinput></screen>
<para>And restart the agent:</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-plugin-openvswitch-agent restart</userinput></screen>
<para>All hosts running
quantum-plugin-openvswitch-agent also requires
that an OVS bridge named "br-int" exists. To
create it, run:</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-plugin-openvswitch-agent restart</userinput></screen>
<para>All hosts running neutron-plugin-openvswitch-agent also requires that an OVS
bridge named "br-int" exists. To create it, run:</para>
<screen><prompt>$</prompt> <userinput>sudo ovs-vsctl add-br br-int</userinput></screen>
</section>
<section xml:id="install_quantum_agent_nvp">
<section xml:id="install_neutron_agent_nvp">
<title>Node Setup: Nicira NVP Plugin</title>
<para>The Nicira NVP plugin requires a version of Open vSwitch to be installed on each data forwarding node, but
does not require an additional agent on data forwarding nodes.</para>
@ -314,47 +280,46 @@ password=&lt;password></computeroutput></screen>
support portal for your version of the NVP Controller.</para></warning>
<para>Each data forwarding node should have an IP address on the "management network", as well as an IP address
on the "data network" used for tunneling data traffic.</para>
<para>For full details on configuring your forwarding node, please see the NVP Administrator Guide. Next, use
the same guide to add the node as a "Hypervisor" using the NVP Manager GUI (Note: even if your forwarding node
has no VMs and is only used for services agents like quantum-dhcp-agent or quantum-lbaas-agent, it should be
added to NVP as a Hypervisor).</para>
<para>For full details on configuring your forwarding node, please see the NVP
Administrator Guide. Next, use the same guide to add the node as a "Hypervisor"
using the NVP Manager GUI (Note: even if your forwarding node has no VMs and is
only used for services agents like neutron-dhcp-agent or neutron-lbaas-agent, it
should be added to NVP as a Hypervisor).</para>
<para>After following the NVP Administrator Guide, use the page for this Hypervisor in the NVP Manager GUI
to confirm that the node is properly connected to the NVP
Controller Cluster and that the NVP Controller Cluster is seeing the integration bridge "br-int".</para>
</section>
<section xml:id="install_quantum_agent_ryu">
<section xml:id="install_neutron_agent_ryu">
<title>Node Setup: Ryu Plugin</title>
<para>The Ryu plugin requires Open vSwitch and ryu. Please install ryu and openvswitch
in addition to ryu agent package.</para>
<para>Install ryu. There isn't ryu package for ubuntu yet.</para>
<screen><prompt>$</prompt> <userinput>sudo pip install ryu</userinput></screen>
<para>Install the Ryu agent package and openvswitch package: </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-plugin-ryu-agent openvswitch-switch python-openvswitch openvswitch-datapath-dkms</userinput></screen>
<para>The ovs_ryu_plugin.ini and quantum.conf created in the above
step must be replicated on all nodes
quantum-plugin-ryu-agent. </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-plugin-ryu-agent openvswitch-switch python-openvswitch openvswitch-datapath-dkms</userinput></screen>
<para>The ovs_ryu_plugin.ini and neutron.conf created in the above step must be
replicated on all nodes neutron-plugin-ryu-agent. </para>
<para>Then restart Open vSwitch to properly load the kernel
module:</para>
<screen><prompt>$</prompt> <userinput>sudo service openvswitch-switch restart</userinput></screen>
<para>And restart the agent:</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-plugin-ryu-agent restart</userinput></screen>
<para>All hosts running
quantum-plugin-ryu-agent also requires
that an OVS bridge named "br-int" exists. To
create it, run:</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-plugin-ryu-agent restart</userinput></screen>
<para>All hosts running neutron-plugin-ryu-agent also requires that an OVS bridge
named "br-int" exists. To create it, run:</para>
<screen><prompt>$</prompt> <userinput>sudo ovs-vsctl add-br br-int</userinput></screen>
</section>
</section>
<section xml:id="install_quantum_dhcp">
<section xml:id="install_neutron_dhcp">
<title>Install DHCP Agent</title>
<para>The DHCP service agent is compatible with all existing plugins and is required for all deployments
where VMs should automatically receive IP addresses via DHCP.</para>
<para>The host running the quantum-dhcp-agent must be configured as a "data forwarding node" according to your
plugin's requirements (see section above).</para>
<para>The host running the neutron-dhcp-agent must be configured as a "data forwarding
node" according to your plugin's requirements (see section above).</para>
<para>In addition, you must install the DHCP agent:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-dhcp-agent</userinput></screen>
<para>Some options in <filename>/etc/quantum/dhcp_agent.ini</filename> must have certain values that
depend on the plugin in use. The sub-sections below will indicate those values for certain plugins.</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-dhcp-agent</userinput></screen>
<para>Some options in <filename>/etc/neutron/dhcp_agent.ini</filename> must have certain
values that depend on the plugin in use. The sub-sections below will indicate those
values for certain plugins.</para>
<note><para>Please note that the agent requires at least dnsmasq 2.59 to fully support all the
options it requires.</para></note>
<section xml:id="dhcp_agent_ovs">
@ -365,7 +330,7 @@ password=&lt;password></computeroutput></screen>
ovs_use_veth = True
enable_isolated_metadata = True
use_namespaces = True
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
</computeroutput></screen>
</section>
<section xml:id="dhcp_agent_nvp">
@ -377,7 +342,7 @@ ovs_use_veth = True
enable_metadata_network = True
enable_isolated_metadata = True
use_namespaces = True
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
</computeroutput></screen>
</section>
<section xml:id="dhcp_agent_ryu">
@ -387,11 +352,11 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
[DEFAULT]
ovs_use_veth = True
use_namespace = True
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
</computeroutput></screen>
</section>
</section>
<section xml:id="install_quantum-l3">
<section xml:id="install_neutron-l3">
<title>Install L3 Agent</title>
<para>Neutron has a widely used API extension to allow administrators and tenants to
create "routers" that connect to L2 networks.</para>
@ -406,7 +371,7 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
</itemizedlist>
</para>
<warning>
<para> Do NOT configure or use <filename>quantum-l3-agent</filename> if you are using
<para> Do NOT configure or use <filename>neutron-l3-agent</filename> if you are using
one of the above plugins.</para>
</warning>
<note><para>The Floodlight/BigSwitch plugin supports both the open source <link
@ -414,9 +379,9 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
controller and the proprietary BigSwitch controller. However, only the
proprietary BigSwitch controller implements L3 functionality. When using
Floodlight as your OpenFlow controller, L3 functionality is not available. </para></note>
<para>For all other plugins, install the quantum-l3-agent binary on the network node. </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install quantum-l3-agent</userinput></screen>
<para>To uplink the node that runs quantum-l3-agent to the
<para>For all other plugins, install the neutron-l3-agent binary on the network node. </para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install neutron-l3-agent</userinput></screen>
<para>To uplink the node that runs neutron-l3-agent to the
external network, create a bridge named "br-ex" and attach
the NIC for the external network to this bridge.
</para>
@ -424,63 +389,58 @@ interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
to the external network, run:</para>
<screen><prompt>$</prompt> <userinput>sudo ovs-vsctl add-br br-ex</userinput>
<prompt>$</prompt> <userinput>sudo ovs-vsctl add-port br-ex eth1</userinput></screen>
<para>The node running quantum-l3-agent should not have an
IP address manually configured on the NIC connected to
the external network. Rather, you must have a range of
IP addresses from the external network that can be
used by OpenStack Networking for routers that uplink to the
external network. This range must be large enough to
have an IP address for each router in the deployment,
as well as each floating IP.</para>
<para> The quantum-l3-agent uses the Linux IP stack and
iptables to perform L3 forwarding and NAT. In order to
support multiple routers with potentially overlapping
IP addresses, quantum-l3-agent defaults to using Linux
network namespaces to provide isolated forwarding
contexts. As a result, the IP addresses of routers
will not be visible simply by running "ip addr list"
or "ifconfig" on the node. Similarly, you will not be
able to directly ping fixed IPs. To do either of these
things, you must run the command within a particular
router's network namespace. The namespace will have
the name "qrouter-&lt;UUID of the router&gt;. The
following commands are examples of running commands in
the namespace of a router with UUID
47af3868-0fa8-4447-85f6-1304de32153b: </para>
<para>The node running neutron-l3-agent should not have an IP address manually
configured on the NIC connected to the external network. Rather, you must have a
range of IP addresses from the external network that can be used by OpenStack
Networking for routers that uplink to the external network. This range must be large
enough to have an IP address for each router in the deployment, as well as each
floating IP.</para>
<para> The neutron-l3-agent uses the Linux IP stack and iptables to perform L3
forwarding and NAT. In order to support multiple routers with potentially
overlapping IP addresses, neutron-l3-agent defaults to using Linux network
namespaces to provide isolated forwarding contexts. As a result, the IP addresses of
routers will not be visible simply by running "ip addr list" or "ifconfig" on the
node. Similarly, you will not be able to directly ping fixed IPs. To do either of
these things, you must run the command within a particular router's network
namespace. The namespace will have the name "qrouter-&lt;UUID of the router&gt;. The
following commands are examples of running commands in the namespace of a router
with UUID 47af3868-0fa8-4447-85f6-1304de32153b: </para>
<screen>
<computeroutput>ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ip addr list
ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ping &lt;fixed-ip&gt;</computeroutput>
</screen>
</section>
<section xml:id="install_quantum-lbaas-agent">
<section xml:id="install_neutron-lbaas-agent">
<title>Install LBaaS Agent</title>
<para>When using the reference implemenation of Load-Balancer-as-a-Service (LBaaS) it requires the quantum-lbaas-agent to be running on the network node.
To install this agent run:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get install quantum-lbaas-agent</userinput></screen>
<para>When using the reference implemenation of Load-Balancer-as-a-Service (LBaaS) it
requires the neutron-lbaas-agent to be running on the network node. To install this
agent run:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get install neutron-lbaas-agent</userinput></screen>
<para>If you are using an OVS based plugin (OVS, NVP, Ryu, NEC, BigSwitch/Floodlight) you'll want to set:</para>
<screen><computeroutput>interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
<screen><computeroutput>interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</computeroutput></screen>
<para>Otherwise if you are using a plugin that uses LinuxBridge you'll want to set:</para>
<screen><computeroutput>interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver</computeroutput></screen>
<screen><computeroutput>interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver</computeroutput></screen>
<para>In order to use the reference implemenation you'll also need to set:</para>
<screen><computeroutput>device_driver = quantum.plugins.services.agent_loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver</computeroutput></screen>
<para>Lastly, you'll need to make sure that you have the following setting in <filename>quantum.conf</filename> on the host running quantum-server:</para>
<screen><computeroutput>service_plugins = quantum.plugins.services.agent_loadbalancer.plugin.LoadBalancerPlugin</computeroutput></screen>
<screen><computeroutput>device_driver = neutron.plugins.services.agent_loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver</computeroutput></screen>
<para>Lastly, you'll need to make sure that you have the following setting in
<filename>neutron.conf</filename> on the host running neutron-server:</para>
<screen><computeroutput>service_plugins = neutron.plugins.services.agent_loadbalancer.plugin.LoadBalancerPlugin</computeroutput></screen>
</section>
<section xml:id="install_quantum_client">
<section xml:id="install_neutron_client">
<title>Install OpenStack Networking CLI Client</title>
<para>Install the OpenStack Networking CLI client:</para>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install python-pyparsing python-cliff python-quantumclient</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo apt-get -y install python-pyparsing python-cliff python-neutronclient</userinput></screen>
</section>
<section xml:id="init_config">
<title>Init, Config, and Log File Locations</title>
<para>Services can be started and stopped using the
'service' command. For example:</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server stop</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server status</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server start</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para> Log files are found in /var/log/quantum. </para>
<para> Configuration files are in /etc/quantum.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server stop</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server status</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server start</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
<para> Log files are found in /var/log/neutron. </para>
<para> Configuration files are in /etc/neutron.</para>
</section>
</section>
@ -493,11 +453,9 @@ ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ping &lt;fixed-ip&gt;
>https://fedoraproject.org/wiki/OpenStack</link></para>
<section xml:id="fedora_rpc_setup">
<title xml:id="qpid_rpc_setup">RPC Setup </title>
<para>OpenStack Networking uses RPC to allow DHCP agents and any plugin
agents to communicate with the main quantum-server
process.  Commonly, this can use the same RPC
mechanism used by other OpenStack components like
Nova.</para>
<para>OpenStack Networking uses RPC to allow DHCP agents and any plugin agents to
communicate with the main neutron-server process.  Commonly, this can use the same
RPC mechanism used by other OpenStack components like Nova.</para>
<para>To use QPID AMQP as the message bus for RPC, make
sure that QPID is installed on a host reachable via
the management network (if this is already the case
@ -506,9 +464,8 @@ ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ping &lt;fixed-ip&gt;
<screen><prompt>$</prompt> <userinput>sudo yum -y install qpid-cpp-server qpid-cpp-server-daemon</userinput>
<prompt>$</prompt> <userinput>sudo chkconfig qpidd on</userinput>
<prompt>$</prompt> <userinput>sudo service qpidd start</userinput></screen>
<para>Then update /etc/quantum/quantum.conf with these
values: </para>
<screen><computeroutput>rpc_backend = quantum.openstack.common.rpc.impl_qpid
<para>Then update /etc/neutron/neutron.conf with these values: </para>
<screen><computeroutput>rpc_backend = neutron.openstack.common.rpc.impl_qpid
qpid_hostname = &lt;mgmt-IP-of-qpid-host></computeroutput></screen>
<important>
<para>The Fedora packaging has a number of utility
@ -525,111 +482,101 @@ qpid_hostname = &lt;mgmt-IP-of-qpid-host></computeroutput></screen>
</important>
</section>
<section xml:id="fedora_q_server">
<title>Install quantum-server and plugin </title>
<para>Install quantum-server and plugin. <emphasis role="bold">Note</emphasis> the
<title>Install neutron-server and plugin </title>
<para>Install neutron-server and plugin. <emphasis role="bold">Note</emphasis> the
client is installed as a dependency for the OpenStack Networking service. Each
plugin has its own package, named openstack-quantum-&lt;plugin>. openvswitch will be
plugin has its own package, named openstack-neutron-&lt;plugin>. openvswitch will be
used in the examples below. A complete list of the supported plugins can be seen at:
<link
xlink:href="https://fedoraproject.org/wiki/Quantum#Quantum_Plugins"
>https://fedoraproject.org/wiki/Quantum#Quantum_Plugins</link>.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-quantum</userinput>
<prompt>$</prompt> <userinput>sudo yum install -y openstack-quantum-openvswitch</userinput></screen>
<link xlink:href="https://fedoraproject.org/wiki/Neutron#Neutron_Plugins"
>https://fedoraproject.org/wiki/Neutron#Neutron_Plugins</link>.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-neutron</userinput>
<prompt>$</prompt> <userinput>sudo yum install -y openstack-neutron-openvswitch</userinput></screen>
<para>Most plugins require a database to be installed and
configured in a plugin configuration file.  The Fedora
packaging for OpenStack Networking a server setup utility scripts
that will take care of this. For example: </para>
<screen><prompt>$</prompt> <userinput>sudo quantum-server-setup --plugin openvswitch</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo neutron-server-setup --plugin openvswitch</userinput></screen>
<para>Enable and start the service:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig quantum-server on</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server start</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo chkconfig neutron-server on</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server start</userinput></screen>
</section>
<section xml:id="fedora_q_plugin">
<title>Install quantum-plugin-*-agent</title>
<para>Some plugins utilize an agent that runs on each node
that handles data packets. This includes any node
running nova-compute, as well as nodes running
dedicated OpenStack Networking agents like quantum-dhcp-agent and
quantum-l3-agent (see below). If your plugin uses an
agent, this section describes how to run the agent for
this plugin, as well as the basic configuration
options.</para>
<title>Install neutron-plugin-*-agent</title>
<para>Some plugins utilize an agent that runs on each node that handles data packets.
This includes any node running nova-compute, as well as nodes running dedicated
OpenStack Networking agents like neutron-dhcp-agent and neutron-l3-agent (see
below). If your plugin uses an agent, this section describes how to run the agent
for this plugin, as well as the basic configuration options.</para>
<section xml:id="fedora_q_agent">
<title>Open vSwitch Agent</title>
<para>Install the OVS agent: </para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-quantum-openvswitch</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-neutron-openvswitch</userinput></screen>
<para>Run the agent setup script:</para>
<screen><prompt>$</prompt> <userinput>sudo quantum-node-setup --plugin openvswitch</userinput></screen>
<para>All hosts running quantum-plugin-openvswitch-agent also requires that an OVS
<screen><prompt>$</prompt> <userinput>sudo neutron-node-setup --plugin openvswitch</userinput></screen>
<para>All hosts running neutron-plugin-openvswitch-agent also requires that an OVS
bridge named "br-int" exists. To create it, run:</para>
<screen><prompt>$</prompt> <userinput>sudo ovs-vsctl add-br br-int</userinput></screen>
<para>Enable and start the agent:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig quantum-openvswitch-agent on</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-openvswitch-agent start</userinput>
<screen><prompt>$</prompt> <userinput>sudo chkconfig neutron-openvswitch-agent on</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-openvswitch-agent start</userinput>
<prompt>$</prompt> <userinput>sudo chkconfig openvswitch on</userinput>
<prompt>$</prompt> <userinput>sudo service openvswitch start</userinput></screen>
<para>Enable the ovs cleanup utility:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig quantum-ovs-cleanup on</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo chkconfig neutron-ovs-cleanup on</userinput></screen>
</section>
</section>
<section xml:id="fedora_q_dhcp">
<title>Install quantum-dhcp-agent</title>
<para>The DHCP agent is part of the openstack-quantum
package.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-quantum</userinput></screen>
<title>Install neutron-dhcp-agent</title>
<para>The DHCP agent is part of the openstack-neutron package.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-neutron</userinput></screen>
<para>Run the agent setup script:</para>
<screen><prompt>$</prompt> <userinput>sudo quantum-dhcp-setup --plugin openvswitch</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo neutron-dhcp-setup --plugin openvswitch</userinput></screen>
<para>Enable and start the agent:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig quantum-dhcp-agent on</userinput>
<userinput>sudo service quantum-dhcp-agent start</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo chkconfig neutron-dhcp-agent on</userinput>
<userinput>sudo service neutron-dhcp-agent start</userinput></screen>
<note><para>Please note that the agent requires at least dnsmasq 2.59 to fully support all the
options it requires.</para></note>
</section>
<section xml:id="fedora_q_l3">
<title>Install quantum-l3-agent </title>
<para>The L3 agent is part of the openstack-quantum
package.</para>
<para>Create a bridge "br-ex" that will be used to uplink
this node running quantum-l3-agent to the external
network, then attach the NIC attached to the external
network to this bridge. For example, with Open vSwitch
and NIC eth1 connect to the external network,
run:</para>
<title>Install neutron-l3-agent </title>
<para>The L3 agent is part of the openstack-neutron package.</para>
<para>Create a bridge "br-ex" that will be used to uplink this node running
neutron-l3-agent to the external network, then attach the NIC attached to the
external network to this bridge. For example, with Open vSwitch and NIC eth1 connect
to the external network, run:</para>
<screen><prompt>$</prompt> <userinput>sudo ovs-vsctl add-br br-ex</userinput>
<userinput>sudo ovs-vsctl add-port br-ex eth1</userinput></screen>
<para>The node running quantum-l3-agent should not have an
IP address manually configured on the NIC connected to
the external network. Rather, you must have a range of
IP addresses from the external network that can be
used by OpenStack Networking for routers that uplink to the
external network. This range must be large enough to
have an IP address for each router in the deployment,
as well as each floating IP.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-quantum</userinput></screen>
<para>The node running neutron-l3-agent should not have an IP address manually
configured on the NIC connected to the external network. Rather, you must have a
range of IP addresses from the external network that can be used by OpenStack
Networking for routers that uplink to the external network. This range must be large
enough to have an IP address for each router in the deployment, as well as each
floating IP.</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y openstack-neutron</userinput></screen>
<para>Run the agent setup script:</para>
<screen><prompt>$</prompt> <userinput>sudo quantum-l3-setup --plugin openvswitch</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo neutron-l3-setup --plugin openvswitch</userinput></screen>
<para>Enable and start the agent:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig enable quantum-l3-agent on</userinput>
<prompt>$</prompt> <userinput>sudo start start quantum-l3-agent</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo chkconfig enable neutron-l3-agent on</userinput>
<prompt>$</prompt> <userinput>sudo start start neutron-l3-agent</userinput></screen>
<para>Enable and start the meta data agent:</para>
<screen><prompt>$</prompt> <userinput>sudo chkconfig quantum-metadata-agent on</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-metadata-agent start</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo chkconfig neutron-metadata-agent on</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-metadata-agent start</userinput></screen>
</section>
<section xml:id="fedora_q_client">
<title>Install OpenStack Networking CLI client</title>
<para>Install the OpenStack Networking CLI client:</para>
<screen><prompt>$</prompt> <userinput>sudo yum install -y python-quantumclient</userinput></screen>
<screen><prompt>$</prompt> <userinput>sudo yum install -y python-neutronclient</userinput></screen>
</section>
<section xml:id="fedora_misc">
<title>Init, Config, and Log File Locations</title>
<para>Services can be started and stopped using the
'service' command. For example:</para>
<screen><prompt>$</prompt> <userinput>sudo service quantum-server stop</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server status</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server start</userinput>
<prompt>$</prompt> <userinput>sudo service quantum-server restart</userinput></screen>
<para>Log files are found in /var/log/quantum. </para>
<para>Configuration files are in /etc/quantum.</para>
<screen><prompt>$</prompt> <userinput>sudo service neutron-server stop</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server status</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server start</userinput>
<prompt>$</prompt> <userinput>sudo service neutron-server restart</userinput></screen>
<para>Log files are found in /var/log/neutron. </para>
<para>Configuration files are in /etc/neutron.</para>
</section>
</section>
</chapter>

View File

@ -20,15 +20,11 @@
in nova-network.</para>
</listitem>
<listitem>
<para><emphasis>Linux network namespace required on
nodes running quantum-l3-agent or
quantum-dhcp-agent if overlapping IPs are in use: </emphasis>.
In order to
support overlapping IP addresses, the OpenStack
Networking DHCP and L3 agents use Linux network
namespaces by default. The hosts running these
processes must support network namespaces. To
support network namespaces, the following are
<para><emphasis>Linux network namespace required on nodes running neutron-l3-agent
or neutron-dhcp-agent if overlapping IPs are in use: </emphasis>. In order
to support overlapping IP addresses, the OpenStack Networking DHCP and L3 agents
use Linux network namespaces by default. The hosts running these processes must
support network namespaces. To support network namespaces, the following are
required:</para>
<itemizedlist>
<listitem>
@ -49,16 +45,16 @@ ip netns exec test-ns ifconfig</computeroutput></screen>
Ubuntu 12.04 or later support namespaces as does Fedora 17 and new, but some
older RHEL platforms do not by default. It may be possible to upgrade the
iproute2 package on a platform that does not support namespaces by default. </para>
<para> If you need to disable namespaces, make sure
the <filename>quantum.conf</filename> used by
quantum-server has the following setting:</para>
<para> If you need to disable namespaces, make sure the
<filename>neutron.conf</filename> used by neutron-server has the following
setting:</para>
<screen><computeroutput>allow_overlapping_ips=False</computeroutput></screen>
<para>and that the dhcp_agent.ini and l3_agent.ini have the following
setting:</para>
<screen><computeroutput>use_namespaces=False</computeroutput></screen>
<note><para> If the host does not support namespaces then the <systemitem class="service"
>quantum-l3-agent</systemitem> and <systemitem class="service"
>quantum-dhcp-agent</systemitem> should be run on different hosts. This
>neutron-l3-agent</systemitem> and <systemitem class="service"
>neutron-dhcp-agent</systemitem> should be run on different hosts. This
is due to the fact that there is no isolation between the IP addresses
created by the L3 agent and by the DHCP agent. By manipulating the routing
the user can ensure that these networks have access to one another.</para></note>
@ -68,14 +64,14 @@ ip netns exec test-ns ifconfig</computeroutput></screen>
</listitem>
</itemizedlist>
<itemizedlist><listitem>
<para><emphasis>No IPv6 support for L3 agent:</emphasis> The quantum-l3-agent, used
by many plugins to implement L3 forwarding,
supports only IPv4 forwarding. Currently, There are no errors provided if you
configure IPv6 addresses via the API.</para>
<para><emphasis>No IPv6 support for L3 agent:</emphasis> The neutron-l3-agent, used
by many plugins to implement L3 forwarding, supports only IPv4 forwarding.
Currently, There are no errors provided if you configure IPv6 addresses via the
API.</para>
</listitem>
<listitem>
<para><emphasis>ZeroMQ support is experimental</emphasis>: Some agents, including
quantum-dhcp-agent, quantum-openvswitch-agent, and quantum-linuxbridge-agent use
neutron-dhcp-agent, neutron-openvswitch-agent, and neutron-linuxbridge-agent use
RPC to communicate. ZeroMQ is an available option in the configuration file, but
has not been tested and should be considered experimental. In particular, there
are believed to be issues with ZeroMQ and the dhcp agent. </para>

View File

@ -124,10 +124,10 @@
</para>
</listitem>
<listitem>
<para><emphasis role="bold">Cisco Plugin</emphasis>.
<para><emphasis role="bold">Cisco</emphasis>.
<link
xlink:href="http://wiki.openstack.org/cisco-quantum"
>http://wiki.openstack.org/cisco-quantum</link>
xlink:href="http://wiki.openstack.org/cisco-neutron"
>http://wiki.openstack.org/cisco-neutron</link>
</para>
</listitem>
<listitem>
@ -141,7 +141,7 @@
Documentation included in this guide and at
<link
xlink:href="http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin"
>http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin</link>
>http://wiki.openstack.org/Neutron-Linux-Bridge-Plugin</link>
 </para>
</listitem>
<listitem>

View File

@ -8,11 +8,12 @@
Networking abstractions.</para>
<simplesect>
<title>Configuration</title>
<para>This example uses VLAN isolation on the switches to isolate tenant networks. This configuration labels the physical
network associated with the public network as <literal>physnet1</literal>, and the
physical network associated with the data network as <literal>physnet2</literal>,
which leads to the following configuration options in
<filename>ovs_quantum_plugin.ini</filename>:<programlisting>[ovs]
<para>This example uses VLAN isolation on the switches to isolate tenant networks. This
configuration labels the physical network associated with the public network as
<literal>physnet1</literal>, and the physical network associated with the data
network as <literal>physnet2</literal>, which leads to the following configuration
options in
<filename>ovs_neutron_plugin.ini</filename>:<programlisting>[ovs]
tenant_network_type = vlan
network_vlan_ranges = physnet2:100:110
integration_bridge = br-int
@ -35,32 +36,32 @@ bridge_mappings = physnet2:br-eth1</programlisting></para>
<para>Under the <literal>service</literal> tenant, create the shared router, define the
public network, and set it as the default gateway of the
router<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/service/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create router01</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant public01 \
<prompt>$</prompt> <userinput>neutron router-create router01</userinput>
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name public01_subnet01 \
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/24 --enable_dhcp False</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router01 public01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron router-gateway-set router01 public01</userinput></screen></para>
<para>Under the <literal>demo</literal> user tenant, create the private network
<literal>net01</literal> and corresponding subnet, and connect it to the
<literal>router01</literal> router. Configure it to use VLAN ID 101 on the
physical
switch.<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/demo/ {print $2}'</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net01 \
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 101</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net01_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net01_subnet01</userinput></screen></para>
<para>Similarly, for <literal>net02</literal>, using VLAN ID 102 on the physical
switch:<screen><prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net02 \
switch:<screen><prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 102</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net02_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net02_subnet01</userinput></screen></para>
</simplesect>
<simplesect>
@ -150,18 +151,17 @@ bridge_mappings = physnet2:br-eth1</programlisting></para>
</simplesect>
<simplesect>
<title>Scenario 1: Network host config</title>
<para>Recall that the network host runs the quantum-openvswitch-plugin-agent, the
quantum-dhcp-agent, quantum-l3-agent, and quantum-metadata-agent services.</para>
<para>Recall that the network host runs the neutron-openvswitch-plugin-agent, the
neutron-dhcp-agent, neutron-l3-agent, and neutron-metadata-agent services.</para>
<para>On the network host, assume that eth0 is connected to the external network, and
eth1 is connected it to the data network, which leads to the following configuration
options in
<filename>ovs_quantum_plugin.ini</filename>:<programlisting>[ovs]
<filename>ovs_neutron_plugin.ini</filename>:<programlisting>[ovs]
tenant_network_type = vlan
network_vlan_ranges = physnet2:101:110
integration_bridge = br-int
bridge_mappings = physnet1:br-ex,physnet2:br-eth1</programlisting>
The
following figure shows the network devices on the network host:</para>
The following figure shows the network devices on the network host:</para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/under-the-hood-scenario-1-ovs-network.png" contentwidth="6in"/>
@ -170,7 +170,7 @@ bridge_mappings = physnet1:br-ex,physnet2:br-eth1</programlisting>
<para>As on the compute host, there is an Open vSwitch integration bridge
(<literal>br-int</literal>) and an Open vSwitch bridge connected to the data
network (<literal>br-eth1</literal>), and the two are connected by a veth pair, and
the quantum-openvswitch-plugin-agent configures the ports on both switches to do
the neutron-openvswitch-plugin-agent configures the ports on both switches to do
VLAN translation.</para>
<para>There is also an additional Open vSwitch bridge, <literal>br-ex</literal>, which
connects to the physical interface that is connected to the external network. In
@ -288,36 +288,36 @@ bridge_mappings = physnet1:br-ex,physnet2:br-eth1</programlisting>
</mediaobject>
<para>Under the <literal>service</literal> tenant, define the public
network:<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/service/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant public01 \
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name public01_subnet01 \
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/24 --enable_dhcp False</userinput></screen></para>
<para>Under the <literal>tenantA</literal> user tenant, create the tenant router and set
its gateway for the public
network.<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/tenantA/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create --tenant-id $tenant router01</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router01 public01</userinput></screen>
<prompt>$</prompt> <userinput>neutron router-create --tenant-id $tenant router01</userinput>
<prompt>$</prompt> <userinput>neutron router-gateway-set router01 public01</userinput></screen>
Then, define private network <literal>net01</literal> using VLAN ID 102 on the
physical switch, along with its subnet, and connect it to the router.
<screen><prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net01 \
<screen><prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 101</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net01_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net01_subnet01</userinput></screen></para>
<para>Similarly, for <literal>tenantB</literal>, create a router and another network,
using VLAN ID 102 on the physical
switch:<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/tenantB/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create --tenant-id $tenant router02</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router02 public01</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net02 \
<prompt>$</prompt> <userinput>neutron router-create --tenant-id $tenant router02</userinput>
<prompt>$</prompt> <userinput>neutron router-gateway-set router02 public01</userinput>
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 102</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net02_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router02 net02_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net02_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router02 net02_subnet01</userinput></screen></para>
</simplesect>
<simplesect>
@ -396,32 +396,32 @@ physical_interface_mappings: physnet2:eth1</programlisting></para>
<para>Under the <literal>service</literal> tenant, create the shared router, define the
public network, and set it as the default gateway of the
router<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/service/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create router01</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant public01 \
<prompt>$</prompt> <userinput>neutron router-create router01</userinput>
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name public01_subnet01 \
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/24 --enable_dhcp False</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router01 public01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron router-gateway-set router01 public01</userinput></screen></para>
<para>Under the <literal>demo</literal> user tenant, create the private network
<literal>net01</literal> and corresponding subnet, and connect it to the
<literal>router01</literal> router. Configure it to use VLAN ID 101 on the
<literal>net01</literal> and corresponding subnet, and connect it to the
<literal>router01</literal> router. Configure it to use VLAN ID 101 on the
physical
switch.<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/demo/ {print $2}'</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net01 \
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 101</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net01_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net01_subnet01</userinput></screen></para>
<para>Similarly, for <literal>net02</literal>, using VLAN ID 102 on the physical
switch:<screen><prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net02 \
switch:<screen><prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 102</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net02_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net02_subnet01</userinput></screen></para>
</simplesect>
<simplesect>
@ -492,36 +492,36 @@ physical_interface_mappings: physnet2:eth1</programlisting></para>
</mediaobject>
<para>Under the <literal>service</literal> tenant, define the public
network:<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/service/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant public01 \
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name public01_subnet01 \
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/24 --enable_dhcp False</userinput></screen></para>
<para>Under the <literal>tenantA</literal> user tenant, create the tenant router and set
its gateway for the public
network.<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/tenantA/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create --tenant-id $tenant router01</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router01 public01</userinput></screen>
<prompt>$</prompt> <userinput>neutron router-create --tenant-id $tenant router01</userinput>
<prompt>$</prompt> <userinput>neutron router-gateway-set router01 public01</userinput></screen>
Then, define private network <literal>net01</literal> using VLAN ID 102 on the
physical switch, along with its subnet, and connect it to the router.
<screen><prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net01 \
<screen><prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 101</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router01 net01_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router01 net01_subnet01</userinput></screen></para>
<para>Similarly, for <literal>tenantB</literal>, create a router and another network,
using VLAN ID 102 on the physical
switch:<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list|awk '/tenantB/ {print $2}')</userinput>
<prompt>$</prompt> <userinput>quantum router-create --tenant-id $tenant router02</userinput>
<prompt>$</prompt> <userinput>quantum router-gateway-set router02 public01</userinput>
<prompt>$</prompt> <userinput>quantum net-create --tenant-id $tenant net02 \
<prompt>$</prompt> <userinput>neutron router-create --tenant-id $tenant router02</userinput>
<prompt>$</prompt> <userinput>neutron router-gateway-set router02 public01</userinput>
<prompt>$</prompt> <userinput>neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 102</userinput>
<prompt>$</prompt> <userinput>quantum subnet-create --tenant-id $tenant --name net02_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>quantum router-interface-add router02 net02_subnet01</userinput></screen></para>
<prompt>$</prompt> <userinput>neutron subnet-create --tenant-id $tenant --name net02_subnet01 net01 192.168.101.0/24</userinput>
<prompt>$</prompt> <userinput>neutron router-interface-add router02 net02_subnet01</userinput></screen></para>
</simplesect>
<simplesect>

View File

@ -315,24 +315,24 @@
<section xml:id="basic_operations">
<title>Basic Operations</title>
<para>Create a network</para>
<screen><prompt>$</prompt> <userinput>quantum net-create net1</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron net-create net1</userinput></screen>
<para>Create a subnet associated with net1</para>
<screen><prompt>$</prompt> <userinput>quantum subnet-create net1 10.0.0.0/24</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron subnet-create net1 10.0.0.0/24</userinput></screen>
<para>List ports on a tenant</para>
<screen><prompt>$</prompt> <userinput>quantum port-list</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-list</userinput></screen>
<para><emphasis role="italic">device_owner</emphasis> field describes who owns the port.
A port whose <emphasis role="italic">device_owner</emphasis> begins with "network:" is created by OpenStack Networking
and a port whose <emphasis role="italic">device_owner</emphasis> begins with "compute:" is created by OpenStack Compute (compute service).</para>
<screen><prompt>$</prompt> <userinput>quantum port-list -c id -c fixed_ips -c device_owner</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-list -c id -c fixed_ips -c device_owner</userinput></screen>
<para><command>port-show</command> shows a detail of a specified port.</para>
<screen><prompt>$</prompt> <userinput>quantum port-show &lt;port-id&gt;</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-show &lt;port-id&gt;</userinput></screen>
</section>
<section xml:id="admin_api_config">
<title>Admin API configuration</title>
<para>These same calls can be performed by the cloud admin
on behalf of the tenants by specifying a tenant_id in
the request, for example:</para>
<screen><computeroutput>quantum net-create --tenant-id=&lt;tenant-id&gt; net1</computeroutput></screen>
<screen><computeroutput>neutron net-create --tenant-id=&lt;tenant-id&gt; net1</computeroutput></screen>
<para>This tenant_id should be the tenant ID from
OpenStack Identity. To view all OpenStack Identity tenant IDs, run the
following command as an OpenStack Identity (keystone) admin user:</para>
@ -345,27 +345,27 @@
<itemizedlist>
<listitem>
<para>Create a "shared" network (i.e., a network that can be used by all tenants)</para>
<screen><computeroutput>quantum net-create --shared public-net</computeroutput></screen>
<screen><computeroutput>neutron net-create --shared public-net</computeroutput></screen>
</listitem>
<listitem>
<para>Create a subnet that has a specific gateway IP address.</para>
<screen><computeroutput>quantum subnet-create --gateway 10.0.0.254 net1 10.0.0.0/24</computeroutput></screen>
<screen><computeroutput>neutron subnet-create --gateway 10.0.0.254 net1 10.0.0.0/24</computeroutput></screen>
</listitem>
<listitem>
<para>Create a subnet that has no gateway IP address.</para>
<screen><computeroutput>quantum subnet-create --no-gateway net1 10.0.0.0/24</computeroutput></screen>
<screen><computeroutput>neutron subnet-create --no-gateway net1 10.0.0.0/24</computeroutput></screen>
</listitem>
<listitem>
<para>Create a subnet for which DHCP is disabled.</para>
<screen><computeroutput>quantum subnet-create net1 10.0.0.0/24 --enable_dhcp False</computeroutput></screen>
<screen><computeroutput>neutron subnet-create net1 10.0.0.0/24 --enable_dhcp False</computeroutput></screen>
</listitem>
<listitem>
<para>Create subnet with a specific set of host routes:</para>
<screen><computeroutput>quantum subnet-create test-net1 40.0.0.0/24 --host_routes type=dict list=true destination=40.0.1.0/24,nexthop=40.0.0.2</computeroutput></screen>
<screen><computeroutput>neutron subnet-create test-net1 40.0.0.0/24 --host_routes type=dict list=true destination=40.0.1.0/24,nexthop=40.0.0.2</computeroutput></screen>
</listitem>
<listitem>
<para>Create subnet with a specific set of dns nameserver:</para>
<screen><computeroutput>quantum subnet-create test-net1 40.0.0.0/24 --dns_nameservers list=true 8.8.8.7 8.8.8.8</computeroutput></screen>
<screen><computeroutput>neutron subnet-create test-net1 40.0.0.0/24 --dns_nameservers list=true 8.8.8.7 8.8.8.8</computeroutput></screen>
</listitem>
</itemizedlist>
</section>
@ -374,7 +374,7 @@
<itemizedlist>
<listitem>
<para>Find all Ports/IPs allocated on a network.</para>
<screen><computeroutput>quantum port-list -- --network_id &lt;net-id&gt;</computeroutput></screen>
<screen><computeroutput>neutron port-list -- --network_id &lt;net-id&gt;</computeroutput></screen>
</listitem>
</itemizedlist>
</section>
@ -385,7 +385,7 @@
<section xml:id="basic_workflow_with_nova">
<title>Basic Workflow </title>
<para>Check available networks:</para>
<screen><prompt>$</prompt> <userinput>quantum net-list</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron net-list</userinput></screen>
<para>Boot the VM with a single NIC on the selected network (net1):</para>
<screen><prompt>$</prompt> <userinput>nova boot --image &lt;img&gt; --flavor &lt;flavor&gt; --nic net-id=&lt;net-id&gt; &lt;vm-name&gt;</userinput></screen>
<para>Congrats, you have booted a VM on an OpenStack Networking network.
@ -397,18 +397,18 @@
following command, which searches for all ports with a
"device_id" corresponding to the OpenStack Compute instance
UUID:</para>
<screen><prompt>$</prompt> <userinput>quantum port-list -- --device_id=&lt;vm-id&gt;</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-list -- --device_id=&lt;vm-id&gt;</userinput></screen>
<para>To view only a few fields of the port, you can limit
output using -c.  For example to see only the
mac_address of the port, use:</para>
<screen><prompt>$</prompt> <userinput>quantum port-list -c mac_address -- --device_id=&lt;vm-id&gt;</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-list -c mac_address -- --device_id=&lt;vm-id&gt;</userinput></screen>
<para>You could temporarily disable the port from sending
traffic by updating it to have
admin_state_up=False:</para>
<screen><prompt>$</prompt> <userinput>quantum port-update &lt;port-id&gt; --admin_state_up=False</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-update &lt;port-id&gt; --admin_state_up=False</userinput></screen>
<para>When we delete the OpenStack Compute VM, the underlying OpenStack Networking
port is automatically deleted:</para>
<screen><prompt>$</prompt> <userinput>quantum port-list -c mac_address -- --device_id=&lt;vm-id&gt;</userinput></screen>
<screen><prompt>$</prompt> <userinput>neutron port-list -c mac_address -- --device_id=&lt;vm-id&gt;</userinput></screen>
</section>
<section xml:id="advanceed_vm_creation">
<title>Advanced VM creation</title>
@ -423,7 +423,7 @@
<para>Booting a VM with a specific IP address.
To do this, we need to create an OpenStack Networking port with a specific IP address first,
and then boot a VM specifying a port-id rather than a net-id.</para>
<screen><prompt>$</prompt> <userinput>quantum port-create --fixed-ip subnet_id=&lt;subnet-id&gt;,ip_address=192.168.57.101 &lt;net-id&gt;
<screen><prompt>$</prompt> <userinput>neutron port-create --fixed-ip subnet_id=&lt;subnet-id&gt;,ip_address=192.168.57.101 &lt;net-id&gt;
nova boot --image &lt;img&gt; --flavor &lt;flavor&gt; --nic port-id=&lt;port-id&gt; &lt;vm-name&gt;</userinput></screen>
<note><para><command>v4-fixed-ip</command> parameter of <command>--nic</command> option
in <command>nova</command> command is not supported with OpenStack Networking at the moment.</para></note>
@ -440,12 +440,12 @@ nova boot --image &lt;img&gt; --flavor &lt;flavor&gt; --nic port-id=&lt;port-id&
<section xml:id="enabling_ping_and_ssh">
<title>Security Groups (Enabling Ping and SSH on VMs)</title>
<para>If using a plugin that implements neutron security groups you can configure security
group rules directly by using quantum security-group-rule-create to enable access to
group rules directly by using neutron security-group-rule-create to enable access to
your VMs. The example below allows <command>ping</command> and
<command>ssh</command> to your VMs.
<screen>
<prompt>$</prompt> <userinput>quantum security-group-rule-create --protocol icmp --direction ingress default</userinput>
<prompt>$</prompt> <userinput>quantum security-group-rule-create --protocol tcp --port-range-min 22 --port-range-max 22 --direction ingress default</userinput>
<prompt>$</prompt> <userinput>neutron security-group-rule-create --protocol icmp --direction ingress default</userinput>
<prompt>$</prompt> <userinput>neutron security-group-rule-create --protocol tcp --port-range-min 22 --port-range-max 22 --direction ingress default</userinput>
</screen></para>
<para>If your plugin does not implement neutron security group, security groups can still be
leveraged via OpenStack Compute. This can be done using <command>nova
@ -457,7 +457,7 @@ nova boot --image &lt;img&gt; --flavor &lt;flavor&gt; --nic port-id=&lt;port-id&
<prompt>$</prompt> <userinput>nova secgroup-add-rule default tcp 22 22 0.0.0.0/0</userinput></screen>
<note><para>If your plugin implements neutron security groups you can still leverage nova security groups
by setting security_group_api = quantum in <filename>nova.conf</filename>. After
setting this all nova security group commands will be proxied to quantum.</para></note></section>
by setting security_group_api = neutron in <filename>nova.conf</filename>. After
setting this all nova security group commands will be proxied to neutron.</para></note></section>
</section>
</chapter>

View File

@ -19,7 +19,7 @@
<!-- ################################################ -->
<!-- USE "mvn clean generate-sources" to run this POM -->
<!-- Builds the Quantum Administration Manual -->
<!-- Builds the Neutron Administration Manual -->
<!-- ################################################ -->
<build>
<plugins>
@ -39,7 +39,7 @@
<!-- These parameters only apply to webhelp -->
<enableDisqus>${comments.enabled}</enableDisqus>
<useVersionForDisqus>1</useVersionForDisqus>
<disqusShortname>os-quantum-guides</disqusShortname>
<disqusShortname>os-neutron-guides</disqusShortname>
<enableGoogleAnalytics>1</enableGoogleAnalytics>
<googleAnalyticsId>UA-17511903-1</googleAnalyticsId>
<failOnValidationError>0</failOnValidationError>
@ -51,7 +51,7 @@
<webhelpDirname>admin</webhelpDirname>
<targetDirectory>${basedir}/target/docbkx/webhelp/${release.path.name}/openstack-network</targetDirectory>
<includeDateInPdfFilename>0</includeDateInPdfFilename>
<pdfFilenameBase>bk-quantum-admin-guide-${release.path.name}</pdfFilenameBase>
<pdfFilenameBase>bk-neutron-admin-guide-${release.path.name}</pdfFilenameBase>
</configuration>
</execution>

File diff suppressed because it is too large Load Diff