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

Ключ

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

...

Для проверки наличия конфликтов выполнить на контроллере домена команду:

Блок кодаcommand
/usr/sbin/dsconf ldap://`hostname` -D "cn=Directory Manager" repl-conflict list <доменный_суффикс>

Эта команда выведет список всех записей, участвующих в конфликтах репликации.

...

titleВажно

Практические примеры использования команды представлены далее в главах 

Разрешение конфликтов

Устранение ошибок типа namingConflict (ADD)

Для конфликтов добавления рекомендуется сохранять валидные записи и удалять конфликтующие:

Блок кодаcommand
/usr/sbin/dsconf ldap://<имя_КД> -D "cn=Directory Manager" repl-conflict delete <dn конфликтующей записи>

Валидными считаются записи:

...

  1. Сравнить конфликтующие записи:
    Блок кодаcommand
    /usr/sbin/dsconf ldap://<имя_КД> -D "cn=Directory Manager" repl-conflict compare <dn конфликтующей записи>
  2. Проверить временные метки (атрибут modifyTimestamp).

  3. Учесть бизнес-логику (учесть, какая запись реально используется) (учет бизнес-логики выходит за рамки настоящей статьи).

...

  1. Сравнить конфликтующие записи:

...

  1. Command
    /usr/sbin/dsconf

...

  1. ldap://<имя_КД>

...

  1. -D

...

  1. "cn=Directory

...

  1. Manager"

...

  1. repl-conflict

...

  1. compare

...

  1. <dn

...

  1. конфликтующей

...

  1. записи>

