web-dev-qa-db-ja.com

LinuxのIPv6で自動構成を無効にする方法は?

LinuxでIPv6の自動構成を永続的に無効にするにはどうすればよいですか?インターフェースからアドレスを手動で削除しようとすると:

ip -6 addr del 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 dev eth1

それは数秒後に再表示されます。IPv6をすべて無効にすることなく、永続的に削除したいです。

23
Grumbel

自動設定は、eth1に対して一時的に無効にできます。

Sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
Sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

またはすべてのインターフェースで:

Sudo sysctl -w net.ipv6.conf.all.autoconf=0
Sudo sysctl -w net.ipv6.conf.all.accept_ra=0

再度有効にするには、呼び出しで0ではなく1を使用します。

永続的に無効にするには、/etc/sysctl.confを入力します。 Debian Etch(おそらく新しいバージョンでも)では、accept_raを設定しないと、システムはリンクローカルアドレス(fe80..)を使用して自動構成します

Gartが後述するように、ホスト自体がルーターであり、accept_ra2ではない場合、つまり自動アドレス構成とルーター検出は無効になります。

net.ipv6.conf.<iface|all|default>.forwarding=1

そして

net.ipv6.conf.<iface|all|default>.accept_ra=0またはnet.ipv6.conf.<iface|all|default>.accept_ra=1

ここで、ifaceはインターフェースです

22
Grumbel

sysctlソリューションは、Ubuntu 18.04 Bionicでは機能しませんでした。私たちはそれを解決しました:

/etc/netplan/01-netcfg.yamlの編集、構成:

network:
  ...
  ethernets:
    eth0:
      ...
      dhcp6: no
      accept-ra: no

eth0の代わりにインターフェース名を使用する必要がある場合があります。ファイルを保存したら、次を実行します。

netplan applyまたはreboot

自動構成からすでにIPv6 IPを受け取っていて、再起動せずにそれを削除したい場合は、次のコマンドを実行できます。

ip -6 addr del 1111:2222:1:0:aaaa:bbbb:cccc:dddd/64 dev eth0 

もちろん、このコマンドでIPとデバイスを置き換える必要があります。

上記のnet.ipv6.conf.all.accept_ra = 0は実行しないでください。RAは、プレフィックスのオンリンクとオフリンクの表示(RFC5942に基づく)、および他の多くの自動構成に必要なためです。 MTU、近隣探索タイムアウトなどのパラメータ.

自動構成を無効にする場合は、上記のようにautoconf sysctlをオフに設定するか、RAのプレフィックス情報オプション(PIO)のA(自動構成ビット)をオフに切り替えます。

4
Mark S
Sudo sysctl -w net.ipv6.conf.all.autoconf=0

これは、Debian Wheezyでは動作しませんでした。 /etc/sysctl.confを調べた後、使用する必要がありました

Sudo sysctl -w net.ipv6.conf.default.autoconf=0
3
Nick B.

Ubuntu 18とipv6の問題は、systemd-networkdがカーネルパラメーターを制御することです。そのため、sysctlでipv6を無効にすることもできますが、設定で特に明記されていない場合、networkdはそれらのスイッチを入れても問題ありません。

Ipv6を無効にする私の解決策は、ネットプランのリンクローカルを空のスカラーに構成することです(リンクローカルipv4 IPがない場合)。

network:
     version: 2
     renderer: networkd
     ethernets:
     eth0:
        ..
        link-local: [ ]

構成は、/ run/systemd/network/10-netplan-eth0.networkに投稿され、networkdがeth0にipv6を設定しないように説得するnetworkdの構成をコンパイルします

ループバックでもipv6を無効にしたい場合は、カーネルパラメーターnet.ipv6.conf.all.disable_ipv6を1に設定することで簡単に実現できます。networkdはループバックを制御していないようです。

sysctl -w net.ipv6.conf.all.disable_ipv6=1
2
Daniel