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

Устранение проблем с веб-сайтом в локальной сети

Иметь внешний веб-сайт, который на одних компьютерах открывается нормально, а на других, кажется, истекает время ожидания (или признаки истечения времени ожидания, но на самом деле этого не происходит).

Кажется, влияет только на (некоторых) из наших новых Рабочие станции HP Pro 3305 MT. Все они работают под управлением Win7 32bit SP1 со всеми обновлениями. Старые ПК (Win7 32bit SP1 и WinXP) не затронуты.

Использование Google Chrome и Firefox не имеет значения. Открытие веб-сайта в режиме совместимости с IE9 имеет точно такие же симптомы.

Все ПК находятся в одной локальной сети (рабочей группе) с использованием одного и того же DNS-сервера и шлюза (внутреннего) с одним подключением к Интернету в одной подсети. Отсутствует прокси-сервер, фильтрация содержимого, балансировка нагрузки и т. Д. Только действующая групповая политика (локально) предназначена для планирования обновлений. Все локальные брандмауэры одинаковы (Kaspersky WP4), а наш внешний брандмауэр не имеет специальных настроек IP.

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

Обновить: Используется Fiddler2 для мониторинга HTTP-запроса, кажется, он по какой-то причине не выполняется ?!

Запрос отправлен:

GET http://www.rhs.org.uk/ HTTP/1.1
Host: www.rhs.org.uk
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Журнал от Fiddler 2 запроса:

This session is not yet complete. Press F5 to refresh when session is complete for updated statistics.

Request Count:   1
Bytes Sent:      567        (headers:567; body:0)
Bytes Received:  0      (headers:0; body:0)

ACTUAL PERFORMANCE
--------------
ClientConnected:    17:02:33.720
ClientBeginRequest: 17:02:39.118
GotRequestHeaders:  17:02:39.118
ClientDoneRequest:  17:02:39.118
Determine Gateway:  0ms
DNS Lookup:         0ms
TCP/IP Connect: 46ms
HTTPS Handshake:    0ms
ServerConnected:    17:02:39.165
FiddlerBeginRequest:    17:02:39.165
ServerGotRequest:   17:02:39.165
ServerBeginResponse:    00:00:00.000
GotResponseHeaders: 00:00:00.000
ServerDoneResponse: 00:00:00.000
ClientBeginResponse:    00:00:00.000
ClientDoneResponse: 00:00:00.000


RESPONSE BYTES (by Content-Type)
--------------
~headers~:  0

Журнал успешного запроса от работающего ПК (сделано сегодня утром, извините, что временные метки отличаются от указанных выше):

Request Count:   1
Bytes Sent:      493        (headers:493; body:0)
Bytes Received:  20,413     (headers:525; body:19,888)

ACTUAL PERFORMANCE
--------------
ClientConnected:    08:22:47.766
ClientBeginRequest: 08:22:47.766
GotRequestHeaders:  08:22:47.766
ClientDoneRequest:  08:22:47.766
Determine Gateway:  0ms
DNS Lookup:         26ms
TCP/IP Connect: 30ms
HTTPS Handshake:    0ms
ServerConnected:    08:22:47.828
FiddlerBeginRequest:    08:22:47.828
ServerGotRequest:   08:22:47.828
ServerBeginResponse:    08:22:48.905
GotResponseHeaders: 08:22:48.905
ServerDoneResponse: 08:22:48.905
ClientBeginResponse:    08:22:48.905
ClientDoneResponse: 08:22:48.905

    Overall Elapsed:    00:00:01.1388020

RESPONSE BYTES (by Content-Type)
--------------
text/html:  19,888
~headers~:  525

Итак, мой вопрос превратился в:

В чем разница между двумя запросами и как определить, почему 1 компьютер не получает ответ на свой запрос GET?

Обновление 2:

Смотрите мой ответ ниже. Я вполне могу принять это в будущем, но, не имея возможности воспроизвести проблему (или исправление), я хотел бы оставить этот вопрос открытым.

Я никогда раньше не использовал Fiddler, но на основании того, что "ServerGotRequest" не установлен в сценарии сбоя, подразумевает одно из трех:

  1. Сервер не получил полного запроса от рабочей станции (т.е. HTTP GET не завершен)
  2. Сервер получил запрос, но не ответил из-за ошибки или другой проблемы на сервере.
  3. Сервер ответил, но ответный пакет не вернулся.

Я знаю, что это размещенный сервер, есть ли у вас доступ для просмотра журналов сервера или возможность запускать на нем сниффер (например, WireShark) для сбора данных во время тестирования? Если да, просмотрите файлы журнала сервера на предмет ошибок и запускайте сниффер, пока не получите сценарий отказа на рабочей станции, затем посмотрите, получил ли сервер полный ответ и попытался ли он ответить.

