Answers:
好玩的问题。基本上,如果您在同一LAN上有两个DHCP服务器,那么就会有争夺地址的竞赛,而且您不确定谁会获胜:您可能最终会得到一些由树莓派服务的地址,一些由AP提供的地址以及一个单个设备,一旦断开连接,就不会重新获得与以前相同的地址。或者,更糟的是,您可能有两个具有相同地址的设备。
因此,最好将两者之一禁止。最简单的事情如下:
首先,确保它们绘制地址的范围不重叠:一个可能为192.168.1.11-74,另一个可能为192.168.1.139-202。至少,这可以防止冲突。
现在,我们阻止AP向有线客户端提供IP地址。假设将AP插入eth1上的raspberry中,则以下命令将执行以下操作:
sudo iptables -A INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP
sudo iptables -A OUTPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP
我们完了。两条评论:
DHCP使用协议UDP上的端口67和68。通过阻止这些设备上的通信,可以防止来自有线客户端的DHCP请求到达AP上的DHCP服务器。因此有线客户端将仅由树莓服务。
其次,必须将AP直接插入树莓派(我知道树莓派只有一个以太网端口,该端口已经被使用:您可以购买USB到以太网适配器,而树莓派将拥有第二个以太网卡)。原因是,如果将AP插入交换机,则DHCP请求和答复将从AP到达/来自AP,而不会通过树莓派,因此iptables命令将毫无用处。
编辑:
我忘了说,上面的iptables规则还可以防止dhcp请求从AP流到树莓派,因此您现在遇到的情况是树莓派给有线客户端的IP地址为192.168.1.0xx范围,而AP会将192.168.1.1xx范围内的地址提供给wifi客户端。至少,这是有序的。