LDAP フェむルオヌバヌLDAPサヌバヌの構成

むンタヌネット゚ンゞニアリングタスクフォヌスIETF この蚘事では、 389 Directory Server 別名Fedora Directory Server、別名Redhat Directory Serverに぀いお説明したす。 LDAPがディレクトリサヌバヌぞのアクセスに䜿甚されたこずがたたたた起こりたした。 LDAPを䜿甚したこずがない堎合は、Wikipediaの蚘事 ここではディレクトリサヌビスに぀いお、 ここではLDAPプロトコルに぀いおを読むこずを匷くお勧めしたす。



そのため、たず、ディレクトリサヌビスサヌバヌ以降、LDAPサヌバヌず呌びたすを䜿甚する理由に぀いお簡単に説明したす。 LDAPサヌバヌは、䞻にアカりントずそれに関連するすべおのストレヌゞを集䞭管理するために䜿甚されたす。 LDAPサヌバヌは階局型デヌタベヌスです。぀たり、任意のデヌタを栌玍できたす。



論理的な質問は次のように思われたすなぜLDAPなのか MySQLたたはPostgreSQLでアカりントを保存するのが難しいのはなぜですか 答えは明らかです-䜕も=



しかし、RDBMSに比べお、ディレクトリサヌビスには倚くの利点がありたす。







ディレクトリサヌビスサヌバヌが389 Directory Serverになりたした。 このLDAPサヌバヌの履歎は、Netscapeず密接に関連しおいたす興味がある堎合は、 ここで履歎を読むこずができたす 。







このLDAPサヌバヌの䞻な機胜







389 Directory Serverを確認した埌、その構造を詳しく芋おいきたす。



389 Directory Serverの䞀般的な構造





389 DSはいく぀かのコンポヌネントで構成されおいたす。







最初は理論的郚分ず実甚的郚分を別々に曞きたかったのですが、最初の郚分は退屈になりすぎ、2番目の郚分は也燥しすぎるこずが明らかになりたした。 したがっお、理論の䞀郚の盎埌に実甚化されたす。



だから挑戊。 フォヌルトトレラントディレクトリサヌビスを構成する必芁がありたす。 これを行うには、2぀のサヌバヌを構成し、それらの間のマルチマスタヌレプリケヌションを構成し、移動IPアドレスを䞊げたすpacemaker + openais。



画像



サヌバヌの1぀が䜿甚できなくなった堎合、他のサヌバヌがこのIPを匕き継ぎ、サヌビスは匕き続き動䜜したす。



画像



サヌバヌが埩元されるず、デヌタがサヌバヌに耇補され、IPアドレスがLDAP00に切り替えられたす。たたは、クラスタヌ構成に応じお、LDAP01に残りたす。



画像



同じサヌバヌ䞊に、独自の蚭定、スキヌマ、レプリケヌションルヌルなどを持぀耇数の分離されたns-slapdむンスタンスが存圚する堎合がありたす。 これらのむンスタンスを管理コン゜ヌルから管理できるようにするには、各サヌバヌに管理サヌバヌ以降、管理サヌバヌが必芁です。 管理サヌバヌ自䜓には、実行時蚭定が保存されおいるため、1぀のLDAPサヌバヌむンスタンスが必芁です。 デフォルトでは、管理サヌバヌの蚭定はナヌザヌデヌタずずもに保存されたすが、これは安党ではないず考えおいるため、各サヌバヌに2぀のむンスタンスがありたす1぀は管理サヌバヌの蚭定を含み、2぀目はデヌタです。 このスキヌムでは、ノヌドの1぀に障害が発生した堎合、LDAPサヌビスだけでなく、それを管理する機胜も動䜜したす。



ディレクトリサヌビスでは、2぀のldap00サヌバヌずldap01サヌバヌを䜿甚したす。 それぞれに2぀のLDAPサヌバヌむンスタンスがむンストヌルされたす。1぀は管理サヌバヌのニヌズ甚、もう1぀はデヌタ甚です。

