如何将一个无线接口与另一个无线接口桥接(都在同一台计算机上)?

如何将一个无线接口与另一个无线接口桥接(都在同一台计算机上)?

Ubuntu 14.04

基本上我正在尝试完成以下设置-

无线网络 ---> wlan0Ubuntu 计算机“桥接”wlan1到同一台 Ubuntu 计算机 ---> 带有 wifi 的设备

之所以进行这种设置,是因为无线互联网是 WPA2 Enterprise 网络,而我的带 wifi 的设备无法连接到该网络。(带 wifi 的设备也无法连接到对等网络或临时网络。)此外,无线互联网源没有白名单/黑名单,因此它查看设备的 MAC 地址(如有必要)没有问题,为设备分配 IP 地址(如有必要)也没有问题。设备在 WPA2 Enterprise 身份验证方面存在问题。

[编辑- 由于设备无法成功验证,无线互联网源不太可能为该设备分配 IP 地址,也可能无法看到该设备的 MAC 地址。

wlan0是英特尔无线芯片组/接口,不能设置为接入点模式或主模式,因此用于连接 WPA2 Enterprise 互联网源。

wlan1将被设置为接入点模式。

wlan0显然,和之间的“桥梁”wlan1并不是无线的,因为它们都在同一台计算机上。

(1) 我认为brctl无法将一个无线接口 ( wlan0) 桥接到另一个无线接口 ( wlan1)。这是正确的吗?

(2)如果brctl不能使用,还能使用吗hostapd

(3)如果brctl不能使用,我应该寻找什么来完成上面描述的设置?

(4)以下任何一种方法是否可以解决我的问题 - (a)dnsmasq提供 DHCP(b)hostapd (c)静态 IP 地址(用于wlan1???)(用于连接到??的设备wlan1)(d)NAT(网络地址转换)(e)iptables (f)IP 伪装(g)sudo iw set dev wlan0 4addr on (h)WDS(无线分布系统)(i)IP 转发?

谢谢。

答案1

(1) 我认为 brctl 无法将一个无线接口 (wlan0) 桥接到另一个无线接口 (wlan1)。这是正确的吗?

这里的要求是,所有接口必须能够发送具有任何源 MAC 地址的数据包,并接收具有任何目标 MAC(而不仅仅是设备自己的 MAC)的数据包。

Wi-Fi AP 接口可以很好地桥接(大多数“无线路由器”实际上在 AP 和以太网之间有一个普通的 Linux 桥接器)。但是,站模式接口不能。因此,您可以桥接 wlan1,但不能桥接 wlan0。

有一种方法可以解决这个问题 - “4addr”模式,又称“WDS”模式,它会在 Wi-Fi 帧中添加一个额外的 MAC 地址字段。iw只要您的 Wi-Fi 驱动程序支持它,您就可以通过 启用它。一旦启用,您也可以桥接 wlan0。

但是,出于安全原因,许多 AP 默认不允许 4addr 模式。(有些有常规切换,有些有基于 MAC 的白名单。)它能与你的大学 AP 配合使用吗?试试看。

(另一种解决方法是“arpnat”——类似于 NAT,但应用于 MAC 地址——但它可能会混淆 DHCP 服务器,而且常规 Linux 也不支持它。某些 AP(如 PicoStation)在站点模式下支持它。)

(2)如果不能使用brctl,还能使用hostapd吗?

取决于您的 Wi-Fi 驱动程序。目前大多数驱动程序应该都支持 AP 模式,但并非所有驱动程序都支持。使用iw phy0 infoiw phy1 info查找。

(3)如果不能使用 brctl,我应该寻找什么来完成上面描述的设置?

最常见的替代方法是使用 iptables 进行 IP NAT(伪装)。

在某些情况下,常规路由(无 NAT)也能起作用。

(4)以下任何一项是否可以解决我的问题

(a) dnsmasq 提供 DHCP (b) hostapd (c) 静态 IP 地址(用于 wlan1 ???)(用于连接到 wlan1 的设备??)(d)NAT(网络地址转换)(e)iptables (f) IP 伪装 (g) sudo iw set dev wlan0 4addr on (h) WDS(无线分布系统)(i)IP 转发?

是,否,否,是,也许,也许,什么,呃,你只是在这里抛出各种各样的术语吗?

答案2

brctl您可以毫无问题地使用以下方式桥接无线接口:

brctl addbr br_name
brctl addif br_name wlan0
brctl addif br_name wlan1 

但是您需要参考桥br_name本身,而不是网络配置中的单独接口。

相关内容