После этого проверьте журналы брандмауэра Kapersky, чтобы увидеть, не отбрасывает ли он какие-либо пакеты. Можно ли установить сниффер перед брандмауэром и посмотреть, доходит ли ответ от сервера? Если он добрался до брандмауэра, а Касперский не заметил, что что-то уронил, можно с уверенностью предположить, что он прошел.

Во время этих тестов я бы предложил запустить WireShark на одной из отказавших машин. Он покажет исходящие соединения, плюс он также должен показать все ответы, которые получает NIC. Если это проблема с сетевым адаптером, трассировка сниффера должна показывать получаемый пакет, и оттуда вы можете определить, требует ли это обновления сетевого адаптера и / или драйвера.

Поскольку вы не можете прикрепить сниффер к внешней стороне вашего брандмауэра, вам нужно будет работать с вашим интернет-провайдером, чтобы он установил мониторинг пакетов, покидающих ваш маршрутизатор, но никогда не получающих ответа.

После того, как интернет-провайдер подтвердит или опровергнет вашу гипотезу о том, куда направляются пакеты, есть два варианта: Вариант 1: пакет попадает на брандмауэр, но НЕ выходит к провайдеру во время неудачной попытки веб-подключения. Вариант 2: пакет проходит через брандмауэр в сеть провайдера, но ответа не приходит.

Вариант 1 может быть самым простым - заменить и / или переустановить брандмауэр, если это возможно. Если это устройство, предоставленное интернет-провайдером, вы захотите, чтобы они сохранили текущую конфигурацию, но применили очень простую конфигурацию в новой системе, чтобы убедиться, что это не проблема, связанная с конфигурацией.

Вариант 2 был бы хорош, потому что он заставляет их решить проблему, но если у них нет времени разобраться, вы застряли с их ответом. В этом случае может случиться так, что он покидает их сеть и переходит к их интернет-провайдеру, который попадает в целую банку червей, пытающихся отследить место смерти пакета.

Если вы хотите узнать разницу в запросе HTTP GET, загрузите ZAP (Zed Attack Proxy) из OWASP или другого прокси, который позволит вам проверять каждый пакет перед его отправкой на сервер. Это ответит на вопрос «в чем разница между двумя запросами».

Если запросы совпадают, попробуйте другой сетевой адаптер.

Скорее всего, ваш сетевой адаптер уже установлен. Попробуйте установить PCI NIC с соответствующими драйверами и посмотрите, сможете ли вы их получить. Похоже, на данный момент проблема с оборудованием / драйверами.

Я бы сравнил маски сети и адреса шлюзов на проблемных системах и сравнил их с рабочими системами.

Я видел проблему раньше, и это была причина - неправильный (но все еще несколько рабочий) адрес шлюза.

Можете ли вы подтвердить, что ниши в рабочих машинах и неработающих принадлежат одной и той же марке / модели. Также не могли бы вы подтвердить, что ваш ipv6 одинаков на всех машинах (во внутренней сети я бы вообще отключил ipv6). Также в качестве последней проверки - убедитесь, что в файле хоста нет ничего, что могло бы остановить доступ к сети (c: \ windows \ drivers \ etc)

Тот факт, что вы исключили браузер и оборудование (используя live cd), заставляет меня думать, что это должно быть связано с сетевым адаптером.

Если все это не удается - обязательно замените жесткие диски и посмотрите, связана ли проблема с жестким диском или ником.

Начнем с основ - у вас есть две разные серии машин, которые, вероятно, имеют две разные серии сетевых карт. Настроены ли обе стороны на автосогласование, и если да, то согласовывают ли они подходящую скорость? Попробуйте жестко запрограммировать обе стороны в качестве эксперимента, чтобы увидеть, улучшится ли это вообще (... или, если это жестко запрограммировано на любой из сторон в настоящее время, позвольте обеим сторонам договориться).

Есть большой разрыв между

ClientConnected:    17:02:33.720

...и...

ClientBeginRequest: 17:02:39.118

Либо вы теряете пакеты, либо программное обеспечение безопасности на стороне клиента не работает. Тестирование первого с помощью Wireshark тривиально - и даже если вы не видите меньше пакетов (повторных передач), вы можете определить направленность введенной задержки.

На сегодняшний день эта проблема «исправлена».

Я работал (по электронной почте) с Пирс Карсенбарг по нескольким различным путям разрешения, все безрезультатно. На веб-сайте ничего не изменилось, и на машинах ничего не изменилось, кроме некоторых обновлений Windows. Не могу отблагодарить Пирса за то, что он вмешался в проблему и потратил много времени на ее решение!

Пирс связал меня с этот у которого есть все симптомы (но ни одна из причин) на этих машинах (т.е. нет шрифтов типа 1). Но это является возможно обновление Windows (или некоторое обновление Adobe) фиксированный проблема - я думаю заменил или удалил шрифты Type 1. Дополнительную информацию можно найти Вот и Вот.