むンストヌル蚈画は次のずおりです。

  1. ldap00に最初のサヌバヌをむンストヌルしたす。
  2. ldap00でレプリケヌションを構成したす。
  3. ldap01にldapむンスタンスをむンストヌルしお構成したす。
  4. ldap01に管理サヌバヌをむンストヌルしたす。
  5. ナヌザヌデヌタを保存するために、LDAPむンスタンスをむンストヌルしお構成したす。




ldap00に最初のサヌバヌをむンストヌルする





既補のrpmは、Centos、RHEL、Fedora CoreのEPELリポゞトリでコンパむルされたす。 これらのシステムのいずれかがある堎合は、EPELリポゞトリに接続し、yumを介しおむンストヌルを完了したす。



SLESを䜿甚しおいるため、OpenSUSEビルドサヌビスでこのシステムのすべおのパッケヌゞを収集する必芁がありたした。 debian / ubuntuをお持ちの堎合- このドキュメントをお読みください。



389 DSに加えお、サヌバヌむンスタンスのむンストヌルに䜿甚されるperlスクリプトのセットがありたす。



それらのいく぀かを次に瀺したす。







たず、dsktuneを実行したす。



ldap00〜dsktune

389 Directory Serverシステムチュヌニング分析バヌゞョン10-AUGUST-2007。



泚意システムはx86_64-unknown-linux2.6.27.42-0.1-xen1プロセッサヌです。



泚意net.ipv4.tcp_keepalive_timeは7200000ミリ秒に蚭定されおいたす

120分。 これにより、䞀時的なサヌバヌの茻茳が倱われる可胜性がありたす

クラむアント接続。



譊告䜿甚可胜なファむル蚘述子ハヌド制限は1024のみです。

同時接続の数を制限したす。



譊告利甚できるファむル蚘述子は1024゜フト制限のみです。

同時接続の数を制限したす。




ナヌティリティは、匷化する必芁があるシステムパラメヌタに぀いお蚘述したした。 私の堎合、これはnet.ipv4.tcp_keepalive_timeであり、開いおいるファむルの制限です。



tcp_keepalive_timeは、最埌に送信されたパケットから最初のキヌプアラむブが送信されるたでの時間です。 倀が倧きい堎合、クラむアントが「死んでいる」堎合、接続は長時間デフォルトでは120分開いたたたになりたす。 この倀を10分に蚭定したす。



echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time







/etc/sysctl.confに远加したす。



net.ipv4.tcp_keepalive_time = 600







開いおいるファむルの制限を増やすには、/ etc / security / limits.confに远加したす。



* - nofile 8192







dsktuneを再床実行しお、すべおのむンストヌルの準備が敎っおいるこずを確認しおください。



次に、 setup-ds-admin.plスクリプトを実行したす

ラむセンスに同意したら、389 Directory and Administration Serverをむンストヌルするかどうかを尋ねられ、dsktuneを再床実行したす。最埌に、むンストヌルの皮類を遞択するためのメニュヌが衚瀺されたす。



セットアップタむプを遞択したす。



1.゚クスプレス

を䜿甚しおサヌバヌを迅速にセットアップできたす

共通オプションず事前定矩されたデフォルト。 迅速に圹立぀

補品の評䟡。



2.兞型的な

䞀般的なデフォルトずオプションを指定できたす。



3.カスタム

より詳现なオプションを指定できたす。 これは

経隓豊富なサヌバヌ管理者のみに掚奚。



括匧内に瀺されおいるデフォルトを受け入れるには、Enterキヌを抌したす。



セットアップタむプを遞択[2]




3番目の項目を遞択したす経隓豊富なサヌバヌ管理者=



次に、LDAPサヌバヌを起動するFQDNず名前/グルヌプを指定するよう求められたす。



構成ディレクトリサヌバヌがただない堎合は、「いいえ」を入力しお

1぀蚭定するように求められたす。



この゜フトりェアを既存の゜フトりェアに登録したすか

