5.3. 고유 숫자 특성 할당 및 관리


일부 항목 특성 값에는 uidNumbergidNumber 와 같은 고유 번호가 필요합니다. DCNA(Distributed Numeric Assignment) 플러그인을 사용하여 구성된 숫자 범위에서 지정된 특성에 자동으로 고유한 번호를 생성하고 할당하도록 디렉터리 서버를 구성할 수 있습니다.

참고

DNA 플러그인은 특성의 고유성을 보장하지 않습니다. 플러그인이 관리하는 범위에서 값을 수동으로 할당한 경우 플러그인은 값이 고유한지 확인하지 않습니다.

DNA 플러그인을 사용하면 공급업체의 다양한 로컬 DNA 플러그인 인스턴스에 대해 다양한 범위를 설정하여 복제 충돌을 효과적으로 방지할 수 있습니다. 예를 들어, 공급자 A는 1에서 1000까지의 번호를 할당할 수 있으며 공급자 B는 1001에서 2000 사이의 번호를 할당할 수 있습니다. 이렇게 하면 각 공급자가 실제로 고유한 숫자 집합을 사용하고 있습니다.

5.3.1. 동적 번호 할당 정보

DNA 플러그인은 인스턴스에서 발행할 수 있는 사용 가능한 수 범위를 할당합니다. 두 속성은 범위 정의를 정의합니다. 서버 다음 사용 가능한 번호(범위의 봇톤 값)와 최대값(범위의 상한 값)을 정의합니다. 플러그인을 구성할 때 초기 하단 값을 설정합니다. 나중에 플러그인 udates 이 하위 값입니다.

사용 가능한 번호를 각 복제본에서 별도의 범위로 분리하여 서버는 서로 겹치지 않고 계속 숫자를 할당할 수 있습니다.

5.3.1.1. 필터, 검색 및 대상 항목

서버는 정렬된 검색을 수행하여 다른 서버가 이미 지정된 다음 범위를 취했는지 확인합니다. 관리 속성에 적절한 순서 일치 규칙이 있는 같음 인덱스가 있어야 합니다.

DNA 플러그인은 항상 디렉터리 트리의 특정 영역( 범위) 및 해당 하위 트리 내의 특정 항목 유형에 적용됩니다( 필터).

중요

DNA 플러그인은 단일 데이터베이스에서만 작동하며 여러 데이터베이스에 대한 숫자 할당을 관리할 수 없습니다. DNA 플러그인은 정렬 제어를 사용하여 값이 DNA 플러그인 외부에서 수동으로 할당되었는지 확인합니다. 그러나 정렬 컨트롤을 사용하는 이 유효성 검사는 단일 데이터베이스에서만 작동합니다.

5.3.1.2. dnaMagicRegen을 사용하여 고유 번호 할당

매직 값(dnaMagicRegen)을 DNA 플러그인이 관리하는 속성의 템플릿 값으로 사용합니다. 이 매직 값은 서버 범위 외부, 숫자 또는 단어입니다. 매직 값으로 항목이 추가되고 항목이 DNA 플러그인의 구성 범위 및 필터 내에 있으면 매직 값이 자동으로 플러그인을 트리거하여 새로운 고유 값을 생성합니다.

예를 들어 ldapmodify 유틸리티를 사용하여 매끄러운 값으로0(0)을 추가할 수 있습니다.

#  ldapmodify -D "cn=Directory Manager" -W -x

dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: posixAccount
uid: jsmith
cn: John Smith
uidNumber: 0
gidNumber: 0
Copy to Clipboard Toggle word wrap

구성된 dnaMagicRegen 을 사용하면 DNA 플러그인은 항목이 추가될 때 해당 값이 매직 값과 동일한 속성에 대해서만 고유한 값을 생성합니다. DNA 플러그인에 대한 매끄러운 값을 설정하지 않으면 플러그인은 관리 속성의 값을 덮어씁니다.

참고
DNA 플러그인에서 하나의 특성만 관리하고 추가된 항목에는 관리 특성이 포함되지 않은 경우, 추가 작업은 DNA 플러그인을 트리거하여 이 속성을 추가하고 고유 값을 생성합니다.

