Linux下如何知道IPv6地址配置为有状态/无状态?

Linux下如何知道IPv6地址配置为有状态/无状态?

在 macOS 上,我可以依赖IN6_IFF_AUTOCONF(SLAAC) 和IN6_IFF_DYNAMIC(DHCPv6)。 https://opensource.apple.com/source/xnu/xnu-4570.41.2/bsd/netinet6/in6_var.h.auto.html

在 Windows 上,我有NL_PREFIX_ORIGINNL_SUFFIX_ORIGIN字段。

我如何知道哪种配置方法(有状态/无状态)在 Linux 上生成了特定的 IPv6 地址?我在现场没有找到任何有用的标志ifa_flags

systemd-networkd v246

sysctl:
addr_gen_mode=0
use_tempaddr=2

global-unicast dhcpv6:
          dynamic            noprefixroute

global-unicast slaac privacy-extension:
temporary dynamic

global-unicast slaac eui64:
          dynamic mngtmpaddr noprefixroute

unique-local dhcpv6:
                             noprefixroute

unique-local slaac privacy-extension:
temporary dynamic

unique-local slaac eui64:
                  mngtmpaddr noprefixroute

答案1

对于无状态,使用命令: ip addr show dynamic

对于有状态,请使用以下命令: ip addr show permanent

引用 ip-address 手册页:

  dynamic and permanent
          (IPv6 only) only list addresses installed due to stateless ad‐
          dress configuration or only list permanent (not dynamic) ad‐
          dresses. These two flags are inverses of each other, so -dynamic
          is equal to permanent and -permanent is equal to dynamic.

相关内容