LinuxでIPv4とIPv6の優先度を変更する方法

LinuxでIPv4とIPv6の優先度を変更する方法

最近のOSではWindows、Linux問わずIPv4よりIPv6が優先して使用されるように設定されていますが、世の中的にはまだまだIPv4の利用が多く、IPv6が優先的に使用されることで通信トラブルに見舞われることがあります。

そこでここではRedHat系Linux(AlmaLinux9.4)を例に、IPv6よりIPv4が優先されるように設定する方法を紹介します。

IPv4の優先度を上げる

IPv4とIPv6の優先順位を定義するファイルは「/etc/gai.conf」ですが、デフォルトでは用意されていないため、以下の内容でファイルを作成します。

# vi /etc/gai.conf

# For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100

ファイルを作成したら、設定を適用するためにLinuxを再起動します。

再起動したら、自分自身(localhost)にPingを打ってみて、localhostのアドレスが「127.0.0.1」になっていればIPv4が優先されています。(IPv6優先だと「::1」と表示されます)

IPv6が優先のとき(デフォルト)

# ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.207 ms
IPv4が優先のとき

# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.068 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.216 ms

あとがき

IPv6優先にしていると、名前解決時などで遅延が発生することがあります。まだしばらくはIPv4優先が良いかもです。