Какую методику следует применять при диагностике причин, по которым сервер недоступен с помощью ping?

Какую методику следует применять при диагностике причин, по которым сервер недоступен с помощью ping?

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

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

Спасибо

решение1

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

  1. Запрос ping не доходит до целевого хоста
  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}это будет NIC на локальной машине или шлюз машины. Сообщение означает, что не удалось найти маршрут между {host}хостом и принимающим хостом (я могу ошибаться)

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

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

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

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

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

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

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

решение2

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

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

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

решение3

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

Окна: http://www.pingplotter.com/freeware.html путь

Линукс: http://en.wikipedia.org/wiki/MTR_%28software%29

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

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

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

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

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

Некоторые из этих ошибок можно увидеть с помощью netstat:

нетстат -S

или постоянно следя за ним, если вы супер-ботаник:

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

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

решение4

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

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

Связанный контент