Автоконфигурация адреса без сохранения состояния позволяет узлу на канале автоматически настраивать глобальные адреса IPv6, добавляя идентификатор интерфейса (64 бита) к префиксу (64 бита), объявленному маршрутизатором.
Предположим, у меня есть сервер с глобальным IPv6-адресом.
2001:0db8:85a3:08d3:1319:8a2e:0370:7347
Теперь я хочу добавить еще один глобальный IPv6-адрес к тому же интерфейсу, изменив только идентификатор интерфейса и сохранив префикс. например
2001:0db8:85a3:08d3:3315:2b5e:a320:3254
-------same--------|-----different-----
Как я могу это сделать с помощью SLAAC, когда идентификатор интерфейса автоматически добавляется к префиксу сети? В настоящее время я использую Ubuntu.
(Это похоже на то, что делает расширение конфиденциальности IPv6, но я хочу сам контролировать добавление и удаление временных адресов IPv6.)
Расширения конфиденциальности - это именно то, что вам нужно. Вы просто хотите контролировать их вручную. Вы можете управлять истечением срока действия и генерацией, используя ip address
команда. В ip-address
страница руководства говорит:
mngtmpaddr (только IPv6) заставляет ядро управлять временными адресами, созданными из этого адреса в качестве шаблона от имени Privacy Extensions (RFC3041). Чтобы это стало активным, параметр sysctl use_tempaddr должен иметь значение больше нуля. Данный адрес должен иметь длину префикса 64. Этот флаг позволяет использовать расширения конфиденциальности в сети, настроенной вручную, как если бы была активна автоконфигурация без сохранения состояния.
На данный момент я не знаю ни одного метода, чтобы вручную заставить систему переключиться на новый временный адрес.
Однако вы жестяная банка настроить период времени, в течение которого используется временный адрес, и заставить систему создавать их чаще.
Из ядра документация:
temp_valid_lft - INTEGER
valid lifetime (in seconds) for temporary addresses.
Default: 604800 (7 days)
temp_prefered_lft - INTEGER
Preferred lifetime (in seconds) for temporary addresses.
Default: 86400 (1 day)
(Да, ошибка написана намеренно ...)
Итак, допустим, вы хотите, чтобы система начинала использовать новый временный адрес каждые 10 минут. Затем вы установите:
sysctl net.ipv6.conf.all.temp_prefered_lft=600
sysctl net.ipv6.conf.default.temp_prefered_lft=600
В Другой sysctl, temp_valid_lft
, дает дополнительное время для существующий соединения с использованием временного адреса для завершения. Вы также можете уменьшить это, особенно если вы не ожидаете длительных подключений. Здесь я сокращаю его до 1 часа:
sysctl net.ipv6.conf.all.temp_valid_lft=3600
sysctl net.ipv6.conf.default.temp_valid_lft=3600