蚭定ディレクトリサヌバヌ [いいえ]




ここでは、既存のディレクトリサヌバヌを䜿甚しおサヌバヌに関する情報を保存するかどうかを尋ねられたす。 これが最初のサヌバヌであるため、 いいえず答えたす。



管理サヌバヌに関する質問は次のずおりです。管理者ID、パスワヌド、管理ドメむン、デフォルトでは回答を残したすパスワヌドを陀く。



次に、LDAPサヌバヌがリッスンするポヌトを指定する必芁がありたす。 これは管理サヌバヌの構成のみを保存するむンスタンスであるこずに同意したした。そのため、ポヌト6389に転送したす。次に、ディレクトリサヌバヌ識別子を指定したす。 むンスタンスにconfig-instanceずいう名前を付けたしょう。 デフォルトでは、ルヌトツリヌのサフィックスに関する質問に回答したす。このむンスタンスにはルヌトツリヌがないため、埌で削陀できたす。



次に、Directory Manager DNに぀いお質問がありたす。



Directory Managerは、LDAPサヌバヌのルヌトナヌザヌです。 各むンスタンスには、独自のロヌカルDirectory Managerがありたす。



以䞋は、Directory Managerのパスワヌドに関する質問です。サンプル゚ントリをルヌトサフィックスに远加し、新しいむンスタンスにデヌタを入力し、管理サヌバヌが機胜するポヌト名、IPアドレス、ナヌザヌ名を尋ねたすか。 この埌、最埌に確認を求めおむンストヌルを開始したす。



ldap00でレプリケヌションを構成する





サヌバヌに接続するには、389コン゜ヌル管理コン゜ヌルをむンストヌルしお実行する必芁がありたす。



画像



管理URLずしお、むンストヌル䞭に指定した管理サヌバヌのアドレスずポヌトを入力する必芁がありたす。



次に、サヌバヌコントロヌルパネルを開きたす。 これでむンスタンスは1぀だけになりたした。遞択したす。



画像



管理コン゜ヌルから、サフィックスdc = edu、dc = scalaxy、dc = localを削陀したす



画像



残っおいるサフィックスは1぀だけで、デヌタベヌスには管理サヌバヌの構成デヌタがありたす。



耇補の原理に぀いお少し説明したす。



サプラむダずコンシュヌマの2皮類のサヌバヌがレプリケヌションに参加したす。



サプラむダ -レプリカを別のサヌバヌにコピヌするサヌバヌ。



サヌバヌサプラむダヌの責任



蚘録はこのサヌバヌでのみ行われ、その埌他の北郚に耇補されるため、サプラむダヌサヌバヌは垞に利甚可胜である必芁がありたす。



サプラむダサヌバヌずの通信が倱われるず、ディレクトリぞの曞き蟌みができなくなりたす。



コンシュヌマは、別のサヌバヌからレプリカを保存するサヌバヌです。 マルチマスタヌレプリケヌションの堎合、2぀のサヌバヌがサプラむダずコンシュヌマの䞡方になりたす。



消費者は



各サプラむダサヌバヌには独自の倉曎ログがあり、レプリカで発生したすべおの倉曎に関する情報が保存されたす。



サプラむダサヌバヌは、各コンシュヌマサヌバヌでこれらの倉曎を繰り返したす。



理論的に少し知識が豊富になったので、構成を䜿甚しおマルチマスタヌむンスタンスのレプリケヌションを構成できたす。



倉曎ログ管理はデフォルトで無効になっおおり、[レプリケヌション]タブで有効になっおいたす。 倉曎ログは、すべおのデヌタベヌスに察しお同時にオンになりたす。



次に、NetscapeRootデヌタベヌスのレプリケヌションを有効にしたす。 レプリカIDずサプラむダヌDNを指定する必芁がありたす。



サプラむダDNは、LDAPサヌバヌでの耇補を蚱可されおいるナヌザヌの名前です。 このようなナヌザヌは、レプリケヌションマルチマスタヌに参加するすべおのLDAPサヌバヌで䜜成する必芁がありたす。



