Назад | Перейти на главную страницу

Добавление глобальных адресов IPv6 с использованием SLAAC

Автоконфигурация адреса без сохранения состояния позволяет узлу на канале автоматически настраивать глобальные адреса 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