私はAWSマシンでCentOS 7を実行しています。私は最近IPv6を有効にしましたが、すべてがうまく機能しています。ただし、PHP接続要求(コマンドラインでもカーリング)は、常にIPv4ではなくIPv6を使用することを好む点だけが異なります。これにより、Apple、Androidに通知を送信するなど、実際にはサポートしていない一部のサイトで問題が発生し、すべてがIPv4でうまく機能します。
すべての発信要求にIPv6の代わりにIPv4を使用させるにはどうすればよいですか?また、一部のクライアントはIPv6のみを使用するため、着信IPv6を無効にしたくありません。
ベストアンサー1
ほとんどのIPv6サポートプログラムは、システムDNSリゾルバライブラリを使用してホストのベースアドレス(IPv4またはIPv6)を報告します。
/etc/gai.conf
このファイルを使用して、パーサーライブラリのデフォルト設定を調整できます。
優先順位ルールはファイルのこのセクションで指定されます。
# precedence <mask> <value>
# Add another rule to the RFC 3484 precedence table. See section 2.1
# and 10.3 in RFC 3484. The default is:
#
#precedence ::1/128 50
#precedence ::/0 40
#precedence 2002::/16 30
#precedence ::/96 20
#precedence ::ffff:0:0/96 10
#
# For sites which prefer IPv4 connections change the last line to
#
#precedence ::ffff:0:0/96 100
組み込みのデフォルト値はコメント値として一覧表示されますが、直接設定を指定するとデフォルト値はまったく使用されません。したがって、ファイルの末尾に以下を追加します。
# To prefer IPv4 over everything else
precedence ::ffff:0:0/96 100
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
IPv4からIPv6を使用して着信接続に応答することは不可能であり、その逆も同様です。 IPプロトコルとTCPプロトコルの規則に基づいて、すべての接続試行は要求されたプロトコルを使用して応答する必要があります。