Передача данных в режиме multicast из VirtualBox на разные сетевые интерфейсы
На физическом хоте (OS Windows) установлен VirtualBox c OS Linux (Ubuntu 20.04). В Ubuntu установлен Docker, в котором и запускаю Java приложение. Оно отправляет по сети на другой компьютер пакеты по протоколу udp в режиме multicast по адресу 224.1.1.244 и порту 53000. Контейнер с этим приложением запускаю через docker-compose.
services:
upload-srv:
image: ${SERV_IMAGE_STEND}
networks:
- es-serv-network
network_mode: "host"
restart: unless-stopped
container_name: es-serv-v01
volumes:
- /home/es-serv:/home/es-serv
ports:
- "5003:5003"
upload-web:
image: ${WEB_IMAGE}
networks:
- es-serv-network
restart: unless-stopped
container_name: es-serv-web-v01
ports:
- "7001:80"
...
networks:
es-serv-network:
VirtualBox перевожу в режим моста выбираю нужный интерфейс и с помощью указания network_mode данные идут в этот интерфейс. Данная схема работает.
Но в дальнейшем планируется запуск нескольких таких приложений (точнее 10) и каждое из них должно отправлять данные в свой сетевой интерфейс в режиме multicast. Вопрос, как это можно реализовать?
У меня пока что одна мысль для каждого создавать свою виртуалку, подключать ее на свой сетевой интерфейс по которому пойдет поток с данными. А можно как-то сделать, чтобы все эти приложения работали в одной виртуалке?
Приложения не очень сложные, особой нагрузки на сервер не будет. А вот создавать 10 виртуалок, каждой надо выделить память ресурсы. А сервер у нас не особо мощный. Даже не знаю потянет он столько.
В Docker есть режим работы сети macvlan. А он мен ни как не поможет? Если бы Docker был установлен на хосте, а не в VirtualBox, тогда можно было каждый контейнер повесить на свой сетевой интерфейс и это должно было работать. Если я правильно понял режим сети macvlan. А вот когда Docker установлен внутри VirtualBox, то я даже не знаю как тут задать сетевые интерфейсы, которые расположены на хосте.