第29章 Ansible を使用した IdM での DNS の場所の管理
Identity Management (IdM) 管理者は、ansible-freeipa
パッケージで利用可能な location
モジュールを使用して IdM DNS の場所を管理できます。
29.1. DNS ベースのサービス検出
DNS ベースのサービス検出は、クライアントが DNS プロトコルを使用するプロセスで、LDAP
や Kerberos
など、特定のサービスを提供するネットワークでサーバーを見つけ出します。一般的な操作の 1 つとして、クライアントが最寄りのネットワークインフラストラクチャー内にある認証サーバーを特定できるようにすることが挙げられます。理由は、スループットが向上してネットワークレイテンシーが短縮されるので全体的なコスト削減を図ることができるためです。
サービス検出の主な利点は以下のとおりです。
- 近くにあるサーバーの名前を明示的に設定する必要がない。
- DNS サーバーをポリシーの中央プロバイダーとして使用する。同じ DNS サーバーを使用するクライアントは、サービスプロバイダーと優先順序に関する同じポリシーにアクセスできます。
Identity Management (IdM) ドメインには、LDAP
、Kerberos
、およびその他のサービスに DNS サービスレコード (SRV レコード) があります。たとえば、次のコマンドは、IdM DNS ドメインで TCP ベースの Kerberos
サービスを提供するホストの DNS サーバーをクエリーします。
例29.1 DNS の場所に関する独立した結果
$ dig -t SRV +short _kerberos._tcp.idm.example.com
0 100 88 idmserver-01.idm.example.com.
0 100 88 idmserver-02.idm.example.com.
出力には、以下の情報が含まれます。
-
0
(優先度): ターゲットホストの優先度。値が小さいほど優先度が高くなります。 -
100
(加重)。優先順位が同じエントリーの相対的な重みを指定します。詳細は RFC 2782, section 3 を参照してください。 -
88
(ポート番号): サービスのポート番号 - サービスを提供するホストの正規名。
この例では、2 つのホスト名が返され、どちらも同じ優先順位と重みでした。この場合には、クライアントは結果リストから無作為にエントリーを使用します。
代わりに、クライアントを設定して、DNS の場所に設定されている DNS サーバーをクエリーすると、出力が異なります。場所が割り当てられた IdM サーバーの場合は、カスタマイズした値が返されます。以下の例では、クライアントは、場所 germany
にある DNS サーバーをクエリーするように設定されています。
例29.2 DNS の場所ベースの結果
$ dig -t SRV +short _kerberos._tcp.idm.example.com
_kerberos._tcp.germany._locations.idm.example.com.
0 100 88 idmserver-01.idm.example.com.
50 100 88 idmserver-02.idm.example.com.
IdM DNS サーバーは、ローカルサーバーを優先する DNS の場所固有の SRV レコードを参照する DNS エイリアス (CNAME) を自動的に返します。この CNAME レコードは、出力の最初の行に表示されます。この例では、ホストidmserver-01.idm.example.comの優先度の値が最も低いため、優先されます。idmserver-02.idm.example.com の優先度の値が高く、推奨されるホストが使用できない場合にバックアップとしてのみ使用されます。