这个问题可能源于对IP组播的基本误解,如果我理解错了,请纠正我。
我正在尝试编写C代码以查找网络上所有DHCP服务器的IP地址。使用情况如下:
1.客户端广播DHCP发现。 2.我的专有中继代理拾取数据包,添加一些必要信息,并将其UNICAST转发到已知IP地址的DHCP服务器。
我的问题是告诉中继代理DHCP服务器在哪里。我发现IANA为DHCP服务器保留了多播地址224.0.0.12,因此我想配置服务器以侦听该多播流量。但是,每当我将Linux套接字选项配置为IP_ADD_MEMBERSHIP到224.0.0.12时,它就会使用IGMP,这是一种完全不同的协议,我不想实现它。
我是否只是误解了多播的工作原理? 我不应该能够从中继代理向224.0.0.12发送ping,并从所有DHCP服务器返回ping响应吗?
其他信息: - 当我运行ifconfig时,所有框的接口都列出了MULTICAST。 - 我已经在所有框上使用ip route add 224.0.0.0/4 dev eth0添加了多播路由。
我正在尝试编写C代码以查找网络上所有DHCP服务器的IP地址。使用情况如下:
1.客户端广播DHCP发现。 2.我的专有中继代理拾取数据包,添加一些必要信息,并将其UNICAST转发到已知IP地址的DHCP服务器。
我的问题是告诉中继代理DHCP服务器在哪里。我发现IANA为DHCP服务器保留了多播地址224.0.0.12,因此我想配置服务器以侦听该多播流量。但是,每当我将Linux套接字选项配置为IP_ADD_MEMBERSHIP到224.0.0.12时,它就会使用IGMP,这是一种完全不同的协议,我不想实现它。
我是否只是误解了多播的工作原理? 我不应该能够从中继代理向224.0.0.12发送ping,并从所有DHCP服务器返回ping响应吗?
其他信息: - 当我运行ifconfig时,所有框的接口都列出了MULTICAST。 - 我已经在所有框上使用ip route add 224.0.0.0/4 dev eth0添加了多播路由。