Мостовое соединение: потеря соединения с сетью WLAN с опцией 4addr - почему?

9

Вопрос:
Для использования с моей виртуальной машиной Xen мне нужно создать виртуальный сетевой интерфейс (vif), который соединен с wlan0.

Если в / etc / network / interfaces я добавляю

auto xenbr0
       iface xenbr0 inet dhcp

А потом позже сделаю

brctl addif xenbr0 wlan0

Я получаю это сообщение об ошибке.

can't add wlan0 to bridge xenbr0: Operation not supported

Я обнаружил, что Linux вообще не позволит вам подключить беспроводной интерфейс в управляемом режиме, если вы не включите опцию 4addr (необходима для перекомпиляции iw):

iw dev wlan0 set 4addr on

потом

brctl addif xenbr0 wlan0

работает, а brctl show показывает, что xenbr0 соединен с wlan0.

К сожалению, как только я выполню

iw dev wlan0 set 4addr on

у меня пропало все сетевое соединение (нет соединения). Как только тогда я выполню

iw dev wlan0 set 4addr off

Я воссоединяюсь, и это снова работает. Если я снова запускаю 4addr, он снова прерывается, если я выключаю 4addr, он снова работает.

К сожалению, я не могу просто включить 4addr, активировать мост, а затем снова выключить его (ошибка: устройство не готово).

Кто-нибудь знает, почему я теряю связь?

колдовство
источник

Ответы:

14

Нашел ответ здесь: http://nullroute.eu.org/~grawity/journal.html#post:20110826

iw dev wlan0 set 4addr on

Однако при включенном 4addr точка доступа может полностью проигнорировать точку доступа: связь успешно завершена, но все кадры данных исчезают в эфире. Это может быть из соображений безопасности (потому что чертовски сложно подделать MAC-адрес источника. Да.) В моем маршрутизаторе (под управлением OpenRG) необходимо включить режим «WDS» для интерфейса беспроводной точки доступа, добавить устройство WDS, ограниченное моим MAC-адрес ноутбука и добавьте его в мост LAN. Пакеты 4addr теперь работают.

Однако есть еще одна проблема - маршрутизатор теперь отклоняет трехадресные пакеты от ноутбука, что может быть довольно неудобно (необходимость переключать 4addr при каждом изменении сети WLAN). Обходной путь - добавить на ноутбуке второй беспроводной интерфейс, связанный с тем же устройством, но с другим MAC-адресом:

# undo the earlier configuration
iw dev wlan0 set 4addr off


# add a second interface
iw dev wlan0 interface add wds.wlan0 type managed 4addr on
ip link set dev wds.wlan0 addr $ADDR
ip link set dev wds.wlan0 up

Здесь $ ADDR должен соответствовать адресу устройства WDS, настроенному в маршрутизаторе; кроме этого, это может быть любой действительный MAC-адрес. Исходный MAC-адрес wlan0 остается для «нормального» использования.

Можно использовать и wlan0, и wds.wlan0 одновременно - хотя я только дважды проверял связь с одним и тем же AP, а не с разными AP.

Предприятию
источник
5

При определенных обстоятельствах вы также можете использовать wlan_kabel. Он использует сокеты пакетов для прямого соединения устройств wlan * с устройствами Ethernet. Тем не менее, вы можете соединить только один MAC за один раз с wlan_kabel. У него нет недостатка быть заблокированным точками доступа, потому что используется только оригинальный MAC-адрес устройства WLAN.

В вашем случае это будет означать, что wlan0 может использоваться только одной виртуальной машиной, а не хостом.

Вы можете получить wlan_kabel здесь .

эсциталопрам
источник