Как получить стабильный IPv6-адрес в 16.04?

У меня есть доменное имя, указывающее на мой домашний сервер. Под каждым выпуском 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 адрес или есть другой способ получить стабильный адрес, который я могу использовать в записи имени домена?

1
задан 29 April 2016 в 06:32

2 ответа

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

Отрегулируйте вкус, конечно.

5
ответ дан 23 May 2018 в 11:38
  • 1
    Извините за то, что вы долго принимаете, но у меня возникают проблемы с вашим ответом. Помимо вашего предложения использовать sysctl -w, я пробовал записывать net.ipv6.conf.all.use_tempaddr = 0, net.ipv6.conf.default.use_tempaddr = 0 в /etc/sysctl.d/10-ipv6-privacy.conf и перезапускать, а графический интерфейс Network Manager указывает, что расширения конфиденциальности отключены, но я все еще получаю адреса IPv6, которые являются временными и не связаны на мой MAC-адрес. – Xylo04 11 May 2016 в 08:01
  • 2
    Хорошо возиться с sysctl несовместимо с сетевым менеджером. У вас есть что-то вроде этого в / etc / network / interfaces: auto enp3s0 \n iface enp3s0 inet dhcp \n iface enp3s0 inet6 auto \n pre-up modprobe ipv6 \n Это должно отключить диспетчер сети для этого интерфейса. Но местами могут быть /etc/sysctl.conf или что-то вроде /etc/sysctl.d/10-ipv6-privacy.conf. Если вы хотите исправить это с помощью networkmanager, должен быть файл интерфейса в / etc / NetworkManager / system_connections, и вы можете поместить ip6-privacy = 0 в [ipv6] – user206966 14 May 2016 в 05:44
  • 3
    Hrm, спасибо за отзыв о конфигурационных файлах NetworkManager, но ip6-privacy=0 уже присутствует там. Похоже, возможно, ошибка NetworkManager. Я переключусь на ifup/down, как вы предлагаете, и посмотрите, что это делает. – Xylo04 15 May 2016 в 21:24
  • 4
    Эта ошибка Launchpad говорит, что NM теперь следует читать из настроек sysctl, но рядом с ними есть сообщения о том, что они не исправлены. – Xylo04 15 May 2016 в 21:31
  • 5
    Подтверждено: переход на ifup/down и sysctl вместо Network Manager может отключить расширения конфиденциальности IPv6. – Xylo04 15 May 2016 в 21:38

Другие ответы здесь немного неполные: изменение конфигураций NetworkManager не помогает, если у вас его нет (что на самом деле является проблемой, см. ниже), а также отключить расширения конфиденциальности IPv6 на самом деле несколько не связаны (опять же, если ваш предположительно-стабильный адрес IPv6-адреса при каждой загрузке, удаление дополнительных адресов конфиденциальности не помогает).

Как указано в этом потоке, по умолчанию новая установка 16.04 имеет небольшой надзор, если вы используете проводное соединение. NetworkManager автоматически генерирует «эфемерную» конфигурацию, которая отлично работает, но является, ну, эфемерной. Это означает, что GUID, используемый для хэша в якобы согласованный адрес IPv6, не сохраняется, и поэтому вы получаете новую загрузку. Просто перейдя в NetworkManager, нажав «edit» на проводном соединении и сохраните его без изменений, вы создадите фактическую конфигурацию NM с сохраненным идентификатором GUID, и вы получите тот же адрес IPv6, который будет загружаться.

Этот адрес является адресом RFC7217 (криптографический хэш GUID, ваш префикс и т. д. и т. д.) - поэтому, несмотря на стабильную загрузку, это не тот тип, который включает ваш MAC-адрес непосредственно в адрес. Если вам нужен один из этих адресов EUI64, этот поток подробно описывает, как это изменить.

4
ответ дан 23 May 2018 в 11:38

Другие вопросы по тегам:

Похожие вопросы: