2013-03-19 711 views
1

我想運行PTPDV2(精確計時協議)服務器,它在接口上綁定以設置多播。SO_BINDTODEVICE虛擬接口失敗

我有以下虛擬接口

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 

現在,我沒有任何問題,結合到正常的接口,但對於任何虛擬接口,我得到的失敗。

(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) 

我需要一些指針來解決這個問題。這裏的任何幫助表示讚賞。

+0

還是沒有答案? – rajshenoy 2013-03-21 02:45:33

回答

0

我找到了解決這個問題的方法。但它可能不是完美的解決方案。我仍然樂於提供建議。

我觀察到套接字綁定成功,所以套接字得到eth1:0的IP地址。但是SO_BINDTODEVICE失敗了,因爲這是一個虛擬接口。

所以我決定在真實的eth1接口上調用SO_BINDTODEVICE,因爲eth1:0和eth1共享相同的MAC。

哪個這樣,我不再被阻止,因爲響應通常對我來說是單播的。但是如果有人希望接收多播支持,這可能無法完美工作。

徵求意見