首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟接口的SO_BINDTODEVICE失败

虚拟接口的SO_BINDTODEVICE失败
EN

Stack Overflow用户
提问于 2013-03-19 22:29:47
回答 1查看 4K关注 0票数 2

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

我有一个如下的虚拟接口

代码语言:javascript
复制
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

现在,绑定到普通接口没有任何问题,但对于任何虚拟接口,我都会收到一个失败的消息。

代码语言:javascript
复制
 (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)

我需要一些指针来克服这个问题。感谢您在这里提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-21 10:48:31

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

我观察到套接字绑定成功,因此套接字确实获得了eth1:0的IP地址。但是SO_BINDTODEVICE失败了,因为这是一个虚拟接口。

所以我决定在实际的接口上调用SO_BINDTODEVICE,即eth1,因为eth1:0和eth1共享相同的介质访问控制。

这一次,我不再被阻止,因为响应通常对我来说是单播的。但是,如果有人想要在接收时也支持多播,那么这可能不会完美地工作。

公开征求意见

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15502242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档