PDC по умолчанию будет проверять свою базу данных каждые пять минут. Если будут обнаружены изменения в любой из трех баз данных, то он пошлет сообщение всем резервным контроллерам домена, указывая изменение в SAM. PDC имеет таблицу каждого BDC, которая содержит идентификатор версии каждой из его баз данных. Если BDC имеет актуальную базу данных и не требуется никаких изменений, то она не будет модифицироваться.
Windows NT 4.0 будет посылать объявление обновления одновременно максимум десяти BDC, чтобы не перегружать полосу пропускания сети. Эту величину можно, конечно, изменить для ситуаций, где полоса пропускания не является проблемой. Преимущество управления обновлениями состоит в сокращении использования полосы пропускания сети. Обратной стороной этого будет увеличение времени для изменения всех BDC.
Как можно видеть на распечатке ниже, PDC выполняет команду "Announce Change to UAS or SAM". Отметим, что кадр включает имя PDC и имя домена. Он содержит также порядковый номер, используемый для сравнения версий базы данных. Этот кадр посылается из PDC прямо в BDC. Это не широковещательный кадр; он посылается в порт UDP 138, который является портом службы дейтаграмм NetBIOS. Это дейтаграмма, направленная в \mailslot\net\NetLogon.
Можно сделать кое-что для оптимизации трафика синхронизации учетных записей пользователей в базах данных. Эта оптимизация включает редактирование реестра и настройку параметров, связанных со службой NetLogon. В обычном реестре эти ключи даже не присутствуют — они должны быть добавлены вручную. На рис. показан контроллер домена, в котором добавлены эти дополнительные параметры для ключа NetLogon. Как можно видеть внизу рисунка, эти параметры расположены в HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\NetLogon\parameters.
На сайте издательства "ЛОРИ" находятся эти записи, сохраненные как файл с расширением .REG. Делая по нему двойной щелчок мышью, можно внести их в реестр на используемой машине, однако, НЕ делайте это добавление на рабочей машине. Также убедитесь, что исходный реестр сохранен, прежде чем делать какие-либо изменения. По крайней мере, сохраните этот ключ, прежде чем делать изменение. Прежде чем реализовывать, необходимо рассмотреть каждое из этих значений с его достоинствами и недостатками. Кроме того, НЕОБХОДИМО знать, каким будет влияние каждого из них, прежде чем они будут добавлены. Когда они будут добавлены, нужно перезагрузить машину.
Служба NetLogon используется для синхронизации базы данных учетных записей пользователей между BDC и PDC. Помимо этой функции, NetLogon выполняет также и другие функции. Они перечислены ниже.
1. NetLogon обеспечивает для пользователей проверку регистрации.
2. NetLogon предоставляет поддержку для доверительных отношений между доменами.
3. NetLogon обеспечивает членство компьютеров в домене.
Очевидно, что если служба NetLogon отказывает, то ничего из вышеприведенного не произойдет. Давайте посмотрим на некоторые записи реестра, которые могут оптимизировать службу NetLogon и сократить часть трафика, рассмотренного в этой главе. Каждую из этих записей можно увидеть на рис. Они расположены в ключе \NetLogon\parameters.
ChangeLogSize используется для определения размера журнала изменений в байтах. Так как журнал изменений находится как в памяти, так и на жестком диске (\\winnt\netlogon.chg), то при увеличении размера будет использоваться больше памяти и дискового пространства. Но если ресурсы на PDC настолько ограничены, то модернизация требуется в любом случае. По умолчанию используется 64 Кбайта, что является также минимальным допустимым значением. Этого достаточно приблизительно для 2000 изменений (изменение требует примерно 32 байта), что может показаться достаточно большой величиной, если не рассматривать всех паролей, паролей учетных записей машины, прав, разрешений, членства в группах, новых членов и т.п. В большой организации это количество может быстро исчерпаться, приводя к тому, что новые записи станут перезаписывать еще не синхронизированные изменения. При этом запускается полная синхронизация, создавая ненужный трафик.
Это одно из самых безопасных изменений, которое можно сделать для службы NetLogon. Максимальное значение равно 4194304 (4 мегабайта), что будет поддерживать 131072 изменения в журнале. Это не ухудшит производительность контроллера домена. Увеличение размера сократит число полных синхронизации с BDC. Другая причина для увеличения этого числа возникнет в том случае, когда ожидается, что BDC не синхронизируется с PDC с помощью выделенных 2000 изменений.
DisablePasswordChange по умолчанию равно 0. Это означает, что пароль учетной записи машины должен изменяться каждые три дня и синхронизироваться с одним из PDC. Если машина Windows NT не получает доступа к PDC после изменения пароля, то PDC будет квитировать существующий пароль для следующих трех дней. Через шесть дней, когда компьютер Windows NT попытается аутентифицировать учетную запись машины, пароль не будет совпадать с паролем в базе данных системы безопасности. Это не должно меняться, если только не будут полностью оценены последствия такого изменения. Пароль учетной записи машины используется для защиты против подделки учетной записи компьютера и является поэтому составной частью системы безопасности NT.
Pulse используется для контроля частоты, с которой PDC будет просматривать изменения в базе данных служб каталогов и посылать сообщения "announce change to UAS or SAM" для BDC о том, что требуется обновление. По умолчанию используется значение pulse равное 300 секундам (5 минутам); оно может, однако, принимать максимальное значение 17200 секунд (48 часов). Служба NetLogon собирает изменения SAM и LSA, сделанные во время периода pulse, и посылает сообщение "announce change to UAS or SAM" тем BDC, которым необходимы изменения. Когда служба NetLogon запускается впервые, PDC посылает pulse каждому BDC с учетной записью машины. Кроме того, по достижении значения PulseMaximum PDC будет посылать pulse всем BDC, несмотря на то, нуждаются они в каких-либо изменениях или нет.
В среде, где сетевой трафик следует всемерно экономить, использование pulse каждые пять минут является лишним. Однако изменение этого значения на два дня будет чрезмерным, за исключением очень устойчивых сред. Если увеличить это значение до 172800 секунд, возникает риск истечения срока действия пароля учетной записи машины. Конечно, можно задать ключ DisablePasswordChange, но это риск для системы безопасности, с которым большинство людей не согласятся. Если задать это значение слишком большим, это может привести к полной синхронизации и возникновению трафика, которого пытались избежать. Задание pulse около значения 3600 (один час) или даже 7200 (два часа) приводит к соответствующему сокращению трафика относительно безопасным образом. BDC удаленного офиса можно даже увеличить до 86400 секунд (один день).
PulseConcurrency используется для управления количеством импульсов (pulses), которые будут одновременно посылаться BDC. То есть он управляет количеством BDC, контактирующих одновременно с PDC для проверки базы данных. Если PDC посылает одновременно 10 импульсов (значение по умолчанию для Windows NT 4.0), то одновременно могут соединиться 10 BDC для обновления своей базы данных каталогов. Проблема здесь с полосой пропускания сети и с возможностью PDC обработать множество одновременных RPC, не создавая чрезмерной нагрузки на машину.
Обычно это значение можно увеличивать, не создавая больших проблем. Конечно, если имеются только три или четыре BDC, то можно сократить это число и освободить некоторые ресурсы на сервере. Увеличение PulseConcurrency будет увеличивать нагрузку на PDC, но обычно современные серверы легко справляются с такой нагрузкой. Уменьшение PulseConcurrency увеличит время, которое потребуется домену для распространения всех изменений SAM и LSA на BDC. В большом домене можно сократить это до такой степени, что домен никогда не будет синхронизирован.
PulseMaximum используется для управления частотой, с которой PDC будет посылать сообщения pulse своим BDC, даже если базы данных являются актуальными. По умолчанию используется 7200 секунд (два часа), а максимальное значение PulseMaximum равно 172800 секундам (два дня). Это значение можно задавать для гарантии, что PDC не всегда контактирует с BDC при изменениях. Если PulseMaximum задан как максимум в два дня, возникает риск истечения срока действия пароля учетной записи. Задание его как один день выглядит достаточно безопасным для сети с большим числом BDC в удаленных WAN.
PulseTimeoutl контролирует время ожидания PDC ответа от BDC, когда было послано сообщение "announce change to UAS or SAM". Если BDC не отвечает в течение этого периода, то он считается не реагирующим. Не реагирующий BDC не учитывается числом PulseConcurrency, что позволит соединиться дополнительному BDC. Он сможет затем обновить изменения в базе данных, если кто-то превысит предел PulseTimeoutl. Если, однако, значение PulseConcurrency было увеличено, чтобы включить все BDC, то это не будет иметь никакого значения. По умолчанию на ответ на сообщение pulse дается 10 секунд.
В WAN с медленными каналами связи значение по умолчанию PulseTimeoutl может вызвать проблему, поэтому оно должно быть увеличено до максимума в 120 секунд. Прежде чем делать это, необходимо рассмотреть следующие вопросы. Если имеется большое число BDC, которые необходимо синхронизировать, и PDC должен ждать по две минуты, чтобы объявить каждый из них не реагирующим, то потребуется очень много времени, чтобы закончить частичную синхронизацию. Если число задано слишком маленьким (минимум равен одной секунде), то PDC может считать BDC не реагирующим, когда фактически это не так. Это приведет к возрастанию нагрузки на PDC, когда BDC, наконец, ответит и начнет процесс частичной синхронизации.
PulseTimeout2 определяет время, в течение которого PDC будет ожидать, пока BDC завершит частичную репликацию после ответа на сообщение "announce change to UAS or SAM" от PDC. Если число изменений возрастает (например, в связи с изменениями ChangeLogSize), то BDC будет считаться не реагирующим, пока не продолжит контактировать с PDC для получения дополнительных изменений. По умолчанию используется 300 секунд. Это означает, что когда BDC контактирует с PDC, ему дается дополнительно пять минут, чтобы снова вступить в контакт, иначе он считается не реагирующим.
Если значение PulseTimeout2 задано слишком большим (максимум 3600 секунд), то медленный BDC будет занимать один из слотов PulseConcurrency в течение длительного времени (два часа), увеличивая тем самым время выполнения частичной синхронизации. Если это значение слишком маленькое (минимум равен 60 секундам), то нагрузка на PDC будет увеличиваться в связи с большим числом BDC, выполняющих частичные синхронизации.
ReplicationGoverner применяется для управления долей полосы пропускания, которую может использовать служба NetLogon, при выполнении проверки базы данных. По умолчанию используется значение 100 процентов сетевой полосы пропускания при использовании буфера размером 128 Кбайт данных. Это легко может поглотить весь канал на медленной линии связи между удаленными сайтами WAN. Задавая этот ключ как 50 процентов, тем самым изменяют две вещи. Теперь служба NetLogon будет обладать буфером в 64 Кбайта данных и иметь для сообщений синхронизации 50 процентов полосы пропускания.
Это значение не должно задаваться меньше 25, иначе синхронизация может никогда не закончиться. Однако можно использовать команду AT планировщика команд, чтобы задавать для этого параметра различные значения в течение дня. Например, можно задавать ReplicationGaverner равным 25 днем и равным 100 ночью. Конечно, это следует делать на каждом BDC, но проблема невелика.
