Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

Sun ONE Directory Server を使用した N2L の最良の実施例

N2L サービスは、Sun ONE Directory Server (以前の名称は iPlanet Directory Server) と、Sun の提供するその互換バージョンのディレクトリサーバーをサポートしています。その他の (サードパーティーの) LDAP サーバーが、N2L サービスで動作する場合もありますが、Sun はそれらをサポートしていません。 Sun ONE Directory Server または Sun の互換サーバー以外の LDAP サーバーを使用している場合は、RFC 2307 (またはその後継スキーマ) に準拠するように、サーバーを手動で構成する必要があります。

Sun ONE Directory Server を使用すれば、ディレクトリサーバーを強化してパフォーマンスを改善できます。 これらの強化を行うには、Sun ONE Directory Server 上に LDAP の管理者権限が必要です。 また、ディレクトリサーバーのリブートが必要な場合もあります。リブートは、サーバーの LDAP クライアントとの間で調整が必要な作業です。 Web サイト docs.sun.com で、iPlanet Directory Server 5.1 のドキュメントを入手できます。

Sun ONE Directory Server を使用した仮想リスト表示インデックスの作成

大規模なマップでは、LDAP の仮想リスト表示 (VLV) インデックスを使用して、LDAP の検索から正しい結果が得られることを保証しなければなりません。 Sun ONE Directory Server での VLV インデックスの設定についての詳細は、docs.sun.com Web サイトの Sun ONE Directory Server のドキュメントを参照してください。

VLV の検索結果では、固定ページサイズ 50000 を使用します。Sun ONE Directory Server で VLV を使用する場合は、LDAP サーバーと N2L サーバーの両方でこのサイズの転送を処理できる必要があります。 すべてのマップがこの制限より小規模であることが明らかな場合は、VLV インデックスを使用する必要はありません。 ただし、マップがこのサイズ制限より大きい場合、またはすべてのマップのサイズが明確な場合以外には、VLV インデックスを使用して、結果が不完全となることを防止しなければなりません。

VLV インデックスを使用している場合は、以下のように適切なサイズ制限を設定します。

VLV インデックスが作成されたら、Sun ONE Directory Server で vlvindex オプションを付けて directoryserver を実行してインデックスを有効にします。 詳細は、directoryserver(1M) のマニュアルページを参照してください。

標準マップ用 VLV

以下の状況に適合する場合、Sun ONE Directory Server の idsconfig コマンドを使用して、VLV を設定してください。

VLV はドメイン固有です。よって、idsconfig を実行するたびに、1 つの NIS ドメインに VLV が作成されます。 したがって、NIS から LDAP への移行中に、NISLDAPmapping ファイルに含まれる各 nisLDAPdomainContext 属性に対して、idsconfig を 1 回実行しなければなりません。

カスタムマップおよび非標準マップ用 VLV

以下の状況に適合する場合、マップ用に新しい Sun ONE Directory Server の VLV を手動で作成するか、既存の VLV インデックスをコピーして修正しなければなりません。

既存の VLV インデックスを表示するには、以下のように入力します。


# ldapsearch -h hostname -s sub -b "cn=ldbm database,cn=plugins,cn=config" \
"objectClass=vlvSearch"

Sun ONE Directory Server によるサーバーのタイムアウトの防止

N2L サーバーがマップをリフレッシュすると、その結果、大規模な LDAP ディレクトリアクセスが行われる場合があります。 Sun ONE Directory Server が正しく構成されていない場合、リフレッシュ動作は完了前にタイムアウトになることがあります。 ディレクトリサーバーのタイムアウトを防止するには、以下の Sun ONE Directory Server の属性を手動で修正するか、idsconfig コマンドを実行します。

たとえば、サーバーでの検索リクエストの実行にかかる最小時間を秒単位で増やすには、以下の属性を修正します。


dn: cn=config
nsslapd-timelimit: -1

テストのためには、属性値として -1 を使用できます。この値は、制限がないことを示しています。 最適な制限値が決まったら、属性値を変更します。 稼働サーバーに、-1 の属性値が設定されていてはなりません。 制限がないと、サーバーがサービス妨害攻撃に無防備になる場合があります。

LDAP での Sun ONE Directory Server の構成についての詳細は、このマニュアルのパート IVを参照してください。

Sun ONE Directory Server 使用時のバッファーオーバーランの防止

バッファーオーバーランを防止するには、Sun ONE Directory Server の属性を手動で修正するか、idsconfig コマンドを実行します。

  1. たとえば、クライアント検索照会に返されるエントリの最大数を増やすには、以下の属性を修正します。


    dn: cn=config
    nsslapd-sizelimit: -1
  2. クライアント検索照会で確認されるエントリの最大数を増やすには、以下の属性を修正します。


    dn: cn=config, cn=ldbm database, cn=plugins, cn=config
    nsslapd-lookthroughlimit: -1

テストのためには、属性値として -1 を使用できます。この値は、制限がないことを示しています。 最適な制限値が決まったら、属性値を変更します。 稼働サーバーに、-1 の属性値が設定されていてはなりません。 制限がないと、サーバーがサービス妨害攻撃に無防備になる場合があります。

VLV を使用している場合は、sizelimit 属性値をSun ONE Directory Server を使用した仮想リスト表示インデックスの作成 での定義に従う必要があります。 VLV を使用していない場合、最も大きなコンテナを格納できるようにサイズ制限を設定する必要があります。

Sun ONE Directory Server の構成についての詳細は、このマニュアルのパート IVを参照してください。