在同一网络中运行两个DHCP服务器


9

我已经将树莓派连接到无线访问点,并希望在RPi上运行DHCP服务器以正确分配IP和网关。这是因为RPi充当VPN的网关。不幸的是,该接入点还运行着DHCP服务器,出于某种原因我无法使其停用。自动从RPi传播到所有wifi用户的正确设置的最佳方法是什么?

Answers:


13

好玩的问题。基本上,如果您在同一LAN上有两个DHCP服务器,那么就会有争夺地址的竞赛,而且您不确定谁会获胜:您可能最终会得到一些由树莓派服务的地址,一些由AP提供的地址以及一个单个设备,一旦断开连接,就不会重新获得与以前相同的地址。或者,更糟的是,您可能有两个具有相同地址的设备。

因此,最好将两者之一禁止。最简单的事情如下:

  1. 首先,确保它们绘制地址的范围不重叠:一个可能为192.168.1.11-74,另一个可能为192.168.1.139-202。至少,这可以防止冲突。

  2. 现在,我们阻止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客户端。至少,这是有序的。


谢谢!但这意味着我对通过wifi连接到AP的客户端一无所知,对吗?
bonanza

2
@bonanza如此害怕:从无线客户端到Ap的所有流量都永远不会通过树莓派,既不会请求也不会回复。因此,没有办法阻止它:一切都发生在AP内部。
MariusMatutiae 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.