Подключите внешний IP к автономной виртуальной машине qemu

У меня очень специфическая проблема. Чтобы сообщить Вам, чем я занимаюсь, я опишу всю инфраструктуру моей системы.

У меня есть хост-машина Ubuntu, на которой я запускаю до 4 виртуальных машин Ubuntu. Они размещены на qemu (автономно, без внешних менеджеров). На одном из них мне нужно установить "агент", который написан на Java. Агент подключается к контроллеру машины, который находится где-то во внешней сети. Для каждой виртуальной машины у меня есть интерфейс TAP. Все они подключены к хосту для обеспечения связи между виртуальными машинами.

Теперь мне нужно как-то соединить внешний IP-адрес с виртуальной машиной с агентом на ней. Я могу запустить агент с адресом интерфейса NIC (например, 192.168.100.4) или на локальном хосте (127.0.0.1). Контроллер может видеть его, но мне нужно, чтобы он отображался по внешнему IP-адресу моего хоста, а не по локальному.

     |---------|     |---------|     |---------|     |---------|     
     |  VM 1   |     |  VM 2   |     |   VM 3  |     |  VM 4   |
     |  eth0   |     |  eth0   |     |   eth0  |     |  eth0   |
     |---------|     |---------|     |---------|     |---------| 
           \              \               /               /
            \              \---|    |----/               /
             \       |-------------------------|        /
              \------|   tap1 tap2 tap3 tap4   |-------/
                     |     \   |    |    /     |
                     |      \--vmnet1---/      |
                     |                         |
                     |          HOST           |            |---------|  
                     |                     em1 |------------| network |
                     |-------------------------|            |---------|

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

Если у вас есть идеи, как это сделать, я буду очень признателен за любую помощь!:)

0 ответов

Другие вопросы по тегам