Linux:如果接口是 WiFi,桥接器就不会转发吗?

Linux:如果接口是 WiFi,桥接器就不会转发吗?

我有一台 Edimax EW-7318USg,配有 Ralink rt73 及其 USB。尝试桥接(例如共享互联网)时,它不起作用。

但是今天我尝试使用有线接口、相同的桥接器和所有相同的步骤来执行相同的操作,并且它成功了(使用有线!)。

是不是驱动,接口或者其他东西无法和这个WiFi接口桥接?

答案1

要使桥接工作,两个网络接口都必须能够进入混杂模式。我猜想 USB wifi 设备的无线驱动程序不支持混杂模式。我相信 Linux 下只有少数 wifi 驱动程序支持混杂模式。

如果您无法使用另一个无线网络适配器,您可能需要考虑为无线接口设置一个新的子网,并简单地在 Wifi 和有线接口之间路由流量。尽管这只有在您的 IP 寻址方案中有空间来设置额外的子网时才有效。

答案2

有许多原因导致常规桥接无法通过 wifi 工作(至少在您使用加密较弱或没有加密的 ad-hoc 模式时除外)。其中,在基础设施模式下,移动站使用其 MAC 地址注册到基站,因此来自其他 MAC 的桥接流量会使基站感到困惑。这也可能导致 WPA 加密出现问题。

如果您确实需要(第 2 层)桥接,则应考虑 WDS 或 802.11s 网状网络。两者都解决了这些特定问题,并且它们由使用新软件堆栈(mac80211)的驱动程序支持。我不确定 Ralink 适配器是否受支持。

另一种可能性是将您的地址空间一分为二,并使用诸如代理 arp 和 brouting 之类的技巧来创建混合桥/路由器。这将使主机相信它们位于同一网段,同时保留正常的 MAC 操作。

但实际上,如果您想要做的只是共享互联网连接(仅在客户端意义上),最简单的方法是使用 NAT。

答案3

使用 hostapd 并在该 wifi 接口上创建 wifi ap,网桥将正常工作

相关内容