web-dev-qa-db-ja.com

Debian / Mint / Raspbian / Ubuntu-SLAAC EUI64 IPv6自動構成を強制する方法は?

静的IPv6/62プレフィックスがあり、ルーター(Debianを実行している)でradvdを使用して、ルーター内からネットワーク全体に/ 64をアドバタイズします。ルーター(:: 1)以外に、EUI64にMACアドレスに基づいてサフィックスを設定させます(つまり、自動fe80 ::アドレスのサフィックスと一致させます)。

ほとんどのLinuxは、プライバシー上の理由からこれをマスキングするように移行しています。私はプライバシーへの影響については本当に心配していません。さらに、sshdなどのサービスに完全に予測可能なIPv6アドレスが必要です。

理論的には、これは簡単に構成できるはずです。たとえば、Raspbianを実行しているRaspberry Piで、/ etc /sysctl.confファイルに次を追加しました。

################################################## #################

#IPv6EUI64を有効にする

net.ipv6.conf.all.use_tempaddr = 0

net.ipv6.conf.default.use_tempaddr = 0

net.ipv6.conf.eth0.use_tempaddr = 0

残念ながら、何も変わりません。 (最後の行は最後の試みでした。前の2行は実際には単独で機能するはずです。)

これらのOSの何かが、EUI64の動作を妨げています。それは何ですか、どうすれば有効にできますか?

この特定のマシンはnot NetworkManagerを実行していますが、一部は実行しています。

3
Jim MacKenzie

2つの異なるアドレスタイプを混同しています。

  • rFC4941「プライバシー拡張」に従って生成された一時アドレス。
  • rFC7217「不透明なインターフェイス識別子」に従って生成された永続的なアドレス。

前者は常に生成されますに加えてデフォルトのアドレスであり、それを置き換えることはありません。したがって、あなたが考えていることではありません。

後者はデフォルトのEUI64ベースのアドレスを置き換えますが、一時的ではありませんであり、use_tempaddrノブとは何の関係もありません。代わりに、プライマリアドレス生成モードを変更する必要があります。

  • SLAACがカーネルによって実行される場合は、次のsysctlを変更します。

    net.ipv6.conf.default.addr_gen_mode = 0
    net.ipv6.conf.eth0.addr_gen_mode = 0
    

    (ソースコードを見ると、all.addr_gen_modeが実装されているようには見えません。)

  • SLAACがdhcpcdによって実行される場合は、次のdhcpcd.confオプションを使用します。

    slaac hwaddr
    
  • SLAACがNetworkManagerによって実行される場合:

    nmcli con modify "Connection name" ipv6.addr-gen-mode eui64
    
7
user1686