У меня есть виртуальная машина, работающая в VMWare Player v6. Тип сети - NAT. Приложение на моей виртуальной машине отправляет пакеты UDP на сервер в сети хост-машины, и ему необходимо получить ответ UDP от сервера, с которым вы связались.

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

Я измеряю сетевой трафик в режиме NAT и вижу, что пакеты UDP покидают виртуальную машину и отправляются с преобразованным IP-адресом на сервер. Сервер ответил пакетом обновления на ip хоста, но виртуальная машина не получила пакет

Итак, мой вопрос, возможно ли для NAT vm получать трафик UDP?

3 ответа3

1

Проблема, как вы подозреваете, заключается в NAT. Это взлом, а не правильно разработанная технология.

В частности, что не так, так это то, что TCP ориентирован на соединение, а NAT играет с каждым соединением. С UDP нет соединения и нет достойного решения NAT. Существует некоторая эвристика, которая заставляет некоторые вещи работать, в частности угадывание на основе портов, но сбой UDP с NAT не является чем-то необычным. В вашем случае NAT VMWare просто не догадывается, что возвращенный пакет UDP предназначен для виртуальной машины.

1

Ваша ситуация ничем не отличается от обычного пользовательского опыта за их маленькими домашними маршрутизаторами. Задача NAT - предоставить маршрутизатору именно это: переводить сетевые адреса между реальным Интернетом и внутренней сетью ("преобразование сетевых адресов"). Но, увы, точно так же, как обычные пользователи за своими маленькими домашними маршрутизаторами: для соединения, входящего в натированную сеть, вы должны четко указать маршрутизатору, куда будут перенаправляться определенные входящие порты ("portforwarding"). Вы можете настроить переадресацию портов в "Vmware Network Editor", посмотрите изображение, чтобы понять, что искать:

vmware сетевой редактор - nat

В дополнение к этому: посмотрите официальные документы vmware и соответствующие сайты:

0

Если у вас есть частная локальная сеть (да, WiFi - это локальная сеть), вам следует рассмотреть возможность переключения сетевого адаптера виртуальной машины на bridged . Тогда виртуальная машина будет работать как обычный ПК в вашей сети (используя интерфейс Ethernet вашего хоста).

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