3

Я нахожусь в защищенной сети, которая дает IP-адреса только зарегистрированным устройствам. Я могу зарегистрировать свой ноутбук, компьютер под управлением Windows и RPI, но не все виртуальные машины на этом ноутбуке, поэтому я думаю, что мостовой адаптер не вариант. Я хотел бы иметь возможность общаться между RPI и VM.

Пока я пробовал это:

У меня есть 3 объекта: (1) хост Windows, с IP 134.58.46.117 (2) гостевая виртуальная машина Linux Virtualbox Linux, настроенная, например, с сетью NAT и адаптером только для хоста. у него есть IP 10.0.2.15 для eth0 и IP 192.168.56.102 для eth1 (3) RPI для Jessie, с IP 134.58.46.172 для eth0.

Я могу пинговать 192.168.56.102 с хоста Windows. Я могу пропинговать Хост Windows из RPI. Я могу пропинговать RPI с хоста Windows. Я настроил RPI со следующим маршрутом:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    134.58.46.117   255.255.255.0   UG    0      0        0 eth0

Когда я проверяю связь с виртуальной машиной с помощью RPI (поэтому выполняю команду «ping 192.168.56.10»), я не получаю ответа.

Wireshark на хосте Windows , действительно обнаруживает пакеты от 134.58.46.172 с назначением 192.168.56.102 однако, но ничего не возвращается.

Любая подсказка, в чем проблема? Или другой способ сделать то, что я хочу?

1 ответ1

2

Вам нужно два шага, чтобы это работало:

  1. Во-первых, вам нужно разрешить пересылку IPv4 на компьютере с Windows. Это позволит ему перемещать пакеты с одного интерфейса на другой. Инструкции для этого зависят от используемой версии Windows, например, для XP вы можете использовать эту ссылку, а для Windows 10 вы можете использовать эту другую ссылку. В любом случае, Google Windows YourVersion IPv4 переадресация для получения дополнительной информации. В любом случае, это просто вопрос изменения записи в реестре Windows, хотя точный ключ меняется в зависимости от версии Windows.

  2. Вам нужно указать компьютеру Linux использовать хост Windows в качестве шлюза для RPI. Это можно сделать с помощью следующей команды:

    ip route add RPI_IP_ADDRESS/32 via WINDOWS_HOST_IP_ADDRESS
    

    Это гарантирует, что пакеты могут проходить в противоположном направлении с заголовками гостевой виртуальной машины Linux: таким образом они распознаются как соответствующий ответ на диалоги, начатые RPI. Если вы не используете это, заголовки пакетов будут изменены, чтобы отражать IP-адрес хоста Windows, что означает, что RPI будет получать ответы, отличные от того, на который он записал.

Это все.

РЕДАКТИРОВАТЬ:

со ссылкой на комментарий:

дайте вашему гостю Linux поддельный MAC-адрес, который имеет доступ к вашей локальной сети. Используйте RPI для прослушивания разговоров с помощью tcpdump -i eth0 -n arp. Это будет отображать количество MAC-адресов, которые присутствуют в вашей сети. Измените MAC-адрес вашего гостя Linux с помощью macchanger, указав тот, который вы только что узнали. Теперь используйте Bridge-адаптер для гостя Linux. Это будет работать как шарм. Кроме того, вы можете подумать о приобретении компьютера с реальной ОС, поскольку то, что вы пытаетесь сделать, довольно сложно. Там не хватает окон.

  1. кража адреса не мешает подключению другого парня: пакеты нумеруются, если ваш компьютер получает неверно пронумерованный пакет, он просто отбрасывает его.

  2. вы делаете его постоянным при загрузке следующим образом: на ВМ (я предполагаю, что вы работаете в Debian или производных Ubuntu/Mint, ..., если нет, это синхронизация для адаптации того, что следует, к тому, что вы используете), отредактируйте /etc/ сеть / интерфейсы и вставьте следующее (предполагая, что eth1 является интерфейсом для подключения):

    auto eth1
    iface eth1 inet dhcp
             pre-up macchanger -m XX:XX:XX:XX:XX:XX eth1
    

и это все.

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