Debian

ip addr sh 中的“已棄用”?

  • November 17, 2019

當我執行時,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

不推薦使用的地址是一個 IPv6 概念,例如在 RFC4862中描述:

不推薦使用的地址 - 分配給不鼓勵但不禁止使用的介面的地址。不推薦使用的地址不應再用作新通信中的源地址,但是從或發送到不推薦使用的地址的數據包會按預期傳遞。不推薦使用的地址可以繼續用作通信中的源地址,其中切換到首選地址會對特定的上層活動(例如,現有的 TCP 連接)造成困難。

如果在介面https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/tree/ip/ipaddress.c#n1195ip上設置了 IFA_F_DEPRECATED 標誌 ,您會發現“已棄用”

我不知道 Debian 初始化系統的哪個部分將 IPv6 地址設置為棄用,但您可以嘗試創建一個新的 IPv6 地址並使用以下preferred_lft 0標誌將其標記為棄用ip

$ 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

引用自:https://unix.stackexchange.com/questions/552645