ifconfig bits to set nosoii flag OK? diff --git sbin/ifconfig/brconfig.h sbin/ifconfig/brconfig.h index ee68feb411b..09c871b352b 100644 --- sbin/ifconfig/brconfig.h +++ sbin/ifconfig/brconfig.h @@ -73,7 +73,7 @@ void switch_portno(const char *, const char *); "\024\1UP\2BROADCAST\3DEBUG\4LOOPBACK\5POINTOPOINT\6NOTRAILERS" \ "\7RUNNING\10NOARP\11PROMISC\12ALLMULTI\13OACTIVE\14SIMPLEX" \ "\15LINK0\16LINK1\17LINK2\20MULTICAST" \ - "\23INET6_NOPRIVACY\24MPLS\25WOL\26AUTOCONF6" + "\23INET6_NOPRIVACY\24MPLS\25WOL\26AUTOCONF6\27INET6_NOSOII" void printb(char *, unsigned int, unsigned char *); diff --git sbin/ifconfig/ifconfig.8 sbin/ifconfig/ifconfig.8 index cac8eafc2cb..3f0dd8f373b 100644 --- sbin/ifconfig/ifconfig.8 +++ sbin/ifconfig/ifconfig.8 @@ -1070,6 +1070,7 @@ protocol when supported by the access point. .Op Oo Fl Oc Ns Cm autoconfprivacy .Op Cm eui64 .Op Cm pltime Ar n +.Op Oo Fl Oc Ns Cm soii .Op Oo Fl Oc Ns Cm tentative .Op Cm vltime Ar n .Ek @@ -1127,6 +1128,22 @@ Fill the interface index automatically. .It Cm pltime Ar n Set preferred lifetime for the address. +.It Cm soii +Enable persistent Semantically Opaque Interface Identifiers (SOIIs), +as per RFC 7217, for link local and SLAAC addresses on the interface. +The purpose of these identifiers is to make discovery of hosts by +scanning a whole prefix more difficult. +SOIIs use the whole 64 bits of the host part while SLAAC addresses are +formed from MAC addresses which can lower the entropy to 24 bits if +the host is running in a virtualization environment or the hardware +manufacturer is known. +See RFC 8064 for details. +SOIIs are enabled by default. +.It Cm -soii +Disable IPv6 persistent Semantically Opaque Interface Identifiers on the +interface. +Currently configured addresses will not be removed until they become +invalid. .It Cm tentative Set the IPv6 tentative address bit. .It Cm -tentative diff --git sbin/ifconfig/ifconfig.c sbin/ifconfig/ifconfig.c index d99bcb34871..bd7ce506398 100644 --- sbin/ifconfig/ifconfig.c +++ sbin/ifconfig/ifconfig.c @@ -388,6 +388,8 @@ const struct cmd { { "eui64", 0, 0, setia6eui64 }, { "autoconfprivacy", -IFXF_INET6_NOPRIVACY, 0, setifxflags }, { "-autoconfprivacy", IFXF_INET6_NOPRIVACY, 0, setifxflags }, + { "soii", -IFXF_INET6_NOSOII, 0, setifxflags }, + { "-soii", IFXF_INET6_NOSOII, 0, setifxflags }, #ifndef SMALL { "hwfeatures", NEXTARG0, 0, printifhwfeatures }, { "metric", NEXTARG, 0, setifmetric }, -- 2.13.0
-- I'm not entirely sure you are real.