Linuxマシンでipv6を無効にしてネットワークサービスを再起動し、インターフェイスにipv6アドレスが割り当てられていない場合でも、デーモンの1つ(具体的にはcassandra)は、netstatをチェックインするときに::ffff:10.xxx.x.xx:9042
のようにipv4マップされたipv6アドレスを使用しています。
Straceを確認しましたが、sa_family=AF_INET, sin_port=htons(44315), sin_addr=inet_addr("127.0.0.1")
を使用しており、AF_INET6
を使用していません。 ipv6がまだアクティブなのですか?なぜこれが必要なのですか?
Networkengineering でもこの質問をしましたが、どこに質問すればよいかわかりません。申し訳ありませんが、関係のないセクションにあるものを削除してください。
これ 役立つはずです。それは言う
IPv6アプリケーションとIPv4アプリケーションの互換性
AF_INET6アドレスファミリで記述されたソケットアプリケーションにより、インターネットプロトコルバージョン6(IPv6)アプリケーションはインターネットプロトコルバージョン4(IPv4)アプリケーション(AF_INETアドレスファミリを使用するアプリケーション)と連携できます。この機能により、ソケットプログラマーはIPv4にマップされたIPv6アドレス形式を使用できます。このアドレス形式は、IPv6アドレスとして表されるIPv4ノードのIPv4アドレスを表します。 IPv4アドレスはIPv6アドレスの下位32ビットにエンコードされ、上位96ビットは固定プレフィックス0:0:0:0:0:FFFFを保持します。たとえば、IPv4にマップされたアドレスは次のようになります。
:: FFFF:192.1.1.1
これらのアドレスは、指定されたホストにIPv4アドレスしかない場合、getaddrinfo()APIによって自動的に生成できます。