Назад | Перейти на главную страницу

Создан один и тот же пользователь на двух разных контроллерах домена

Предположим, у вас есть 2 контроллера домена, DC1 и DC2.

По какой-то причине два разных человека создают новую учетную запись пользователя - один делает это на DC1, другой - на DC2.

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

Что произойдет, когда контроллеры домена попытаются выполнить синхронизацию в следующий раз?

Вы получаете конфликт репликации.

Одна из учетных записей сохранит желаемое имя, а другая будет автоматически переименована в другое имя для разрешения конфликта.

Именно этот пример и используется здесь, а соответствующие части вставлены ниже.

Рассмотрим пример объекта пользователя jsmith в домене contoso.com. Администратор DC1 изменяет описание jsmith на «Маркетинг». Почти одновременно администратор DC3 меняет описание того же пользователя на «Продажи и маркетинг». На этом этапе информация DC1 и DC3 об атрибуте description jsmith сравнивается, как показано на рисунке 9.

Если DC2 получит оба этих изменения одновременно, ему явно необходимо будет определить, какое из них является «выигрышным». Порядок разрешения конфликтов следующий:

Модификация с более высоким идентификатором версии будет принята как «выигрышное» изменение; «проигрышное» изменение будет перезаписано. В этом случае versionID для обеих записей равен 2, поэтому нам нужно перейти ко второму разрешению конфликтов.

Если обе записи имеют одинаковый идентификатор версии, изменение с более поздней временной меткой будет принято как выигрышное изменение; проигрышное изменение будет перезаписано. В этом случае метка времени исходной записи DC3 - более поздняя, ​​поэтому в описании jsmith будет установлено значение «Продажи и маркетинг». В редких случаях, когда идентификатор версии и временная метка идентичны, нам нужен третий и окончательный способ разрешения конфликтов:

Если обе записи имеют одинаковый идентификатор версии и метку времени, выигрывает тот, который был произведен DC с GUID с меньшим номером; запись с GUID с более высоким номером будет перезаписана. Таким образом, если GUID DC1 - 1234567890, а GUID DC3 - 2345678901, исходящая запись из DC1 будет выигрывать, если и versionID, и временная метка будут идентичны.

Вы, вероятно, думаете: «Разве не имеет смысла использовать метку времени в качестве первого тай-брейка?» Это не так банально, как вы думаете. Если бы временная метка была основным фактором разрешения конфликтов Active Directory, единственное, что злонамеренный администратор должен был бы сделать для распространения своих изменений, - это вернуть часы на одном конкретном DC, чтобы он всегда выигрывал. отметок времени.

Разрешение создания конфликтующих объектов

В случаях, когда создаются два объекта с одним и тем же именем, Active Directory будет использовать те же три разрешения конфликтов, описанные в предыдущем разделе, чтобы определить, какой из них является «выигрышным». Однако, в отличие от предыдущего раздела, «проигравший» объект не перезаписывается. Вместо этого проигрывающий объект переименовывается с использованием символов CNF (для объекта конфликта), за которыми следует двоеточие и GUID «проигравшего» объекта. Это позволяет администраторам более методично определять, какой объект следует сохранить, а какой удалить.