5.3.1.3. 동일한 범위의 여러 속성

DNA 플러그인은 단일 범위의 고유 번호에서 단일 또는 여러 특성 유형에 고유 번호를 할당할 수 있습니다.

이렇게 하면 속성에 고유 번호를 할당하기 위한 여러 옵션이 제공됩니다.

  • 고유한 범위의 단일 특성 유형의 단일 번호입니다.
  • 한 항목에 있는 두 속성에 대해 동일한 고유 번호입니다.
  • 동일한 고유 숫자 범위에서 두 개의 서로 다른 숫자가 할당되었습니다.

대부분의 경우 특성 유형별로 할당된 고유 번호를 사용하는 것으로 충분합니다. 예를 들어, employeeID 를 새 직원 항목에 할당할 때 각 직원 항목이 고유한 employeeID 를 수신하는지 확인하는 것이 중요합니다.

그러나 동일한 숫자 범위의 고유 번호를 여러 특성에 할당할 수 있습니다. 예를 들어, posixAccount 항목에 uidNumbergidNumber 를 할당할 때, DNA 플러그인은 두 특성에 동일한 번호를 할당할 수 있습니다. 이를 위해 두 관리 속성을 모두 수정 작업에 전달하고 ldapmodify 유틸리티를 사용하여 매직 값(0)을 지정합니다.

#  ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x

dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: uidNumber
uidNumber: 0
-
add:gidNumber
gidNumber: 0
Copy to Clipboard Toggle word wrap

DNA 플러그인은 여러 특성을 처리할 때 오브젝트 클래스가 하나의 속성만 허용하는 경우에만 하나의 속성에 고유한 값을 할당할 수 있습니다. 예를 들어 posixGroup 개체 클래스는 gidNumber 를 허용하지만 uidNumber 는 허용하지 않습니다. DNA 플러그인이 uidNumber gidNumber 를 모두 관리하는 경우 posixGroup 항목을 생성할 때 uidNumbergidNumber 속성 범위에서 gidNumber에 대한 고유 번호를 할당합니다. 모든 관리 속성에 대한 풀을 공유하면 고유 번호를 일관되게 할당하여 서로 다른 항목의 uidNumbergidNumber 가 별도의 범위의 동일한 숫자로 끝나는 충돌을 방지할 수 있습니다.

DNA 플러그인에서 여러 속성을 관리하는 경우 단일 수정 작업에서 모든 속성에 동일한 값을 할당합니다. 그러나 항목에 대해 정의된 각 유형의 특성을 허용하지 않거나 항목이 모든 특성 유형을 정의할 수 있지만 특성의 하위 집합만 고유 값이 필요한 경우 별도의 수정 작업을 수행하여 동일한 범위에서 다른 번호를 할당해야 합니다. 예를 들면 다음과 같습니다.

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: uidNumber
idNumber: 0

^D

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
add: employeeId
employeeId: magic
Copy to Clipboard Toggle word wrap

예 5.4. 예. DNA 및 Unique bank Account Numbers

예제 bank에서는 고객의 primaryAccountcustomerID 속성에 동일한 고유 번호를 사용하려고 합니다. Example bank 관리자는 동일한 범위의 두 속성에 대한 고유 값을 할당하도록 DNA 플러그인을 구성했습니다.

또한 은행에서는 고객 ID 및 기본 계정 번호와 동일한 범위의 보조 계정에 번호를 할당하려고 하지만 이러한 번호는 기본 계정 번호와 같을 수 없습니다. Example bank 관리자는 secondaryAccount 속성도 관리하도록 DNA 플러그인을 구성하지만, 항목이 생성된 후 secondaryAccount 속성만 추가하고 primaryAccountcustomerID 속성이 할당됩니다. 이렇게 하면 primaryAccountcustomerID 가 동일한 고유 번호를 공유하고 모든 secondaryAccount 번호가 완전히 고유하지만 동일한 숫자 범위의 수는 없습니다.

