Ubuntu 17.10: IPv6 を再度有効にする

Ubuntu 17.10: IPv6 を再度有効にする

このスクリプトを使用して IPv6 を正常に無効にした後:

echo  'net.ipv6.conf.all.disable_ipv6 = 1'  >> /etc/sysctl.conf
echo  'net.ipv6.conf.default.disable_ipv6 = 1'  >> /etc/sysctl.conf
echo  'net.ipv6.conf.lo.disable_ipv6 = 1'  >> /etc/sysctl.conf
sysctl -p

このスクリプトを使用して再度有効にしてみます:

sed  -i "/net.ipv6.conf.all.disable_ipv6/d" /etc/sysctl.conf
sed  -i "/net.ipv6.conf.default.disable_ipv6/d" /etc/sysctl.conf
sed  -i "/net.ipv6.conf.lo.disable_ipv6/d" /etc/sysctl.conf
sysctl -p

有効化スクリプトによって sysctl.conf ファイルから無効化行が削除されることを確認しました。

いずれの場合も、次のように結果を確認します。

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

ここで、「1」は無効、「0」は無効でないことを意味します。

再有効化部分が機能しません。

いずれの場合も、sysctl -p コマンドは /etc/sysctl.conf ファイルを再読み込みします。ただし、再読み込みでは、完全に上書きするのではなく、単にバッファーに取り込むだけなので、無効化プロパティは削除されないようです。

この分析は正しいでしょうか?

もしそうなら、sysctl.conf キャッシュをクリアするオプションは見当たりません。オプションはあるのでしょうか? または、この要件に対応する戦略はあるのでしょうか?

答え1

のエントリ/etc/sysctl.confとそこからインクルードされるファイルは、起動時または の実行時に適用される sysctl 設定を指定しますsudo sysctl -p。しかし、このファイルにエントリがない場合は、そのような sysctl (数千個あります) は変更されません現在保持している値から。

このファイルから IPv6 を無効にする sysctl エントリを削除しましたが、実際に sysctl 設定自体を変更したようには見えません。 を実行しても、sudo sysctl -pそれらは に含まれていなかったため、変更されませんでした/etc/sysctl.conf

これらのエントリをデフォルトに戻すには、システムを再起動するか、 を使用してsysctl明示的に設定します。例:

sudo sysctl net.ipv6.conf.all.disable_ipv6=0
sudo sysctl net.ipv6.conf.default.disable_ipv6=0
sudo sysctl net.ipv6.conf.lo.disable_ipv6=0

関連情報