我正在 udhcpd 上工作,这是一个配有 busy box 的轻量级dhcp服务器 .
我做了一些代码更改并测试我需要运行udhcpd,从客户端发送请求(获取IP)并查看其响应 .
这需要多台机器,对我来说合适的选择是使用多个虚拟盒VM .
我使用了两个Linux VM(用于运行udhcpd的Fedora和用于运行udhcpc的ubuntu - 一个用于生成dhcp请求的繁忙盒子的客户端) .
现在,在虚拟盒子中有多种网络模式 . 我试过了所有这些 . NAT最简单的允许vm使用我的Windows互联网,没有任何配置 .
我尝试了各种类型的虚拟盒卡,即仅主机,内部网络,并为fedora分配了192.168.0.1地址,这是udhcpd并从udhcpc客户端发送dhcp发现请求 .
两者都在同一个接口上,即eth0,我可以看到从0.0.0.0到255.255.255.255的dhcp发现的广播请求 . 但udhcpd - dhcp服务器,永远不会收到并回复请求 .
我还尝试首先将ip分配给dhcp客户端,即192.168.0.2 .
但永远不会得到回应 .
如果我使用NAT或其他模式,其中虚拟机自己的dhcp服务器正在运行,那么它是响应dhcp发现的服务器,仍然我的忙碌框中的udhcpd不会选择数据包 .
我觉得它与子网掩码有关,可能是udhcpd服务器 .
有谁有任何想法?
1 回答
我的不好,Fedora VM(ip表)中的防火墙默认阻止了传入连接 .
这是允许这种方式的方法 .
打开并编辑/ etc / sysconfig / iptables
vi / etc / sysconfig / iptables
会有以下几个条目:
我为我的dhcp端口添加了一个条目,如下所示:
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 67 -j ACCEPT
保存并关闭文件 . 重启iptables:
请注意,基于ubuntu或debian的Linux发行版的命令会有所不同,因为这些平台上的ip表可能不作为服务运行 . 寻找操作系统特定的操作,这是广泛记录的 .