...

  1. Принять решение и выполнить одно из следующих действий:

    ...

      • удалить конфликтующую запись (

    ...

      • пример для удаления конфликтующей записи приведен ранее);
      • сделать конфликтующую запись действующей:

    ...

      • Command
        /usr/sbin/dsconf

    ...

      • ldap://<имя_КД>

    ...

      • -D

    ...

      • "cn=Directory

    ...

      • Manager"

    ...

      • repl-conflict

    ...

      • swap

    ...

      • <dn

    ...

      • конфликтующей

    ...

      • записи>

    ...

    Углубленная проверка работы репликации

    После разрешения конфликтов убедитесь необходимо убедиться в корректной работе репликации. Для этого:

    ...

    1. Создать тестовую запись или измените атрибут существующей. Например,

    ...

    1. создать нового пользователя.

    ...

    1. Выполнить глубокую проверку репликации:

    ...

    1. Command
      ds-replcheck

    ...

    1. online

    ...

    1. -D

    ...

    1. "cn=Directory

    ...

    1. Manager"

    ...

    1. -W

    ...

    1. -m

    ...

    1. ldap://<имя_первого_КД>:389

    ...

    1. -r

    ...

    1. ldap://<имя_реплики>:389

    ...

    1. -b

    ...

    1. <доменный_суффикс>

    ...

    1. -i

    ...

    1. memberof,idnssoaserial,entryusn,krblastsuccessfulauth,krblastfailedauth,krbloginfailedcount
      Данная проверка

    ...

    1. , в отличие от обычной проверки, анализирует не только явно представленные данные, но и внутренние структуры данных механизма репликации:

      ...

        • служебные метаданные (entryusn, modifyTimestamp);

      ...

        • вторичные индексы (memberof);

      ...

        • критичные для безопасности

      ...

        • атрибуты (krblastfailedauth);
        • DNS-

      ...

        • зоны (idnssoaserial)

      ...

        • .

      Диагностика проблем репликации

      ...

      При обнаружении проблем

      ...

      репликации рекомендуется:

      1. включить расширенное журналирование:

      ...

      1. Command
        dsconf

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. ldap://<имя_КД>

      ...

      1. config

      ...

      1. replace

      ...

      1. nsslapd-errorlog-level=24576

      ...

      1. Анализировать журнал в /var/log/dirsrv/<имя_инстанса>/errors

      ...

      1. , например /var/log/dirsrv/slapd-EXAMPLE-COM/errors.


      Моделирование ошибок описано в раскрывающемся меню: 

      ...

      Отчет показывает расхождения между серверами dc01.ald250.pro (Supplier) и dc02.ald250.pro (Replica). Разберем Выявлены ключевые проблемы:

      1. Состояние репликации (Database RUV's)

      • Replica is behind Supplier by: 95456 секунд секунд (~26.5 часов) - реплика серьезно отстает по времени.

      • Расхождения в RUV (Replica Update Vectors):

        • Для replica 4 (dc01): 687a55c1000100040000 68934c91000000040000 (Supplier) vs 687a55c1000100040000 6891d7b1000000040000 (Replica)

      ...

      • Записей: 3703 (Supplier) vs 3813 (Replica) - на реплике больше записей.

      3. Конфликтующие записи

      ...

      • Обнаружено 2 конфликтующие записи.

      4. Отсутствующие записи

      • На реплике отсутствуют (9 записей):
        • 3 записи в users_history (a1_9tpl..., a2_dyj..., ansible)

        • 2 удаленных пользователя (uid=a1, uid=a2) (создавались и удалились отдельно вне воспроизведения)

        • Роль test_role (создавалась отдельно, вне воспроизведения)

        • Запись журнала journal.ald250.pro

        • Запись аудита login

      • На основном сервере отсутствуют (52 записи):
        • Структура compat (пользователи, группы)

        • Записи sudoers

      5. Несоответствия атрибутов

      • Для пользователя conflict_user:
        • SID: S-1-5-21-...-1010 (Supplier) vs S-1-5-21-...-101500 (Replica)

        • Пароли: разные хеши PBKDF2-SHA512

        • UID/GID: 1213200010 vs 1213300500

        • Данные Kerberos: krbLastPwdChange, krbExtraData различаются

        • Имена: "conflict User" vs "conflicted User"

      • Для компьютера journal.ald250.pro:
        • Отсутствуют атрибуты rbtaSubsystem* на реплике

        • Различия в objectClass (на Supplier больше классов)

      • Для repl keep alive:
        • Метки времени: 20250806123737Z (Supplier) vs 20250805093737Z (Replica)

      • Для DNA-плагина:
        • dnaRemainingValues: 100489 (Supplier) vs 199992 (Replica)

      • Для пользователя testuser:
        • Атрибут 'telephonenumber': +111111111 (Supplier) vs +33333333 (Replica)

      Практическое решение проблем репликации

      Начнем с вывода и решения конфликтов, которые показывает dsconf:

      Блок кода
      collapsetrue
      dn: nsuniqueid=adc2dc01-71ea11f0-816fe86f-aa36b0da+uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
      cn: conflicted User
      displayName: conflicted User
      gecos: conflicted User
      gidNumber: 1213300500
      givenName: conflicted
      homeDirectory: /home/conflict_user
      initials: cU
      ipaNTSecurityIdentifier: S-1-5-21-196329585-3226835358-3389735258-101500
      ipaUniqueID: c173c7be-71ea-11f0-a685-02000a452904
      krbCanonicalName: conflict_user@ALD250.PRO
      krbExtraData:: AAI445Focm9vdC9hZG1pbkBBTEQyNTAuUFJPAA==
      krbLastPwdChange: 20250805105552Z
      krbPasswordExpiration: 20250805105552Z
      krbPrincipalKey:: MIHeoAMCAQGhAwIBAaIDAgEBowMCAQGkgccwgcQwaKAbMBmgAwIBBKESBBBjQjo4PD1ZLVBIfEI0KitroUkwR6ADAgESoUAEPiAAXxsWn7SM64uMNXVBzUsCpN1JZOObIc/h+tt+/vlGqWrfFMcF2en4vgPJJo/qtKx0+886arhXPkdPAv4bMFigGzAZoAMCAQShEgQQNTBRWS07MXNTUFZpcCZVJKE5MDegAwIBEaEwBC4QAFnNxLdgMlcm6rpsMIqgh6CN2IWb/cTk6Jj/sKQYGZkU8KlkJHuelUVz0bSk
      krbPrincipalName: conflict_user@ALD250.PRO
      loginShell: /bin/bash
      mail: conflict_user@ald250.pro
      mepManagedEntry: cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
      nsds5replconflict: namingConflict (ADD) uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
      objectClass: top
      objectClass: person
      objectClass: organizationalperson
      objectClass: inetorgperson
      objectClass: inetuser
      objectClass: posixaccount
      objectClass: krbprincipalaux
      objectClass: krbticketpolicyaux
      objectClass: ipaobject
      objectClass: ipasshuser
      objectClass: x-ald-user
      objectClass: x-ald-user-parsec14
      objectClass: x-ald-audit-policy
      objectClass: rbta-unit
      objectClass: rbta-address
      objectClass: rbtaCustomUserAttrs
      objectClass: rbta-inetorgperson-ext
      objectClass: ruPostMailAccount
      objectClass: rbtaUserMeta
      objectClass: ipaSshGroupOfPubKeys
      objectClass: ldapsubentry
      objectClass: mepOriginEntry
      objectClass: ipantuserattrs
      proxyAddresses: SMTP:CONFLICT_USER@ALD250.PRO
      rbtadp: ou=ald250.pro,cn=orgunits,cn=accounts,dc=ald250,dc=pro
      rbtaou: ald250.pro
      sn: User
      uid: conflict_user
      uidNumber: 1213300500
      userPassword: {PBKDF2-SHA512}10000$uPEJ8l/mnTsjJkckyxqqJRIQx/X2OrOI$Wzm9wddHKCb9JOLl4UVQLUk/czorLTUqEOYE6QBT/l4t+B+pXgJ8xXrVmkdnKYyREYmXrpf2XyNPsOoEbzbz8A==
      x-ald-user-mac: 0:0x0:0:0x0
      xaldusermacmax: 0
      xaldusermacmin: 0
      
      
      dn: cn=conflict_user+nsuniqueid=adc2dc05-71ea11f0-816fe86f-aa36b0da,cn=groups,cn=accounts,dc=ald250,dc=pro
      cn: conflict_user
      description: User private group for conflict_user
      gidNumber: 1213300500
      ipaUniqueID: c1a7f6d8-71ea-11f0-a685-02000a452904
      mepManagedBy: uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
      nsds5replconflict: namingConflict (ADD) cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
      objectClass: posixgroup
      objectClass: ipaobject
      objectClass: mepManagedEntry
      objectClass: top
      objectClass: ldapsubentry

      ...

      1. Получить конфликты для cn=conflict_user+nsuniqueid=adc2dc05-71ea11f0-816fe86f-aa36b0da,cn=groups,cn=accounts,dc=ald250,dc=pro

      ...

      1. Command

      ...

      1. dsconf ldap://dc01.ald250.pro

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. repl-conflict

      ...

      1. compare

      ...

      1. cn=conflict_user+nsuniqueid=adc2dc05-71ea11f0-816fe86f-aa36b0da,cn=groups,cn=accounts,dc=ald250,dc=pro
        Пример вывода команды:
        Блок кода
        collapsetrue
        Conflict Entry:
        
        dn: cn=conflict_user+nsuniqueid=adc2dc05-71ea11f0-816fe86f-aa36b0da,cn=groups,cn=accounts,dc=ald250,dc=pro
        cn: conflict_user
        description: User private group for conflict_user
        gidNumber: 1213300500
        ipaUniqueID: c1a7f6d8-71ea-11f0-a685-02000a452904
        mepManagedBy: uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        nsds5replconflict: namingConflict (ADD) cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
        objectClass: posixgroup
        objectClass: ipaobject
        objectClass: mepManagedEntry
        objectClass: top
        objectClass: ldapsubentry
        
        
        Valid Entry:
        
        dn: cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
        cn: conflict_user
        description: User private group for conflict_user
        gidNumber: 1213200010
        ipaUniqueID: accda578-71ea-11f0-8dec-02000a452902
        mepManagedBy: uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        objectClass: posixgroup
        objectClass: ipaobject
        objectClass: mepManagedEntry
        objectClass: top

      ...

      1. Удалить конфликтующую запись, оставив только запись cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro:

      ...

      1. Command
        dsconf

      ...

      1. ldap://dc01.ald250.pro

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. repl-conflict

      ...

      1. delete

      ...

      1. cn=conflict_user+nsuniqueid=adc2dc05-71ea11f0-816fe86f-aa36b0da,cn=groups,cn=accounts,dc=ald250,dc=pro
      2. По такому же принципу

      ...

      1. разрешить второй конфликт:
        Блок кода
        collapsetrue
        root@dc01:~# dsconf ldap://dc01.ald250.pro -D "cn=Directory Manager" repl-conflict compare nsuniqueid=adc2dc01-71ea11f0-816fe86f-aa36b0da+uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        Enter password for cn=Directory Manager on ldap://dc01.ald250.pro: 
        Conflict Entry:
        
        dn: nsuniqueid=adc2dc01-71ea11f0-816fe86f-aa36b0da+uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        cn: conflicted User
        displayName: conflicted User
        gecos: conflicted User
        gidNumber: 1213300500
        givenName: conflicted
        homeDirectory: /home/conflict_user
        initials: cU
        ipaNTSecurityIdentifier: S-1-5-21-196329585-3226835358-3389735258-101500
        ipaUniqueID: c173c7be-71ea-11f0-a685-02000a452904
        krbCanonicalName: conflict_user@ALD250.PRO
        krbExtraData:: AAI445Focm9vdC9hZG1pbkBBTEQyNTAuUFJPAA==
        krbLastPwdChange: 20250805105552Z
        krbPasswordExpiration: 20250805105552Z
        krbPrincipalKey:: MIHeoAMCAQGhAwIBAaIDAgEBowMCAQGkgccwgcQwaKAbMBmgAwIBBKESBBBjQjo4PD1ZLVBIfEI0KitroUkwR6ADAgESoUAEPiAAXxsWn7SM64uMNXVBzUsCpN1JZOObIc/h+tt+/vlGqWrfFMcF2en4vgPJJo/qtKx0+886arhXPkdPAv4bMFigGzAZoAMCAQShEgQQNTBRWS07MXNTUFZpcCZVJKE5MDegAwIBEaEwBC4QAFnNxLdgMlcm6rpsMIqgh6CN2IWb/cTk6Jj/sKQYGZkU8KlkJHuelUVz0bSk
        krbPrincipalName: conflict_user@ALD250.PRO
        loginShell: /bin/bash
        mail: conflict_user@ald250.pro
        mepManagedEntry: cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
        nsds5replconflict: namingConflict (ADD) uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        objectClass: top
        objectClass: person
        objectClass: organizationalperson
        objectClass: inetorgperson
        objectClass: inetuser
        objectClass: posixaccount
        objectClass: krbprincipalaux
        objectClass: krbticketpolicyaux
        objectClass: ipaobject
        objectClass: ipasshuser
        objectClass: x-ald-user
        objectClass: x-ald-user-parsec14
        objectClass: x-ald-audit-policy
        objectClass: rbta-unit
        objectClass: rbta-address
        objectClass: rbtaCustomUserAttrs
        objectClass: rbta-inetorgperson-ext
        objectClass: ruPostMailAccount
        objectClass: rbtaUserMeta
        objectClass: ipaSshGroupOfPubKeys
        objectClass: ldapsubentry
        objectClass: mepOriginEntry
        objectClass: ipantuserattrs
        proxyAddresses: SMTP:CONFLICT_USER@ALD250.PRO
        rbtadp: ou=ald250.pro,cn=orgunits,cn=accounts,dc=ald250,dc=pro
        rbtaou: ald250.pro
        sn: User
        uid: conflict_user
        uidNumber: 1213300500
        userPassword: {PBKDF2-SHA512}10000$uPEJ8l/mnTsjJkckyxqqJRIQx/X2OrOI$Wzm9wddHKCb9JOLl4UVQLUk/czorLTUqEOYE6QBT/l4t+B+pXgJ8xXrVmkdnKYyREYmXrpf2XyNPsOoEbzbz8A==
        x-ald-user-mac: 0:0x0:0:0x0
        xaldusermacmax: 0
        xaldusermacmin: 0
        
        
        Valid Entry:
        
        dn: uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro
        cn: conflict User
        displayName: conflict User
        gecos: conflict User
        gidNumber: 1213200010
        givenName: conflict
        homeDirectory: /home/conflict_user
        initials: cU
        ipaNTSecurityIdentifier: S-1-5-21-196329585-3226835358-3389735258-1010
        ipaUniqueID: acbf75f2-71ea-11f0-8dec-02000a452902
        krbCanonicalName: conflict_user@ALD250.PRO
        krbExtraData:: AAIV45Focm9vdC9hZG1pbkBBTEQyNTAuUFJPAA==
        krbLastPwdChange: 20250805105517Z
        krbPasswordExpiration: 20250805105517Z
        krbPrincipalKey:: MIHeoAMCAQGhAwIBAaIDAgEBowMCAQGkgccwgcQwaKAbMBmgAwIBBKESBBBlWVFiX0VGQy0pWD5lSEQ3oUkwR6ADAgESoUAEPiAAzbHqRTVBdHb5wmDrl77TO8VUARRi0rHmJ/98XoVsTBAvYLNRjJVPh9G0b3ghLu0PONdXZiIpu2ErHi8xMFigGzAZoAMCAQShEgQQTUZ7PTopVktRfGZFaW8+LaE5MDegAwIBEaEwBC4QAM3dD4hlnDrfq/XuK10ieoM4yAPEMA+MM+R9CW4OdIsThk9Sx36VOtIOIhSh
        krbPrincipalName: conflict_user@ALD250.PRO
        loginShell: /bin/bash
        mail: conflict_user@ald250.pro
        memberOf: cn=ipausers,cn=groups,cn=accounts,dc=ald250,dc=pro
        memberOf: cn=ALDPRO - Organization units,cn=roles,cn=accounts,dc=ald250,dc=pro
        memberOf: cn=Organization units,cn=privileges,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=Organization units - Read - Relations,cn=permissions,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=Organization units - Read - OU,cn=permissions,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=conflict_user_3m98nnfmo7u7d2rsx,cn=users_history,cn=accounts,dc=ald250,dc=pro
        memberOf: cn=conflict_user_fow3ooa2q7q3vkvui,cn=users_history,cn=accounts,dc=ald250,dc=pro
        memberOf: cn=test_role,cn=roles,cn=accounts,dc=ald250,dc=pro
        memberOf: cn=ALDPRO ROCO Attributes Mapping - Read,cn=privileges,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=ALDPRO ROCO Attributes Mapping - Read,cn=permissions,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=ALDPRO ROCO Attributes Mapping - Manage,cn=privileges,cn=pbac,dc=ald250,dc=pro
        memberOf: cn=ALDPRO ROCO Attributes Mapping - Manage,cn=permissions,cn=pbac,dc=ald250,dc=pro
        mepManagedEntry: cn=conflict_user,cn=groups,cn=accounts,dc=ald250,dc=pro
        objectClass: top
        objectClass: person
        objectClass: organizationalperson
        objectClass: inetorgperson
        objectClass: inetuser
        objectClass: posixaccount
        objectClass: krbprincipalaux
        objectClass: krbticketpolicyaux
        objectClass: ipaobject
        objectClass: ipasshuser
        objectClass: x-ald-user
        objectClass: x-ald-user-parsec14
        objectClass: x-ald-audit-policy
        objectClass: rbta-unit
        objectClass: rbta-address
        objectClass: rbtaCustomUserAttrs
        objectClass: rbta-inetorgperson-ext
        objectClass: ruPostMailAccount
        objectClass: rbtaUserMeta
        objectClass: ipaSshGroupOfPubKeys
        objectClass: mepOriginEntry
        objectClass: ipantuserattrs
        proxyAddresses: SMTP:CONFLICT_USER@ALD250.PRO
        rbtadp: ou=ald250.pro,cn=orgunits,cn=accounts,dc=ald250,dc=pro
        rbtaou: ald250.pro
        sn: User
        uid: conflict_user
        uidNumber: 1213200010
        userPassword: {PBKDF2-SHA512}10000$+mn7IoPU4om7kLc9I3PS1opkiHJteGzy$uEHe5EuvMJ4c4KOukivH8+46Ohqvx8PuvSamj18k3uQnzgZ1KBl7brBq4yEGzxJc5Y6Ssl0hkxDZ2D0cMPCOLA==
        x-ald-user-mac: 0:0x0:0:0x0
        xaldusermacmax: 0
        xaldusermacmin: 0
        

      ...

      1. Команда:
        Command

        root@dc01:~#

      ...

      1. dsconf

      ...

      1. ldap://dc01.ald250.pro

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. repl-conflict

      ...

      1. delete

      ...

      1. nsuniqueid=adc2dc01-71ea11f0-816fe86f-aa36b0da+uid=conflict_user,cn=users,cn=accounts,dc=ald250,dc=pro

      ...


      1. Enter

      ...

      1. password

      ...

      1. for

      ...

      1. cn=Directory

      ...

      1. Manager

      ...

      1. on

      ...

      1. ldap://dc01.ald250.pro:

      ...

      1.  
        root@dc01:~#

      ...

      1. dsconf

      ...

      1. ldap://dc01.ald250.pro

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. repl-conflict

      ...

      1. list

      ...

      1. dc=ald250,dc=pro

      ...


      1. Enter

      ...

      1. password

      ...

      1. for

      ...

      1. cn=Directory

      ...

      1. Manager

      ...

      1. on

      ...

      1. ldap://dc01.ald250.pro:

      ...

      1.  
        There

      ...

      1. were

      ...

      1. no

      ...

      1. conflict

      ...

      1. entries

      ...

      1. found

      ...

      1. under

      ...

      1. the

      ...

      1. suffix

      ...


      1. Перезапустить службу каталога

      ...

      1. :

      ...

      collapsetrue
      1. Command
        systemctl restart dirsrv@*

      2. Повторно проверить состояние репликации:
        Command
      1. root@dc01:~#

      ...

      1. ds-replcheck

      ...

      1. online

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. -W

      ...

      1. -m

      ...

      1. ldap://dc01:389

      ...

      1. -r

      ...

      1. ldap://dc02:389

      ...

      1. -b

      ...

      1. "dc=ald250,dc=pro"

      ...

      1. -i

      ...

      1. memberof,idnssoaserial,entryusn,krblastsuccessfulauth,krblastfailedauth,krbloginfailedcount

      ...


      1. Пример вывода команды:
        Блок кода
        collapsetrue
        Enter password: 
        ================================================================================
                 Replication Synchronization Report  (Thu Aug  7 10:15:54 2025)
        ================================================================================
        
        
        Database RUV's
        =====================================================
        
        Supplier RUV:
          {replica 3 ldap://dc02.ald250.pro:389} 687a55d0000100030000 6894526b000500030000
          {replica 4 ldap://dc01.ald250.pro:389} 687a55c1000100040000 6894527e000300040000
          {replicageneration} 687a55c1000000040000
        
        Replica RUV:
          {replica 3 ldap://dc02.ald250.pro:389} 687a55d0000100030000 6894526b000500030000
          {replica 4 ldap://dc01.ald250.pro:389} 687a55c1000100040000 6894527e000300040000
          {replicageneration} 687a55c1000000040000
        
        Replication State: Supplier and Replica are in perfect synchronization
        
        
        Entry Counts
        =====================================================
        
        Supplier:  3704
        Replica: 3824
        
        
        Tombstones
        =====================================================
        
        Supplier:  21
        Replica: 21
        
        Missing Entries
        =====================================================
        
          Entries missing on Supplier:
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:53 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:52 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:51 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:50 2025)
           - cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:49 2025)
           - cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:49 2025)
           - uid=conflict_user,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:14:42 2025)
           - uid=testuser,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - uid=admin,cn=users,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ng,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:49 2025)
           - cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:49 2025)
           - cn=testuser,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Tue Aug  5 10:06:38 2025)
           - cn=print_admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=Default\20SMB\20Group,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=ald\20trust\20admin,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=editors,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=admins,cn=groups,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
           - cn=computers,cn=compat,dc=ald250,dc=pro  (Created on Replica at: Thu Aug  7 07:15:49 2025)
           - ou=sudoers,dc=ald250,dc=pro  (Created on Replica at: Fri Jul 18 14:19:28 2025)
        
        Result
        =====================================================
        
        There are replication differences between Supplier and Replica

      ...

      1. В выводе команды присутствует сообщение Replication State: Supplier and Replica are in perfect synchronization, означающее что синхронизация прошла успешно.

      ...

      1. Остальные конфликтующие записи разрешились самостоятельно

      ...

      1. . Также вывод команды говорит о расхождении записей каталога compat - на реплике записи присутствуют, а на 1КД - нет.

      ...

      1. Данные записи не влияют на работу ALD Pro, они относятся к

      ...

      1. плагину Schema Compatibility и этот плагин можно отключить. Данная структура не переносится при реинициализации реплики.

      ...

      Отключим плагин на 2м КД и перезагрузим dirsrv:

      Блок кода
      root@dc02:~# ipa-compat-manage disable
      Directory Manager password: 
      
      Disabling plugin
      This setting will not take effect until you restart Directory Server.
      root@dc02:~# systemctl restart dirsrv@*

      И при выполнении команды ds-replcheck получаем идеальный результат:

      ...

      1. Для устранения конфликта записей каталога compat можно отключить плагин на втором контроллере домена и перезагрузить службу каталогов dirsrv (команды выполняются на втором контроллере домена):
        Command

        sudo ipa-compat-manage disable
        sudo systemctl restart dirsrv@*

        Теперь при выполнении команды:
        Command
        ds-replcheck online -D "cn=Directory Manager" -W -m ldap://dc01:389

      ...

      1. -r

      ...

      1. ldap://dc02:389

      ...

      1. -b

      ...

      1. "dc=ald250,dc=pro"

      ...

      1. -i

      ...

      1. memberof,idnssoaserial,entryusn,krblastsuccessfulauth,krblastfailedauth,krbloginfailedcount

      ...

      1. конфликты отсутствуют полностью:
        Блок кода
        collapsetrue
        Enter password: 
        ================================================================================
                 Replication Synchronization Report  (Thu Aug  7 12:11:57 2025)
        ================================================================================
        
        
        Database RUV's
        =====================================================
        
        Supplier RUV:
          {replica 3 ldap://dc02.ald250.pro:389} 687a55d0000100030000 68946d16000200030000
          {replica 4 ldap://dc01.ald250.pro:389} 687a55c1000100040000 68946cc6000100040000
          {replicageneration} 687a55c1000000040000
        
        Replica RUV:
          {replica 3 ldap://dc02.ald250.pro:389} 687a55d0000100030000 68946d16000200030000
          {replica 4 ldap://dc01.ald250.pro:389} 687a55c1000100040000 68946cc6000100040000
          {replicageneration} 687a55c1000000040000
        
        Replication State: Supplier and Replica are in perfect synchronization
        
        
        Entry Counts
        =====================================================
        
        Supplier:  3724
        Replica: 3724
        
        
        Tombstones
        =====================================================
        
        Supplier:  41
        Replica: 41
        
        Result
        =====================================================
        
        No replication differences between Supplier and Replica

      Реинициализация реплики

      В сложных случаях может потребоваться полная реинициализация реплики:

      • Создайте резервную копию:
      Блок кода
      ipa-backup -vd --online --data
      • Выполните реинициализацию на 2м КД:

      ...

      реплики. Использование реинициализации является крайней мерой и нежелательно по следующим причинам:

      1. Производительность: требует полной пересылки всех данных (часы простоя для больших каталогов).

      2. Риски: может привести к потере локальных изменений, если выполнена некорректно.

      3. Маскировка проблем: не устраняет корневые причины конфликтов (например, неправильную топологию репликации).

      Реинициализация рекомендуется в следующих случаях:

      • после аппаратного сбоя (например, отказ жёсткого диска) на реплике;

      • при расхождениях в более чем 5-10% записей;

      • после изменения схемы данных.

      Для выполнения реинициализации:

      1. Создать резервную копию контроллера домена:
        sudo ipa-backup -vd --online --data
      2. Выполнить реинициализацию на втором контроллере домена:
        sudo ipa-replica-manage

      ...

      1. -dv

      ...

      1. re-initialize

      ...

      1. --from

      ...

      1. <имя_первого_КД>

      ...

      1. Проверить идентичность данных:

      ...

      1. ds-replcheck

      ...

      1. online

      ...

      1. -D

      ...

      1. "cn=Directory

      ...

      1. Manager"

      ...

      1. -W

      ...

      1. -m

      ...

      1. ldap://<имя_первого_КД>:389

      ...

      1. -r

      ...

      1. ldap://<имя_реплики>:389

      ...

      1. -b

      ...

      1. <доменный_суффикс>

      ...

      1. -i

      ...

      1. memberof,idnssoaserial,entryusn,krblastsuccessfulauth,krblastfailedauth,krbloginfailedcount

      Почему сразу не делать реинициализацию?

      Причины:

      1. Производительность: Реинициализация требует полной пересылки всех данных (часы простоя для больших каталогов).

      2. Риски: Может привести к потере локальных изменений, если выполнена некорректно.

      3. Маскировка проблем: Не устраняет корневые причины конфликтов (например, неправильную топологию репликации).

      Когда точно нужна реинициализация:

      ...

      После сбоя жёсткого диска на реплике

      ...

      При расхождениях в более чем 5-10% записей

      ...

      Что проверять при сравнении данных после реинициализации?

      ...

      1. Проконтролировать выполнение реинициализации. При успешной реинициализации:
        • В выводе команды 

      ...

        • ds-replcheck должно быть:

      ...


        • Replication

      ...

        • State:

      ...

        • Supplier

      ...

        • and

      ...

        • Replica

      ...

        • are

      ...

        • in

      ...

        • perfect

      ...

        • synchronization

      ...


        • No

      ...

        • replication

      ...

        • differences

      ...

        • between

      ...

        • Supplier

      ...

        • and

      ...

        • Replica
          Критичные параметры:
          1. memberof - должно совпадать членство в группах;
          2. idnssoaserial - идентичность DNS-зон;
          3. krblastfailedauth - чтобы не блокировать легитимных пользователей

      Полезные команды и сценарии

      ...

      Сценарий проверки расхождений записей пользователей, компьютеров и подразделений:

      Блок кода
      base_dn=$(ldapsearch -Q -LLL -s base | awk '/^dn:/{print $2}')
      password="<PASSWORD>"
      # Для пользователей
      ipa-replica-manage list 2>/dev/null | grep -E '^[a-zA-Z0-9.-]+:' | awk -F: '{print $1}' | xargs -I{} bash -c 'echo "=== Проверка пользователей на реплике: {} ==="; ldapsearch -x -h {} -b "cn=users,cn=accounts,'"$base_dn"'" -s onelevel -D "cn=Directory Manager" -w "'"$password"'" "(uid=*)" dn 2>/dev/null | grep -c "^dn:" || echo "Ошибка подключения к {}"'
      # Для компьютеров
      ipa-replica-manage list 2>/dev/null | grep -E '^[a-zA-Z0-9.-]+:' | awk -F: '{print $1}' | xargs -I{} bash -c 'echo "=== Проверка компьютеров на реплике: {} ==="; ldapsearch -x -h {} -b "cn=computers,cn=accounts,'"$base_dn"'" -s onelevel -D "cn=Directory Manager" -w "'"$password"'" "(fqdn=*)" dn 2>/dev/null | grep -c "^dn:" || echo "Ошибка подключения к {}"'
      # Для подразделений
      ipa-replica-manage list 2>/dev/null | grep -E '^[a-zA-Z0-9.-]+:' | awk -F: '{print $1}' | xargs -I{} bash -c 'echo "=== Проверка подразделений на реплике: {} ==="; ldapsearch -x -h {} -b "cn=orgunits,cn=accounts,'"$base_dn"'" -s onelevel -D "cn=Directory Manager" -w "'"$password"'" "(ou=*)" dn 2>/dev/null | grep -c "^dn:" || echo "Ошибка подключения к {}"'

      Где <PASSWORD> - пароль УЗ Directory Manager
      Вывести служебную информацию Получение  Replica Update Vectors (RUV), о состоянии репликации между серверами FreeIPA :

      ...

      На вопрос Enter a bind DN for <server>:389 ответьте cn="Directory Manager"Вывести информацию о группе узлов ipaservers:

      ...