ip addr sh
を実行すると、セカンダリIPv6アドレスの横にdeprecated
がありますが、プライマリIPv6にはありません。誰かがこれを説明するのを手伝ってもらえますか?
inet6 2001:DB8::aaaa/64 scope global deprecated
valid_lft forever preferred_lft 0sec
inet6 2001:DB8::bbbb/64 scope global
valid_lft forever preferred_lft forever
inet6 2001:DB8::cccc/64 scope global deprecated
私の/etc/network/interfaces
は次のようになります:
allow-hotplug ens18
iface ens18 inet6 static
address 2001:DB8::bbbb/64
gateway 2001:DB8::ffff/64
dns-nameservers 2001:DB8::1 2001:DB8::2
auto ens18:0
iface ens18:0 inet6 static
name Sec1
address 2001:DB8::aaaa/64
auto ens18:1
iface ens18:1 inet6 static
name Sec2
address 2001:DB8::cccc/64
非推奨のアドレスは、たとえば RFC4862 で説明されているIPv6の概念です。
非推奨のアドレス-使用が推奨されていないが禁止されていないインターフェイスに割り当てられたアドレス。非推奨のアドレスは、新しい通信の送信元アドレスとして使用されなくなりましたが、非推奨のアドレスとの間で送受信されるパケットは、期待どおりに配信されます。非推奨のアドレスは、優先アドレスに切り替えると特定の上位層のアクティビティが困難になる通信で、送信元アドレスとして引き続き使用される場合があります(たとえば、既存のTCP接続)。
インターフェイスにIFA_F_DEPRECATEDフラグが設定されている場合、「deprecated」はip
によって出力されることがわかります https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/ tree/ip/ipaddress.c#n1195
Debian initシステムのどの部分がIPv6アドレスを非推奨に設定しているかはわかりませんが、preferred_lft 0
フラグとip
を使用して、新しいIPv6アドレスを作成し、非推奨としてマークすることができます。
$ Sudo ip -6 addr add 2000:0db8:0:f101::1/64 dev eth0 preferred_lft 0
$ ip addr show | grep deprecated
inet6 2000:db8:0:f101::1/64 scope global deprecated