sendmsg()に発信IPv6アドレスを指定するためにIPV6_PKTINFOオプションを使いたいと思います。ソケットはアドレスにもインターフェースにも束縛されません。私はいつも、送信元アドレスと一緒にifIndexを指定する必要がありますソケットオプションIPV6_PKTINFO
(RFC3542によると:
カーネルは、要求された送信元アドレスがアドレスがスコープされたノードに割り当てられた ユニキャストアドレスが実際にあることを確認する必要があり 1。そのような場合、 カーネルは、宛先アドレスの ゾーンまたは発信インターフェイスに基づいて、適切なスコープゾーンを最初に決定する必要があります(知られている場合) アドレスを修飾します。これはまた、実現可能でないことを意味します 発信インターフェイスが である場合を除いて、 IPV6_PKTINFO固定オプションによって、バインドされていないソケットの送信元アドレスを指定します。アプリケーションは、 の目的のために単にbind()を使うべきです。 )
ifindexを指定しないと、このオプションは無視する必要がありますか? ありがとう、Renata