桥接:使用4addr选项时,WLAN网络连接断开-为什么?


9

问:
要与Xen VM一起使用,我需要创建一个桥接到wlan0的虚拟网络接口(vif)。

如果在/ 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,激活网桥然后再将其关闭(错误:设备未准备好)。

有人知道我为什么断开连接吗?

Answers:


14

在这里找到答案:http : //nullroute.eu.org/~grawity/journal.html#post : 20110826

iw dev wlan0 set 4addr on

但是,启用4addr后,AP可能会完全忽略您:关联成功,但所有数据帧都消失在以太帧中。这可能是出于安全原因(因为很难欺骗源MAC地址。是的。)在我的路由器(运行OpenRG)中,有必要为无线AP接口启用“ WDS”模式,添加仅限于我的WDS设备笔记本电脑的MAC地址,并将其添加到LAN桥。4addr数据包现在可以工作了。

但是,这还有另一个问题–路由器现在拒绝来自笔记本电脑的三地址数据包,这可能非常不方便(每次更改WLAN网络时都必须切换4addr)。解决方法是在笔记本电脑上添加链接到同一设备但具有不同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地址。然后保留wlan0的原始MAC,以供“正常”使用。

可以同时使用wlan0和wds.wlan0-尽管我只测试了两次与同一AP的关联,而不是与不同AP的关联。


5

在某些情况下,您也可以使用wlan_kabel。它使用数据包套接字直接将wlan *-设备与以太网设备桥接。但是,一次只能使用wlan_kabel桥接一个MAC。它没有被接入点禁止的缺点,因为仅使用了wlan设备的原始MAC。

在您的情况下,这意味着wlan0只能由一个VM使用,甚至不能由主机使用。

您可以在这里获取wlan_kabel 。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.