Создайте фиксированный суффикс ipv6 с рекламируемым префиксом и ifupdown против NetworkManager

Вопрос или проблема

Вопрос о том, как создать статический ipv6 с объявленным префиксом, уже задавался здесь (решением, похоже, является установка токена), но я хотел бы понять, что именно происходит в моей настройке.

Моя система изначально использует NetworkManager, но я хотел бы внедрить изменения через ifupdown. Я создал файл /etc/network/interfaces со следующим конфигом:

auto wlp2s0
allow-hotplug wlp2s0

iface wlp2s0 inet dhcp

iface wlp2s0 inet6 auto
address ::be70:f1ic:a1a1:d502/64
accept_ra 2
privext 0

Когда я запускаю демон networking после создания этого файла, к интерфейсу wlp2s0 добавляются два адреса: один global dynamic mngtmpaddr и один global dynamic mngtmpaddr noprefixroute (в дополнение к оригинальным адресам, которые включают один глобальный динамический, один с расширением конфиденциальности и один локальный), ни один из которых не имеет префикса, который я хотел зафиксировать. Более того, на этом этапе я не могу получить доступ в интернет (фактически, похоже, что существующие соединения продолжают работать, в то время как новые не могут быть установлены).

Если я перезагрузить систему (я считаю, что перезапуска NetworkManager может быть достаточно, но не уверен), мой беспроводной адаптер даже не может запуститься (интерфейс wlp2s0 остается неактивным и не имеет соединения).

Теперь к моим вопросам:

  1. Я знаю, что правильный способ сделать то, что я хочу, – это использование токена, но почему именно моя конфигурация не фиксирует IP с моим суффиксом?

  2. Почему я получаю два новых адреса, один с noprefixroute, а другой без, вместо одного?

  3. Почему перезагрузка ядра отключает интерфейс?

Я буду признателен за любые идеи!

Ответ или решение

Создание фиксированного суффикса IPv6 с рекламируемым префиксом через ifupdown и NetworkManager

Введение

Сетевые настройки IPv6 могут быть сложными, особенно при работе с ifupdown и NetworkManager. В данном ответе мы разберем, как добиться целевой конфигурации: фиксированный IPv6 с заданным суффиксом, при этом осветим возможные проблемы, с которыми вы столкнулись, и объясним, что произошло в вашей настройке.

1. Почему ваша конфигурация не фиксирует IP с желаемым суффиксом?

Ваш конфигурационный файл включает следующие строки:

iface wlp2s0 inet6 auto
address ::be70:f1ic:a1a1:d502/64
accept_ra 2
privext 0

Эти строки указывают интерфейсу использовать автоматическую конфигурацию IPv6 (авто) и одновременно задают фиксированный адрес. Проблема возникает из-за строчки iface wlp2s0 inet6 auto, которая ставит вашу конфигурацию в режим автоматической настройки, что может конфликтовать с попыткой задать фиксированный адрес.

Вместо auto вы должны использовать static для назначения фиксированного IPv6. Корректная конфигурация будет выглядеть следующим образом:

iface wlp2s0 inet6 static
address ::be70:f1ic:a1a1:d502
netmask 64
accept_ra 2
privext 0

Это отключит автоматическую конфигурацию и позволит задать ваш желаемый адрес, без конфликта с динамически сгенерированными адресами.

2. Почему вы получаете два новых адреса, один с noprefixroute, а другой без?

Параметры конфигурации вашего интерфейса, действительно, могут привести к получению нескольких адресов. noprefixroute указывает на то, что данный адрес не должен использоваться для установления маршрута по умолчанию. Это может происходить из-за настроек DHCPv6 и анонсов маршрутизаторов, которые могут добавлять адреса, соответствующие временной или динамической конфигурации.

Когда вы используете accept_ra 2, это сообщает системе обрабатывать анонсы маршрутизаторов, что может привести к тому, что интерфейс будет получать адреса автоматически, тем самым создавая избыточные адреса.

3. Почему перезагрузка ядра убивает интерфейс?

После перезагрузки ядра, все сетевые интерфейсы должны быть инициализированы заново. Если интерфейс wlp2s0 остается неактивным, это может указывать на конфликт с NetworkManager. Когда NetworkManager и ifupdown работают одновременно, может возникнуть ситуация конфликтов в управлении интерфейсами.

Чтобы избежать этой проблемы при использовании ifupdown, рекомендуется отключить NetworkManager для интерфейса, например, добавив следующее в конфигурацию NetworkManager или временно отключив его:

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

Заключение

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

Таким образом, изменение вашего конфигурационного файла на использование static, а также отключение NetworkManager на соответствующем интерфейсе помогут вам достичь желаемого результата. Если у вас есть дополнительные вопросы, не стесняйтесь их задавать!

Оцените материал
Добавить комментарий

Капча загружается...