2

マルチキャストを設定するためにインターフェイスにバインドする PTPDV2 (precision timing protocol) サーバーを実行しようとしています。

次の仮想インターフェイスがあります

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)

この問題を克服するには、いくつかの指針が必要です。ここで何か助けていただければ幸いです。

4

1 に答える 1

1

この問題の回避策を見つけました。しかし、それは完璧な解決策ではないかもしれません。私はまだ提案を受け付けています。

ソケットのバインドが成功したことを確認したため、ソケットは eth1:0 の IP アドレスを取得します。ただし、これは仮想インターフェイスであるため、SO_BINDTODEVICE は失敗していました。

したがって、eth1:0 と eth1 の両方が同じ MAC を共有するため、eth1 である実際のインターフェイスで SO_BINDTODEVICE を呼び出すことにしました。

これは、応答が通常ユニキャストであるため、ブロックされなくなりました。しかし、受信時にマルチキャストのサポートが必要な場合、これは完全には機能しない可能性があります。

提案のために開く

于 2013-03-21T02:48:30.853 に答える