Это является следствием проблемы конфиденциальности / безопасности. В IPv6, при Stateless Адрес AutoConfiguration ADDRCONF, узел генерирует свой собственный публичный адрес без необходимости сервера DHCP. Младшие 64 бита этого адреса генерируются из идентификатора IEEE, когда он доступен, который эквивалентен MAC-адресу уровня 2. Если бы это была целая история, то было бы возможно отслеживать местоположение и связь любого мобильного устройства посредством младших 64 битов адреса IPv6, используя традиционные методы интеллектуального анализа данных.
Вот почему я спросил вас, видите ли вы это на ноутбуке.
Эта проблема конфиденциальности / безопасности решается в RFC 3041 и RFC4941, которые описывают две стратегии для генерации рандомизированного идентификатора интерфейса (при наличии или отсутствии постоянного хранилища).
Вы можете управлять этой функцией в Linux и Mac с помощью следующих элементов управления: в Linux,
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
sysctl net.ipv6.conf.eth0.use_tempaddr=2
и так далее, в Mac
sysctl -w net.inet6.ip6.use_tempaddr=1
Преимущество этой схемы в том, что она не только скрывает вашу аппаратную идентификацию, но также довольно часто и автоматически меняет (случайную) идентификацию
Для получения дополнительной информации о конфиденциальности адресации в большинстве операционных систем, можно прочитать эту превосходную страницу блока питания.
РЕДАКТИРОВАТЬ:
некоторые системы, такие как Arch Linux, уже перешли на новую конфигурацию для sysctl. В этом случае вы можете выполнить приведенную выше настройку, изменив в файле /etc/sysctl.d/40-ipv6.conf следующие записи на эти значения:
net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
net.ipv6.conf.eth0.use_tempaddr = 2
РЕДАКТИРОВАТЬ 2:
@slubman правильно указывает, что в Linux правильной опцией является 2, а не 1 (что у меня есть в моем Debian), потому что 1 разрешает генерацию адресов конфиденциальности, но сохраняет Autoconf как предпочтительный.