7.2. OpenStack Networking の設定
重要
/etc/nova/nova.conf の [DEFAULT] セクションの vif_plugging_is_fatal オプションはデフォルトで True となっています。このオプションは、VIF プラグに失敗した場合にインスタンスが機能しないようにするかどうかを制御します。同様に、/etc/neutron/neutron.conf ファイルの [DEFAULT] セクションの notify_nova_on_port_status_changes および notify_nova_on_port_data_changes オプションはデフォルトで False に指定されています。これらのオプションは、ポートの状態またはデータの変更に関する通知を nova に送信するかどうかを制御します。ただし、これらの値の組み合わせが原因でインスタンスが起動しなくなる可能性があります。インスタンスを正しく起動できるようにするには、これらすべてのオプションを True または False に設定してください。True に設定するには、以下のコマンドを実行してください。
False に設定するには、代わりに以下のコマンドを実行します。
7.2.1. OpenStack Networking プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
neutron.conf で長いクラス名ではなく、指定した短い名前で参照することができます。
core_plugin = neutron.plugins.ml2.plugin:Ml2Plugin
core_plugin = neutron.plugins.ml2.plugin:Ml2Plugin
core_plugin = ml2
core_plugin = ml2
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
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.iniCopy to Clipboard Copied! Toggle word wrap Toggle overflow - テナントのネットワーク種別を設定します。サポートされる値は、
gre、local、vlan、vxlanです。デフォルト値はlocalですが、エンタープライズのデプロイメントには推奨していません。openstack-config --set /etc/neutron/plugin.ini \ ml2 tenant_network_types TYPE
# openstack-config --set /etc/neutron/plugin.ini \ ml2 tenant_network_types TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow TYPE は、テナントのネットワーク種別に置き換えます。 flatまたはvlanネットワークが選択されている場合は、物理ネットワークを VLAN 範囲にマッピングする必要もあります。openstack-config --set /etc/neutron/plugin.ini \ ml2 network_vlan_ranges NAME:START:END
# openstack-config --set /etc/neutron/plugin.ini \ ml2 network_vlan_ranges NAME:START:ENDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- NAME は、物理ネットワーク名に置き換えます。
- START は、VLAN 範囲の開始を示す識別子に置き換えます。
- END は、VLAN 範囲の終了を示す識別子に置き換えます。
以下の例のようにコンマ区切りリストを使用して、複数の範囲を指定することができます。physnet1:1000:2999,physnet2:3000:3999
physnet1:1000:2999,physnet2:3000:3999Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ドライバー種別を設定します。サポートされる値は
local、flat、vlan、gre、vxlanです。openstack-config --set /etc/neutron/plugin.ini \ ml2 type_drivers TYPE
# openstack-config --set /etc/neutron/plugin.ini \ ml2 type_drivers TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow TYPE は、ドライバーの種別に置き換えます。複数のドライバーを指定する場合は、コンマ区切りリストを使用します。 - メカニズムドライバーを設定します。利用可能な値は、
openvswitch、linuxbridge、l2populationです。openstack-config --set /etc/neutron/plugin.ini \ ml2 mechanism_drivers TYPE
# openstack-config --set /etc/neutron/plugin.ini \ ml2 mechanism_drivers TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow TYPE は、メカニズムドライバーの種別に置き換えます。複数のメカニズムドライバーを指定する場合は、コンマ区切りリストを使用します。 - L2 Population を有効化します。
openstack-config --set /etc/neutron/plugin.ini \ agent l2_population True
# openstack-config --set /etc/neutron/plugin.ini \ agent l2_population TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用しているプラグインエージェントに合わせて、
/etc/neutron/plugins/ml2/openvswitch_agent.iniファイルまたは/etc/neutron/plugins/ml2/linuxbridge_agent.iniファイルでファイアウォールドライバーを設定します。Open vSwitch ファイアウォールドライバー
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini
# openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriverCopy to Clipboard Copied! Toggle word wrap Toggle overflow Linux Bridge ファイアウォールドライバー
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini
# openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- ML2 プラグインおよび L3 ルーターを有効化します。
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT core_plugin ml2 openstack-config --set /etc/neutron/neutron.conf \ DEFAULT service_plugins router
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT core_plugin ml2 # openstack-config --set /etc/neutron/neutron.conf \ DEFAULT service_plugins routerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.2. OpenStack Networking データベースの作成 リンクのコピーリンクがクリップボードにコピーされました!
neutron-server サービスを起動する前に、データベースサーバーにroot ユーザーとしてログインして実行する必要があります。
手順7.2 OpenStack Networking データベースの作成
- データベースサービスに接続します。
mysql -u root -p
# mysql -u root -pCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下の名前のいずれかを指定してデータベースを作成します。以下の例では ML2 用の
- ML2 プラグインを使用する場合に、推奨されるデータベース名は
neutron_ml2です。 - Open vSwitch プラグインを使用する場合に、推奨されるデータベース名は
ovs_neutronです。 - Linux Bridge プラグインを使用する場合に、推奨されるデータベース名は
neutron_linux_bridgeです。
neutron_ml2データベースを作成します。mysql> CREATE DATABASE neutron_ml2 character set utf8;
mysql> CREATE DATABASE neutron_ml2 character set utf8;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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';
mysql> GRANT ALL ON neutron_ml2.* TO 'neutron'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL ON neutron_ml2.* TO 'neutron'@'localhost' IDENTIFIED BY 'PASSWORD';Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、このユーザーとしてデータベースサーバーとの認証を行う際に使用するセキュアなパスワードに置き換えます。- データベースの特権をフラッシュして、設定が即時に反映されるようにします。
mysql> FLUSH PRIVILEGES;
mysql> FLUSH PRIVILEGES;Copy to Clipboard Copied! Toggle word wrap Toggle overflow mysqlクライアントを終了します。mysql> quit
mysql> quitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.3. 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
# openstack-config --set /etc/neutron/plugin.ini \ DATABASE sql_connection mysql://USER:PASS@IP/DBCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- USER は、OpenStack Networking データベースのユーザー名 (通常は
neutron) に置き換えます。 - PASS は選択したデータベースユーザーのパスワードに置き換えます。
- IP は、データベースサーバーの IP アドレスまたはホスト名に置き換えます。
- DB は、OpenStack Networking データベースの名前に置き換えます。
重要
この接続設定キーに指定する IP アドレスまたはホスト名は、OpenStack Networking データベースの作成時に OpenStack Networking データベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、OpenStack Networking データベースの作成時に「localhost」へのアクセス権を付与した場合には、「localhost」と入力する必要があります。- 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
# neutron-db-manage --config-file /usr/share/neutron/neutron-dist.conf \ --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade headCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.4. OpenStack Networking 用のアイデンティティーレコードの作成 リンクのコピーリンクがクリップボードにコピーされました!
services テナントが作成済みであることを前提としています。詳しい説明は、以下のリンクを参照してください。
keystonerc_admin ファイルをコピーして keystone コマンドラインユーティリティーをインストールした任意のマシンで実行してください。
手順7.4 OpenStack Networking 用のアイデンティティーレコードの作成
- Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/keystonerc_admin
# source ~/keystonerc_adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutronユーザーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、OpenStack Networking が Identity サービスとの認証を行う際に使用するセキュアなパスワードに置き換えます。servicesテナントのコンテキスト内で、neutronユーザーとadminロールを関連付けます。[(keystone_admin)]# openstack role add --project services --user neutron admin
[(keystone_admin)]# openstack role add --project services --user neutron adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutronの OpenStack Networking サービスのエントリーを作成します。[(keystone_admin)]# openstack service create --name neutron \ --description "OpenStack Networking" \ network
[(keystone_admin)]# openstack service create --name neutron \ --description "OpenStack Networking" \ networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutronのエンドポイントエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP は、OpenStack Networking ノードとして機能するサーバーの IP アドレスまたはホスト名に置き換えます。
7.2.5. OpenStack Networking の認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
root ユーザーとしてログインして実行する必要があります。
手順7.5 OpenStack Networking サービスが Identity サービスを使用して認証を行うための設定
- 認証ストラテジーを
keystoneに設定します。openstack-config --set /etc/neutron/neutron.conf \ DEFAULT auth_strategy keystone
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT auth_strategy keystoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenStack Networking が使用する必要のある Identity サービスのホストを設定します。
openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken auth_host IP
# openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken auth_host IPCopy to Clipboard Copied! Toggle word wrap Toggle overflow IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。 - OpenStack Networking が正しいテナントとして認証を行うように設定します。
openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_tenant_name services
# openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_tenant_name servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow services は、OpenStack Networking を使用するために作成したテナントの名前に置き換えます。本ガイドの例では、servicesを使用しています。 - OpenStack Networking が
neutronの管理ユーザーアカウントを使用して認証を行うように設定します。openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_user neutron
# openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_user neutronCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenStack Networking が
neutronの管理ユーザーアカウントのパスワードを使用して認証を行うように設定します。openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_password PASSWORD
# openstack-config --set /etc/neutron/neutron.conf \ keystone_authtoken admin_password PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD は、neutronユーザーの作成時に設定したパスワードに置き換えます。
7.2.6. OpenStack Networking のトラフィックを許可するためのファイアウォール設定 リンクのコピーリンクがクリップボードにコピーされました!
9696 で接続を受信します。OpenStack Networking のファイアウォールは、このポートのネットワークトラフィックを許可するように設定する必要があります。以下の手順に記載するステップはすべて、OpenStack Networking をホストするサーバーに root ユーザーとしてログインして実行する必要があります。
手順7.6 OpenStack Networking のトラフィックを許可するためのファイアウォール設定
- テキストエディターで
/etc/sysconfig/iptablesファイルを開きます。 - ポート
9696で TCP トラフィックを許可する INPUT ルールを追加します。-A INPUT -p tcp -m multiport --dports 9696 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 9696 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイアウォールがポート
4789で VXLAN 接続を受け入れるように INPUT ルールを追加します。新しいルールは、トラフィックを REJECT する INPUT ルールの前に記載する必要があります。-A INPUT -p udp -m udp --dport 4789 -j ACCEPT
-A INPUT -p udp -m udp --dport 4789 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sysconfig/iptablesファイルへの変更を保存します。iptablesサービスを再起動して、変更を有効にします。systemctl restart iptables.service
# systemctl restart iptables.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.7. OpenStack Networking のための RabbitMQ メッセージブローカーの設定 リンクのコピーリンクがクリップボードにコピーされました!
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-config --set /etc/neutron/neutron.conf \ DEFAULT rpc_backend neutron.openstack.common.rpc.impl_kombuCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenStack Networking が RabbitMQ ホストに接続するように設定します。
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_host RABBITMQ_HOST
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_host RABBITMQ_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow RABBITMQ_HOST は、メッセージブローカーの IP アドレスまたはホスト名に置き換えます。 - メッセージブローカーのポートを
5672に設定します。openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_port 5672
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_port 5672Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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_PASS
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_userid neutron # openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_password NEUTRON_PASSCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutronおよび NEUTRON_PASS は、OpenStack Networking 用に作成した RabbitMQ ユーザー名とパスワードに置き換えます。 - RabbitMQ の起動時に、
neutronユーザーに全リソースに対するパーミッションが付与されます。このアクセスは、特別に仮想ホスト/を介して行われます。Networking サービスがこの仮想ホストに接続されるように設定します。openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_virtual_host /
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT rabbit_virtual_host /Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.8. OpenStack Networking とメッセージブローカーとの間の SSL 通信の有効化 リンクのコピーリンクがクリップボードにコピーされました!
手順7.8 OpenStack Networking と RabbitMQ メッセージブローカーとの間の SSL 通信の有効化
- メッセージブローカーとの SSL 通信を有効化します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。- /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
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT kombu_ssl_ca_certs /path/to/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow /path/to/ca.crt は、サードパーティー CA によって提供された CA ファイルの絶対パスに置き換えます (詳細は 「RabbitMQ メッセージブローカーでの SSL の有効化」 を参照)。
7.2.9. OpenStack Networking が Compute サービスとネットワークトポロジーの変更について通信するように設定する手順 リンクのコピーリンクがクリップボードにコピーされました!
手順7.9 OpenStack Networking が Compute サービスとネットワークトポロジーの変更について通信するように設定する手順
- OpenStack Networking がコンピュートコントローラーノードに接続されるように設定します。
openstack-config --set /etc/neutron/neutron.conf \ nova url http://CONTROLLER_IP:9696
# openstack-config --set /etc/neutron/neutron.conf \ nova url http://CONTROLLER_IP:9696Copy to Clipboard Copied! Toggle word wrap Toggle overflow CONTROLLER_IP は、コンピュートコントローラーノードの IP アドレスまたはホスト名に置き換えます。 novaユーザーのユーザー名、パスワード、テナントを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SERVICES は、nova プロジェクトの現在の名前に、PASSWORD は、novaユーザーの作成時に設定したパスワードに置き換えます。- 管理者権限で、OpenStack Networking がコンピュートコントローラーノードに接続されるように設定します。
openstack-config --set /etc/neutron/neutron.conf \ DEFAULT nova auth_url http://CONTROLLER_IP:35357/v3
# openstack-config --set /etc/neutron/neutron.conf \ DEFAULT nova auth_url http://CONTROLLER_IP:35357/v3Copy to Clipboard Copied! Toggle word wrap Toggle overflow CONTROLLER_IP は、コンピュートコントローラーノードの IP アドレスまたはホスト名に置き換えます。 - OpenStack Networking がコンピュートコントローラーノードに対応する正しいリージョンを使用するように設定します。
openstack-config --set /etc/neutron/neutron.conf \ nova region_name RegionOne
# openstack-config --set /etc/neutron/neutron.conf \ nova region_name RegionOneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.10. OpenStack Networking の起動 リンクのコピーリンクがクリップボードにコピーされました!
neutron-server サービスを起動して、ブート時に起動するように設定します。
systemctl start neutron-server.service systemctl enable neutron-server.service
# systemctl start neutron-server.service
# systemctl enable neutron-server.service
重要
/etc/neutron/neutron.conf ファイルで force_gateway_on_subnet 設定キーの値を True に設定します。