我有一个可以在两种不同场景中使用的设备。
一种是连接到普通的以太网 LAN 公司网络。该网络有一个 DHCP 服务器,设备应为 DHCP 客户端并自动接收 IP 地址。
第二种情况是,设备使用以太网 LAN 电缆直接插入 PC/笔记本电脑。在这种情况下,设备应该选择自己的 IP,并为 PC/笔记本电脑分配 IP。在这种情况下,设备必须承担 DHCP 服务器的角色。
您可能已经知道这是怎么回事了。我不希望设备用户需要配置任何东西。他们只需将其插入即可使用。现在的问题是,可靠地找出你的网络中是否有另一个 DHCP 服务器难的是的,我可以发出 DHCP 请求等等。99% 的时间我都会找到服务器。但这一次我找不到它(例如由于数据包丢失或数据包传输时间长),如果我的设备随后成为 DHCP 服务器,它会通过提供错误范围内的 IP 地址来毒害整个公司网络。我该如何解决这个问题?我可以采取任何协议或安全措施来保证不干扰公司网络?
我的设备是提供服务的客户端设备,有点像打印机。它运行 OpenWRT。我自己编译它并控制所有配置文件。用户通常运行 Windows 7、8 或 10。如何在 OpenWRT 上启用 APIPA?或者我可以启用 AVAHI 吗?它与 Windows 的 APIPA 兼容吗?
答案1
这已经内置于大多数 IP 客户端中,称为 APIPA:自动私有 IP 寻址。
当设备连接到没有 DHCP 服务器的 LAN 时,它们会相互通信并决定使用 APIPA 地址。这些地址通常很容易识别,因为它们以 169.254... 开头,并且通常表示没有可用的 LAN 管理或互联网访问。
它们还意味着,当您知道自己已连接到某种网络时,您可以找到网络上其他设备的 APIPA 地址并使用它们的地址与它们进行通信。
答案2
在路由器上
iptables -I INPUT 1 -i eth0 -p udp -m mac ! --mac-source XX:XX:XX:XX:XX:XX -j DROP
改变eth0到您的 NIC。
更改 MAC 地址。
这!表示不。这将创建一个白名单,列出你的DHCP 服务器将与之通信。您可以添加运动和/或端口如果需要的话。
打开您的 DHCP 服务器。