5.3.2. DNA 플러그인의 구문

DCNA(Distributed Numeric Assignment) 플러그인은 고유 이름(DN) cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config 인 컨테이너 항목입니다. DNA 플러그인 항목 아래의 각 DNA 항목은 DNA 플러그인의 새로운 관리 범위를 정의합니다. 따라서 DNA 플러그인에 대한 새 관리 범위를 구성하려면 컨테이너 항목 아래에 항목을 생성합니다. 예를 들어 플러그인에서 항목의 uidNumber 속성을 관리하려면 범위 및 기타 플러그인 설정을 정의하는 cn=계정 UID,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config 구성 항목을 만듭니다.

플러그인 구문은 단일 서버에서 또는 복제 토폴로지의 여러 서버에서 사용할 플러그인을 구성할지 여부에 따라 다릅니다.

단일 서버의 DNA 플러그인 구문

단일 서버에서 플러그인을 사용하는 경우 기본 DNA 구성 항목은 다음 속성을 정의합니다.

dnaType
플러그인에서 관리하는 값을 정의합니다.
dnaScope
플러그인이 기반으로 사용하는 항목(DN)을 정의하여 항목을 검색합니다.
dnaFilter
플러그인에서 관리하는 항목을 식별하는 데 사용하는 검색 필터를 정의합니다.
dnaNextValue
항목을 만든 후 플러그인이 할당하는 다음 사용 가능한 값을 정의합니다.

다음은 단일 특성 유형에 대한 단일 서버의 DNA 구성 항목의 예입니다.

dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
objectClass: top
objectClass: dnaPluginConfig
cn: Account UIDs
dnatype: uidNumber
dnafilter: (objectclass=posixAccount)
dnascope: ou=people,dc=example,dc=com
dnaNextValue: 1
Copy to Clipboard Toggle word wrap

복제 토폴로지의 서버의 DNA 플러그인 구문

여러 공급업체에 분산 숫자 할당을 구성하려면 구성 항목에 공유 및 전송 범위를 공유하는 다음 정보도 포함되어야 합니다.

dnaMaxValue
서버에서 할당할 수 있는 최대 수를 정의합니다.
dnaThreshold
범위 전송을 트리거하기에 충분한 범위가 낮은 임계값을 정의합니다. dnaThreshold 가 설정되지 않은 경우 기본값은 1 입니다.
dnaRangeRequestTimeout
범위 전송을 요청할 때 서버가 다른 서버의 응답을 기다리는 시간 초과 기간을 정의합니다. 서버가 이 기간 내에 범위를 수신하지 않으면 범위 전송 요청이 다른 서버로 이동합니다. 기본적으로 이 값은 10 초로 설정됩니다.
dnaSharedCfgDN
모든 공급업체 서버 간에 공유되는 구성 입력 DN을 정의합니다. 이 DN은 각 공급 업체의 범위 정보를 저장합니다.
dnaNextRange
서버가 manage 속성에 할당하는 특정 수 범위를 정의합니다. dnaNextRange 값은 전송에 사용 가능한 다음 범위를 나타내며 서버에서 범위를 할당하거나 사용할 때 플러그인에 의해 자동으로 관리됩니다. 이 범위는 다른 서버에 아직 할당되지 않았으며 로컬 Directory Server에서 사용할 수 있습니다.

다음은 복제 토폴로지의 공급 업체의 DNA 구성 항목의 예입니다.

dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
objectClass: top
objectClass: dnaPluginConfig
cn: Account UIDs
dnatype: uidNumber
dnafilter: (objectclass=posixAccount)
dnascope: ou=people,dc=example,dc=com
dnanextvalue: 1
dnaMaxValue: 1300
dnasharedcfgdn: cn=Account UIDs,ou=ranges,dc=example,dc=com
dnathreshold: 100
dnaRangeRequestTimeout: 60
dnaNextRange: 1301-2301
Copy to Clipboard Toggle word wrap

DNA 구성 항목에서 사용할 수 있는 전체 속성 목록은 Distributed Numeric Assignment 플러그인 특성을 참조하십시오.

dnaNextRange 특성 값이 구성되지 않은 상태에서 Directory Server는 dnaMaxValue 값을 다음 범위의 상한으로 사용하여 범위를 자동으로 할당합니다. Directory Server에서 별도의 특정 범위를 다른 서버에 할당하도록 하려면 dnaNextRange 특성을 명시적으로 설정해야 합니다.

각 공급자는 범위 및 연결 설정에 대한 정보를 포함하는 별도의 구성 항목에 현재 범위를 추적합니다. 이 항목은 dnaSharedCfgDN 에 있는 위치의 자식입니다. Directory Server는 다른 모든 공급업체에 구성 항목을 복제하므로 각 공급자는 해당 구성을 확인하여 새 범위에 연결할 서버를 찾을 수 있습니다. 예를 들면 다음과 같습니다.

dn: dnaHostname=ldap1.example.com+dnaPortNum=389,cn=Account UIDs,ou=Ranges,dc=example,dc=com
objectClass: dnaSharedConfig
objectClass: top
dnahostname: ldap1.example.com
dnaPortNum: 389
dnaSecurePortNum: 636
dnaRemainingValues: 1000
Copy to Clipboard Toggle word wrap

5.3.3. 명령줄을 사용하여 공급업체에 DNA 플러그인 구성 항목 생성

공급자가 관리 속성에 고유 번호를 할당하려면 적용하려는 각 구성에 대한 DNA 플러그인 구성 항목을 만듭니다. DNA 플러그인 구성 항목은 cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config 플러그인 컨테이너 항목 아래에 있는 하위 항목입니다.

멀티 공급 업체 환경에서 각 공급자는 고유한 값 범위를 관리합니다. 범위는 공급자와 각 공급 업체 간에 복제되며 각 공급자는 어떤 공급업체가 어떤 범위를 관리하는지 알고 있습니다. 나중에 공급자는 이 정보를 사용하여 첫 번째 공급자가 범위 값이 부족하면 다른 공급자로부터 범위 전송을 요청합니다.

다음 예제에서는 dsconf 유틸리티를 사용하여 공급업체에 새 DNA 플러그인 구성 항목을 생성합니다.

사전 요구 사항

  • root 권한이 있습니다.

프로세스

  1. 공급업체에 DNA 구성 항목을 생성합니다.

    #  dsconf <instance_name> plugin dna config "Account UIDs" add --type uidNumber --filter "(objectclass=posixAccount)" --scope ou=People,dc=example,dc=com --next-value 1 --max-value 1300 --shared-config-entry "cn=Account UIDs,ou=Ranges,dc=example,dc=com" --threshold 100 --range-request-timeout 60 --magic-regen 99999
    
    Successfully created the cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
    Copy to Clipboard Toggle word wrap

    명령은 ou=People,dc=example,dc=com 아래의 새로 생성된 posixAccount 항목에서 99999 매직 값 대신 고유한 값을 uidNumber 속성으로 설정하는 DNA 플러그인 구성을 생성합니다. 공급자는 1300 까지 값을 설정하고 값 1200 에 도달하면 두 번째 공급자로부터 범위 전송을 요청합니다. 두 번째 공급자가 60 초 동안 응답하지 않는 경우 첫 번째 공급 업체는 세 번째 공급 업체로부터 범위 전송을 요청합니다.

    참고

    복제 없이 서버에 대한 구성 항목을 생성하는 경우 단일 제공 환경에서 공급업체에 대해 --type,--filter,--scope,--next-value 옵션만 설정합니다.

    DNA 플러그인 구성 속성에 대한 자세한 내용은 DNA 플러그인 섹션의 분산 숫자 할당 플러그인 속성 및 구문 을 참조하십시오.

  2. 선택 사항: 모든 공급자 서버에서 공유하는 구성 항목을 생성합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: ou=Ranges,dc=example,dc=com
    changetype: add
    objectclass: top
    objectclass: extensibleObject
    objectclass: organizationalUnit
    ou: Ranges
    -
    dn: cn=Account UIDs,ou=Ranges,dc=example,dc=com
    changetype: add
    objectclass: top
    objectclass: extensibleObject
    cn: Account UIDs
    Copy to Clipboard Toggle word wrap
  3. DNA 플러그인을 활성화합니다.

    #  dsconf <instance_name> plugin dna enable
    
    Enabled plugin 'Distributed Numeric Assignment Plugin'
    Copy to Clipboard Toggle word wrap

