この手順では、外部ネットワークを表す仮想ネットワークを作成する方法を示します。この仮想ネットワークでは DHCP が使用されません。代わりにフローティング IP アドレスが作成されます。これらのフローティング IP アドレスは特定のテナントに割り当てられ、そのテナントで、ユーザーによって使用される Nova VM インスタンスに割り当てることができます。
この章のマルチノードアーキテクチャーのサンプルではコントローラに Neutron サービスが含まれているため、コントローラノードで次の手順を実行します。
始める前に
この手順を実行するには、テナントの内部ネットワークがすでに存在している必要があります。プライベートネットワークを作成する手順については、内部ネットワークを作成する方法を参照してください。
また、Elastic Virtual Switch についても、その l2-type および vlan-range プロパティーが構成されているなど、構成が完了している必要があります。次の例は、Step 9 でこれらのプロパティーを構成したときに、その設定を表示する方法を示しています。
controller# evsadm show-controlprop -p l2-type -p vlan-range PROPERTY PERM VALUE DEFAULT HOST l2-type rw vlan vlan -- vlan-range rw 1,200-300 -- --
また、外部ネットワークに接続するプライベートネットワークのテナントに関する情報も必要です。テナント情報は、次のコマンドを使用するといつでも表示できます。
keystone tenant-list
controller# svcadm enable ipfilter
controller# ipadm set-prop -p forwarding=on ipv4
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_TENANT_NAME=service-name controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create router-name
このコマンドは、ルーター名とそれに対応する ID を表示します。次の手順で、この ID を使用して構成ファイルを更新します。
/etc/neutron/l3_agent.ini ファイルで、router_id パラメータの値を前の手順のルーター UUID に設定します。
router_id = router-ID
controller# svcadm enable neutron-l3-agent
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external=true network-name
ここで、segmentation_id は VLAN 範囲の最初の数字です。
このドキュメントのサンプル構成では、DHCP は無効になっています。割り当てプールはサブネットに割り当てられているフローティング IP アドレスの範囲で構成されます。
controller# neutron subnet-create --enable-dhcp=false --name subnet-name \ --allocation-pool start=start-IP, end=end-IP network-name subnet-IP
controller# neutron router-gateway-set router-ID network-ID \
この手順では、ルーター ID とテナントのサブネット ID が必要です。次のようにして情報を取得できます。
# keystone tenant-list # neutron net-list --tenant-id tenant-ID
この手順は、外部ネットワークに追加するテナントのプライベートネットワークの数に応じて繰り返します。
controller# neutron router-interface-add router-ID subnet-ID
次の例は参照として Figure 3–3 の一部を使用します。図では、テナント A には 2 つの VM インスタンスがあり、それぞれがプライベートネットワークに属しています。この 2 つのプライベートネットワークは HR と ENG です。2 つの VM インスタンスがさらに広いネットワークと通信できるように、外部ネットワークにこれら 2 つのサブネットが追加されます。この例では、Neutron サービスのデフォルトのユーザー名とパスワードを使用することを想定しています。
controller# svcadm enable ipfilter controller# ipadm set-prop -p forwarding=on ipv4 controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=neutron controller# export OS_TENANT_NAME=TenantA controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create ext-router Created a new router: +-----------------------+-----------------+ | Field | Value | +-----------------------+-----------------+ | admin_state_up | True | | external_gateway_info | | | id | 97ro5-ut3er | | name | ext-router | | status | ACTIVE | | tenant_id | abcde12345 | +-----------------------+-----------------+
この時点で、router_ID パラメータを 97ro5-ut3er に設定して /etc/neutron/l3_agent.ini ファイルを更新します。
ファイルを更新したあと、残りの手順に進みます。
controller# svcadm enable neutron-l3-agent controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=1 --router:external=true ext_network Created a new network: +--------------------------+-------------------+ | Field | Value | +--------------------------+-------------------+ | admin_state_up | True | | id | 555ext-net555 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | abcde12345 | +--------------------------+-------------------+ controller# neutron subnet-create --enable-dhcp=False \ --name ext_subnet --allocation-pool start=10.134.13.8,end=10.134.13.254 \ ext_network 10.134.13.0/24 Created a new subnet: +------------------+--------------------------------------------------+ | Field | Value | +------------------+--------------------------------------------------+ | allocation_pools | {"start": "10.134.13.8", "end": "10.134.13.254"} | | cidr | 10.134.13.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | 444sub-net444 | | ip_version | 4 | | name | ext_subnet | | network_id | 555ext-net555 | | tenant_id | abcde12345 | +------------------+--------------------------------------------------+ controller# neutron router-gateway-set 97ro5-ut3er 555ext-net555 Set gateway for router 97ro5-ut3er controller# keystone tenant-list +------------+---------+---------+ | id | name | enabled | +------------+---------+---------+ | 12345abcde | TenantA | True | | 67890fghij | TenantB | True | +------------+---------+---------+ controller# neutron net-list --tenant-id 12345abcde +------------+------+-------------+ | id | name | subnets | +------------+------+-------------+ | 1a3b5c7d9e | HR | xyz-123-uvw | | 2f4g6h8i0j | ENG | 098-r2d2-56 | +------------+------+-------------+ controller# neutron router-interface-add 97ro5-ut3er xyz-123-uvwHR added to the router. Added interface xyz-123-uvw to router 97ro5-ut3er. controller# neutron router-interface-add 97ro5-ut3er 098-r2d2-56ENG added to the router. Added interface 098-r2d2-56 to router 97ro5-ut3er.
関連項目