이 장에서는 Directory Proxy Server 인스턴스를 구성하는 방법에 대해 설명합니다. 이 장의 절차에서는 dpadm 및 dpconf 명령을 사용합니다. 이러한 명령에 대한 자세한 내용은 dpadm(1M) 및 dpconf(1M) 설명서 페이지를 참조하십시오.
이 장은 다음 내용으로 구성되어 있습니다.
이 절에서는 각각 로드 균형 조정과 데이터 배포에 해당하는 두 개의 Directory Proxy Server 구성 예에 대해 설명합니다. 가상 디렉토리에 대한 자세한 내용은 가상 구성 예를 참조하십시오.
단순한 로드 균형 조정 사례는 한 디렉토리 집합에 검색 및 비교 작업 전송과 다른 집합에 기타 작업 전송으로 구성됩니다. Directory Proxy Server는 모든 클라이언트 작업을 수신합니다. 서버에서는 읽기 작업과 다른 작업을 각각 수신할 집합을 결정해야 합니다.
이 로드 균형 조정 시나리오를 다루는 Directory Proxy Server 구성에서 중요한 단계는 다음과 같습니다.
디렉토리를 Directory Proxy Server의 데이터 소스로 추가합니다.
데이터 소스를 데이터 소스 풀에 추가합니다.
데이터 소스 중 일부는 검색 및 비교 작업을 허용하도록 구성하고, 다른 데이터 소스는 추가, 바인드, 삭제, 수정 및 DN 수정 작업을 허용하도록 구성합니다.
데이터 소스 풀을 데이터 보기에 추가합니다.
다음 예는 포트 9389를 수신하는 Directory Proxy Server와 관련되어 있습니다. 프록시는 검색 및 비교 작업을 처리하는 한 Directory Server 인스턴스 ds1:1389와 기타 작업을 처리하는 다른 Directory Server 인스턴스 ds2:2389에 설명된 대로 로드 균형을 조정하도록 구성되어 있습니다.
첫 번째 단계에서는 데이터 소스를 만들고, 만들어진 데이터 소스를 활성화합니다. 이 단계에서 프록시 서버를 다시 시작해야 합니다.
$ dpconf create-ldap-data-source -p 9389 ds1 localhost:1389 $ dpconf create-ldap-data-source -p 9389 ds2 localhost:2389 $ dpconf set-ldap-data-source-prop -p 9389 ds1 is-enabled:true $ dpconf set-ldap-data-source-prop -p 9389 ds2 is-enabled:true $ dpadm restart /local/dps |
두 번째 단계에서는 데이터 소스를 데이터 소스 풀에 추가합니다.
$ dpconf create-ldap-data-source-pool -p 9389 "Directory Pool" $ dpconf attach-ldap-data-source -p 9389 "Directory Pool" ds1 ds2 |
세 번째 단계에서는 검색 및 비교 작업을 허용하도록 ds1을 구성하고, 기타 작업을 허용하도록 ds2를 구성합니다.
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds1 \ add-weight:disabled bind-weight:disabled compare-weight:1 delete-weight:disabled \ modify-dn-weight:disabled modify-weight:disabled search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds2 \ add-weight:1 bind-weight:1 compare-weight:disabled delete-weight:1 \ modify-dn-weight:1 modify-weight:1 search-weight:disabled |
네 번째 단계에서는 클라이언트 응용 프로그램 요청이 풀로 라우팅되도록 데이터 소스 풀을 데이터 보기에 추가합니다.
$ dpconf create-ldap-data-view -p 9389 "Balanced View" "Directory Pool" \ dc=example,dc=com |
단순한 데이터 배포 사례는 UID가 A에서 M까지 시작하는 항목을 한 디렉토리 집합에 저장하고, UID가 N에서 Z까지 시작하는 항목을 다른 디렉토리 집합에 저장하는 과정으로 구성됩니다. Directory Proxy Server에서 모든 클라이언트 작업을 수신합니다. 서버에서 A부터 M까지 처리하는 디렉토리 집합과 N부터 Z까지 처리하는 디렉토리 집합을 결정해야 합니다.
이 데이터 배포 시나리오를 다루는 Directory Proxy Server 구성에서 중요한 단계는 다음과 같습니다.
디렉토리를 Directory Proxy Server의 데이터 소스로 추가합니다.
데이터 소스를 다른 데이터 배포를 처리하는 데이터 소스 풀에 추가합니다.
클라이언트 요청을 적절한 데이터 풀에 배포하도록 설계된 데이터 보기를 만듭니다.
LDIF를 분할하여 적절한 데이터 소스에 로드합니다.
분할 LDIF를 적절한 데이터 소스로 가져옵니다.
적절한 데이터 풀에 첨부된 데이터 소스에서 작업 기준의 가중치를 조정합니다.
다음 예는 포트 9389를 수신하는 Directory Proxy Server와 관련되어 있습니다. 예를 단순화하기 위해 프록시는 세 개의 Directory Server 인스턴스에서만 설명된 대로 배포하도록 구성되어 있습니다. 가용성과 읽기 확장성을 위해 복제된 디렉토리 토폴로지를 사용하여 LDAP 데이터를 저장합니다. 한 Directory Server 인스턴스 dsA-M:1389는 UID가 A에서 M까지 시작하는 사용자 항목을 처리합니다. 다른 Directory Server 인스턴스 dsN-Z:2389는 UID가 N에서 Z까지 시작하는 사용자 항목을 처리합니다. 마지막 디렉토리 인스턴스에서는 접미어가 dsBase:3389인 기본 항목을 처리합니다.
첫 번째 단계에서는 데이터 소스를 만들고 활성화합니다. 기본 데이터 소스는 UID가 없는 접미어 루트 주변의 항목을 보관합니다. 일반적인 배포에서 이러한 항목 수는 배포된 항목 수보다 훨씬 적습니다.
$ dpconf create-ldap-data-source -p 9389 dsA-M localhost:1389 $ dpconf set-ldap-data-source-prop -p 9389 dsA-M is-enabled:true $ dpconf create-ldap-data-source -p 9389 dsN-Z localhost:2389 $ dpconf set-ldap-data-source-prop -p 9389 dsN-Z is-enabled:true $ dpconf create-ldap-data-source -p 9389 dsBase localhost:3389 $ dpconf set-ldap-data-source-prop -p 9389 dsBase is-enabled:true |
두 번째 단계에서는 데이터 소스를 데이터 소스 풀에 추가합니다.
$ dpconf create-ldap-data-source-pool -p 9389 "Base Pool" $ dpconf attach-ldap-data-source -p 9389 "Base Pool" dsBase $ dpconf create-ldap-data-source-pool -p 9389 "A-M Pool" $ dpconf attach-ldap-data-source -p 9389 "A-M Pool" dsA-M $ dpconf create-ldap-data-source-pool -p 9389 "N-Z Pool" $ dpconf attach-ldap-data-source -p 9389 "N-Z Pool" dsN-Z |
세 번째 단계에서는 클라이언트 요청을 적절한 데이터 풀에 배포하도록 설계된 데이터 보기를 만듭니다. 기본 풀에서 dc=example,dc=com을 처리하고, 배포된 데이터를 보관하는 풀에서 UID 값에 따라 ou=people,dc=example,dc=com을 처리하는 방법을 확인합니다. 이 단계에서 서버를 다시 시작해야 합니다.
$ dpconf create-ldap-data-view -p 9389 "Base View" "Base Pool" \ dc=example,dc=com $ dpconf create-ldap-data-view -p 9389 "A-M View" "A-M Pool" \ ou=people,dc=example,dc=com $ dpconf set-ldap-data-view-prop -p 9389 "A-M View" \ distribution-algorithm:lexicographic lexicographic-attrs:uid \ lexicographic-lower-bound:a lexicographic-upper-bound:m The proxy server will need to be restarted in order for the changes to take effect $ dpconf create-ldap-data-view -p 9389 "N-Z View" "N-Z Pool" \ ou=people,dc=example,dc=com $ dpconf set-ldap-data-view-prop -p 9389 "N-Z View" \ distribution-algorithm:lexicographic lexicographic-attrs:uid \ lexicographic-lower-bound:n lexicographic-upper-bound:z The proxy server will need to be restarted in order for the changes to take effect $ dpadm restart /local/dps |
네 번째 단계에서는 LDIF를 분할하여 적절한 데이터 소스에 로드합니다. 이 예에서는 초기 분할을 수행하기 위한 dsadm split-ldif 명령과, 모든 데이터 소스의 최상위 항목을 유지하기 위한 일부 파일 편집을 모두 사용합니다. 그러면 액세스 제어 명령을 지정하는 최상위 항목을 유지하면서도 각 데이터 소스에 단일 가져오기 명령을 사용할 수 있습니다.
$ dpadm split-ldif /local/dps /local/ds6/ldif/Example.ldif /tmp/ [14/May/2007:21:14:13 +0200] - STARTUP - INFO - Java Version: 1.5.0_09 (Java Home: /local/jre) [14/May/2007:21:14:13 +0200] - STARTUP - INFO - Java Heap Space: Total Memory (-Xms) = 3MB, Max Memory (-Xmx) = 63MB [14/May/2007:21:14:13 +0200] - STARTUP - INFO - Operating System: SunOS/sparc 5.10 [14/May/2007:21:14:15 +0200] - INTERNAL - ERROR - Entry starting at line 0 does not start with a DN [14/May/2007:21:14:15 +0200] - INTERNAL - ERROR - Unable to parse line "# Kirsten is a Directory Administrator and therefore should not" of entry "uid=kvaughan, ou=People, dc=example,dc=com" starting at line 112 as an attribute/value pair -- no colon found. [14/May/2007:21:14:15 +0200] - INTERNAL - ERROR - Unable to parse line "# Robert is a Directory Administrator and therefore should not" of entry "uid=rdaugherty, ou=People, dc=example,dc=com" starting at line 298 as an attribute/value pair -- no colon found. [14/May/2007:21:14:16 +0200] - INTERNAL - ERROR - Unable to parse line "# Harry is a Directory Administrator and therefore should not" of entry "uid=hmiller, ou=People, dc=example,dc=com" starting at line 556 as an attribute/value pair -- no colon found. [14/May/2007:21:14:16 +0200] - INTERNAL - INFO - SplitLDIF processing complete. Processed 156 entries. $ ls /tmp/*ldif /tmp/a-m view.ldif /tmp/base view.ldif /tmp/n-z view.ldif |
이 단계에서도 가져오기를 수행하기 전에 LDIF에 추가된 최상위 항목이 필요합니다.
$ cp /local/ds6/ldif/Example.ldif /tmp/top.ldif $ vi /tmp/top.ldif $ cat /tmp/top.ldif dn: dc=example,dc=com objectclass: top objectclass: domain dc: example aci: (target ="ldap:///dc=example,dc=com")(targetattr != "userPassword")(version 3.0;acl "Anonymous read-search access"; allow (read, search, compare)(userdn = "ldap:///anyone");) aci: (target="ldap:///dc=example,dc=com") (targetattr = "*")(version 3.0; acl "allow all Admin group"; allow(all) groupdn = "ldap:///cn=Directory Administrators,ou=Groups,dc=example,dc=com";) $ cat /tmp/top.ldif /tmp/base\ view.ldif > /tmp/top\ and\ base\ view.ldif $ cat /tmp/top.ldif /tmp/a-m\ view.ldif > /tmp/top\ and\ a-m\ view.ldif $ cat /tmp/top.ldif /tmp/n-z\ view.ldif > /tmp/top\ and\ n-z\ view.ldif |
다섯 번째 단계에서는 분할 LDIF를 적절한 데이터 소스로 가져옵니다. 여기서 기본 항목을 처리하는 디렉토리는 포트 3389에 있습니다. A-M을 처리하는 디렉토리는 포트 1389에서 수신합니다. N-Z를 처리하는 디렉토리는 포트 2389에서 수신합니다.
$ dsconf import -p 1389 /tmp/top\ and\ a-m\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0). $ dsconf import -p 2389 /tmp/top\ and\ n-z\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0). $ dsconf import -p 3389 /tmp/top\ and\ base\ view.ldif dc=example,dc=com ... Task completed (slapd exit code: 0). |
여섯 번째 단계에서는 적절한 데이터 풀에 첨부된 데이터 소스에서 작업 기준의 가중치를 조정합니다. 클라이언트 응용 프로그램에서 검색 이외의 작업을 수행하는 경우에는 해당 작업에도 가중치를 설정해야 합니다.
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Base Pool" dsBase search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "A-M Pool" dsA-M search-weight:1 $ dpconf set-attached-ldap-data-source-prop -p 9389 "N-Z Pool" dsN-Z search-weight:1 |
작업 기준의 가중치를 설정한 후에는 데이터가 물리적으로 분산되지 않은 경우와 마찬가지로 클라이언트 응용 프로그램에서 Directory Proxy Server를 통해 검색을 수행할 수 있습니다.
다음 검색에서는 UID가 R로 시작하는 사용자를 찾습니다.
$ ldapsearch -p 9389 -b dc=example,dc=com uid=rfisher version: 1 dn: uid=rfisher, ou=People, dc=example,dc=com cn: Randy Fisher sn: Fisher givenName: Randy objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson ou: Human Resources ou: People l: Cupertino uid: rfisher mail: rfisher@example.com telephoneNumber: +1 408 555 1506 facsimileTelephoneNumber: +1 408 555 1992 roomNumber: 1579 |
다음 검색에서는 기본 항목 중 하나를 찾습니다.
$ ldapsearch -p 9389 -b ou=groups,dc=example,dc=com cn=hr\ managers version: 1 dn: cn=HR Managers,ou=groups,dc=example,dc=com objectClass: top objectClass: groupOfUniqueNames cn: HR Managers ou: groups uniqueMember: uid=kvaughan, ou=People, dc=example,dc=com uniqueMember: uid=cschmith, ou=People, dc=example,dc=com description: People who can manage HR entries |
이 절에서는 Directory Proxy Server의 구성을 수정하는 방법에 대해 설명합니다.
DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.
Directory Proxy Server의 현재 구성을 찾습니다.
$ dpconf get-server-prop -h host -p port |
또는 하나 이상의 구성 등록 정보에 대해 현재 설정을 봅니다.
$ dpconf get-server-prop -h host -p port property-name ... |
예를 들어 다음 명령을 실행하여 인증되지 않은 작업이 허용되는지 확인합니다.
$ dpconf get-server-prop -h host -p port allow-unauthenticated-operations allow-unauthenticated-operations : true |
$ dpconf set-server-prop -h host -p port property:value ... |
예를 들어 다음 명령을 실행하여 인증되지 않은 작업을 허용하지 않습니다.
$ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:false |
잘못된 변경을 수행할 경우 해당 변경 사항은 적용되지 않습니다. 예를 들어 allow-unauthenticated-operations 매개 변수를 false 대신에 f로 설정할 경우 다음 오류가 발생합니다.
$ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:f The value "f" is not a valid value for the property "allow-unauthenticated-operations". Allowed property values: BOOLEAN The "set-server-prop" operation failed. |
필요한 경우 Directory Proxy Server 인스턴스를 다시 시작하여 변경 사항을 적용합니다.
Directory Proxy Server를 다시 시작하는 방법에 대한 자세한 내용은 Directory Proxy Server를 다시 시작하려면을 참조하십시오.
Directory Proxy Server 인스턴스 구성을 표시하려면 dpconf info를 입력합니다.
$ dpconf info Instance Path : instance path Host Name : host Secure listen address : IP address Port : port Secure port : secure port SSL server certificate : defaultServerCert Directory Proxy Server needs to be restarted. |
dpconf info는 Secure listen address 및 Non-secure listen address 등록 정보가 기본값 이외의 값으로 설정된 경우에만 해당 값을 표시합니다. 위의 출력에서는 이 등록 정보가 기본값 이외의 값으로 설정되지 않았기 때문에 Non-secure listen address를 표시하지 않습니다.
dpconf info는 인스턴스를 다시 시작해야 할 경우 이 사실을 사용자에게 상기시키는 역할도 합니다.
dpadm info를 사용하여 Directory Proxy Server 인스턴스 구성 정보를 표시할 수도 있지만, 이 명령은 중지된 인스턴스에서만 사용할 수 있습니다.
dpadm을 사용하여 Directory Proxy Server를 백업할 경우 구성 파일과 서버 인증서가 백업됩니다. Directory Proxy Server 가상 ACI를 구현한 경우 ACI도 백업됩니다.
Directory Proxy Server는 서버가 성공적으로 시작될 때마다 conf.ldif 파일을 자동으로 백업합니다.
DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.
Directory Proxy Server 인스턴스를 중지합니다.
$ dpadm stop instance-path |
Directory Proxy Server 인스턴스를 백업합니다.
$ dpadm backup instance-path archive-dir |
archive-dir 디렉토리는 backup 명령으로 만들어지며 이 명령을 실행하기 전에 존재하지 않아야 합니다. 이 디렉토리에는 각 구성 파일과 인증서의 백업이 포함됩니다.
DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.
복원 작업을 시작하기 전에 Directory Proxy Server 인스턴스를 만들어야 합니다.
Directory Proxy Server 인스턴스를 중지합니다.
$ dpadm stop instance-path |
Directory Proxy Server 인스턴스를 복원합니다.
$ dpadm restore instance-path archive-dir |
인스턴스 경로가 있을 경우 복원 작업이 자동으로 수행됩니다. archive-dir 디렉토리의 구성 파일과 인증서는 instance-path 디렉토리의 구성 파일과 인증서를 대체합니다.
인스턴스 경로가 없을 경우 복원 작업이 실패합니다.
프록시 관리자는 UNIX® 시스템의 루트 사용자에 해당하는 권한을 가진 관리자입니다. 프록시 관리자 항목은 Directory Proxy Server 인스턴스가 만들어질 때 정의됩니다. 프록시 관리자의 기본 DN은 cn=Proxy Manager입니다.
다음 절차에 표시된 것처럼 프록시 관리자 DN 및 비밀번호를 보고 변경할 수 있습니다.
DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.
프록시 관리자의 구성을 찾습니다.
$ dpconf get-server-prop -h host -p port configuration-manager-bind-dn configuration-manager-bind-pwd configuration-manager-bind-dn : cn=proxy manager configuration-manager-bind-pwd : {3DES}U77v39WX8MDpcWVrueetB0lfJlBc6/5n |
프록시 관리자의 기본값은 cn=proxy manager입니다. 구성 관리자 비밀번호에 해시된 값이 반환됩니다.
프록시 관리자의 DN을 변경합니다.
$ dpconf set-server-prop -h host -p port configuration-manager-bind-dn:bindDN |
프록시 관리자의 비밀번호를 포함하는 파일을 만들고 해당 파일을 가리키는 등록 정보를 설정합니다.
$ dpconf set-server-prop -h host -p port configuration-manager-bind-pwd-file:filename |
Directory Proxy Server 및 해당 엔티티에 대한 구성 변경 사항은 대부분 온라인으로 수행할 수 있습니다. 특정 변경 사항의 경우 변경 사항을 적용하려면 서버를 다시 시작해야 합니다. 다음 목록의 등록 정보에 대한 구성 변경 사항을 수행한 경우 서버를 다시 시작해야 합니다.
aci-data-view bind-dn client-cred-mode custom-distribution-algorithm db-name db-pwd db-url db-user distribution-algorithm ldap-address ldap-port ldaps-port listen-address listen-port load-balancing-algorithm num-bind-init num-read-init num-write-init number-of-search-threads number-of-threads number-of-worker-threads ssl-policy use-external-schema
등록 정보의 rws 및 rwd 키워드는 등록 정보를 변경한 경우 서버를 다시 시작해야 하는지 여부를 나타냅니다.
등록 정보에 rws(read, write, static) 키워드가 있는 경우 등록 정보를 변경할 때 서버를 다시 시작해야 합니다.
등록 정보에 rwd(read, write, dynamic) 키워드가 있는 경우 서버를 다시 시작하지 않아도 등록 정보의 수정 사항이 동적으로 구현됩니다.
등록 정보를 변경한 경우 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.
$ dpconf help-properties | grep property-name
예를 들어 LDAP 데이터 소스의 바인드 DN을 변경한 경우 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.
$ dpconf help-properties | grep bind-dn connection-handler bind-dn-filters rwd STRING | any This property specifies a set of regular expressions. The bind DN of a client must match at least one regular expression in order for the connection to be accepted by the connection handler. (Default: any) ldap-data-source bind-dn rws DN | "" This property specifies the DN to use when binding to the LDAP data source. (Default: undefined)
구성을 변경한 후에 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.
$ dpconf get-server-prop -h host -p port is-restart-required
Directory Proxy Server에 대한 구성 항목은 cn=config에 있습니다. Directory Proxy Server를 사용하여 구성 항목에 액세스하는 경우 기본적으로 Directory Proxy Server의 구성 항목에 액세스합니다.
디렉토리 서버의 구성 항목에 액세스하려면 Directory Proxy Server가 아닌 Directory Server에 직접 연결하는 것이 더 좋습니다. Directory Server를 구성하는 방법에 대한 자세한 내용은 3 장, Directory Server 구성을 참조하십시오.
Directory Proxy Server를 다시 구성하여 디렉토리 서버의 구성 항목에 액세스할 경우 Directory Proxy Server의 관리 프레임워크가 손상될 수 있습니다.
Directory Proxy Server를 통해 디렉토리 서버의 구성 항목에 액세스하려면 Directory Proxy Server의 관리 프레임워크가 손상되지 않도록 특별 단계를 수행합니다. 이 절에서는 Directory Proxy Server를 사용하여 디렉토리 서버의 구성 항목에 액세스하는 방법에 대해 설명합니다.
LDAP 데이터 소스 만들기 및 구성에 설명된 대로 하나 이상의 데이터 소스를 만듭니다.
LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 LDAP 데이터 소스 풀을 만듭니다.
데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 하나 이상의 데이터 소스를 데이터 소스 풀에 첨부합니다.
특정 데이터 소스의 구성 항목을 표시하려면 하나의 LDAP 데이터 소스만 LDAP 데이터 소스 풀에 첨부합니다.
$ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name |
이 단계를 수행하고 나면 클라이언트는 Directory Proxy Server에 연결된 데이터 소스의 구성 항목에 액세스할 수 있습니다.
모든 데이터 소스의 구성 항목을 표시하려면 둘 이상의 LDAP 데이터 소스를 LDAP 데이터 소스 풀에 첨부합니다.
$ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name \ data-source-name ... |
이 단계를 수행하고 나면 클라이언트는 Directory Proxy Server에 연결된 데이터 소스 중 하나의 구성 항목에 액세스할 수 있습니다. 그러나 클라이언트는 구성 항목이 속하는 데이터 소스를 알 수 없습니다.
cn=config를 표시하려면 LDAP 데이터 보기를 만듭니다.
$ dpconf create-ldap-data-view -h host -p port view-name pool-name cn=config |