レプリケーションで冗長構成OpenLDAPで始めるディレクトリサーバ構築(5)(3/3 ページ)

» 2009年05月01日 00時00分 公開
[菊池研自伊藤忠テクノソリューションズ株式会社]
前のページへ 1|2|3       

 例えば、OpenLDAPに付属する更新処理をリクエストするldapadd、ldapmodify、ldappasswdなどのコマンドは参照URLを追跡する機能を含まないため、この時点でLDAPクライアントとしての処理を終了します。しかし、例えばpasswdコマンドは、pam_ldapに実装された更新可能なURLを追跡する機能を利用して処理を継続することができます。

図2 スレーブサーバ更新の流れ 図2 スレーブサーバ更新の流れ

 実際に、スレーブサーバでもLDAP認証を設定したうえで、passwdコマンドを実行してみましょう。LDAPクライアントの設定は、連載第3回で説明した「system-config-authentication」コマンドを利用します。今回も同じ要領で、GUIツールを起動します。

[root@slave]# system-config-authentication

 連載第3回と同様に「LDAP設定」画面まで進み、接続先となるLDAPサーバをローカルホストに設定します。

画面1 LDAP設定画面 画面1 LDAP設定画面

 LDAPクライアント認証の準備が整い次第、passwdコマンドを実行します。

[root@slave]# su - test1000
[test1000@slave]$ passwd
Changing password for user test1000.
Enter login(LDAP) password:1qazxsw2
New UNIX password:2wsxcde3
Retype new UNIX password:2wsxcde3
LDAP password information changed for test1000
passwd: all authentication tokens updated successfully.

 passwdコマンドによる処理フローをスレーブサーバ側のログで確認すると、ローカルホストからの更新処理を、一度エラー番号10で拒否しておきながら、後にsyncprovモジュールによるマスタサーバの検索後にあらためて更新処理を実行する動作が確認できるはずです。

[root@slave]# tail -f /var/log/ldap
……[略]……
conn=6 op=5 MOD dn="uid=test1000,ou=People,dc=my-domain,dc=com"
conn=6 op=5 MOD attr=userPassword
conn=6 op=5 RESULT tag=103 err=10 text=
syncrepl_entry: LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_MODIFY)
syncrepl_entry: be_search (0)
syncrepl_entry: uid=test1000,ou=People,dc=my-domain,dc=com
syncrepl_entry: be_modify (0)

conn=6 op=6 MOD dn="uid=test1000,ou=People,dc=my-domain,dc=com"
conn=6 op=6 MOD attr=shadowLastChange
conn=6 op=6 RESULT tag=103 err=10 text=
syncrepl_entry: LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_MODIFY)
syncrepl_entry: be_search (0)
syncrepl_entry: uid=test1000,ou=People,dc=my-domain,dc=com
syncrepl_entry: be_modify (0)

クライアントの設定

 ここまでで、レプリケーションを利用した基本動作が確認できました。ここからは、LDAPサーバの可用性を高め負荷分散を実現するため、LDAPクライアントにマスタサーバ、スレーブサーバの双方を参照可能とする設定を行います。

 先ほどと同じ要領で、「system-config-authentication」コマンドからGUIツールを起動しましょう。ここでは先に、スレーブサーバ上のクライアントを設定します。

[root@slave]# system-config-authentication

 「LDAP設定」画面まで進み、接続先となるLDAPサーバを2つ設定します。2つのLDAPサーバを区切るセパレータはスペースです。2つ目のLDAPサーバはマスタサーバとなるように設定します。

画面2 接続先となるLDAPサーバを2つ設定する 画面2 接続先となるLDAPサーバを2つ設定する

 次は、マスタサーバ上のクライアントを設定します。

[root@master]# system-config-authentication

 こちらも同様に、接続先となるLDAPサーバを2つ設定します。2つ目のLDAPサーバはスレーブサーバです。

画面3 同様に、接続先となるLDAPサーバを2つ設定する 画面3 同様に、接続先となるLDAPサーバを2つ設定する

 簡単ではありますが、これでLDAPサーバの冗長化と負荷分散の設定が完了しました。それでは、片方のOpenLDAPサーバが停止している状態でもユーザーがログイン可能なことを確認しておきましょう。

[root@master]# service ldap stop

[root@master]# su - test1000
[test1000@master]$

[root@slave]# su - test1000
[test1000@slave]$

 片方のLDAPサーバが停止している状態でも、マスタサーバ上、スレーブサーバ上のユーザともにLDAP認証を利用してログインできることが確認できたはずです。

 LDAPクライアントは、/etc/ldap.confの「uri」ディレクティブに設定される最初のLDAPサーバを優先して参照します。最初に指定されたLDAPサーバにアクセスできない場合には、2つ目のLDAPサーバにアクセスします。

 負荷分散装置などを利用すれば、仮想IPアドレスを利用したより円滑な実サービスへの振り分けや、片方のLDAPサーバが停止している場合のよりスマートな死活確認等が可能ですが、今回は、/etc/ldap.confの「uri」ディレクティブに記述する2つのIPアドレスの順序を変えるという簡単な方法でLDAPサーバの冗長化と負荷分散を実現しました。


 以上、この連載では、OpenLDAPの基本的な設計、インストールからユーザーエントリ登録、そしてセキュリティ設定とレプリケーション構成までをコマンド例を多く取り入れながら説明してきました。

 次回からは装いを改め、overlay機能で提供されるモジュールやOpenLDAPの運用面に焦点を当てた、応用的な内容を取り上げていく予定です。

 

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。