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

Sun Java System Directory Server を使用した NIS から LDAP への移行の最良の実践原則

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

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

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

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

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

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

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

標準マップ用 VLV

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

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

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

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

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


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

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

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

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


dn: cn=config
nsslapd-timelimit: -1

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

LDAP での Sun Java System Directory Server の構成の詳細については、第 11 章LDAP クライアントと Sun Java System Directory Server の設定 (手順)を参照してください。

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

バッファーオーバーランを防止するには、Sun Java System 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 Java System Directory Server を使用した仮想リスト表示インデックスの作成」での定義に合わせて設定する必要があります。VLV を使用していない場合、最も大きなコンテナを格納できるようにサイズ制限を設定する必要があります。

LDAP での Sun Java System Directory Server の構成の詳細については、第 11 章LDAP クライアントと Sun Java System Directory Server の設定 (手順)を参照してください。