web-dev-qa-db-ja.com

ip addr shで「非推奨」ですか?

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
2
Little Code

非推奨のアドレスは、たとえば 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
5