2

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

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

Спасибо

4 ответа4

2

Неудачный пинг означает, что либо:

  1. Пинг-запрос не переходит на целевой хост
  2. Ping-ответ не передается хосту, отправившему запрос

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

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

Физические проверки

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

Проверка программного обеспечения

  1. Убедитесь, что сетевые карты на каждом компьютере распознаются операционной системой. [1]
  2. Убедитесь, что обе машины имеют действительный IP-адрес, маску подсети, шлюз и конфигурацию сервера имен. [2]
  3. Убедитесь, что отправляющий и принимающий хосты имеют действительные MAC-адреса (да, у меня была эта проблема раньше) [3]
  4. Убедитесь, что отправляющий и принимающий хосты имеют правильную информацию кэша ARP для своих шлюзов [4]
  5. Существует вероятность того, что отправляющий узел будет иметь запись кэша ARP для принимающего узла или наоборот. Если такие записи существуют, убедитесь, что эти записи являются правильными, проверив, что IP-адрес отображается на правильный MAC-адрес. Если есть несоответствия, удалите эти записи из кэша ARP
  6. Убедитесь, что ping-пакеты (эхо-запросы ICMP и эхо-ответы ICMP) не блокируются фильтрами на локальных программных брандмауэрах или фильтрами, работающими на устройствах между отправляющим и принимающим хостом.
  7. Если вы используете имя хоста для идентификации принимающего хоста, попробуйте использовать IP-адрес напрямую, так как это устранит проблемы, возникающие в процессе разрешения имен.

Сообщение об ошибке, возвращаемое командой ping, также следует учитывать при устранении неполадок. Обычно я вижу следующие сообщения об ошибках:

Request Timed Out

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

Reply from {host}: Destination network unreachable

Часто {host} будет сетевой картой на локальной машине или шлюзом машины. Сообщение означает, что не удалось найти маршрут между {host} и принимающим хостом (я могу ошибаться здесь)

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

Сноски ниже относятся к системам на базе Windows NT, так как здесь у меня есть опыт,

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

Проверьте узел вашей сетевой карты под узлом сетевого адаптера, при условии, что ваша карта есть в списке, дважды щелкните его и проверьте все известные ошибки, перечисленные в разделе «Состояние устройства».

[2] Доступ к диалоговому окну конфигурации TCP/IP в Vista / Win 7 можно получить, открыв Центр управления сетями и общим доступом -> Изменить настройки адаптера (левая панель) -> щелкните правой кнопкой мыши по нужному адаптеру и выберите Свойства (требуется повышение прав). а затем дважды щелкните по протоколу TCP/IP версии 4 или 6 в зависимости от того, что вы используете (скорее всего, v4)

[3] при запуске команды ipconfig /all будет отображаться MAC-адрес, а также IP-адрес, маска подсети, шлюз и серверы имен. MAC-адрес помечен как физический адрес на выходе

[4] Команда ARP -a отображает текущую таблицу ARP для хоста.

1

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

Windows:http://www.pingplotter.com/freeware.html pathping

Linux:http://en.wikipedia.org/wiki/MTR_%28software%29

Эти инструменты могут помочь вам сказать, что 5-й прыжок - это тот, где дела сходят с ума, и тогда вы можете устранить неполадки только с этим прыжком.

Иногда в сетях вам нужно найти, какое устройство вызывает медленные ответы, и вы не можете найти его во время одного пинга. Эти инструменты помогают идентифицировать его по серии пингов, сохраняя "счет" и показывая вам график.

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

Помимо отличного и подробного ответа выше, убедитесь, что сетевой адаптер использует правильные скорости ссылок:

В Windows вы можете просматривать графический интерфейс в свойствах сети, а в Linux вы можете использовать "ethtool". Если для хостов по обе стороны от маршрутизатора / коммутатора установлено значение 10 МБ и полудуплекс, а для маршрутизатора / коммутатора установлено значение 100 МБ в полнодуплексном режиме, это приведет к появлению странных ошибок (например). Это чаще встречается на новой установке, чем на установленной системе.

Вы можете увидеть некоторые из этих ошибок, используя netstat:

netstat -S

или постоянно контролируя это, если вы супер ботаник:

для /L% i в (0,0,0) do @cls && netstat -S | find /I "Ошибка" && @ping -n 1 -w 2000 224.0.0.0> NUL && @cls

Если у вас есть ошибки, это не имеет большого значения, однако, если у вас появляется все больше и больше ошибок в секунду, это, скорее всего, проблема с оборудованием / кабелем / скоростью / дуплексом.

1

Просто чтобы добавить к предыдущему ответу :

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

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

0

Если ping не работает, вот что я делаю:

  • Убедитесь, что имя соответствует правильному IP-адресу - часто это проблема не с серверами, а с ноутбуками коллег и т.д.
  • Если я уверен, что IP правильный, я использую tracert, чтобы проверить, как далеко я доберусь.
  • Если я не уверен, что сервер, на который я пытаюсь пинговать, реагирует на сообщения ICMP, я использую telnet, чтобы открыть порт на сервере и посмотреть, что он мне говорит.
  • Я проверяю, может ли сотрудник получить доступ к серверу со своего ПК.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .