У меня есть доменное имя, указывающее на мой домашний сервер. Под каждым выпуском Ubuntu через Wily по умолчанию у меня был стабильный EIU-64 адрес, который я мог бы использовать для своей записи AAAA. Однако после установки Xenial я по умолчанию не получаю стабильный адрес.
joejoe@myserver:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:24:1d:d2:e3:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.101/24 brd 192.168.0.255 scope global enp2s0
valid_lft forever preferred_lft forever
inet6 2601:280:3068:2945:74ed:b303:6474:6e29/64 scope global temporary dynamic
valid_lft 6965sec preferred_lft 3363sec
inet6 2601:280:3068:2945:ac34:ea15:4340:29a4/64 scope global temporary deprecated dynamic
valid_lft 6965sec preferred_lft 0sec
inet6 2601:280:3068:2945:bdfd:6253:b07e:1308/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 6965sec preferred_lft 6965sec
inet6 fe80::dc3e:6127:bd4e:18b/64 scope link
valid_lft forever preferred_lft forever
Как вы можете видеть, все адреса inet6 с scope global имеют ограниченный срок службы. Есть ли способ вернуть мой EIU-64 адрес или есть другой способ получить стабильный адрес, который я могу использовать в записи имени домена?
Ubuntu 16.04 и предыдущие выпуски всегда были для меня по умолчанию для EIU-64, поэтому для серверов я должен отключить его. Я рад использовать адрес частной жизни на своем рабочем столе.
Итак, вам нужно что-то вроде:
sysctl -w net.ipv6.conf.all.use_tempaddr=0
sysctl -w net.ipv6.conf.default.use_tempaddr=0
sysctl -w net.ipv6.conf.default.use_tempaddr=0
sysctl -w net.ipv6.conf.<devname>.use_tempaddr=0
Тогда ifdown / ifup. Результат для меня, обратите внимание на отношение MAC / IPv6:
$ ifconfig enp3s0 | egrep 'HWaddr|Global'
enp3s0 Link encap:Ethernet HWaddr 74:d0:2b:90:8b:90
inet6 addr: 2501:300:d008:61c8:76d0:2bff:fe90:8b90/64 Scope:Global
Вы можете назвать определенные интерфейсы, если вам нужно включить его на некоторых интерфейсах, а не на других. Вы можете увидеть список с помощью:
$ sysctl -a | grep tempaddr
Я не рекомендую Менеджер сети для производственных услуг. Например, он не играет хорошо других, например, /etc/sysctl.conf. Если вы хотите сделать это, вам понадобится запись в / etc / networking / interfaces для статического адреса или автоматически настроенного. Я просто использую:
auto enp3s0
iface enp3s0 inet dhcp
iface enp3s0 inet6 auto
pre-up modprobe ipv6
Отрегулируйте вкус, конечно.
Другие ответы здесь немного неполные: изменение конфигураций NetworkManager не помогает, если у вас его нет (что на самом деле является проблемой, см. ниже), а также отключить расширения конфиденциальности IPv6 на самом деле несколько не связаны (опять же, если ваш предположительно-стабильный адрес IPv6-адреса при каждой загрузке, удаление дополнительных адресов конфиденциальности не помогает).
Как указано в этом потоке, по умолчанию новая установка 16.04 имеет небольшой надзор, если вы используете проводное соединение. NetworkManager автоматически генерирует «эфемерную» конфигурацию, которая отлично работает, но является, ну, эфемерной. Это означает, что GUID, используемый для хэша в якобы согласованный адрес IPv6, не сохраняется, и поэтому вы получаете новую загрузку. Просто перейдя в NetworkManager, нажав «edit» на проводном соединении и сохраните его без изменений, вы создадите фактическую конфигурацию NM с сохраненным идентификатором GUID, и вы получите тот же адрес IPv6, который будет загружаться.
Этот адрес является адресом RFC7217 (криптографический хэш GUID, ваш префикс и т. д. и т. д.) - поэтому, несмотря на стабильную загрузку, это не тот тип, который включает ваш MAC-адрес непосредственно в адрес. Если вам нужен один из этих адресов EUI64, этот поток подробно описывает, как это изменить.