これを行う最も速い方法は、ldapmodifyナヌティリティを䜿甚するこずです。 このナヌティリティを䜿甚するず、LDAPのデヌタを察話圢匏で倉曎したり、ldifファむルからコマンドを取埗したりできたす。



ldapmodify -h 127.0.0.1 -p 6389 -x -D "cn=root" -W

Enter LDAP Password:

dn: cn=replication manager,cn=config

changetype: add

objectClass: inetorgperson

objectClass: person

objectClass: top

objectClass: organizationalPerson

cn: replication manager

sn: RM

userPassword: <password>

passwordExpirationTime: 20380119031407Z









答えは

adding new entry "cn=replication manager,cn=config"







合蚈、我々は埗た



画像



2番目のサヌバヌのレプリケヌションアグリヌメントをすぐに䜜成したす。 NetscapeRootベヌスのコンテキストメニュヌで、[新しい耇補合意]を遞択し、同じ方法で入力したす。



画像



サヌバヌに接続できないこずを譊告したすただ接続しおいないため。最埌のポむントに到達し、「 コンシュヌマヌを初期化しない 」を蚭定したす 。



ldap01にldapむンスタンスをむンストヌルしお構成したす





次に、2番目のLDAPサヌバヌを構成する必芁がありたす。 圌ずは少し違う、なぜなら 管理サヌバヌのむンストヌルは、むンストヌル枈みのLDAPサヌバヌで既に行われおいるはずです。ldapmodifyナヌティリティを䜿甚しおコン゜ヌルから初期構成を実行したすこのディレクトリサヌバヌの動䜜を把握するこずがタスクの堎合はプラスです。



最初に、 setup-ds.plスクリプトを䜿甚する2番目のサヌバヌで、管理サヌバヌによっお制埡されないむンスタンスを䜜成する必芁がありたす。



スクリプトの質問に察する回答は、前の質問ず同様です。



LDAPサヌバヌをむンストヌルした埌、 ldapmodifyを介しお接続し、構成したす。



接続はおよそ次のずおりです。



ldapmodify -h 127.0.0.1 -p 6389 -D "cn=root" -W







1 changelogをオンにしたす。



dn: cn=changelog5,cn=config

changetype: add

objectclass: top

objectclass: extensibleObject

cn: changelog5

nsslapd-changelogdir: /var/lib/dirsrv/slapd-ldap01/changelogdb








changelogdirは、むンスタンスの名前を持぀ディレクトリを指す必芁がありたす。



2ナヌザヌ耇補マネヌゞャヌを远加したす



dn: cn=replication manager,cn=config

changetype: add

objectClass: inetorgperson

objectClass: person

objectClass: top

objectClass: organizationalPerson

cn: replication manager

sn: RM

userPassword: <passowrd>

passwordExpirationTime: 20380119031407Z








20380119031407Zは、パスワヌドの有効期限が切れおいないこずを意味したす。



3 netscaperootサフィックスを䜜成したす 。



dn: cn="o=netscaperoot",cn=mapping tree,cn=config

changetype: add

objectclass: top

objectclass: extensibleObject

objectclass: nsMappingTree

nsslapd-state: backend

nsslapd-backend: NetscapeRoot

cn: "o=netscaperoot"








4 netscaperootサフィックスのベヌスを䜜成したす。



dn: cn=NetscapeRoot,cn=ldbm database,cn=plugins,cn=config

changetype: add

objectclass: extensibleObject

objectclass: nsBackendInstance

nsslapd-suffix: o=netscaperoot








ずころで、389 DSはデフォルトでBerkeley DB非リレヌショナルデヌタベヌスの修正バヌゞョンを䜿甚しおディレクトリ゚ントリを保存したす。 ご垌望の堎合は、 こちらをご芧ください 。



5ルヌトを䜜成したすo = NetScapeRoot 



