1. ホーム
  2. オペレーティングシステム
  3. フェドラ

FedoraのIPv6関連の設定

2022-01-20 07:22:07

前置き

私のアプリケーションの1つがIPv6上で接続を確立しようとしていることがわかりました。しかし、私たちのローカルネットワークはIPv6トラフィックの割り当てを許可しないため、IPv6接続はタイムアウトし、アプリケーションの接続はIPv4に戻り、不必要な遅延を引き起こします。現在、IPv6の必要性がないため、LinuxホストでIPv6を無効にしたいと思います。これを行うより適切な方法は何でしょうか?

IPv6は、IPv4(インターネット上の従来の32ビットアドレス空間)の代替品と考えられており、既存のIPv4アドレス空間の枯渇が迫っていることに対処するために使用されています。しかし、インターネットにはすでに多数のホストや機器がIPv4で接続されているため、一晩ですべてをIPv6に切り替えることは不可能に近い。IPv6の採用を促進するために、多くのIPv4からIPv6への変換メカニズム(デュアルスタック、ネットワークトンネル、プロキシなど)が提案されており、私たちが提唱してきたように、多くのアプリケーションがIPv6へのサポートを追加するために書き直されているところです。しかし、IPv4とIPv6が今後も共存していくことは間違いないでしょう。

IPv6への移行はエンドユーザーから見えないことが理想ですが、IPv4/IPv6混在環境では、時にIPv4とIPv6の不用意な衝突に起因するさまざまな問題が発生することがあります。例えば、apt-getやsshがIPv6での接続に失敗したり、DNSサーバーが誤ってIPv6用のAAAAレコードをクリアしたり、IPv6対応デバイスがISPのレガシーIPv4ネットワークと互換性がなかったりと、アプリケーションのタイムアウトに遭遇する可能性があります。

もちろん、これはLinuxマシンでやみくもにIPv6を無効にすべきだという意味ではありません。IPv6の約束された利点を考えると、社会として最終的には完全に受け入れるべきですが、エンドユーザーのトラブルシューティングの一環として、もしIPv6が本当に原因であれば、それをオフにしてみることもできます。

ここでは、LinuxでIPv6を部分的に(例えば、特定のネットワーク・インターフェイスに対して)、または完全に無効にするためのヒントをいくつか紹介します。これらのヒントは Ubuntu, Debian, Linux Mint, CentOS, Fedora, RHEL, Arch Linux を含む全てのメジャーな Linux ディストリビューションで使えるはずです。

さて... ここではFedoraでIPv6を設定する方法を紹介します。
1. 現在のIPv6アドレスの一覧
ip"を使用してください。
使用方法

コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr show dev <interface>

例:静的なホストアドレス
コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_ fast qlen 100
inet6 fe80::210:a4ff:fee3:9566/10 scope link
inet6 3ffe:ffff:0:f101::1/64 scope global
inet6 fec0:0:0:f101::1/64 scope site

アドレスの自動設定と存続期間。
コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 100
inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 16sec preferred_lft 6sec
inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10 scope link

"ifconfig"を使用します。
使用方法
コピーコード
コードは以下の通りです。

# /sbin/ifconfig <interface>

IPv6アドレスのみをリストアップした例。
コピーコード
コードは以下の通りです。

# /sbin/ifconfig eth0 |grep "inet6 addr:"
inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link
inet6 addr: 3ffe:ffff:0:f101::1/64 Scope:Global
inet6 addr: fec0:0:0:f101::1/64 Scope:Site

2. IPv6アドレスの追加
原理はIPv4の "IP ALIAS" (IPエイリアス)と同じです。

ip"を使用します。
使用方法

コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr add <ipv6address>/<prefixlength> dev <interface>


コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0

"ifconfig"を使用します。
使用方法
コピーコード
コードは以下の通りです。

# /sbin/ifconfig <interface> inet6 add <ipv6address>/<prefixlength>


コピーコード
コードは以下の通りです。

# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64

3. IPv6アドレスの削除
これはあまり使われません。存在しないアドレスを削除するために使わないでください。初期のコアの中には、これを受け止められずにハングアップするものがあります。

ip"を使用します。
使用方法

コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr del <ipv6address>/<prefixlength> dev <interface>


コピーコード
コードは以下の通りです。

# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0

"ifconfig"を使用します。
使用方法
コピーコード
コードは以下の通りです。

# /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>


コピーコード
コードは以下の通りです。

# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64