Сети в Linux KVM

Я хочу знать, существует ли какой-либо путь кроме использования мостов Linux для соединения интерфейсов от двух виртуальных машин?

Так как я пытаюсь выполнить частную реализацию связующего дерева в виртуальных машинах... лежащих в основе моста Linux, который соединяет обоих, которые виртуальные машины отбрасывают BPDUs.

VirtualBox решает проблему путем предоставления возможности внутренней сети.

Есть ли какая-либо подобная опция, если я использую KVM?

Обновление 01: Включение STP закончило бы тем, что создало топологию, содержащую 3 моста (2VMs и 1 мост Linux, соединяющий обоих VMs) вместо 2 мостов (2VMs).

0
задан 16 April 2015 в 07:08
4 ответа

Похоже, вы могли бы использовать здесь параметр QEMU -netdev socket , вероятно, версия UDP подойдет лучше.

Также -netdev vde может работать , хотя это более сложно и требует настройки демона переключения VDE.

Но я бы все равно попытался решить проблему с мостом Linux, с включенной опцией STP, как предложил @Martin. Это простая и очень распространенная установка.

0
ответ дан 5 December 2019 в 12:57

Можно попробовать использовать драйвер Macvtap. Обратите внимание, что это имеет некоторые ограничения - обязательно прочитайте документацию по libvirt.

.
0
ответ дан 5 December 2019 в 12:57

QEmu/KVM предоставляет возможность использовать TAP интерфейс на вашем хосте:

  1. когда ваш хост посылает Ethernet кадр на этот интерфейс, он посылается на интерфейс вашего гостя;

  2. когда ваш гость посылает Ethernet кадр на свой интерфейс, он посылается на TAP интерфейс на вашем хосте.

Вы можете создать оба ВМС с TAP интерфейсами. Теперь вам нужно обменяться кадрами между двумя TAP интерфейсами: вы можете сделать это, написав программу, которая перенаправляет Ethernet-кадры между интерфейсами (используя AF_PACKET, SOCK_RAW сокеты) на приёмные кадры с одного интерфейса и отправка их на другой.

.
0
ответ дан 5 December 2019 в 12:57

Люди, предлагающие устройство TAP, были на правильном пути, но вам нужно еще кое-что:

Сначала создайте пару veth . Это пара виртуальных интерфейсов, каждый из которых просто передает любой получаемый трафик другому.

Далее,подключите одну из ваших двух виртуальных машин через macvtap к одному из интерфейсов veth в паре, а другую виртуальную машину - к другому интерфейсу veth.

Наконец, отправьте некоторый трафик.

0
ответ дан 5 December 2019 в 12:57

Теги

Похожие вопросы