Как создать виртуальную сеть на уровне IP?
Как создать вирт. сеть между вирт. машинами на уровне LAN -- довольно ясно, вирт. сетевые адаптеры (tap), к ним цепляются вирт. машины, все адаптеры кучкой цепляются к специально созданному хостовому bridg'у, внутри работает вирт. LAN, всякие там ARP и проч.
Однако есть чувство, что уровень LAN тут лишний. Отсюда вопрос. Как такое соорудить на уровне только 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)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания виртуальной сети на уровне IP можно использовать технологию Virtual Private Network (VPN). VPN позволяет устанавливать защищенное соединение между различными узлами сети через интернет.
Существует несколько способов создания виртуальной сети на уровне IP. Один из наиболее популярных способов - использование протокола OpenVPN. Для этого необходимо установить и настроить сервер OpenVPN на одном из узлов сети, а затем настроить клиентское соединение на другом узле.
Пример настройки сервера OpenVPN на Linux:
sudo apt-get update sudo apt-get install openvpn easy-rsa cd /usr/share/easy-rsa ./easyrsa init-pki ./easyrsa build-ca ./easyrsa gen-dh ./easyrsa gen-req server nopass ./easyrsa sign-req server server openvpn --genkey --secret ta.key
Далее необходимо настроить файл конфигурации сервера /etc/openvpn/server.conf:
port 1194 proto udp dev tun ca /usr/share/easy-rsa/pki/ca.crt cert /usr/share/easy-rsa/pki/issued/server.crt key /usr/share/easy-rsa/pki/private/server.key dh /usr/share/easy-rsa/pki/dh.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 tls-auth ta.key 0 cipher AES-256-CBC comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3
После настройки сервера, необходимо настроить клиентское соединение. Пример настройки клиента на Windows:
1. Скачайте и установите клиент OpenVPN для Windows.
2. Создайте файл конфигурации client.ovpn:
client dev tun proto udp remote your_server_ip 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC comp-lzo verb 3
3. Подключитесь к серверу OpenVPN, указав путь к файлу конфигурации client.ovpn.
Таким образом, создав виртуальную сеть на уровне IP с помощью технологии VPN, вы сможете безопасно обмениваться данными между различными узлами сети через интернет.