16.5. ルーティング対応プロバイダーネットワークの作成
エンドユーザー向けには 1 つのネットワークしか表示されないので、ルーティング対応プロバイダーネットワークにより Red Hat OpenStack Platform (RHOSP) クラウドが単純化されます。クラウドオペレーター向けには、ルーティング対応プロバイダーネットワークによりスケーラビリティーおよび耐障害性が提供されます。
以下の手順を実施すると、2 つのネットワークセグメントを持つルーティング対応プロバイダーネットワークが作成されます。それぞれのセグメントには、1 つの IPv4 サブネットおよび 1 つの IPv6 サブネットが含まれます。
前提条件
- xref:prepare-routed-prov-network_deploy-routed-prov-networks の手順を完了する。
手順
デフォルトのセグメントが含まれる VLAN プロバイダーネットワークを作成します。
以下の例では、VLAN プロバイダーネットワークは
multisegment1
という名前で、provider1
という名前の物理ネットワークおよび ID が128
の VLAN を使用します。例
$ openstack network create --share --provider-physical-network provider1 \ --provider-network-type vlan --provider-segment 128 multisegment1
出力例
+---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | UP | | id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | ipv4_address_scope | None | | ipv6_address_scope | None | | l2_adjacency | True | | mtu | 1500 | | name | multisegment1 | | port_security_enabled | True | | provider:network_type | vlan | | provider:physical_network | provider1 | | provider:segmentation_id | 128 | | revision_number | 1 | | router:external | Internal | | shared | True | | status | ACTIVE | | subnets | | | tags | [] | +---------------------------+--------------------------------------+
デフォルトのネットワークセグメントの名前を
segment1
に変更します。セグメント ID を取得します。
$ openstack network segment list --network multisegment1
出力例
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 43e16869-ad31-48e4-87ce-acf756709e18 | None | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+
セグメント ID を使用して、ネットワークセグメントの名前を
segment1
に変更します。$ openstack network segment set --name segment1 43e16869-ad31-48e4-87ce-acf756709e18
プロバイダーネットワーク上に 2 番目のセグメントを作成します。
以下の例では、ネットワークセグメントは
provider2
という名前の物理ネットワークおよび ID が129
の VLAN を使用します。例
$ openstack network segment create --physical-network provider2 \ --network-type vlan --segment 129 --network multisegment1 segment2
出力例
+------------------+--------------------------------------+ | Field | Value | +------------------+--------------------------------------+ | description | None | | headers | | | id | 053b7925-9a89-4489-9992-e164c8cc8763 | | name | segment2 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | network_type | vlan | | physical_network | provider2 | | revision_number | 1 | | segmentation_id | 129 | | tags | [] | +------------------+--------------------------------------+
ネットワークに
segment1
およびsegment2
のセグメントが含まれていることを確認します。$ openstack network segment list --network multisegment1
出力例
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 053b7925-9a89-4489-9992-e164c8cc8763 | segment2 | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 129 | | 43e16869-ad31-48e4-87ce-acf756709e18 | segment1 | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+
segment1
セグメント上に、IPv4 サブネットおよび IPv6 サブネットをそれぞれ 1 つ作成します。以下の例では、IPv4 サブネットは
203.0.113.0/24
を使用します。例
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 4 --subnet-range 203.0.113.0/24 \ multisegment1-segment1-v4
出力例
+-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | allocation_pools | 203.0.113.2-203.0.113.254 | | cidr | 203.0.113.0/24 | | enable_dhcp | True | | gateway_ip | 203.0.113.1 | | id | c428797a-6f8e-4cb1-b394-c404318a2762 | | ip_version | 4 | | name | multisegment1-segment1-v4 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | revision_number | 1 | | segment_id | 43e16869-ad31-48e4-87ce-acf756709e18 | | tags | [] | +-------------------+--------------------------------------+
以下の例では、IPv6 サブネットは
fd00:203:0:113::/64
を使用します。例
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 6 --subnet-range fd00:203:0:113::/64 \ --ipv6-address-mode slaac multisegment1-segment1-v6
出力例
+-------------------+------------------------------------------------------+ | Field | Value | +-------------------+------------------------------------------------------+ | allocation_pools | fd00:203:0:113::2-fd00:203:0:113:ffff:ffff:ffff:ffff | | cidr | fd00:203:0:113::/64 | | enable_dhcp | True | | gateway_ip | fd00:203:0:113::1 | | id | e41cb069-9902-4c01-9e1c-268c8252256a | | ip_version | 6 | | ipv6_address_mode | slaac | | ipv6_ra_mode | None | | name | multisegment1-segment1-v6 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | revision_number | 1 | | segment_id | 43e16869-ad31-48e4-87ce-acf756709e18 | | tags | [] | +-------------------+------------------------------------------------------+
注記デフォルトでは、プロバイダーネットワーク上の IPv6 サブネットは、ステートレスアドレス自動設定 (SLAAC) およびルーター広告の物理ネットワークインフラストラクチャーに基づきます。
segment2
セグメント上に、IPv4 サブネットおよび IPv6 サブネットをそれぞれ 1 つ作成します。以下の例では、IPv4 サブネットは
198.51.100.0/24
を使用します。例
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 4 --subnet-range 198.51.100.0/24 \ multisegment1-segment2-v4
出力例
+-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | allocation_pools | 198.51.100.2-198.51.100.254 | | cidr | 198.51.100.0/24 | | enable_dhcp | True | | gateway_ip | 198.51.100.1 | | id | 242755c2-f5fd-4e7d-bd7a-342ca95e50b2 | | ip_version | 4 | | name | multisegment1-segment2-v4 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | revision_number | 1 | | segment_id | 053b7925-9a89-4489-9992-e164c8cc8763 | | tags | [] | +-------------------+--------------------------------------+
以下の例では、IPv6 サブネットは
fd00:198:51:100::/64
を使用します。例
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 6 --subnet-range fd00:198:51:100::/64 \ --ipv6-address-mode slaac multisegment1-segment2-v6
出力例
+-------------------+--------------------------------------------------------+ | Field | Value | +-------------------+--------------------------------------------------------+ | allocation_pools | fd00:198:51:100::2-fd00:198:51:100:ffff:ffff:ffff:ffff | | cidr | fd00:198:51:100::/64 | | enable_dhcp | True | | gateway_ip | fd00:198:51:100::1 | | id | b884c40e-9cfe-4d1b-a085-0a15488e9441 | | ip_version | 6 | | ipv6_address_mode | slaac | | ipv6_ra_mode | None | | name | multisegment1-segment2-v6 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | revision_number | 1 | | segment_id | 053b7925-9a89-4489-9992-e164c8cc8763 | | tags | [] | +-------------------+--------------------------------------------------------+
検証
それぞれの IPv4 サブネットが少なくとも 1 つの DHCP エージェントと関連付けられていることを確認します。
$ openstack network agent list --agent-type dhcp --network multisegment1
出力例
+--------------------------------------+------------+-------------+-------------------+-------+-------+--------------------+ | ID | Agent Type | Host | Availability Zone | Alive | State | Binary | +--------------------------------------+------------+-------------+-------------------+-------+-------+--------------------+ | c904ed10-922c-4c1a-84fd-d928abaf8f55 | DHCP agent | compute0001 | nova | :-) | UP | neutron-dhcp-agent | | e0b22cc0-d2a6-4f1c-b17c-27558e20b454 | DHCP agent | compute0101 | nova | :-) | UP | neutron-dhcp-agent | +--------------------------------------+------------+-------------+-------------------+-------+-------+--------------------+
Compute サービスの配置 API の各セグメントの IPv4 サブネットにインベントリーが作成されたことを確認します。
すべてのセグメント ID に対して、以下のコマンドを実行します。
$ SEGMENT_ID=053b7925-9a89-4489-9992-e164c8cc8763 $ openstack resource provider inventory list $SEGMENT_ID
出力例
この出力例では、セグメントのうち 1 つだけが表示されています。
+----------------+------------------+----------+----------+-----------+----------+-------+ | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | +----------------+------------------+----------+----------+-----------+----------+-------+ | IPV4_ADDRESS | 1.0 | 1 | 2 | 1 | 1 | 30 | +----------------+------------------+----------+----------+-----------+----------+-------+
Compute サービスの各セグメントにホストアグリゲートが作成されたことを確認します。
$ openstack aggregate list
出力例
以下の例では、1 つのセグメントだけが示されています。
+----+---------------------------------------------------------+-------------------+ | Id | Name | Availability Zone | +----+---------------------------------------------------------+-------------------+ | 10 | Neutron segment id 053b7925-9a89-4489-9992-e164c8cc8763 | None | +----+---------------------------------------------------------+-------------------+
1 つまたは複数のインスタンスを起動します。それぞれのインスタンスは、特定のコンピュートノードで使用するセグメントに従って IP アドレスを取得します。
注記ユーザーがポート作成要求で Fixed IP を指定すると、その特定の IP が直ちにポートに割り当てられます。ただし、ポートを作成してインスタンスに渡した際の動作は、従来のネットワークとは異なります。ポート作成要求で Fixed IP が指定されていない場合、特定のコンピュートノードが明確になるまで Networking サービスは IP アドレスをポートに割り当てません。たとえば、以下のコマンドを実行した場合:
$ openstack port create --network multisegment1 port1
出力例
+-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | UP | | binding_vnic_type | normal | | id | 6181fb47-7a74-4add-9b6b-f9837c1c90c4 | | ip_allocation | deferred | | mac_address | fa:16:3e:34:de:9b | | name | port1 | | network_id | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | | port_security_enabled | True | | revision_number | 1 | | security_groups | e4fcef0d-e2c5-40c3-a385-9c33ac9289c5 | | status | DOWN | | tags | [] | +-----------------------+--------------------------------------+
関連情報
- 「ルーティング対応プロバイダーネットワークの準備」
- コマンドラインインターフェイスリファレンス の network create
- コマンドラインインターフェイスリファレンス の network segment create
- コマンドラインインターフェイスリファレンス の subnet create
- Command Line Interface Reference の port create