Virtualbox 如何使dhcp服务器侦听虚拟机中的广播请求

Virtualbox 如何使dhcp服务器侦听虚拟机中的广播请求,virtualbox,dhcp,busybox,Virtualbox,Dhcp,Busybox,我正在开发udhcpd,这是一个带有busy box的轻量级dhcp服务器 我做了一些代码更改,为了测试这些代码,我需要运行udhcpd,向它发送请求以从客户端获取ip并查看其响应 这需要多台机器,适合我的选择是使用多个虚拟机 我使用了两个linux虚拟机的Fedora来运行udhcpd,使用了一个ubuntu来运行udhcpc——一个带有busy box的客户端,用于生成dhcp请求 现在virutal box中有多种联网模式。我都试过了。NAT最简单的功能是允许虚拟机使用我的windows

我正在开发udhcpd,这是一个带有busy box的轻量级dhcp服务器

我做了一些代码更改,为了测试这些代码,我需要运行udhcpd,向它发送请求以从客户端获取ip并查看其响应

这需要多台机器,适合我的选择是使用多个虚拟机

我使用了两个linux虚拟机的Fedora来运行udhcpd,使用了一个ubuntu来运行udhcpc——一个带有busy box的客户端,用于生成dhcp请求

现在virutal box中有多种联网模式。我都试过了。NAT最简单的功能是允许虚拟机使用我的windows internet而无需任何配置

我尝试了各种类型的虚拟箱卡,即仅主机、内部网络,并将192.168.0.1地址分配给fedora,即udhcpd,并从udhcpc客户端发送dhcp发现请求

两者都在同一个接口上,即eth0,我可以看到dhcp discover的广播请求从0.0.0.0到255.255.255.255。但dhcp服务器udhcpd从未接收和应答请求

我还尝试先将ip分配给dhcp客户端,即192.168.0.2

但从来没有得到回应

如果我使用NAT或Virtual box own的dhcp服务器正在运行的另一种模式,则响应dhcp发现的服务器仍然是我的udhcpd from busy box不拾取数据包

我觉得这可能与udhcpd服务器的子网掩码有关


有人知道吗?

我的错,fedora VMip表中的防火墙在默认情况下阻止了传入连接

这是允许这样做的方法

打开并编辑/etc/sysconfig/iptables

vi/etc/sysconfig/iptables

将有以下几个条目:

-RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 5800-j ACCEPT

-A RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 5900-j ACCEPT

-A RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 6000-j ACCEPT

我为我的dhcp端口添加了一个条目,如下所示:

-一个RH-Firewall-1-INPUT-m state-state NEW-m udp-p udp-dport 67-j ACCEPT

保存并关闭文件。重新启动iptables:

service iptables restart
请注意,在ubuntu或基于debian的Linux发行版上,命令会有所不同,因为这些平台上的ip表可能不会作为服务运行。寻找操作系统特定的操作也被广泛记录