Я пытаюсь настроить действительно простую топологию сети, включая два Ubuntu 16.04 в качестве двух хостов, как показано ниже:

VM1 <-> VM2

Обе виртуальные машины подключаются к сети только для хоста VirtualBox со статическим IP-адресом (10.0.0.1 и 10.0.0.2). Задача здесь состоит в том, что VM2 отправляет VM1 пакет с поддельным IP-адресом (например, 10.0.0.3) и получает возвращаемый пакет. Отправка поддельного пакета - это легко, но я не знаю, как получить возвращаемый пакет, потому что он будет отправлен на поддельный адрес.

Я думаю о том, чтобы другая VM действовала как маршрутизатор в середине:

VM1 <-> Маршрутизатор <-> VM2

но не знаете, как перенаправить весь исходящий трафик с VM1 на VM2?

Буду признателен за любую подсказку, в том числе и за исходную проблему, потому что я застрял на несколько дней и, как ни странно, нет связанных вопросов

1 ответ1

0

То, что вы делаете, нарушает сетевые соглашения, я уверен, вы знаете. Для того чтобы получить желаемое поведение, вам нужно больше подделать. Проблема, скорее всего, в протоколе разрешения адресов (ARP). У вас есть IP-адреса, и у вас есть MAC-адреса, и ARP переводит между ними. Больше подробностей в ответе дефалта здесь. Вам необходимо подделать ответ ARP на «у кого есть 10.0.0.3», чтобы 2 считал, что MAC-адрес 1 - это MAC-адрес 3-го. Тогда вы получите пакет в 1. Я не проверял, но что произойдет, если вы настроите 2 IP-адреса на интерфейсе 1? Это может быть самый простой способ.

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