第4章 統合 DNS サービスの使用
Red Hat OpenStack Platform (RHOSP) DNS サービス (designate) は Networking サービス (neutron) と統合され、ポートの自動レコードセット作成と Compute サービス (nova) を通じて、仮想マシンインスタンスを提供します。
クラウド管理者は、DNS サービスを使用して、ネットワークに関連付けられたゾーンを作成します。クラウド管理者がこのネットワークを使用することで、クラウドユーザーは仮想マシンインスタンス、ポート、または Floating IP を作成し、DNS サービスは必要な DNS レコードを自動的に作成します。
DNS サービスのデプロイメント時に、インストールツールセットの RHOSP director は、Networking サービス (neutron) の拡張機能 dns_domain_ports
を読み込みます。この拡張機能により、以下の DNS 属性を RHOSP ポート、ネットワーク、および Floating IP に追加できます。
リソース | DNS 名 | DNS ドメイン (ゾーン) |
---|---|---|
ポート | はい | はい |
Networks | いいえ | はい |
Floating IP | はい | はい |
ネットワークと Floating IP の両方で指定された DNS ドメインの場合、Floating IP のポートのドメインがネットワークで設定されたドメインよりも優先されます。
Red Hat OpenStack Platform (RHOSP) 17.1 GA では、RHOSP Networking サービス (neutron) ML2/OVN と RHOSP DNS サービス (designate) を統合するためのテクノロジープレビューを利用できます。その結果、DNS サービスは、新しく作成された VM の DNS エントリーを自動的に追加しません。
このセクションに含まれるトピックは次のとおりです。
4.1. Setting up a project for DNS integration
クラウド管理者は、必須のゾーン、ネットワーク、およびサブネットを作成し、クラウドユーザーは、仮想マシンインスタンス、ポート、または Floating IP の作成時に指定する必要があります。RHOSP Networking サービス (neutron) は DNS サービス (設計) と統合されているため、クラウドユーザーがこれらのオブジェクトを作成すると、自動的に DNS サービスに追加されます。
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。テクノロジープレビュー機能の詳細は、対象範囲の詳細 を参照してください。
前提条件
-
admin
ロールを持つ RHOSP ユーザーである。 -
ポートや VM に使用するネットワークは、
router:external
属性をTrue
に設定することはできません。ネットワークの作成時に、--external
オプションは指定しないでください。 - ネットワークは、FLAT、VLAN、GRE、VXLAN、または GENEVE のタイプのいずれかでなければなりません。
VLAN、GRE、VXLAN、または GENEVE ネットワークの場合、セグメント ID は Networking サービスの
ml2_conf.ini
ファイルで設定した範囲外である必要があります。ml2_conf.ini
ファイルは、コントローラーノードホストの/var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2
にあります。+ 次の表を使用して、どのセクションとオプションを参照するかを決定してください。ネットワークセグメンテーション ID 範囲:表4.2 ネットワークのセグメント ID の設定に使用される ml2_conf.ini オプション ネットワークの種類 セクション オプション Geneve
[ml2_type_geneve]
vni_ranges
GRE
[ml2_type_gre]
tunnel_id_ranges
VLAN
[ml2_type_vlan]
network_vlan_ranges
VXLAN
[ml2_type_vxlan]
vni_ranges
これらの前提条件が満たされていない場合は、Networking サービスはデフォルトの dns_domain
値 openstacklocal
を使用して内部リゾルバーに DNS 割り当てを作成します。
手順
クラウド管理者として、認証情報ファイルを入手します。
例
$ source ~/overcloudrc
特定のプロジェクトのユーザーが DNS エントリーを作成できるようにゾーンを作成します。
例
以下の例では、クラウド管理者は
example.com.
という名前のゾーンを作成し、プロジェクト ID (f75ec24a-d361-ab86-54c0-dfe6093245a3
) に含まれるユーザー ID に、そのゾーンにレコードセットを追加するパーミッションを割り当てます。$ openstack zone create --email example@example.com example.com. --sudo-project-id f75ec24a-d361-ab86-54c0-dfe6093245a3
注記DNS ドメインは、常にピリオドで終わる、完全修飾ドメイン名 (FQDN) である必要があります。
特定のプロジェクトのユーザーが DNS エントリーを作成できるようにネットワークを作成します。
例
以下の例では、クラウド管理者は以前に作成したゾーン
example.com
を使用してネットワークexample-network
とセグメント ID2017
(ml2_conf.ini で定義された範囲外) を作成します。$ openstack network create --dns-domain example.com. \ --provider-segment 2017 --provider-network-type geneve \ example-network
ネットワーク上にサブネットを作成します。
例
以下の例では、クラウド管理者はサブネット
example-subnet
をネットワークexample-network
に作成します。$ openstack subnet create \ --allocation-pool start=192.0.2.10,end=192.0.2.200 \ --network example-network \ --subnet-range 192.0.2.0/24 \ example-subnet
- インスタンス、ポート、および Floating IP の追加時に作成したゾーンおよびネットワークを使用するように、プロジェクト内のクラウドユーザーに指示します。
インスタンス、ポート、または Floating IP を作成するユーザーにゾーンにレコードセットを作成するパーミッションがない場合や、ゾーンが DNS サービスに存在しない場合には、Networking サービスは次の処理を行います。
-
指定した
dns_domain
を使用してdns_assignment
フィールドに入力された値でポートを作成します。 - DNS サービスにレコードセットを作成しません。
- Error publishing port data in external DNS service のエラーをログに記録します。
検証
作成したネットワークが存在することを確認します。
例
$ openstack network show example-network
出力例
+---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2022-09-07T19:03:32Z | | description | | | dns_domain | example.com. | | id | 9ae5b3d5-f12c-4a67-b0e5-655d53cd4f7c | | ipv4_address_scope | None | | ipv6_address_scope | None | | is_default | None | | is_vlan_transparent | None | | mtu | 1450 | | name | network-example | | port_security_enabled | True | | project_id | f75ec24a-d361-ab86-54c0-dfe6093245a3 | | provider:network_type | vxlan | | provider:physical_network | None | | provider:segmentation_id | 2017 | | qos_policy_id | None | | revision_number | 3 | | router:external | Internal | | segments | None | | shared | False | | status | ACTIVE | | subnets | 15546c9d-6faf-43aa-83e7-b1e705eed060 | | tags | | | updated_at | 2022-09-07T19:03:43Z | +---------------------------+--------------------------------------+