2

У меня есть статический префикс IPv6 /62, и я использую radvd на своем маршрутизаторе (на котором запущен Debian), чтобы объявить /64 из него во всей моей сети. Кроме моего маршрутизатора (который является :: 1), я позволяю EUI64 устанавливать суффикс на основе MAC-адреса (то есть совпадать с суффиксом автоматического fe80 :: address).

Большинство Linux-систем переходят на маскировку по соображениям конфиденциальности. Я действительно не беспокоюсь о последствиях для конфиденциальности и, кроме того, хочу иметь совершенно предсказуемый IPv6-адрес для таких служб, как sshd.

Теоретически это должно быть легко настроить. Например, на Raspberry Pi с Raspbian я добавил в файл /etc/sysctl.conf:

################################################## #################

# Включить IPv6 EUI64

#

net.ipv6.conf.all.use_tempaddr = 0

net.ipv6.conf.default.use_tempaddr = 0

net.ipv6.conf.eth0.use_tempaddr = 0

Увы, ничего не меняется. (Последняя строка была последней попыткой; предыдущие две строки действительно должны работать в одиночку.)

Что-то в этих ОС мешает работе EUI64. Что это такое и как мне это включить?

Эта конкретная машина не работает NetworkManager, но некоторые из них.

1 ответ1

3

Вы путаете два разных типа адресов:

  • временные адреса, сгенерированные в соответствии с RFC 4941 "Расширения конфиденциальности",
  • постоянные адреса, сгенерированные в соответствии с RFC 7217 "Идентификаторы непрозрачного интерфейса".

Первые всегда генерируются в дополнение к адресу по умолчанию и не заменяют его, поэтому, конечно, не то, что вы имеете в виду.

Последние действительно заменяют адрес по умолчанию на основе EUI64, но они не являются временными и не имеют ничего общего с ручкой use_tempaddr . Вместо этого вам нужно изменить режим генерации основного адреса:

  • Если ядро выполняет SLAAC, измените этот sysctl:

    net.ipv6.conf.default.addr_gen_mode = 0
    net.ipv6.conf.eth0.addr_gen_mode = 0
    

    (Глядя на исходный код, кажется, что all.addr_gen_mode не реализован.)

  • Если SLAAC выполняется dhcpcd, используйте эту опцию dhcpcd.conf :

    slaac hwaddr
    
  • Если SLAAC выполняется NetworkManager:

    nmcli con modify "Connection name" ipv6.addr-gen-mode eui64
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .