Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация

Данная статья является дополнительным материалом к статье Обнаружение и разрешение конфликтов репликации в доменной службе LDAP

Оглавление

Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)

Подготовка тестовой среды

  1. На одном из контроллеров домена выполнить сценарий:
    Блок кода
    kinit admin
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)
    dc=$(hostname -f)
    domain=$(hostname -d)
     
    ldapadd -h $dc -D "cn=Directory Manager" -W <<EOF
    dn: ou=test_repl,ou=$domain,cn=orgunits,cn=accounts,$suffix
    objectClass: rbta-org-unit
    ou: test_repl
    displayName: test_repl
    EOF
     
    ipa user-add testuser --first="Test" --last="User" --random
     
    ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF
    dn: uid=testuser,cn=users,cn=accounts,$suffix
    changetype: modify
    replace: rbtadp
    rbtadp: ou=test_repl,ou=$domain,cn=orgunits,cn=accounts,$suffix
    -
    replace: rbtaou
    rbtaou: test_repl
    EOF
  2. Проверить работу репликации, выполнив сценарий на другом контроллере домена:
    Блок кода
    kinit admin
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)
    dc=$(hostname -f)
    domain=$(hostname -d)
    ldapsearch -h $dc -D "cn=Directory Manager" -W -b "ou=test_repl,ou=$domain,cn=orgunits,cn=accounts,$suffix"

Создание конфликта типа namingConflict (ADD)

  1. Остановить репликацию, выполнив сценарий на  обоих контроллерах домена:
Блок кода
read -p "Введите короткое доменное имя второго контроллера домена (например dc02): " DC2

...


domain=$(hostname -d)

...


dc=$(hostname -f)

...


suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...


escaped_suffix=$(echo "$suffix" | sed -e 's/=/\\3D/g' -e 's/,/\\2C/g')

...



ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF

...


dn: cn=meTo${DC2}.${domain},cn=replica,cn=${escaped_suffix},cn=mapping tree,cn=config

...


changetype: modify

...


replace: nsDS5ReplicaEnabled

...


nsDS5ReplicaEnabled: off

...


EOF
  1. Создать конфликтующую запись (на обоих контроллерах домена):
    Command
    ipa user-add conflict_user --first="conflict" --last="User"  --random
  2. Включить репликацию:
    Блок кода
    read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2

...

  1. 
    domain=$(hostname -d)

...

  1. 
    dc=$(hostname -f)

...

  1. 
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...

  1. 
    escaped_suffix=$(echo "$suffix" | sed -e 's/=/\\3D/g' -e 's/,/\\2C/g')

...

  1. 
    ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF

...

  1. 
    dn: cn=meTo${DC2}.${domain},cn=replica,cn=${escaped_suffix},cn=mapping tree,cn=config

...

  1. 
    changetype: modify

...

  1. 
    replace: nsDS5ReplicaEnabled

...

  1. 
    nsDS5ReplicaEnabled: on

...

  1. 
    EOF
  2. Проверить наличие конфликта:
    Блок кода
    dc=$(hostname -f)

...

  1. 
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...

  1. 
    dsconf ldap://$dc -D "cn=Directory Manager" repl-conflict list $suffix

Создание конфликта attribute/modification

  1. Остановить репликацию:
Блок кода
read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2

...


domain=$(hostname -d)

...


dc=$(hostname -f)

...


suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...


escaped_suffix=$(echo "$suffix" | sed -e 's/=/\\3D/g' -e 's/,/\\2C/g')

...


ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF

...


dn: cn=meTo${DC2}.${domain},cn=replica,cn=${escaped_suffix},cn=mapping tree,cn=config

...


changetype: modify

...


replace: nsDS5ReplicaEnabled

...


nsDS5ReplicaEnabled: off

...


EOF

...

  1. Модифицировать запись на разных контроллерах:
    1. На одном из контроллеров домена изменить телефон
      Блок кода
      read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2
      domain=$(hostname -d)

...

    1. 
      dc=$(hostname -f)

...

    1. 
      suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...

    1. 
      ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF

...

    1. 
      dn: uid=testuser,cn=users,cn=accounts,$suffix

...

    1. 
      changetype: modify

...

    1. 
      replace: telephoneNumber

...

    1. 
      telephoneNumber: +111111111

...

    1. 
      EOF
    2. На другом контроллере домена изменить адрес электронной почты:
      Блок кода
      read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2
      domain=$(hostname -d)
      dc=$(hostname -f)
      suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)
      ldapmodify -h $5DC2.$domain -D "cn=Directory Manager" -W <<EOF

...

    1. 
      dn: uid=testuser,cn=users,cn=accounts,$suffix

...

    1. 
      changetype: modify

...

    1. 
      replace: mail

...

    1. 
      mail: test@example.com

...

    1. 
      EOF
  1. Включить репликацию и проверить наличие конфликта:
    Блок кода
    read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2

...

  1. 
    domain=$(hostname -d)

...

  1. 
    dc=$(hostname -f)

...

  1. 
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...

  1. 
    escaped_suffix=$(echo "$suffix" | sed -e 's/=/\\3D/g' -e 's/,/\\2C/g')

...

  1. 
    ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF

...

  1. 
    dn: cn=meTo${DC2}.${domain},cn=replica,cn=${escaped_suffix},cn=mapping tree,cn=config

...

  1. 
    changetype: modify

...

  1. 
    replace: nsDS5ReplicaEnabled

...

  1. 
    nsDS5ReplicaEnabled: on

...

  1. 
    EOF

...

  1. 
    read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2

...

  1. 
    domain=$(hostname -d)

...

  1. 
    dc=$(hostname -f)

...

  1. 
    suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2)

...

  1. 
    ds-replcheck online -D "cn=Directory Manager" -W -m ldap://$dc:389 -r ldap://$DC2.$domain:389 -b "$suffix" -i memberof,idnssoaserial,entryusn,krblastsuccessfulauth,krblastfailedauth,krbloginfailedcount