Как можно создать виртуальную сеть между виртуальными машинами, используя только IP-адресацию, без управления своим собственным подсетями для каждой виртуальной машины и без необходимости настройки маршрутизации между ними на хосте?
Для создания виртуальной сети между виртуальными машинами с использованием только IP-адресов, можно использовать технологию Virtual Ethernet Bridge (VEB) или просто мост. В этом случае вам не нужно будет настраивать подсети для каждой виртуальной машины и настраивать маршрутизацию между ними на хосте. Для создания моста между виртуальными машинами, вам необходимо выполнить следующие шаги: 1. Убедитесь, что на хостовой машине установлен и настроен пакетов iproute2. 2. Создайте новый bridge, например `br0`, с помощью команды: ``` sudo ip link add name br0 type bridge ``` 3. Добавьте к bridge интерфейсы ваших виртуальных машин (например, eth0 и eth1): ``` sudo ip link set eth0 master br0 sudo ip link set eth1 master br0 ``` 4. Назначьте IP-адрес bridge (br0), например: ``` sudo ip addr add 192.168.1.1/24 dev br0 ``` 5. Настройте IP-адреса для ваших виртуальных машин с использованием subnet 192.168.1.0/24. 6. Проверьте подключение между виртуальными машинами, отправив пакеты между ними. Это позволит виртуальным машинам обмениваться данными напрямую через bridge по IP-адресам без необходимости настройки маршрутизации на хостовой машине. Этот метод удобен в случае, когда требуется создать простую виртуальную сеть для тестирования или разработки.
QEMU эмулирует компьютер с устройствами . Так как в виртуальной машине эмулируется сетевая карта Ethernet, то и на ответной стороне тоже ожидается что-то с поддержкой Ethernet.
Подключайте сеть по иному L2-каналу, например, по серийному порту через PPP, а на хосте у вас будет pppd, ожидающий соединение на противоположной части порта. Протокол PPP не туннелирует Ethernet.
А откуда возьмутся IP, если не будет ни tap ни бриджа(читай свитча) ?
"как получить 220 вольт без розетки и проводов?
Ведь электроны есть везде, и провод тут явно лишний...."
Увы, но IP пакет сродни контейнеру,, т.е. коробки или упаковки, а Ethernet, atm, ppp и т.д. таки транспорт для этих контейнеров.
Контейнер без транспорта, при всей своей виртуальности, сам по себе перемещаться не может.
Так что хотя бы виртуальный транспорт вам будет нужен.
Кстати, в вашей постановке гораздо проще выбросить IP
Просто паковать напрямую в в фреймы.
Есть протоколы, которые для повышения эффективности именно так и работают.
У virtualbox есть понятие internal network, когда внутренняя сеть никак в хост систему не выходит и остается внутри (можно создать несколько таких сетей), для подключения к этой сети одну из виртуальных машин в этой внутренней сети можно выбрать роутером, добавив ей интерфейс, связанный бриджем уже с хостовым.
Про qemu. Сам я это не пробовал но если я верно понимаю, VDE это то что нужно (весь этот функционал плюс еще куча всего). Как я понимаю VDE в qemu уже включен . Например можно объединить снаружи виртуалки через сокет (ключи -unix control-socket и vde-plug [-p port] [socketname] ), в т.ч. с соседней на основе другой технологии (в документации речь идет про User Mode Linux)