对你来说奇怪的情况:
我有两个运行 Raspbian 8 (jessie) 的 Raspberry Pi,它们通过以太网端口之间的交叉电缆相互连接。单元 A 上的以太网端口静态配置为 10.5.10.1。单元 B 上的以太网端口静态配置为 10.5.10.2。以太网接口的子网掩码为 255.255.255.0 - /24。
两个设备都在其 Wifi 接口 (wlan0) 上运行主机接入点守护程序 (hostapd) 和 DHCP 服务器。它们各自都有一个唯一的 SSID:设备 A 为“raspiA”,而设备 B 为“raspiB”。设备 A 在通道 1 上运行。设备 B 在通道 11 上运行。
单元 A 上的 wlan0 适配器静态分配为 10.10.1.1。单元 A 上的 DHCP 服务器提供的地址范围为 10.10.1.50 - 10.10.1.250。单元 B 上的 wlan0 适配器静态分配为 10.10.2.1。单元 B 上的 DHCP 服务器提供的地址范围为 10.10.2.50 - 10.10.2.250。wlan0 适配器的子网掩码均为 /24。
这些系统是完全独立的——没有与互联网的连接。
两个系统都运行一个进程,该进程在端口 80 上运行 HTTP 服务器,可从任一接口(eth0 或 wlan0)访问。
我希望连接到系统 A 上的接入点的客户端能够访问 10.10.1.2 上的系统 B 上的进程。
我希望连接到系统 B 上的接入点的客户端能够访问 10.10.2.2 上的系统 A 上的进程。
[Client 1] [Unit A ] [Unit B ]
10.10.1.50 —wifi—> 10.10.1.2 —> 10.5.10.1 —eth—> 10.5.10.2
和...
[Unit A ] [Unit B ] [Client 2]
10.5.10.1 <—eth— 10.5.10.2 <— 10.10.2.2 <—wifi— 10.10.2.50
实现这一目标的最佳方法是什么?
答案1
您需要做的就是在 A 和 B 上启用 IP 转发(以 root 身份):
echo 1 > /proc/sys/net/ipv4/ip_forward
答案2
我终于找到了一个可行的配置。它允许客户端加入任一网络并访问两个系统。它也不需要路由,这一点很重要,因为任何分配路由器(默认网关)的方案都会导致移动客户端(iOS、Android)优先使用 Wifi 接口而不是 4G 接口,从而切断互联网访问。
我通过将所有内容移至相同的 /24(c 类)网段来简化 IP 方案。我在两个系统上的 eth0 接口和 wlan0 接口之间设置了网桥。系统 A 上的网桥分配为 .1,系统 B 上的网桥分配为 .2。系统提供的所有服务都绑定到网桥地址上可用的 /。
我调整了每个系统上的 DHCP 守护进程,使其服务于与 /24 不同的范围(即系统 A 为 .50 - .149,系统 B 为 150 - 249)。由于系统桥接在一起(即都在同一个网段上),因此任何 DHCP 请求都变成了一场竞赛,两个守护进程都会响应。由于两个请求都在同一个 /24 中,因此哪一个“获胜”并不重要。
这会产生某种形式的冗余。如果其中一个系统崩溃,客户端可以重新关联另一个系统上的接入点。如果其中一个系统上的应用程序崩溃,客户端可以连接到另一个系统上的实例。这两个系统还可以互相监视、镜像配置和交叉检查数据。
这种方法的一个限制是客户端必须知道应用程序在 .1 和 .2 上可用。未来的迭代可能会包括某种 MDSN / Avahi 支持,允许客户端自动发现服务器。
脚步:
- 安装
bridge-utils
、hostapd
和isc-dhcp-server
- 编辑
/etc/sysctl.conf
:- 添加或取消注释
net.ipv4.ip_forward = 1
- 添加或取消注释
- 在
/etc/network/interfaces
:- 将 eth0 和 wlan0 标记为手动
- 添加具有所需静态网络配置的 br0 桥
- 仅添加 eth0 接口(wlan0 将由 hostapd 添加)
- 编辑
/etc/dhcpcd.conf
:denyinterfaces eth0 wlan0
通过在底部添加来从 DHCP 中排除 eth0 和 wlan0 。
- 编辑
/etc/default/isc-dhcp-server
:- 将值设置
INTERFACES
为br0
- 将值设置
- 编辑
/etc/dhcp/dhcpd.conf
:- 创建新的子网条目
- 将一定数量的客户端可用 IP 添加到范围中
- 不要添加“选项路由器”
- 编辑
/etc/hostapd/hostapd.conf
:bridge=br0
在底部添加
对另一个系统重复此过程,更改分配给网桥的 IP(步骤 2.2)和 DHCP 服务器提供的地址范围(步骤 5.2)。使用电缆连接以太网端口。重新启动。瞧 - 冗余、扁平的网络。