ルーターは、プロジェクト VM インスタンスに、より広いネットワークとの接続を提供します。ルーターは、すべてのプロジェクトネットワークによって共有されます。ルーターは 1 つしかないため、プロジェクトネットワークは重複した IP アドレスを使用できません。
ルーターは、そのルーターを外部ネットワークに接続するインタフェース上で双方向のネットワークアドレス変換 (NAT) を実行します。プロジェクトには必要なだけ、またはフローティング IP の割り当て制限によって許可されている数だけのフローティング IP (パブリック IP) を割り当てることができます。これらのフローティング IP は、外部接続を必要としている VM インスタンスに関連付けられています。
ルーターを作成するには、Neutron L3 エージェントを構成する必要があります。このエージェントは、Nova インスタンスに割り当てられたアドレスとフローティング IP アドレスとの間の 1 対 1 NAT マッピングを自動的に作成します。L3 エージェントは、プライベートネットワーク間の通信も可能にします。
デフォルトでは、同じプロジェクトのプライベートネットワーク間のルーティングは無効になっています。この動作を変更するには、/etc/neutron/l3_agent.ini 構成ファイル内の allow_forwarding_between_networks を True に設定します。このパラメータを設定したあと、neutron-l3-agent SMF サービスを再起動します。
この手順では、外部ネットワーク用にルーターを作成する方法を示します。この手順の一部には、構成ファイルの編集が必要です。そのため、この手順では Horizon ダッシュボードより端末ウィンドウを使用した方が便利です。
Neutron サービスがインストールされているノード上で、次の手順を実行します。このドキュメントでは、前の章で説明されているサンプルアーキテクチャーに基づいて、コントローラノード上でこのサービスを見つけます。
始める前に
Neutron をインストールし、構成する方法の説明に従って Neutron の構成を完了していることを確認してください。
controller# svcadm enable -rs ipfilter
controller# ipadm set-prop -p forwarding=on ipv4
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# neutron router-create router-name
このコマンドは、ルーター名とそれに対応する ID を表示します。次の手順で、この ID を使用して構成ファイルを更新します。
router_id=routerID前の手順から取得した ID。
controller# svcadm enable neutron-l3-agent
ルーターに外部ネットワークを追加すると、そのルーターに関する詳細情報が追加されます。
controller# neutron router-show router-name
この例では、外部ネットワーク用にルーターを作成する方法を示します。
controller# svcadm enable -rs ipfilter controller# ipadm set-prop -p forwarding=on ipv4 controller# ipadm set-prop -p forwarding=on ipv6 controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 controller# neutron router-create ext-router Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+--------------------------------------+
この時点で、/etc/neutron/l3_agent.ini ファイル内の router_id を更新します。
router_id = f89b24ed-42dd-48b0-8f4b-fd41887a3370
次に、L3 エージェントサービスを有効にします。
controller# svcadm enable neutron-l3-agent