我正在寻找一座桥梁。WiFi 无法处理普通的桥接,那么我该如何路线使用 WiFi 的两个 IP 以太网网络?(在 Linux 下)
如何在 Linux 下设置 IP 路由?必须转发 DHCP,即路由器必须转发广播数据包。
NAT 不是一个解决方案。
更新:我之所以要使用 WiFi,是因为我们的网线接地不良。最近闪电穿过了我们的网线,毁坏了我们的许多设备,包括电脑和路由器。这是确保不再发生这种情况的最可靠方法。
解决方案:根据这些答案,我找到了 2 个解决方案。
- 将 NAT 放在以太网端。现在一切看起来都像是来自单个 IP。缺点是由于 NATing,从另一端访问网络很困难。
- 更好的解决方案是运行
dhcrelay
、parprouted
并设置。这样就可以让真正的基于 IP 的路由工作,而 DHCP 会因为 dhcrelay 而工作。缺点是 NetBIOS 名称(依赖于广播数据包)不会被中继。因此,必须通过 Windows 中的 UNC 路径 IP 地址(而不是 )ip_forward=1
来访问计算机。\\192.168.1.3\SharedDocuments
\\LaptopMain\SharedDocuments
答案1
你说得对,WiFi 无法处理普通桥接。它只适用于某些特定于供应商的黑客攻击。
另一种黑客攻击(独立于供应商)是http://freshmeat.net/projects/parprouted/。这可以实现类似桥接的功能。我用过但不喜欢。我建议采用经典的路由方案:一个带有自己的 dhcpd 或中继的附加子网。
您还可以从 STA(wifi 桥接器)建立隧道到您的路由器,然后通过隧道进行桥接。
http://lartc.org/howto/很好地概述了 Linux 的可能性。
我用http://www.pcengines.ch/创建基于 Linux 的 wifi 客户端以便能够运行 dhcpd、dhcp 中继、VPN 或任何我需要的东西。
答案2
您能解释一下您想要实现什么吗?根据定义,广播数据包不会被路由。路由连接和链接广播域是互斥的。设置 DHCP 助手是可能的,但听起来不像您想要的。
以太网上的 IP 网络和 Wi-Fi 上的 IP 网络没有什么不同,如果需要,它们可以轻松共享广播域;将它们相互插入。
如果您真正想要的是在两个网络之间进行路由,那么只需更改 /etc/sysctl.conf: 即可net.ipv4.ip_forward=1
。dhrelay 提供了一种充当 DHCP 助手的方法。
当然,那么无线网络段的路由器将是一个客户端系统,无法通过接入点直接访问。这不是什么好事。
答案3
如果您想要“正常”桥接,我建议只需将无线接入点插入您的网络,而不是使用 Linux 和一些 wifi 卡创建过于复杂的设置。
Linux 内核中有很多“正常”桥接接口的例子,使用控制寄存器拥有大量不同的 wifi 卡 - 像DD-WRT或者OpenWRT是其中的一些 - 唯一的先决条件是让 wifi 接口处于接入点模式。但是我想,由于您在桥接方面遇到问题,因此您使用的是客户端模式下的无线接口,其中接口功能(无法切换到混杂模式)或加密可能会妨碍您。
但如果你仍然想路由你的无线流量(这样做可能有正当理由 - 出于安全原因的网络分离就是其中之一),你需要配置不同的 IP 地址在不同的网络中对于您的接口,按照 Shane 的建议启用 IP 转发,并设置dhcre中继充当 BOOTP/DHCP 中继,将客户端的 DHCP 请求转发到预定义的 DHCP 服务器 - 该服务器反过来需要为您的无线网络定义一个范围。
如果您对具体步骤有进一步的疑问,您需要提供有关您的配置文件/启动参数是什么样的、您的网络接口如何设置以及您的 DHCP 服务器配置是什么样的详细信息。
答案4
这可能是一个愚蠢的答案,但是......
为了确保完美的电气隔离,只需使用光纤将边界机器连接到网络的其余部分即可。
这避免了 wifi 的潜在安全问题,降低了延迟,并避免了不必要的复杂性。