web-dev-qa-db-ja.com

/ proc / sys / net / ipv6フォルダーがない場合は、Debian 10でipv6を有効にする

Ifconfigを実行すると、どのインターフェイスにもipv6アドレスが割り当てられていないことがわかります。 AF_INET6ソケットを作成しようとすると、アドレスファミリがサポートされていないというエラーが表示されます。 / proc/sys/net/inet6フォルダがありません。マシンはDebian 10(バスター)を実行します。 / etc/default/grubには、ipv6の無効化に関する行はありません。

$ uname -r
4.19.52.1.AMD64-smp

Ipv6を有効にする方法を教えてください。無効にする方法については多くの記事がありますが、有効にする方法はありません。

1
JenyaKh

LinuxでIPv6を無効にする方法はたくさんあるので、それらすべてをチェックする必要があります。

まず、カーネルのバージョンがDebian10標準のAMD64カーネルとまったく同じようには見えません。カスタムカーネルを使用している場合、カーネルのコンパイル時にIPv6が無効になっている可能性があります。その場合、カーネルを再コンパイル(または別のカーネルに切り替える)して有効にする必要があります。

grep CONFIG_IPV6 /boot/config-$(uname -r)を実行して、内容を確認してください。応答に行が含まれている場合:

# CONFIG_IPV6 is not set

次に、現在のカーネルでは、コンパイル時にIPv6サポートが無効になっています。

応答に行が含まれている場合:

CONFIG_IPV6=m

次に、IPv6サポートがカーネルモジュールとしてコンパイルされます。

代わりに行がある場合:

CONFIG_IPV6=y

次に、IPv6サポートがメインカーネルにコンパイルされます。この場合、IPv6を無効にする1つの方法は、ブートオプションipv6.disable=1をカーネルコマンドライン(/etc/default/grub内)に追加することですが、すでに確認済みであると述べています。

モジュールとしてコンパイルされたIPv6

ルートとしてmodprobe -c |grep "options ipv6"を実行してください。応答に行が含まれている場合:

options ipv6 disable=1

次に、IPv6はカーネルモジュール構成によって無効になり、/etc/modprobe.dのファイルの1つにその行があります。

この場合にIPv6を再度有効にするには、その行を見つけてコメント化し、ルートとしてupdate-initramfs -uを実行して、IPv6が初期起動時に無効にならないようにします。 。

(理論的には、無効化オプションをコメントアウトした後にipv6をアンロードおよび再ロードするだけで十分ですが、モジュール間の依存関係のため、再起動せずに実際に実行するのは難しい場合があります。)

モジュラーIPv6とコンパイル済みIPv6の両方に適用可能な方法

Sysctl設定も確認する必要があります。

grep "disable_ipv6" /etc/sysctl.conf /etc/sysctl.d/*.conf

出力に次のような行が含まれている場合、sysctl設定によってIPv6が無効になっています。

net.ipv6.conf.<something>.disable_ipv6 = 1

ここで、<something>は、単語allまたはdefault、あるいは特定のネットワークインターフェースの名前である可能性があります。再度有効にするには、disable_ipv6行をコメントアウトし、rootとしてsysctl -pを実行してから、再起動します(またはネットワークインターフェイスを再構成します)。

4
telcoM