검증

  • 구성 항목 세부 정보를 표시합니다.

    # dsconf <instance_name> plugin dna config "Account UIDs" show
    
    dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
    cn: Account UIDs
    dnaFilter: "(objectclass=posixAccount)"
    dnaInterval: 1
    dnaMagicRegen: 99999
    dnaMaxValue: 1300
    dnaNextValue: 1
    dnaRangeRequestTimeout: 60
    dnaScope: ou=People,dc=example,dc=com
    dnaSharedCfgDN: cn=Account UIDs,ou=Ranges,dc=example,dc=com
    dnaThreshold: 100
    dnaType: uidNumber
    objectClass: top
    objectClass: dnaPluginConfig
    Copy to Clipboard Toggle word wrap

5.3.4. 웹 콘솔을 사용하여 공급업체에 DNA 플러그인 구성 항목 생성

Directory Server에서 관리 속성에 고유 번호를 할당하도록 하려면 적용할 각 구성에 대한 DNA 플러그인 구성 항목을 만듭니다. Directory Server는 이러한 플러그인 구성 항목을 cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config 플러그인 컨테이너 항목 아래에 저장합니다.

멀티 공급 업체 환경에서 각 공급자는 고유한 값 범위를 관리합니다. 범위는 공급자와 각 공급 업체 간에 복제되며 각 공급자는 어떤 공급업체가 어떤 범위를 관리하는지 알고 있습니다. 나중에 공급자는 이 정보를 사용하여 첫 번째 공급자가 범위 값이 부족하면 다른 공급자로부터 범위 전송을 요청합니다.

사전 요구 사항

프로세스

  1. Directory Server 인스턴스를 선택합니다.
  2. Plugins 메뉴를 열고 목록에서 DNA 플러그인을 선택합니다.
  3. 구성 추가 버튼을 클릭하여 새 플러그인 구성 항목의 구성을 시작합니다.
  4. DNA 구성 탭에서 필드를 설정합니다.

    예를 들어, 플러그인에서 ou=People,dc=example,dc=com 아래의 새로 생성된 모든 posixAccount 항목에서 99999 매직 값 대신 uidNumber 속성으로 고유 값을 설정하도록 합니다. 또한, 공급자가 1300 까지 값을 설정하고 고유 값이 값 1200 에 도달하면 두 번째 공급자로부터 범위 전송을 요청하려고 합니다. 이 경우 다음 필드를 설정합니다.

    • 계정 UID에 대한 구성 이름
    • uidNumber에 대한 DNA Managed 특성
    • "(objectclass=posixAccount)"필터링
    • ou=People,dc=example,dc=com으로 하위 트리 범위
    • 1다음 값
    • 최대 값 1300
    • 2013년 10월 30일 오후 3시 30분 Wantant Regeneration Value to 99999
    • 임계값100으로 설정합니다.
    • 범위 요청 시간 초과 - 60

      참고
      복제 없이 서버에 대한 구성 항목을 생성하는 경우 단일 제공 환경에서 공급업체에 대한 구성 항목을 생성하는 경우 DNA Managed Attributes,Filter,Subtree ScopeNext Value 필드만 설정합니다.
  5. Shared Config Settings 탭으로 이동하여 Shared Config Entry DN 필드를 (예: cn=Account UIDs,ou=Ranges,dc=example,dc=com )로 설정합니다. 이 공유 구성 항목에는 현재 서버가 고유 값이 없는 경우 범위 전송에 연결할 서버가 포함되어 있습니다.
  6. Save Config 버튼을 클릭하여 플러그인 설정을 저장합니다.
  7. 플러그인을 활성화하기 위해 플러그인 으로 스위치를 전환합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat