
У меня есть небольшой кластер под управлением 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 одновременно.