5

У меня есть хост виртуальной машины (KVM), который подключен к беспроводному маршрутизатору. Я бы хотел, чтобы виртуальные гости находились в том же домене вещания, что и хост; т.е. получить их IP от DHCP маршрутизатора. (= Мост 2-го уровня)

Согласно документации KVM это невозможно: Important Note: Unfortunately, wireless interfaces cannot be attached to a Linux host bridge, so if your connection to the external network is via a wireless interface ("wlanX"), you will not be able to use this mode of networking for your guests. (Я все равно попробовал, и действительно, это не работает :))

В Интернете есть некоторые ресурсы, которые предлагают, как сделать маршрутизируемый интерфейс, и это работает для меня. Но это Уровень 3, и гости находятся в другой IP-подсети.

Тем не менее, я использовал VirtualBox в прошлом - и беспроводные мосты там работают.

Я нашел вопрос суперпользователя относительно VirtualBox, который объясняет: Many virtual machine programs come with a special "bridge" or "filter" driver which attaches to existing network interfaces and allows the program to send and receive packets (Ethernet frames) directly .

Это именно тот результат, которого я хочу - виртуализация KVM с мостовым соединением Ethernet (уровень 2). К сожалению, похоже, что libvirt/KVM не содержит таких как драйвер. Но я предполагаю, что это может быть достигнуто с помощью другого инструмента Unix.

3 ответа3

2

У меня было точно такое же требование, как у Звики. Кстати, его пост на эту тему отлично. Альтернатива, которую я нашел, заключается в следующем: настроить маршрутизируемую сеть в KVM в диапазоне 192.168.1.160/28 (таким образом, третье решение dedoimedo, "грязный хак"), а затем вместо создания прокси-сервера ARP способом Zvika я использовал parprouted , который доступен в Ubuntu/Mint как пакет с тем же именем. С parprouted вы можете просто набрать:

sudo parprouted virbr1 wlan0

et voilà, трафик работает как в / из гостевой виртуальной машины и из других устройств в сети 192.168.1.0/24, так и в / из внешних систем (например, сайтов Интернета), если эта сеть находится за NAT.

В любом случае, это было сложно, я потратил несколько дней на поиски этой темы, и ни один источник не был таким ясным, как запись в блоге Звики !!

2

Официальная документация слишком пессимистична. Как всегда, кто-то умный понял это: вы найдете (длинные) инструкции для этого здесь. Я попробовал это, это подпруга.

Редактировать:

Я не уверен, почему первое решение, опубликованное в упомянутой выше статье, не работает для вас, оно работает для меня, и вы не предоставляете никакой дополнительной информации. Тем не менее, вы можете рассмотреть альтернативное решение, здесь, предоставленный Bohdi дзадзэн, который использует прокси-агр. Я никогда не пробовал это (решение № 1 работало для меня, так в чем смысл), но вы можете дать ему шанс.

1

Это не "беспроводной адаптер" не поддерживает мостовые соединения. Это точка доступа и Wi-Fi-протокол. Когда вы устанавливаете соединение, вы аутентифицируете MAC вашего адаптера. Протокол имеет место для трех MAC: непосредственных участников, прошедших проверку подлинности, и третьего - для любой конечной точки за точкой доступа. Таким образом, мобильная станция WiFi может отправлять пакеты на любой MAC, но использовать только собственный MAC в качестве адреса источника. Вы не могли отправить пакет с другим исходным MAC-адресом, который аутентифицировался - AP отклонит этот пакет.

Существует также протокол Wi-Fi, способный к настоящему мосту, называемый WDS. Это достигается путем предоставления четырем MAC-адресам в пакете: два - участники с немедленной аутентификацией, т. Е. Мостовые точки доступа, и две конечные точки (источник и пункт назначения), пакет которых передается по мосту WiFi.

Прочитайте здесь http://wiki.mikrotik.com/wiki/Manual:Wireless_Station_Modes#802.11_limitations_for_L2_bridging об этом.

Жаль, что WDS не очень хорошо стандартизирован, и каждый поставщик оценивает его самостоятельно в несравненной форме. Только если бы Wi-Fi-альянс был более ... ориентированной на пользователя организацией, они работали бы лучше, и мы сможем установить связь Wi-Fi здесь и там, между решениями произвольных поставщиков и даже между гостевыми машинами и беспроводной сетью!

Proxy-ARP - это не решение L2, а решение ROUTING, то есть L3. Это обманывает обе стороны, чтобы вы могли иметь одну и ту же подсеть здесь и там, но все же это маршрутизация и, кстати, это несколько портит сеть. Посмотрите таблицу MAC на любой машине, чтобы увидеть, что там происходит: все MAC для "той стороны" являются MAC нашего маршрутизатора proxy-arp.

Для истинного решения L2 вы можете попробовать функцию linux "MAC NAT", которая настраивается с помощью утилиты ebtables. Поскольку это единственное настоящее решение L2, которое я знаю, я склонен думать, что оно используется VirtualBox. Тем не менее, в основном это выглядит как proxy-arp. Вы, безусловно, должны быть в состоянии реализовать это с помощью KVM и libvirt.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .