首页 文章

如何使dhcp服务器在虚拟机框中监听广播请求

提问于
浏览
0

我正在 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 回答

  • 0

    我的不好,Fedora VM(ip表)中的防火墙默认阻止了传入连接 .

    这是允许这种方式的方法 .

    打开并编辑/ etc / sysconfig / iptables

    vi / etc / sysconfig / iptables

    会有以下几个条目:

    -R 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端口添加了一个条目,如下所示:

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

    保存并关闭文件 . 重启iptables:

    service iptables restart
    

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

相关问题