例えば、OpenLDAPに付属する更新処理をリクエストするldapadd、ldapmodify、ldappasswdなどのコマンドは参照URLを追跡する機能を含まないため、この時点でLDAPクライアントとしての処理を終了します。しかし、例えばpasswdコマンドは、pam_ldapに実装された更新可能なURLを追跡する機能を利用して処理を継続することができます。
実際に、スレーブサーバでもLDAP認証を設定したうえで、passwdコマンドを実行してみましょう。LDAPクライアントの設定は、連載第3回で説明した「system-config-authentication」コマンドを利用します。今回も同じ要領で、GUIツールを起動します。
[root@slave]# system-config-authentication |
連載第3回と同様に「LDAP設定」画面まで進み、接続先となるLDAPサーバをローカルホストに設定します。
LDAPクライアント認証の準備が整い次第、passwdコマンドを実行します。
[root@slave]# su - test1000 |
passwdコマンドによる処理フローをスレーブサーバ側のログで確認すると、ローカルホストからの更新処理を、一度エラー番号10で拒否しておきながら、後にsyncprovモジュールによるマスタサーバの検索後にあらためて更新処理を実行する動作が確認できるはずです。
[root@slave]# tail -f /var/log/ldap |
ここまでで、レプリケーションを利用した基本動作が確認できました。ここからは、LDAPサーバの可用性を高め負荷分散を実現するため、LDAPクライアントにマスタサーバ、スレーブサーバの双方を参照可能とする設定を行います。
先ほどと同じ要領で、「system-config-authentication」コマンドからGUIツールを起動しましょう。ここでは先に、スレーブサーバ上のクライアントを設定します。
[root@slave]# system-config-authentication |
「LDAP設定」画面まで進み、接続先となるLDAPサーバを2つ設定します。2つのLDAPサーバを区切るセパレータはスペースです。2つ目のLDAPサーバはマスタサーバとなるように設定します。
次は、マスタサーバ上のクライアントを設定します。
[root@master]# system-config-authentication |
こちらも同様に、接続先となるLDAPサーバを2つ設定します。2つ目のLDAPサーバはスレーブサーバです。
簡単ではありますが、これでLDAPサーバの冗長化と負荷分散の設定が完了しました。それでは、片方のOpenLDAPサーバが停止している状態でもユーザーがログイン可能なことを確認しておきましょう。
[root@master]# service ldap stop |
[root@slave]# su - test1000 |
片方のLDAPサーバが停止している状態でも、マスタサーバ上、スレーブサーバ上のユーザともにLDAP認証を利用してログインできることが確認できたはずです。
LDAPクライアントは、/etc/ldap.confの「uri」ディレクティブに設定される最初のLDAPサーバを優先して参照します。最初に指定されたLDAPサーバにアクセスできない場合には、2つ目のLDAPサーバにアクセスします。
負荷分散装置などを利用すれば、仮想IPアドレスを利用したより円滑な実サービスへの振り分けや、片方のLDAPサーバが停止している場合のよりスマートな死活確認等が可能ですが、今回は、/etc/ldap.confの「uri」ディレクティブに記述する2つのIPアドレスの順序を変えるという簡単な方法でLDAPサーバの冗長化と負荷分散を実現しました。
以上、この連載では、OpenLDAPの基本的な設計、インストールからユーザーエントリ登録、そしてセキュリティ設定とレプリケーション構成までをコマンド例を多く取り入れながら説明してきました。
次回からは装いを改め、overlay機能で提供されるモジュールやOpenLDAPの運用面に焦点を当てた、応用的な内容を取り上げていく予定です。
Copyright © ITmedia, Inc. All Rights Reserved.