Linuxの特定のインターフェイスでipv6を無効にする方法は?


24

CentOSの特定のネットワークインターフェイスでipv6自動設定を無効にする方法を教えてもらえますか?

現在の状況は次のとおりです。

PCには、同じLANに接続している2つのネットワークアダプターeth0およびeth1があり、IPv6ルーターはNDRA(近隣探索ルーターアドバタイズメント)パケットでIPv6プレフィックスをアドバタイズしています。その結果、eth0とeth1の両方が、そのプレフィックスでIPv6アドレスを自動的に構成しています。

しかし、eth1でipv6を有効にし、eth0で無効にするだけです。次の方法を試しましたが、機能しません。

1. / etc / sysconfig / network

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

これにより、eth0とeth1の両方でipv6が無効になります。

2. / etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

次に、それは動作しません。ネットワークサービスを既に再起動しました。私はこの問題について少し混乱しています。高度に感謝します。


1
sysconfig.txtは、特定のインターフェイスでIPv6を無効にする必要があることを明確に示唆しています。ただし、これらのフラグは無視されるようです。これについては2つのバグレポートがありますが、無視されました。bugzilla.redhat.com/show_bug.cgi?id=982740およびbugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski

回答:


41

次の行で/etc/sysctl.confから無効にできます:

net.ipv6.conf.eth0.disable_ipv6 = 1

/ proc / sys / net / ipv6 / conf / eth0をご覧ください。そのディレクトリには、IPv6を有効にしたままautoconfを無効にするなど、多くのオプションを設定できます。


4
FYIだけではなく、一つのインタフェースをすべてを無効にするには、お探しの方のために、単純に「すべて」と「eth0の」を置き換える
ピーター・

1
実際には、を変更する代わりに、上記の内容の名前の付い/etc/sysctl.confたファイルを作成します。その後、IPv6機能を失ったインターフェイスが表示されます。/etc/sysctl.d00_ipv6_off.confifconfig
デビッドトンホーファー

1行:echo "net.ipv6.conf.eth0.disable_ipv6 = 1" > /etc/sysctl.d/00_ipv6_off.conf
David Tonhofer

11
$ sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

廃止予定

# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

この変更が再起動後も維持されるようにするには、次の行を/etc/sysctl.confファイルに追加します。

net.ipv6.conf.eth0.disable_ipv6=1

/etc/sysconfig/network-scripts/ifcfg-eth0ファイルの使用は移植性がないことに注意してください。


3

以下のネットワークパラメータを設定するには、rootになる必要があります。

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

debianインストーラーがネットワーク設定の検出で立ち往生している場合、これはインストーラーでも機能します。コンソール(alt + 2)に移動し、このコマンドを入力します。インストーラーに戻ります。Ctrl + Cを押して検出を終了し、ネットワークの検出を再初期化します。
lsu_guy

1

ifcfg-eth0またはifcfg-eth1で次の変数を使用します。

IPV6INIT=no
IPV6_AUTOCONF=no

トリックを行う必要があります。繰り返すには:

/ etc / sysconfig / network

NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

その後、必ずネットワークサービスを再起動してください。

% /etc/init.d/network restart

実行ifconfigすると、ipv6が有効になっているイーサネットデバイス(eth0またはeth1)にinet6が表示されます。

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 01:26:BD:85:CA:30  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::226:c7ff:fe85:a720/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2497072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2253781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2004576667 (1.8 GiB)  TX bytes:1296051472 (1.2 GiB)

はい、それは少し奇妙です。「net.ipv6.conf.eth0.disable_ipv6 = 1」を設定するのが良い解決策です。ご回答有難うございます。
イヴ・メッシ

1
うーん、私のシステムではスクワットをしませんでした(仮想化環境ではRH 6.5 X86_64です)。
luis.espinal 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.