7.2. OpenStack Networking の設定
7.2.1. OpenStack Networking プラグインの設定
OpenStack Networking プラグインは、以下に示す例のように
neutron.conf で長いクラス名ではなく、指定した短い名前で参照することができます。
core_plugin = neutron.plugins.ml2.plugin:Ml2Plugin上記の代わりに以下のように参照することができます。
core_plugin = ml2
誤って空白文字を入れないように気をつけてください。空白文字によって解析エラーが発生する可能性があります。
service_plugins オプションには、複数のサービスプラグインをコンマ区切りリストで指定することができます。
表7.1 service_plugins
| ショートネーム | クラス名 |
|---|---|
| dummy | neutron.tests.unit.dummy_plugin:DummyServicePlugin |
| router | neutron.services.l3_router.l3_router_plugin:L3RouterPlugin |
| firewall | neutron.services.firewall.fwaas_plugin:FirewallPlugin |
| lbaas | neutron.services.loadbalancer.plugin:LoadBalancerPlugin |
| metering | neutron.services.metering.metering_plugin:MeteringPlugin |
7.2.1.1. ML2 プラグインの有効化
neutron-server サービスを実行しているノードで、ML2 プラグインを有効化します。
手順7.1 ML2 プラグインの有効化
- OpenStack Networking を
ml2_conf.iniファイルにダイレクトするためのシンボリックリンクを作成します。#ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini - テナントのネットワーク種別を設定します。サポートされる値は、
gre、local、vlan、vxlanです。デフォルト値はlocalですが、エンタープライズのデプロイメントには推奨していません。#openstack-config --set /etc/neutron/plugin.ini \ml2 tenant_network_type TYPETYPE は、テナントのネットワーク種別に置き換えます。 flatまたはvlanネットワークが選択されている場合は、物理ネットワークを VLAN 範囲にマッピングする必要もあります。#openstack-config --set /etc/neutron/plugin.ini \ml2 network_vlan_ranges NAME:START:END以下の値を置き換えてください。- NAME は、物理ネットワーク名に置き換えます。
- START は、VLAN 範囲の開始を示す識別子に置き換えます。
- END は、VLAN 範囲の終了を示す識別子に置き換えます。
以下の例のようにコンマ区切りリストを使用して、複数の範囲を指定することができます。physnet1:1000:2999,physnet2:3000:3999
- ドライバー種別を設定します。サポートされる値は
local、flat、vlan、gre、vxlanです。#openstack-config --set /etc/neutron/plugin.ini \ml2 type_drivers TYPETYPE は、ドライバーの種別に置き換えます。複数のドライバーを指定する場合は、コンマ区切りリストを使用します。 - メカニズムドライバーを設定します。利用可能な値は、
openvswitch、linuxbridge、l2populationです。#openstack-config --set /etc/neutron/plugin.ini \ml2 mechanism_drivers TYPETYPE は、メカニズムドライバーの種別に置き換えます。複数のメカニズムドライバーを指定する場合は、コンマ区切りリストを使用します。 - L2 Population を有効化します。
#openstack-config --set /etc/neutron/plugin.ini \agent l2_population True - 使用しているプラグインエージェントに合わせて、
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.iniファイルまたは/etc/neutron/plugins/linxbridge/linuxbridge_conf.iniファイルでファイアウォールドライバーを設定します。Open vSwitch ファイアウォールドライバー
#openstack-config --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.inisecuritygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriverLinux Bridge ファイアウォールドライバー
#openstack-config --set /etc/neutron/plugins/linuxbridge/linuxbridge_conf.inisecuritygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
- ML2 プラグインおよび L3 ルーターを有効化します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT core_plugin ml2#openstack-config --set /etc/neutron/neutron.conf \DEFAULT service_plugins router
7.2.2. OpenStack Networking データベースの作成
OpenStack Networking を使用するデータベースおよびデータベースユーザーを作成します。この手順に記載するステップはすべて、
neutron-server サービスを起動する前に、データベースサーバーにroot ユーザーとしてログインして実行する必要があります。
手順7.2 OpenStack Networking データベースの作成
- データベースサービスに接続します。
#mysql -u root -p - 以下の名前のいずれかを指定してデータベースを作成します。以下の例では ML2 用の
- ML2 プラグインを使用する場合に、推奨されるデータベース名は
neutron_ml2です。 - Open vSwitch プラグインを使用する場合に、推奨されるデータベース名は
ovs_neutronです。 - Linux Bridge プラグインを使用する場合に、推奨されるデータベース名は
neutron_linux_bridgeです。
neutron_ml2データベースを作成します。mysql>CREATE DATABASE neutron_ml2 character set utf8; neutronデータベースユーザーを作成し、neutron_ml2データベースへのアクセスを許可します。mysql>GRANT ALL ON neutron_ml2.* TO 'neutron'@'%' IDENTIFIED BY 'PASSWORD';mysql>GRANT ALL ON neutron_ml2.* TO 'neutron'@'localhost' IDENTIFIED BY 'PASSWORD';PASSWORD は、このユーザーとしてデータベースサーバーとの認証を行う際に使用するセキュアなパスワードに置き換えます。- データベースの特権をフラッシュして、設定が即時に反映されるようにします。
mysql>FLUSH PRIVILEGES; mysqlクライアントを終了します。mysql>quit
7.2.3. OpenStack Networking データベース接続の設定
OpenStack Networking で使用するデータベース接続は
/etc/neutron/plugin.ini ファイルで定義します。有効なデータベースサーバーを参照するように更新してから、サービスを起動する必要があります。以下の手順で記載のステップはすべて、OpenStack Networking をホストするサーバーに root ユーザーでログインして実行する必要があります。
手順7.3 OpenStack Networking SQL データベース接続の設定
connection設定キーの値を設定します。#openstack-config --set /etc/neutron/plugin.ini \DATABASE sql_connection mysql://USER:PASS@IP/DB以下の値を置き換えてください。- USER は、OpenStack Networking データベースのユーザー名 (通常は
neutron) に置き換えます。 - PASS は選択したデータベースユーザーのパスワードに置き換えます。
- IP は、データベースサーバーの IP アドレスまたはホスト名に置き換えます。
- DB は、OpenStack Networking データベースの名前に置き換えます。
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、OpenStack Networking データベースの作成時に OpenStack Networking データベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、OpenStack Networking データベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。- OpenStack Networking のデータベーススキーマをアップグレードします。
#neutron-db-manage --config-file /usr/share/neutron/neutron-dist.conf \--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head
7.2.4. OpenStack Networking 用のアイデンティティーレコードの作成
OpenStack Networking で必要な Identity サービスを作成して設定します。これらのエントリーは、OpenStack Networking によって提供されるボリューム機能を検索してアクセスを試みる他の OpenStack サービスを補助します。
以下の手順では、管理ユーザーと
services テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。
以下の手順は、Identity サービスのサーバーまたは
keystonerc_admin ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。
手順7.4 OpenStack Networking 用のアイデンティティーレコードの作成
- Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
#source ~/keystonerc_admin neutronユーザーを作成します。[(keystone_admin)]#keystone user-create --name neutron --pass PASSWORD+----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | | | enabled | True | | id | 1df18bcd14404fa9ad954f9d5eb163bc | | name | neutron | | username | neutron | +----------+----------------------------------+PASSWORD は、OpenStack Networking が Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。servicesテナントのコンテキスト内で、neutronユーザーとadminロールを関連付けます。[(keystone_admin)]#keystone user-role-add --user neutron --role admin --tenant servicesneutronの OpenStack Networking サービスのエントリーを作成します。[(keystone_admin)]#keystone service-create --name neutron \--type network \--description "OpenStack Networking"+-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Networking | | enabled | True | | id | 134e815915f442f89c39d2769e278f9b | | name | neutron | | type | network | +-------------+----------------------------------+neutronのエンドポイントエントリーを作成します。[(keystone_admin)]#keystone endpoint-create--service neutron \--publicurl 'http://IP:9696' \--adminurl 'http://IP:9696' \--internalurl 'http://IP:9696' \--region 'RegionOne'IP は、OpenStack Networking ノードとして機能するサーバーの IP アドレスまたはホスト名に置き換えます。
7.2.5. OpenStack Networking の認証の設定
OpenStack Networking が認証に Identity サービスを使用するように設定します。以下の手順に記載するステップはすべて、OpenStack Networking をホストするサーバーに
root ユーザーとしてログインして実行する必要があります。
手順7.5 OpenStack Networking サービスが Identity サービスを使用して認証を行うための設定
- 認証ストラテジーを
keystoneに設定します。#openstack-config --set /etc/neutron/neutron.conf \DEFAULT auth_strategy keystone - OpenStack Networking が使用する必要のある Identity サービスのホストを設定します。
#openstack-config --set /etc/neutron/neutron.conf \keystone_authtoken auth_host IPIP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。 - OpenStack Networking が正しいテナントとして認証を行うように設定します。
#openstack-config --set /etc/neutron/neutron.conf \keystone_authtoken admin_tenant_name servicesservices は、OpenStack Networking を使用するために作成したテナントの名前に置き換えます。本ガイドの例では、servicesを使用しています。 - OpenStack Networking が
neutronの管理ユーザーアカウントを使用して認証を行うように設定します。#openstack-config --set /etc/neutron/neutron.conf \keystone_authtoken admin_user neutron - OpenStack Networking が
neutronの管理ユーザーアカウントのパスワードを使用して認証を行うように設定します。#openstack-config --set /etc/neutron/neutron.conf \keystone_authtoken admin_password PASSWORDPASSWORD は、neutronユーザーの作成時に設定したパスワードに置き換えます。
7.2.6. OpenStack Networking のトラフィックを許可するためのファイアウォール設定
OpenStack Networking は、TCP ポート
9696 で接続を受信します。OpenStack Networking のファイアウォールは、このポートのネットワークトラフィックを許可するように設定する必要があります。以下の手順に記載するステップはすべて、OpenStack Networking をホストするサーバーに root ユーザーとしてログインして実行する必要があります。
手順7.6 OpenStack Networking のトラフィックを許可するためのファイアウォール設定
- テキストエディターで
/etc/sysconfig/iptablesファイルを開きます。 - ポート
9696で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。-A INPUT -p tcp -m multiport --dports 9696 -j ACCEPT
/etc/sysconfig/iptablesファイルへの変更を保存します。iptablesサービスを再起動して、変更を有効にします。#systemctl restart iptables.service
7.2.7. OpenStack Networking のための RabbitMQ メッセージブローカーの設定
RabbitMQ はデフォルト (かつ推奨の) メッセージブローカーです。RabbitMQ メッセージングサービスは、rabbitmq-server パッケージにより提供されます。以下の手順で記載する全ステップは、OpenStack Networking をホストするシステムに
root ユーザーとしてログインして実行する必要があります。
手順7.7 OpenStack Networking サービスが RabbitMQ メッセージブローカーを使用するための設定
- RPC バックエンドとして RabbitMQ を設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rpc_backend neutron.openstack.common.rpc.impl_kombu - OpenStack Networking が RabbitMQ ホストに接続するように設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_host RABBITMQ_HOSTRABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672に設定します。#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_port 5672 - RabbitMQ の設定時に OpenStack Networking 用に作成した RabbitMQ ユーザー名とパスワードを設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_userid neutron#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_password NEUTRON_PASSneutronおよび NEUTRON_PASS は、OpenStack Networking 用に作成した RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
neutronユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/を介して行われます。Networking サービスがこの仮想ホストに接続されるように設定します。#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_virtual_host /
7.2.8. OpenStack Networking とメッセージブローカーとの間の SSL 通信の有効化
メッセージブローカーで SSL を有効化した場合は、OpenStack Networking も相応に設定する必要があります。以下の手順では、エクスポートしたクライアントの証明書とキーファイルが必要です。これらのファイルのエクスポートの方法に関する説明は、「クライアント用 SSL 証明書のエクスポート」 参照してください。
手順7.8 OpenStack Networking と RabbitMQ メッセージブローカーとの間の SSL 通信の有効化
- メッセージブローカーとの SSL 通信を有効化します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT rabbit_use_ssl True#openstack-config --set /etc/neutron/neutron.conf \DEFAULT kombu_ssl_certfile /path/to/client.crt#openstack-config --set /etc/neutron/neutron.conf \DEFAULT kombu_ssl_keyfile /path/to/clientkeyfile.key以下の値を置き換えてください。- /path/to/client.crt はエクスポートされたクライアント証明書の絶対パスに置き換えます。
- /path/to/clientkeyfile.key はエクスポートされたキーファイルの絶対パスに置き換えます。
- 証明書がサードパーティーの認証局 (CA) によって署名されている場合には、次のコマンドを実行する必要もあります。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT kombu_ssl_ca_certs /path/to/ca.crt/path/to/ca.crt は、サードパーティー CA によって提供された CA ファイルの絶対パスに置き換えます (詳細は 「RabbitMQ メッセージブローカーでの SSL の有効化」 を参照)。
7.2.9. OpenStack Networking が Compute サービスとネットワークトポロジーの変更について通信するように設定する手順
OpenStack Networking が Compute サービスとネットワークトポロジーの変更について通信するように設定します。
手順7.9 OpenStack Networking が Compute サービスとネットワークトポロジーの変更について通信するように設定する手順
- OpenStack Networking がコンピュートコントローラーノードに接続されるように設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_url http://CONTROLLER_IP:8774/v2CONTROLLER_IP は、コンピュートコントローラーノードの IP アドレスまたはホスト名に置き換えます。 novaユーザーのユーザー名、パスワード、テナントを設定します。#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_admin_username nova#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_admin_tenant_id TENANT_ID#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_admin_password PASSWORDTENANT_ID は Compute サービスで使用するために作成したテナントの一意識別子に、PASSWORD はnovaユーザーの作成時に設定したパスワードに置き換えます。- 管理者権限で、OpenStack Networking がコンピュートコントローラーノードに接続されるように設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_admin_auth_url http://CONTROLLER_IP:35357/v2.0CONTROLLER_IP は、コンピュートコントローラーノードの IP アドレスまたはホスト名に置き換えます。 - OpenStack Networking がコンピュートコントローラーノードに対応する正しいリージョンを使用するように設定します。
#openstack-config --set /etc/neutron/neutron.conf \DEFAULT nova_region_name RegionOne
7.2.10. OpenStack Networking の起動
neutron-server サービスを起動して、ブート時に起動するように設定します。
#systemctl start neutron-server.service#systemctl enable neutron-server.service
重要
デフォルトでは、前のリリースとの後方互換性を維持するため、OpenStack Networking による IP アドレスの Classless Inter-Domain Routing (CIDR) チェックは有効化されていません。このようなチェックが必要な場合には、
/etc/neutron/neutron.conf ファイルで force_gateway_on_subnet 設定キーの値を True に設定します。