Невозможно выполнить ping на виртуальную машину на другом компьютере, даже при наличии записи в таблице маршрутизации

Невозможно выполнить ping на виртуальную машину на другом компьютере, даже при наличии записи в таблице маршрутизации

У меня есть 2 компьютера. На компьютере A запущена виртуальная машина, которая находится за NAT. Компьютер B просто хочет выполнить PING этой виртуальной машины. Я знаю, что виртуальная машина за NAT должна быть недоступна извне, поэтому NAT там и есть. Мой эксперимент — просто узнать, как все это работает.

IP компьютера A: 192.168.1.105

IP виртуальной машины на компьютере A: 172.16.66.132

IP компьютера B: 192.168.1.107

Насколько я понимаю, компьютер B не может выполнить команду PING виртуальной машины, поскольку не знает, как туда попасть, и пытается сделать это через маршрутизатор (192.168.1.1), что не удаётся, поскольку маршрутизатор затем подключается к Интернету (что я проверил с помощью tracert).

Я подумал, что могу изменить это, добавив пользовательскую запись в таблицу маршрутизации на компьютере B. Итак, я это сделал:

route add 172.16.66.0 MASK 255.255.255.0 192.168.1.105

Правило выше сообщит компьютеру B, что сеть 172.16.66.0 доступна через 192.168.1.105 (который является IP-адресом компьютера A).

Результат? Никаких изменений. Я даже увидел, что при пинге виртуальной машины моя пользовательская запись была удалена из таблицы.

Почему мое решение не работает?

решение1

Команда route addнеэффективна, и маршрут, вероятно, удален, поскольку он был протестирован и оказался недействительным.

Причина в том, что у вас ситуация двойного NAT: программное обеспечение виртуальной машины, которое вы используете, имеет свой собственный виртуальный маршрутизатор, который выполняет DHCP и NAT для виртуальных машин. У хост-компьютера нет маршрута к этому виртуальному маршрутизатору, поэтому он не может ничего пересылать.

Я предлагаю в этом случае определить виртуальную сеть как Bridged вместо NAT.

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