Linux以太网/无线桥接

前端之家收集整理的这篇文章主要介绍了Linux以太网/无线桥接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我工作的产品的一个新要求是支持以太网到无线的桥接.假设我们有两个网络接口:eth0和ath0(我们使用的是Madwifi驱动程序).我有什么选择允许连接到eth0的计算机能够访问无线网络?

我尝试的第一件事是brctl实用程序.这似乎正是我想要的.并且,在有线网络上,它是.但在无线网络上,它并没有完全奏效.一些Wiresharking透露,桥接数据包的源MAC(正确)设置为桥后面的计算机.但是,从未见过MAC关联的AP会丢弃数据包.如果我启用WDS数据包(iwpriv ath0 wds 1),那么数据包将与发送器和接收器地址一起发送,但似乎AP不允许(它很老,我们无法更改它).并非所有的AP都必须接受WDS,对吧?

因此,我想知道我们是否必须进行某种以太网NAT或类似操作.但是,我看不出它是如何工作的 – 如何在n台计算机之间共享一个MAC地址? ebtables显得太低了.简单地在出路和重新路由时重写MAC地址使得桥接计算机无法使用网络.另外,它如何知道传入数据包的最终目的地?至少,您需要来自IP和TCP / UDP层的详细信息.

解决方法

对,桥接不适用于wifi.最简单的解决方案是使用路由.您可以设置一个“透明路由器”,感觉就像一座桥,但实际上它是路由数据包.为此,将一个网络作为另一个网络的子集.

例如,如果有线局域网是192.168.183.0/24,则可以使无线局域网使用192.168.183.192/26.

您可能还必须打开’proxy arp’.只需添加一个echo 1> / proc / sys / net / ipv4 / conf / all / proxy_arp到一些启动脚本.

猜你在找的Linux相关文章