在 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_ORIGIN
和NL_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.