gpt4 book ai didi

linux - SO_BINDTODEVICE 虚拟接口(interface)失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:22 27 4
gpt4 key购买 nike

我正在尝试运行 PTPDV2(精确定时协议(protocol))服务器,该服务器绑定(bind)在用于设置多播的接口(interface)上。​​

我有一个如下的虚拟接口(interface)

eth1:0    Link encap:Ethernet  HWaddr 00:00:50:A0:42:BD  
inet addr:10.2.0.17 Bcast:10.2.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Base address:0xa000

现在,我在绑定(bind)到普通接口(interface)时没有任何问题,但对于任何虚拟接口(interface)我都会失败。

 (ptpd debug1)   09:28:12.995509  (init)  netInit
(ptpd debug1) 09:28:12.996254 (init) Local IP address used : 10.2.0.17
(ptpd error) 09:28:12.997099 (init) failed to call SO_BINDTODEVICE on the interface (strerror: No such device)

我需要一些指导来解决这个问题。在此感谢任何帮助。

最佳答案

我找到了解决此问题的方法。但这可能不是完美的解决方案。我仍然愿意接受建议。

我观察到socket bind是成功的,所以socket确实拿到了eth1:0的IP地址。但是 SO_BINDTODEVICE 失败了,因为这是一个虚拟接口(interface)。

所以我决定在 eth1 的真实接口(interface)上调用 SO_BINDTODEVICE,因为 eth1:0 和 eth1 共享相同的 MAC。

其中,我不再被阻止,因为响应对我来说通常是单播的。但是,如果有人也希望在接收时支持多播,这可能无法完美地工作。

接受建议

关于linux - SO_BINDTODEVICE 虚拟接口(interface)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com