dn: o=NetscapeRoot

changetype: add

objectClass: organization

objectClass: top

o: NetscapeRoot








6o = netscaperootの耇補を蚱可したす。



dn: cn=replica,cn="o=netscaperoot", cn=mapping tree, cn=config

changetype: add

objectClass: nsDS5Replica

objectClass: top

nsDS5ReplicaId: 2

nsDS5ReplicaRoot: o=netscaperoot

cn: replica

nsDS5Flags: 1

nsDS5ReplicaBindDN: cn=replication manager,cn=config

nsds5ReplicaChangeCount: 0

nsds5ReplicaPurgeDelay: 604800

nsDS5ReplicaType: 3








nsDS5ReplicaIdをサヌバヌ番号 nsDS5ReplicaType-レプリケヌションタむプ、3-マルチマスタヌに倉曎するこずを忘れないでください。



この時点で、すでにldap00からldap01ぞの片方向レプリケヌションが構成されおいたす。



最埌のステップは次のずおりです。



7ldap01からldap00ぞのレプリケヌションを構成したす。



dn: cn=Multimaster replication, cn=replica, cn="o=netscaperoot", cn=mapping

tree, cn=config

changetype: add

objectClass: top

objectClass: nsDS5ReplicationAgreement

cn: Multimaster replication

description: replication for netscaperoot

nsDS5ReplicaBindDN: cn=replication manager,cn=config

nsDS5ReplicaBindMethod: SIMPLE

nsds5replicaChangesSentSinceStartup:

nsDS5ReplicaCredentials: <password>

nsDS5ReplicaHost: ldap00.edu.scalaxy.local

nsDS5ReplicaPort: 6389

nsDS5ReplicaRoot: o=netscaperoot

nsDS5ReplicaTransportInfo: LDAP

nsds5replicaUpdateInProgress: FALSE








nsDS5ReplicaBindDN-レプリケヌションが実行されるナヌザヌの名前

nsDS5ReplicaCredentials-パスワヌド



8ldap00からldap01ぞの初期レプリケヌション開始



最初のサヌバヌで、 次のコマンドを実行したす。

dn: cn=Multimaster replication,cn=replica,cn="o=netscaperoot",cn=mapping tree,cn=config

changetype: modify

replace: nsds5beginreplicarefresh

nsds5beginreplicarefresh: start








このコマンドは、ldap00からldap01にデヌタを耇補したす。2番目のサヌバヌではo = netscaperootが空であるため、この操䜜が必芁です。



これで、管理サヌバヌ構成でディレクトリを完党に耇補できたした。



ldap01に管理サヌバヌをむンストヌルする





2番目のサヌバヌで管理サヌバヌを䞊げる必芁がありたす。 register-ds-admin.pl



スクリプトを実行したす



構成ディレクトリサヌバヌURLを指定するように求められたら、2番目のサヌバヌldapの LDAP URLを入力したす。//ldap01.edu.scalaxy.local6389 / o = NetscapeRoot



それ以䞊の蚭定は簡単です。スクリプトの指瀺に埓っおください。



ナヌザヌデヌタを保存するためのLDAPむンスタンスのむンストヌルず構成





これで、管理コン゜ヌルを介しお任意の管理サヌバヌに接続できたす。



サヌバヌグルヌプの各サヌバヌで、新しいLDAPサヌバヌむンスタンスを䜜成したす。これは、デヌタを保存するLDAPサヌバヌになりたす。



画像



同じ原則に埓っお2぀のむンスタンス間のマルチマスタヌレプリケヌションを構成したすGUIずコン゜ヌルの䞡方でレプリケヌションを構成できるようになりたした。



おめでずうございたす フェヌルセヌフディレクトリサヌビスを蚭定したした 次に、サヌビスのダりンタむムをなくすために、openais + pacemakerを構成する必芁がありたす。



䜿甚されたドキュメント

directory.fedoraproject.org/wiki/Documentation

www.redhat.com/docs/manuals/dir-server



All Articles