加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在GNU / Linux / C中使用多播(224.0.0.12)发现DHCP服务器

发布时间:2020-12-14 02:12:34 所属栏目:Linux 来源:网络整理
导读:这个问题可能源于对IP多播的基本误解,所以如果我不在基础,请纠正我. 我正在尝试编写C代码来查找网络上所有DHCP服务器的IP地址.用例是这样的: 客户端广播DHCP发现. 我的专有中继代理接收数据包,添加一些基本信息,然后将UNICAST转发到已知IP地址的DHCP服务器.
这个问题可能源于对IP多播的基本误解,所以如果我不在基础,请纠正我.

我正在尝试编写C代码来查找网络上所有DHCP服务器的IP地址.用例是这样的:

>客户端广播DHCP发现.
>我的专有中继代理接收数据包,添加一些基本信息,然后将UNICAST转发到已知IP地址的DHCP服务器.

我遇到的问题是告诉中继代理DHCP服务器在哪里.我发现IANA为DHCP服务器保留了多播地址224.0.0.12,所以我想我只是将服务器配置为侦听该多播流量.但每当我将IP套接字选项配置为IP_ADD_MEMBERSHIP到224.0.0.12时,它都使用IGMP,这是一个完全独立的协议,我不想实现它.

我只是误解了多播是如何工作的?我不应该能够从中继代理发送ping到224.0.0.12并让它从所有DHCP服务器返回ping响应吗?

附加信息:

>当我执行ifconfig时,所有框上的接口都会列出MULTICAST
>我已经在所有方框中使用ip route add 224.0.0.0/4 dev eth0添加了组播路由

解决方法

也许您应该做客户端做什么 – 使用DHCPDISCOVER数据包在目标网络上广播(而不是多播!)?我有几个运行正在运行的DHCP服务器,但没有一个在224网络上监听.

您可能还想要求您现有的地址,或者发送DHCPRELEASE以获取您收到的任何优惠,以免在服务器上的假预订中占用地址.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读