1

У меня есть небольшой кластер с запущенными Centos 7, состоящими из машин A, B и C. Все они являются отдельными физическими машинами, подключенными к одной локальной сети.

Машина A может пропинговать B и C. Машина B может пропинговать A и C. Однако машина C может пропинговать только машину A.

Моя проблема в том, что машина C не может пропинговать машину B. Она говорит, что хост назначения недоступен.

Я попытался изменить сетевой коммутатор, изменить Ethernet, отключить брандмауэры и SELinux на всех машинах, и проблема остается. Я также проверил IP-адрес и файл /etc /hosts, чтобы убедиться в их совместимости.

Мне интересно, что я мог бы попытаться помочь диагностировать причину этой проблемы.

Спасибо !

2 ответа2

1

Пингуете ли вы по имени машины или по IP-адресу, или это одинаково в обоих направлениях?

Есть ли на этих машинах маршрутизация (несколько сетевых карт)?

Я предполагаю, что когда вы говорите, что они находятся в одной локальной сети, вы имеете в виду, что каждая машина использует одну и только одну сетевую карту, подключенную к одному и тому же коммутатору, и что между ними нет маршрутизаторов. Я также предполагаю, что они находятся в одной логической подсети IP. Если это неправильно, пожалуйста, дайте более подробную информацию в вопросе. У меня есть основания полагать, что эти предположения не на 100% верны.

Вещи, чтобы попробовать:

  • Сначала пинг по IP-адресу. Это исключит проблемы с разрешением имен. Если это успешно, то у вас, вероятно, проблема разрешения имен (например, DNS-сервер не согласен с файлом hosts).
  • Проверьте маску подсети вашего интерфейса на каждой машине. Если они не совпадают, это может произойти при некоторых обстоятельствах.
  • Проверьте наличие нескольких шлюзов. Машина C может иметь более одного определенного. Это не должно быть проблемой, если они находятся в одной IP-подсети. Хост назначения сообщения недоступен, подразумевает, что он знает адрес того, что он пытается пропинговать, но, похоже, не может получить его с определенными маршрутами.

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

1

Когда вы говорите «Это говорит о том, что хост назначения недоступен», каков IP-адрес устройства, сообщающего об этом? Я имею в виду, что в выводе ping вы получите что-то вроде:

From xxxx icmp_seq = 2 Узел назначения недоступен

Так что же это за хххх в этом выводе? Это, вероятно, собственный IP-адрес C, но стоит проверить.

Если это собственный адрес C, то это обычно означает, что у него нет B в таблице ARP и он не получает ответ на запрос ARP. Для подтверждения проверьте вывод «arp -a» (во время выполнения пинга или сразу после остановки пинга), показывает ли он строку с IP-адресом B и своим MAC-адресом, строку с IP-адресом B и « неполный "или вообще не соответствует IP Б?

Также может помочь запуск перехвата пакетов с использованием, например, tcpdump или wireshark, чтобы увидеть, что на самом деле происходит в сети при запуске ping. Может быть даже более полезно получить 2 захвата на B и C одновременно.

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