Пинг работает только в одном направлении

Пинг работает только в одном направлении

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

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

Моя проблема в том, что машина C не может выполнить ping до машины B. Выдается сообщение «Узел назначения недоступен».

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

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

Спасибо !

решение1

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

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

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

Что стоит попробовать:

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

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

решение2

Когда вы говорите "It says Destination Host Unreachable", какой IP-адрес устройства, которое сообщает об этом? Я имею в виду, что в выводе ping вы получаете что-то вроде:

От xxxx icmp_seq=2 Хост назначения недоступен

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

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

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

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