Данная статья является дополнительным материалом к статье Обнаружение и разрешение конфликтов репликации в доменной службе LDAP
Данная статья применима к:
- 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)
Подготовка тестовой среды
- На одном из контроллеров домена выполнить сценарий:
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
- Проверить работу репликации, выполнив сценарий на другом контроллере домена:
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)
- Остановить репликацию, выполнив сценарий на обоих контроллерах домена:
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
- Создать конфликтующую запись (на обоих контроллерах домена):ipa user-add conflict_user --first="conflict" --last="User" --random
- Включить репликацию:
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: on EOF - Проверить наличие конфликта:
dc=$(hostname -f) suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2) dsconf ldap://$dc -D "cn=Directory Manager" repl-conflict list $suffix
Создание конфликта attribute/modification
- Остановить репликацию:
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
- Модифицировать запись на разных контроллерах:
- На одном из контроллеров домена изменить телефон
read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2 domain=$(hostname -d) dc=$(hostname -f) suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2) ldapmodify -h $dc -D "cn=Directory Manager" -W <<EOF dn: uid=testuser,cn=users,cn=accounts,$suffix changetype: modify replace: telephoneNumber telephoneNumber: +111111111 EOF
- На другом контроллере домена изменить адрес электронной почты:
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 dn: uid=testuser,cn=users,cn=accounts,$suffix changetype: modify replace: mail mail: test@example.com EOF
- На одном из контроллеров домена изменить телефон
- Включить репликацию и проверить наличие конфликта:
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: on EOF read -p "Введите короткое доменное имя 2 КД (например dc02): " DC2 domain=$(hostname -d) dc=$(hostname -f) suffix=$(ldapsearch -Q -LLL -s base|grep 'dn: '| cut -d ' ' -f2) 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