Решаем проблемы удаленных соединений

Применительно к Windows NT она звучала бы так: «Что ты не можешь записать в журнал, тем ты не можешь управлять». Когда стандартных средств мониторинга и протоколирования недостаточно, можно воспользоваться описанными ниже приемами сбора дополнительной информации о работе службы удаленного доступа.

К сожалению, стандартные средства системы мониторинга и диагностики ошибок не дают полной картины происходящего. Это один из первых уроков, которые извлекает администратор NT из работы со службой RAS. Как и при устранении любой проблемы в работе сети, первый шаг в процессе исправления ошибок, связанных с RAS-соединениями, — анализ информации. Сначала следует изучить журналы событий клиента и сервера RAS. При обнаружении записи об ошибке в журнале или при появлении окна с информацией о ней на экране, следует внимательно прочитать текст сообщения — он поможет отыскать источник проблемы. Документ Microsoft «Remote Access Service (RAS) Error Code List» (http://support.microsoft.com/support/kb/articles/q163/1/11.asp) содержит полный перечень сообщений об ошибках, связанных с RAS, их краткое разъяснение и возможные пути исправления. Даже если текст сообщения кажется простым и ясным, я рекомендую свериться с этим документом и провести полный поиск по базе знаний Microsoft, чтобы найти все статьи, имеющие отношение к данному сообщению об ошибке. Это часто бывает полезно, поскольку некоторые сообщения об ошибках RAS могут ввести пользователя в заблуждение.

Журналы событий NT и сообщения об ошибках в работе клиента RAS часто дают ценные подсказки, но их, как правило, недостаточно для устранения проблемы. Если это так, следует включить протоколирование событий RAS.

Журналы часто помогают отыскать причину неисправности, однако стандартный уровень протоколирования событий RAS в NT не обеспечивает сбора полной информации. Чтобы получить полное представление о том, что же происходит при соединении, необходима модификация реестра. Большинство соединений RAS, включая соединения с провайдерами Internet и RAS-серверами Windows 2000 или NT 4.0, используют протокол PPP. За это отвечает компонент службы удаленного доступа raspppen.dll. Эта же библиотека «заведует» протоколированием событий, происходящих при подключении клиента к серверу PPP. Чтобы включить протоколирование событий на компьютере-клиенте или на сервере, нужно с помощью редактора реестра изменить параметр Logging раздела реестра HKEY_ LOCAL_MACHINE SYSTEMCurrentControlSetServicesRasManPPP. Он может принимать следующие значения типа REG_DWORD: 0 — не регистрировать события, 1 — обычный режим протоколирования, 2 — подробное протоколирование. Чтобы изменения вступили в силу, систему необходимо перезагрузить. Если параметр Logging имеет значение 1 или 2, создается файл журнала ppp.log, который расположен в каталоге \%systemroot%system32 as. Если при RAS-подключении возникли проблемы в режиме протоколирования событий, можно посмотреть содержимое журнала ppp.log — это поможет найти причину ошибки. Информация из журнала особенно полезна при диагностике проблем соединения с провайдером Internet, так как технический персонал провайдера хорошо знаком с протоколом PPP и различными стадиями соединения по нему.

Набор документов, описывающих протокол PPP (RFC 1661, 1549, 1334, 1332), можно найти по адресу: http://www.rfc-editor.org.

Пока обсуждение проблем с удаленными соединениями касалось только службы RAS, но не RRAS. Теперь я расскажу, как включить протоколирование событий RRAS и соответствующих устройств.

Режим протоколирования событий протокола PPP включается простым изменением параметра реестра и выбором нужного уровня детализации. Но служба RRAS поддерживает более широкий набор характеристик, чем RAS, поэтому NT предлагает большее число параметров протоколирования. RRAS уникальна в том смысле, что позволяет протоколировать события как на консоль, так и в файл на диске, и включать/выключать отдельные протоколы и настройки. Все параметры протоколирования работы RRAS находятся в разделе реестра HKEY_ LOCAL_MACHINESYSTEMCurrentControlSetServicesTracing. Основной подраздел Tracing содержит один параметр типа REG_DWORD, EnableConsoleTracing, который действует как глобальный переключатель для вывода на консоль всех подразделов Tracing. Итак, для вывода на консоль всех параметров RRAS нужно присвоить параметру EnableConsoleTracing значение 1. Дополнительные подразделы связаны с протоколами и параметрами локального сервера RRAS. В зависимости от конфигурации сервера раздел Tracing может содержать до 28 подразделов. Каждый такой подраздел представляет собой отдельную настройку, протокол или компонент RRAS.

К сожалению, подобного глобального переключателя для вывода сообщений в файл нет, и найти параметр EnableFileTracing в разделе Tracing нельзя. NT поддерживает такую возможность только на покомпонентной основе. Можно включить/выключить вывод на консоль или в файл для индивидуальных компонентов RRAS, изменяя значения параметров EnableConsoleTracing и EnableFileTracing в подразделе, соответствующем данному компоненту.

По умолчанию, система хранит все файлы трассировки событий в каталоге \%systemroot% racing (например, c:winnt racing). Для изменения местонахождения этих файлов можно поменять значение параметра FileDirectory (типа REG_EXPAND_ SIZE) в подразделе, соответствующем выбранному компоненту. Кроме того, при включении протоколирования событий в файл для любого компонента система начинает это делать немедленно. NT даже создает каталог \%systemroot% racing, если его не было раньше. Однако при включении вывода событий на консоль трассировка событий начинается только после перезапуска службы RRAS.

Отладка устройств — последнее, на чем я остановлюсь при обсуждении протоколирования работы службы удаленного доступа. Просмотр команд и ответов на них для устройств удаленного доступа (модемов или ISDN-адаптеров) позволяет быстрее исправить ошибку. Для включения режима протоколирования команд устройства в NT 4.0 следует перейти на вкладку Connections диалогового окна Modems панели управления. В разделе Advanced диалогового окна Properties нужного адаптера необходимо установить флажок Record to Log File. Система NT немедленно создает файл протокола с именем ModemLog модель.txt (где модель — название модели выбранного модема) в каталоге \%systemroot%. В нем содержится детальный перечень команд, которые получает модем во время сеанса, и ответов на них. Там же собирается общая информация о текущем состоянии модема (в частности, его статус). Эта информация бывает полезна, когда требуется выяснить, где прервалось соединение.

Чтобы найти причину неполадки в NT 3.х, можно просмотреть команды модема в файле device.log (например, команды, полученные модемом из файла switch.inf и сценариев). Чтобы включить протоколирование в этот файл, нужно изменить соответствующий параметр реестра и перезагрузить компьютер (более подробную информацию см. в документе Microsoft «Troubleshooting RAS Problems and Using the DEVICE.LOG File», http://support.microsoft.com/support/kb/articles/q102/7/82.asp). Данный метод можно применять и в NT 4.0 для диагностики ошибок в файлах сценариев или при сбоях в работе старых модемов, не имеющих Unimodem-драйвера.

ШОН ДЕЙЛИ
Шон Дейли — один из редакторов журнала Windows NT Magazine и президент компании iNTellinet Solutions, занимающейся консалтингом и сетевой интеграцией. Имеет звание MCSE. Последней из его книг была «Optimizing Windows NT», выпущенная издательством IDG Books. С ним можно связаться по адресу электронной почты: sean@ntsol.com.