我的工作udhcpd,附带繁忙箱 重量轻DHCP服务器 。
我已经取得了一些代码更改,并测试这些我需要运行udhcpd,它发送从客户端请求(获取IP),并查看它的响应。
这需要多台机器和我合适的选择是使用多个虚拟盒虚拟机。
我用了两个Linux的虚拟机(Fedora的运行udhcpd和运行使用udhcpc Ubuntu的 - 随附繁忙箱产生DHCP请求的客户端)。
现在有在当前虚拟网络盒的多种模式。 我把它们都试过。 NAT最简单的允许虚拟机使用我的Windows Internet无需任何配置。
我尝试不同类型的虚拟盒名片即只有主机,内部网络和分配一个地址192.168.0.1到Fedora是udhcpd和发送DHCP发现从使用udhcpc客户端的请求。
两者都是在相同的接口,即eth0和我可以看到从0.0.0.0到255.255.255.255广播请求DHCP DISCOVER。 但udhcpd - DHCP服务器, 从不接收和答案的要求 。
我也被分配一个IP给DHCP客户端第一次即192.168.0.2尝试。
但从来没有得到回应。
如果我使用NAT或在虚拟框自己的DHCP服务器运行的是另一种方式,那么它是响应DHCP该服务器发现,仍然从繁忙的盒子我udhcpd不挑包。
我觉得它有一些与子网掩码做可能是udhcpd服务器。
任何人有任何想法?
我的坏,在Fedora的虚拟防火墙(IP表)挡住了默认的连接。
这里是允许的方式。
打开并编辑/ etc / SYSCONFIG / iptables的
VI的/ etc / SYSCONFIG / iptables的
会有几个条目类似如下:
-A RH-防火墙-1- INPUT -m状态--state NEW -m TCP -p TCP --dport 5800 -j ACCEPT
-A RH-防火墙-1- INPUT -m状态--state NEW -m TCP -p TCP --dport 5900 -j ACCEPT
-A RH-防火墙-1- INPUT -m状态--state NEW -m TCP -p TCP --dport 6000 -j ACCEPT
我说我的DHCP端口的条目如下:
-A RH-防火墙-1- INPUT -m状态--state NEW -m UDP -p UDP --dport 67 -j ACCEPT
保存并关闭文件。 重新启动iptables的:
service iptables restart
请注意,命令将在Ubuntu或基于Debian的Linux发行版不同,因为在这些平台上的IP表可能不是作为服务运行。 寻找OS特定操作也被广泛记载。
文章来源: How to make a dhcp server listen for broadcast requests in a virtual box vm