Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
オーバークラウド向けの IPv6 ネットワーク
オーバークラウドで IPv6 ネットワークを使用するための設定
OpenStack Documentation Team
rhos-docs@redhat.com
概要
第1章 はじめに
Red Hat OpenStack Platform director は、オーバークラウド と呼ばれるクラウド環境を作成します。デフォルトでは、オーバークラウドは、インターネットプロトコルのバージョン 4 (IPv4) を使用してサービスのエンドポイントを設定しますが、オーバークラウドはインターネットプロトコルのバージョン 6 (IPv6) のエンドポイントもサポートしています。これは、IPv6 のインフラストラクチャーをサポートする組織には便利です。本ガイドには、オーバークラウドで IPv6 を使用するための情報と設定例を記載します。
1.1. IPv6 ネットワークの定義
IPv6 は、インターネットプロトコル基準の最新バージョンです。Engineering Task Force (IETF) では、現在一般的な IPv4 基準で IP アドレスが使い果たされてしまわないようにするための手段として、IPv6 を開発しました。IPv6 と IPv4 の間では、以下を含むさまざまな相違点があります。
- より大きな IP アドレス範囲
- IPv6 のアドレス範囲は、IPv4 の範囲よりもはるかに大きくなります。
- より優れたエンドツーエンドの接続性
- IP の範囲が大きいので、ネットワークアドレスの変換への依存度が低くなるため、エンドツーエンドの接続性が向上されます。
- ブロードキャスティングなし
- IPv6 は、従来の IP ブロードキャスティングをサポートしません。その代わりに、IPv6 はマルチキャスティングを使用して、階層的な方法で対象のホストにパケットを送信します。
- Stateless Address Autoconfiguration (SLAAC)
- IPv6 は、IP アドレスを自動的に設定して、1 つのネットワーク上で重複したアドレスを検出する機能を提供します。これにより、アドレスの割り当てでの DHCP サーバーへの依存度が軽減されます。
IPv6 では 128 ビット (16 ビットのグループを使用して、4 つの 16 進数で表現) を使用してアドレスを定義しますが、IPv4 では 32 ビットのみ (8 ビットのグループを使用して、10 進数の桁で表現) を使用します。たとえば、IPv4 アドレス (192.168.0.1) の表現は以下のようになります。
ビット | 表現 |
---|---|
11000000 |
192 |
10101000 |
168 |
00000000 |
0 |
00000001 |
1 |
IPv6 アドレス (2001:db8:88ec:9fb3::1) の場合は、表現は以下のようになります。
ビット | 表現 |
---|---|
0010 0000 0000 0001 |
2001 |
0000 1101 1011 1000 |
0db8 |
1000 1000 1110 1100 |
88ec |
1001 1111 1011 0011 |
9fb3 |
0000 0000 0000 0000 |
0000 |
0000 0000 0000 0000 |
0000 |
0000 0000 0000 0000 |
0000 |
0000 0000 0000 0001 |
0001 |
IPv6 アドレスは、各ビットグループで先頭にゼロを付けずに表現し、IP アドレスごとのゼロのビットグループセットを省略することも可能である点に注意してください。たとえば、0683 ビットグループを 683 として表現し、0000 のビットグループセットを 3 つ省くことが可能です。これにより、表現は、「2001:0db8:88ec:9fb3:0000:0000:0000:0001」から「2001:db8:88ec:9fb3::1」に短くすることができます。
IPv6 でのサブネット化
IPv4 と同様に、IPv6 アドレスはビットマスクを使用して、アドレスプレフィックスをネットワークとして定義します。たとえば、/64 ビットマスクをサンプルの IP アドレス (例: 2001:db8:88ec:9fb3::1/64) に追加すると、そのビットマスクは最初の 64 ビット (2001:db8:88ec:9fb3) をネットワークとして定義するプレフィックスとして機能します。残りのビット (0000:0000:0000:0001) はホストを定義します。
IPv6 は、以下を含む特殊なアドレスタイプもいくつか使用します。
- ループバック
- ループバックデバイスは、ホスト内における内部の通信に IPv6 を使用します。このデバイスは常に ::1/128 です。
- リンクローカル
- リンクローカルアドレスは、特定のネットワークセグメント内で有効な IP アドレスです。IPv6 では、各ネットワークデバイスに、リンクローカルアドレスが 1 つ割り当てられ、プレフィックス fe80::/10 を使用する必要があります。ただし、大半の場合には、このアドレスには fe80::/64 のプレフィックスが付きます。
- ユニークローカル
- ローカル通信向けの一意なローカルアドレス。このアドレスは、fc00::/7 プレフィックスを使用します。
- マルチキャスト
- ホストは、マルチキャストアドレスを使用して、マルチキャストグループに参加します。このアドレスは、ff00::/8 のプレフィックスを使用します。たとえば、FF02::1 は、ネットワーク上の全ノードのマルチキャストグループで、FF02::2 は全ルーターのマルチキャストグループです。
- グローバルユニキャスト
- このアドレスは、通常パブリック IP アドレス用に予約され、2000::/3 のプレフィックスを使用します。
1.2. Red Hat OpenStack Platform における IPv6 の使用
Red Hat OpenStack Platform director は、OpenStack サービスを分離されたネットワークにマッピングする手段を提供します。これらのネットワークには、以下が含まれます。
- 内部 API
- ストレージ
- ストレージ管理
- テナントネットワーク (Neutron VLAN モード)
- 外部
ネットワークトラフィックの種別についての詳しい情報は、『Red Hat OpenStack Platform 9 director のインストールと使用方法』ガイドの「ネットワークのプランニング」のセクションを参照してください。
Red Hat OpenStack Platform director は、これらのネットワークに IPv6 通信を使用する手段も提供します。これは、必要な OpenStack サービス、データベース、その他の関連サービスが通信に IPv6 アドレスを使用することを意味し、複数のコントローラーを伴う高可用性ソリューションを使用する環境にも適用されます。この機能は、組織が Red Hat OpenStack Platform を IPv6 インフラストラクチャーに統合するのに役立ちます。
Red Hat OpenStack Platform で IPv6 をサポートしているネットワークについては、以下の表を参考にしてください。
ネットワーク種別 | デュアルスタック (IPv4/v6) | シングルスタック (IPv6) | シングルスタック (IPv4) | 備考 |
---|---|---|---|---|
内部 API |
はい |
はい | ||
ストレージ |
はい |
はい | ||
ストレージ管理 |
はい |
はい | ||
テナントネットワーク |
はい |
はい |
はい | |
テナントネットワークエンドポイント |
はい |
これは、テナントネットワークトンネルをホストしているネットワークの IP アドレスを指します。 | ||
外部 - パブリック API (および Horizon) |
はい |
はい | ||
外部 - Floating IP |
はい [1] |
はい [1] |
はい | |
プロバイダーネットワーク |
はい |
はい |
はい |
IPv6 のサポートは、テナントの OS によって異なります。 |
プロビジョニング (PXE/DHCP) |
はい |
このネットワークのインターフェースは、IPv4 のみです。 | ||
IPMI またはその他の BMC |
はい |
OpenStack Platform は、プロビジョニングネットワーク上で BMC インターフェースと通信します。このネットワークは IPv4 ですが、BMC インターフェースがデュアルスタック IPv4/IPv6 をサポートしている場合には、OpenStack Platform 以外のツールは IPv6 を使用して BMC と通信することができます。 | ||
オーバークラウドプロビジョニングネットワーク |
オーバークラウド内の Ironic 用のプロビジョニングネットワーク | |||
オーバークラウドクリーニングネットワーク |
マシンを再使用する前にクリーニングするための分離されたネットワーク |
[1] Global Unicast Address (GUA) のプレフィックスおよびアドレスを割り当てられた Neutron テナントネットワークは、neutron ルーターの外部ゲートウェイポートが外部にアクセスできる必要はありません。
1.3. 設定要件
本ガイドは、『Red Hat OpenStack Platform 9 director インストールと使用方法』ガイドの補足情報としての役割を果たします。これは、「第2章 要件」で指定されている同じ要件が本ガイドにも適用されることを意味します。必要に応じて、この要件を実装してください。
本ガイドでは、以下の要件も満たす必要があります。
- Red Hat OpenStack Platform director でインストールしたアンダークラウドホスト。「第4章 アンダークラウドのインストール」を参照してください。
- お使いのネットワークが IPv6 のネイティブ VLAN と IPv4 のネイティブ VLAN をサポートしていること。デプロイメントには、両方が使用されます。
1.4. シナリオの定義
本ガイドのシナリオでは、オーバークラウドを作成して、IPv6 を使用する分離されたネットワークを設定します。本書では、Heat テンプレートと環境ファイルを使用してネットワークの分離を設定することにより、この目的を達成します。本シナリオでは、Heat テンプレートと環境ファイルのいくつかの異なる実例をあげて、設定の具体的な相違点について説明します。
このシナリオでは、アンダークラウドは、PXE ブート、イントロスペクション、デプロイメント、およびその他のサービスには IPv4 の接続を引き続き使用します。
本ガイドでは、説明の目的で、RFC 3849 で定義されている 2001:DB8::/32 IPv6 プレフィックスを使用します。これらの IPv6 アドレスの例は、お使いのネットワークに応じて置き換えるようにしてください。
第2章 オーバークラウドの作成前の設定
次章では、openstack overcloud deploy
コマンドを実行する前に必要な設定について説明します。これには、プロビジョニングに向けたノードの準備、アンダークラウド上での IPv6 アドレスの設定、オーバークラウド用の IPv6 パラメーターを定義するネットワーク環境ファイルの作成が含まれます。
2.1. stack ユーザーの初期化
stack
ユーザーとして director ホストにログインし、以下のコマンドを実行して director の設定を初期化します。
$ source ~/stackrc
このコマンドでは、director の CLI ツールにアクセスする認証情報が含まれる環境変数を設定します。
2.2. アンダークラウド上での IPv6 アドレスの設定
アンダークラウドは、外部のネットワーク上にあるオーバークラウドのパブリック API にアクセスする必要があります。このアクセスを可能にするには、アンダークラウドホストで、外部ネットワークにアクセスするインターフェースに IPv6 アドレスが必要となります。
プロビジョニングネットワークには、全ノードに対する IPv4 接続が引き続き必要です。アンダークラウドとオーバークラウドは、このネットワークを PXE ブート、イントロスペクション、デプロイメントに使用します。また、ノードはこのネットワークを使用して、IPv4 で DNS および NTP サービスにアクセスします。
ネイティブ VLAN または専用のインターフェース
アンダークラウドが、外部ネットワークにアタッチされたネイティブ VLAN または専用のインターフェースを使用する場合には、ip
コマンドでそのインターフェースに IPv6 アドレスを追加します。以下の例では専用のインターフェースは eth0
です。
$ sudo ip link set dev eth0 up; sudo ip addr add 2001:db8::1/64 dev eth0
トランキングされた VLAN インターフェース
アンダークラウドは、同じインターフェース上のトランキングされた VLAN を外部ネットワークにアクセスするためのコントロールプレーンブリッジ (br-ctlplane
) として使用する場合には、新しい VLAN インターフェースを作成してコントロールプレーンにアタッチし、IPv6 アドレスを VLAN に追加します。たとえば、以下のシナリオでは外部ネットワークの VLAN ID に 100 を使用しています。
$ sudo ovs-vsctl add-port br-ctlplane vlan100 tag=100 -- set interface vlan100 type=internal $ sudo ip l set dev vlan100 up; sudo ip addr add 2001:db8::1/64 dev vlan100
IPv6 アドレスの確認
ip
コマンドで、IPv6 アドレスが追加されたことを確認します。
$ ip addr
選択したインターフェースに IPv6 アドレスが表示されます。
永続的な IPv6 アドレスの設定
上記の手順に加えて、IPv6 アドレスを永続的にする必要がある場合があります。その場合には、/etc/sysconfig/network-scripts/
で適切なインターフェース (本ガイドの例では ifcfg-eth0
または ifcfg-vlan100
) のファイルを編集または作成して、以下の行を追記してください。
IPV6INIT=yes IPV6ADDR=2001:db8::1/64
詳しい説明は、Red Hat カスタマーポータルの 「How do I configure a network interface for IPv6?」のソリューションを参照してください。
2.3. 環境の設定
『Red Hat OpenStack Platform 9 director のインストールと使用方法』の「第5章 基本なオーバークラウド要件の設定」を参照してください。
以下のワークフローに従って環境を設定します。
- ノード定義のテンプレートを作成して director で空のノードを登録します。
- 全ノードのハードウェアを検査します。
- 手動でロールにノードをタグ付けします。
- フレーバーを作成してロールにタグ付けします。
2.3.1. ノードの登録
ノード定義のテンプレート (instackenv.json
) は JSON ファイル形式で、このテンプレートにはノード登録用のハードウェアおよび電源管理の情報が含まれています。以下に例を示します。
{ "nodes":[ { "mac":[ "bb:bb:bb:bb:bb:bb" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.205" }, { "mac":[ "cc:cc:cc:cc:cc:cc" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.206" }, { "mac":[ "dd:dd:dd:dd:dd:dd" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.207" }, { "mac":[ "ee:ee:ee:ee:ee:ee" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.208" } { "mac":[ "ff:ff:ff:ff:ff:ff" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.209" } { "mac":[ "gg:gg:gg:gg:gg:gg" ], "cpu":"4", "memory":"6144", "disk":"40", "arch":"x86_64", "pm_type":"pxe_ipmitool", "pm_user":"admin", "pm_password":"p@55w0rd!", "pm_addr":"192.0.2.210" } ] }
プロジェクトネットワークは IPv4 アドレスを使用します。IPMI アドレスは IPv4 アドレスで、直接アタッチされているか、プロビジョニングネットワークでルーティング到達可能である必要があります。
テンプレートの作成後に、stack ユーザーのホームディレクトリー (/home/stack/instackenv.json
) にファイルを保存してから、director にインポートします。これには、以下のコマンドを実行します。
$ openstack baremetal import --json ~/instackenv.json
このコマンドでテンプレートをインポートして、テンプレートから director に各ノードを登録します。
カーネルと ramdisk イメージを全ノードに割り当てます。
$ openstack baremetal configure boot
director でのノードの登録、設定が完了しました。
2.3.2. ノードのハードウェアの検査
ノードの登録後には、各ノードのハードウェア属性を検査します。各ノードのハードウェア属性を検査するには、以下のコマンドを実行します。
$ openstack baremetal introspection bulk start
このプロセスが最後まで実行されて正常に終了したことを確認してください。ベアメタルの場合には、通常 15 分ほどかかります。
2.3.3. ノードの手動でのタグ付け
各ノードのハードウェアを登録、検査した後には、特定のプロファイルにノードをタグ付けします。これらのプロファイルタグによりノードとフレーバーが照合され、フレーバーがデプロイメントロールに割り当てられます。
ノード一覧を取得して UUID を特定します。
$ ironic node-list
特定のプロファイルにノードを手動でタグ付けする場合には、各ノードの properties/capabilities
パラメーターに profile オプションを追加します。たとえば、2 台のノードをタグ付けしてコントローラープロファイルとコンピュートプロファイルをそれぞれ使用するには、以下のコマンドを実行します。
$ ironic node-update 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 add properties/capabilities='profile:control,boot_option:local' $ ironic node-update 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a add properties/capabilities='profile:control,boot_option:local' $ ironic node-update 5e3b2f50-fcd9-4404-b0a2-59d79924b38e add properties/capabilities='profile:control,boot_option:local' $ ironic node-update 484587b2-b3b3-40d5-925b-a26a2fa3036f add properties/capabilities='profile:compute,boot_option:local' $ ironic node-update d010460b-38f2-4800-9cc4-d69f0d067efe add properties/capabilities='profile:compute,boot_option:local' $ ironic node-update d930e613-3e14-44b9-8240-4f3559801ea6 add properties/capabilities='profile:compute,boot_option:local'
profile:compute
と profile:control
オプションを追加すると、ノードがそれぞれのプロファイルにタグ付けされます。
ベンチマークデータに基づいて、多数のノードに自動でタグ付けするには、手動でのタグ付けの代わりに、プロファイルの自動タグ付けを使用します。
2.4. ネットワークの設定
本項では、オーバークラウドのネットワーク設定について考察します。これには、特定のネットワークトラフィックを使用するようにサービスを分離し、IPv6 オプションでオーバークラウドを設定する手順が含まれます。
2.4.1. インターフェースの設定
まず最初に、オーバークラウドには、ネットワークインターフェースのテンプレートセットが必要です。このテンプレートは YAML 形式の標準の Heat テンプレートです。director にはテンプレートサンプルが含まれているので、すぐに使用を開始することができます。
-
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans
: このディレクトリーには、ロールごとに VLAN が設定された単一 NIC のテンプレートが含まれます。 -
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans
: このディレクトリーには、ロール別のボンディング NIC 設定のテンプレートが含まれます。
これらのテンプレートコレクションの 1 つを stack
ユーザーの templates
ディレクトリーにコピーします。以下に例を示します。
$ sudo cp -r /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans ~/templates/nic-configs
ネットワークインターフェースの設定についての詳しい情報は、『Red Hat OpenStack Platform 9 director のインストールと使用方法』の「6.2.1. カスタムのインターフェーステンプレートの作成」の項を参照してください。
いずれのインターフェーステンプレートコレクションにも、コントローラーノードを設定するための 2 つのファイル (controller.yaml
と controller-v6.yaml
) が含まれます。IPv6 の設定には controller-v6.yaml
を使用します。
2.4.2. 分離された IPv6 ネットワークの設定
オーバークラウドには、IPv6 を設定するためのネットワーク環境ファイルが必要です。このファイルは、オーバークラウドのネットワーク環境を記述し、ネットワークインターフェースの設定テンプレートを参照する Heat 環境ファイルです。本シナリオでは、環境ファイル (/home/stack/network-environment.yaml
) を作成して、以下のセクションを追加します。
resource_registry: OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/cinder-storage.yaml OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller-v6.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/swift-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/ceph-storage.yaml
このセクションにより、インターフェーステンプレートがそれぞれリソースとして登録されます。オーバークラウドの作成で、ノード種別ごとにネットワークを設定する際に、メインの Heat テンプレートコレクションが適切な OS::TripleO::*::Net::SoftwareConfig
リソースを呼び出します。このリソースがない場合には、メインの Heat テンプレートコレクションは、メインリソースレジストリーからデフォルトのネットワーク設定セットを使用します。
いずれのインターフェーステンプレートコレクションにも、コントローラーノードを設定するための 2 つのファイル (controller.yaml
と controller-v6.yaml
) が含まれます。IPv6 の設定には controller-v6.yaml
を使用します。
parameter_defaults: DnsServers: ["8.8.8.8","8.8.4.4"] ControlPlaneSubnetCidr: "24" EC2MetadataIp: 192.0.2.1 ControlPlaneDefaultRoute: 192.0.2.1 ExternalInterfaceDefaultRoute: 2001:db8::1 ExternalNetworkVlanID: 100 ExternalNetCidr: '2001:db8:0:1::/64' ExternalAllocationPools: [{'start': '2001:db8:0:1::10', 'end': '2001:db8:0:1:ffff:ffff:ffff:fffe'}] InternalApiNetworkVlanID: 201 InternalApiNetCidr: 'fd00:fd00:fd00:2000::/64' InternalApiAllocationPools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] TenantNetworkVlanID: 202 TenantNetCidr: 172.17.0.0/24 TenantAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}] StorageNetworkVlanID: 203 StorageNetCidr: 'fd00:fd00:fd00:4000::/64' StorageAllocationPools: [{'start': 'fd00:fd00:fd00:4000:0000:0000:0000:0000', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:ffff'}] StorageMgmtNetworkVlanID: 204 StorageMgmtNetCidr: 'fd00:fd00:fd00:5000::/64' StorageMgmtAllocationPools: [{'start': 'fd00:fd00:fd00:5000:0000:0000:0000:0000', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:ffff'}]
parameter_defaults
セクションには、環境のカスタマイズが記述されます。IPv6 の設定では、以下のパラメーターを確認してください。
- ExternalInterfaceDefaultRoute
- 外部インターフェースのデフォルトルート用の IP アドレス。本シナリオでは、アンダークラウドをデフォルトルートとして使用し、「アンダークラウド上での IPv6 アドレスの設定」で作成した IP アドレスを指定します。
- ExternalNetworkVlanID
- 外部ネットワークの VLAN ID。アンダークラウドで外部ネットワークへのアクセスに VLAN を使用する場合には、(「アンダークラウド上での IPv6 アドレスの設定」を参照)、この値に同じ VLAN をマッピングするようにしてください。
- ExternalNetCidr、InternalApiNetCidr、TenantNetCid、StorageNetCidr、StorageMgmtNetCidr
- 各ネットワークの IPv6 CIDR プレフィックス
- ExternalAllocationPools、InternalApiAllocationPools、TenantAllocationPools、StorageAllocationPools、StorageMgmtAllocationPools
- ノードに割り当てる IPv6 アドレスの範囲。これは、IPv6 の競合が発生しないようにするのに役立ちます。
2.4.3. IPv6 と IPv4 のハイブリッド設定の使用
オーバークラウドでは、さまざまなサービスに、IPv4 と IPv6 ネットワークを組み合わせて使用することが可能です。これには、オーバークラウドのネットワークとポートを変更する必要があります。たとえば、ストレージおよびストレージ管理のネットワークを IPv4 にデプロイする一方で、他のネットワークに IPv6 を使用することができます。
ネットワーク分離の初期化ファイル (network-isolation-v6.yaml
) をコピーします。
$ sudo cp /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml ~/templates/nic-configs/network-isolation-v6.yaml
このファイルを編集して、ストレージおよびストレージ管理リソースが IPv4 バージョンのテンプレートを使用するようにをマッピングします。以下に例を示します。
resource_registry: OS::TripleO::Network::External: ../network/external_v6.yaml OS::TripleO::Network::InternalApi: ../network/internal_api_v6.yaml OS::TripleO::Network::StorageMgmt: ../network/storage_mgmt.yaml # Changed for IPv4 OS::TripleO::Network::Storage: ../network/storage.yaml # Changed for IPv4 OS::TripleO::Network::Tenant: ../network/tenant_v6.yaml # Port assignments for the VIPs OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external_v6.yaml OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api_v6.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage.yaml # Changed for IPv4 OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt.yaml # Changed for IPv4 OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml # Port assignments for the controller role OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external_v6.yaml OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api_v6.yaml OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage.yaml # Changed for IPv4 OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml # Changed for IPv4 OS::TripleO::Controller::Ports::TenantPort: ../network/ports/tenant_v6.yaml ...
openstack overcloud deploy
を実行する際には、元のファイルではなく、このカスタム network-isolation-v6.yaml
を指定します。
さらに、/home/stack/network-environment.yaml
の parameter_defaults
セクションを編集して、IPv6 を割り当てるネットワークと IPv4 を割り当てるネットワークが混在するように定義します。以下に例を示します。
parameter_defaults: DnsServers: ["8.8.8.8","8.8.4.4"] ControlPlaneSubnetCidr: "24" EC2MetadataIp: 192.0.2.1 ControlPlaneDefaultRoute: 192.0.2.1 ExternalInterfaceDefaultRoute: 2001:db8::1 ExternalNetworkVlanID: 100 ExternalNetCidr: '2001:db8:0:1::/64' ExternalAllocationPools: [{'start': '2001:db8:0:1::10', 'end': '2001:db8:0:1:ffff:ffff:ffff:fffe'}] InternalApiNetworkVlanID: 201 InternalApiNetCidr: 'fd00:fd00:fd00:2000::/64' InternalApiAllocationPools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] TenantNetworkVlanID: 202 TenantNetCidr: 172.17.0.0/24 TenantAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}] StorageNetworkVlanID: 203 StorageNetCidr: 172.18.0.0/24 StorageAllocationPools: [{'start': '172.18.0.10', 'end': '172.18.0.200'}] StorageMgmtNetworkVlanID: 204 StorageMgmtNetCidr: 172.19.0.0/24 StorageMgmtAllocationPools: [{'start': '172.19.0.10', 'end': '172.19.0.200'}]
オーバークラウドで VXLAN ネットワークを使用する場合には、テナントネットワークに IPv4 を使用するように設定します。テナントネットワークでは、IPv6 VXLAN はサポートされていません。
2.5. オーバークラウドの設定の完了
これで、IPv6 ベースのオーバークラウドの設定に必要なステップは完了です。次章では、openstack overcloud deploy
コマンドで、本章で作成した設定を使用してオーバークラウドを作成します。
第3章 オーバークラウドの作成
IPv6 ネットワークを使用するオーバークラウドを作成するには、openstack overcloud deploy
コマンドに追加の引数を指定する必要があります。以下に例を示します。
$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml -e /home/stack/templates/network-environment.yaml -e --control-scale 3 --compute-scale 3 --control-flavor control --compute-flavor compute --neutron-disable-tunneling --neutron-network-type vlan --neutron-tunnel-types vlan --neutron-network-vlan-ranges datacenter:1:1000 --ntp-server pool.ntp.org [ADDITIONAL OPTIONS]
上記のコマンドは、以下のオプションを使用します。
-
--templates
: デフォルトの Heat テンプレートコレクションからオーバークラウドを作成します。 -
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml
: オーバークラウドデプロイメントに別の環境ファイルを追加します。この場合は、IPv6 用にネットワーク分離の設定を初期化する環境ファイルです。 -
-e /home/stack/templates/network-environment.yaml
: オーバークラウドデプロイメントに追加の環境ファイルを追加します。この場合は、以前に作成したネットワーク環境ファイルです。 -
--control-scale 3
: コントローラーノードを 3 台にスケーリングします。 -
--compute-scale 3
: コンピュートノードを 3 台にスケーリングします。 -
--control-flavor control
: 対象のコントローラーノードに特定のフレーバーを使用します。 -
--compute-flavor compute
: コンピュートノードに特定のフレーバーを使用します。 -
--neutron-disable-tunneling
: オーバークラウド内のトンネリングを無効にします。IPv6 ではトンネリングはサポートされていません。テナントネットワークの設定に IPv4 を使用して、トンネリングを有効にする場合には、このオプションは追加しないでください。 -
--neutron-network-type vlan
:neutron
のネットワーク種別を設定します。テナントネットワークに IPv6 を使用する場合には VLAN モードを選択します。VXLAN を使用する場合には、テナントネットワークが IPv4 を使用するように変更します。詳しい情報は、「IPv6 と IPv4 のハイブリッド設定の使用」を参照してください。 -
--neutron-network-vlan-ranges datacenter:1:1000
:neutron
がサポートするマッピングの範囲を設定します。 -
--ntp-server pool.ntp.org
: NTP サーバーを設定します。
オプションの完全な一覧を表示するには、以下のコマンドを実行します。
$ openstack help overcloud deploy
パラメーターの例については、『Red Hat OpenStack Platform 9 director インストールと使用方法』ガイドの「7.1. オーバークラウドのパラメーター設定」も参照してください。
オーバークラウドの作成プロセスが開始され、director によりノードがプロビジョニングされます。このプロセスは完了するまで多少時間がかかります。オーバークラウドの作成のステータスを確認するには、stack
ユーザーとして別のターミナルを開き、以下を実行します。
$ source ~/stackrc $ heat stack-list --show-nested
3.1. オーバークラウドへのアクセス
director は、director ホストがオーバークラウドと対話するための設定と認証を行うスクリプトを生成します。このファイル (overcloudrc
) は、stack
ユーザーのホームディレクトリーに保存されます。このファイルを使用するには、以下のコマンドを実行します。
$ source ~/overcloudrc
これで、director のホストの CLI からオーバークラウドと対話するために必要な環境変数が読み込まれます。director のホストとの対話に戻るには、以下のコマンドを実行します。
$ source ~/stackrc
第4章 オーバークラウドの作成後の設定
上記のプロセスで、IPv6 ネットワークを使用するように設定された、完全に機能するオーバークラウドが作成されましたが、そのオーバークラウドには、作成後の設定をいくつか行う必要があります。
4.1. オーバークラウドのテナントネットワークの作成
オーバークラウドには、インスタンス用に IPv6 ベースのテナントネットワークが必要です。source コマンドで overcloudrc
ファイルを読み込み、neutron
に初期テナントネットワークを作成します。以下に例を示します。
$ source ~/overcloudrc $ neutron net-create default --provider:physical_network datacentre --provider:network_type vlan --provider:segmentation_id 101 $ neutron subnet-create default 2001:db8:fd00:6000::/64 --ipv6-ra-mode slaac --ipv6-address-mode slaac --ip-version 6 --name default
これで、default
という名前の基本的な neutron
ネットワークが作成されます。「neutron net-list」コマンドで、作成したネットワークを確認します。
$ neutron net-list
4.2. オーバークラウドのパブリックネットワークの作成
本シナリオでは、ノードのインターフェースが外部ネットワークを使用するように設定しましたが、オーバークラウド上にこのネットワークを作成して、ネットワークアクセスを提供できるようにする必要があります。
$ neutron net-create public --router:external --provider:physical_network datacentre --provider:network_type vlan --provider:segmentation_id 100 $ neutron subnet-create public 2001:db8:0:2::/64 --ip-version 6 --gateway 2001:db8::1 --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2::ffff --ip-version 6 --ipv6_address_mode=slaac --ipv6_ra_mode=slaac
このステップにより、public
という名前のネットワークが作成され、インスタンス用に 65000 を超える IPv6 アドレスの割り当てプールが提供されます。
ルーターを作成して、インスタンスのトラフィックを外部ネットワークにルーティングします。
neutron router-create public-router neutron router-gateway-set public-router public
第5章 結果
これで、IPv6 ベースのオーバークラウドの作成および設定が完了しました。オーバークラウド作成後の一般的な機能については、『Red Hat OpenStack Platform 9 director インストールと使用方法』の「第8章 オーバークラウド作成後のタスクの実行」を参照してください。