LinuxからIPv4スタックを完全に動的に無効にする方法


17

LinuxからIPv4スタックを無効にするにはどうすればよいですか?私はそれを動的に行いたい、つまり、時々それを有効にしたいときもあれば、IPv6スタックだけが欲しいときもあります。それを行うポータブルな方法はありますか?ディストリビューションでそれを行う方法を知っているなら、それは私にも大いに役立ちます。


2
@kasperd 2011
マイケルハンプトン

回答:


21

IRCについて少し話をした後、一般的な意見としては、Linuxカーネルはipv4とipv6の間でコードを共有しているため、ipv4を完全に無効にすることはできません。あなたはできるしようと IPv4の部品なしでカーネルをコンパイルするのではなく、IPv6が、この場合にはコンパイルできません(が、何もしようとするからあなたを維持しません!)。

インターフェースからipv4アドレスを削除することはできますが、現時点ではipv4を完全に無効にすることはできないと思います。

編集:make menuconfigカーネル2.6.36のクイックチェックの後、TCP / IPスタック全体(およびipv6)を無効にすることなくipv4を無効にする方法を見つけることができませんでした。


4

これが開発者向けである場合、LD_PRELOADを使用して、単にエラーを返す(または曜日やその他の外部基準に応じて実際のライブラリを呼び出す)スタブ関数を備えたドクターライブラリを使用できます。


2

IPv4を完全に無効にすることは不可能だと思いますが、目標によっては、使用しているすべてのIPv4トラフィックをドロップするiptablesだけで十分な場合があります。

このような何かが動作するはずです。IPv4経由でアクセスしているため、どのマシンでもテストしていません。

sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP

1
これによりトラフィックがブロックされますが、これは役立つ場合があります。しかし、プログラムがIPv4ソケットをバインドするのを止めません。これは、IPv4を完全に無効にするために必要です。
マイケルハンプトン

IPv6のみを実行する必要があるマシンで行ったことは、でDHCPクライアントを無効にすることでした/etc/network/interfaces.dsystemd-resolvedまだリッスンして127.0.0.53:53いるため、IPv4を無効にすることとはまったく異なります。しかし、私の当面の必要性に対処するのに十分であり、じっくりすることをずっと好みましたiptables
カスペルド

1

ほとんどの場合、ipv4モジュールなしでカーネルを再コンパイルする必要があります。フェドラ

システムは127.0.0.1ループバックインターフェイスを使用しているため、完全に無効にすることはできません。
ただし、if-cfgコマンドで一部のipv4機能を無効にすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.